routup 5.0.0-beta.1 → 5.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -113,9 +113,8 @@ router.use(defineCoreHandler(async (event) => {
113
113
 
114
114
  ### Runtimes
115
115
 
116
- Routup runs on any JavaScript runtime:
116
+ Routup runs on Node.js, Bun, Deno, and Cloudflare Workers. In most cases, import from `routup`:
117
117
 
118
- **Node.js**
119
118
  ```typescript
120
119
  import { Router, defineCoreHandler, serve } from 'routup';
121
120
 
@@ -124,33 +123,7 @@ router.get('/', defineCoreHandler(() => 'Hello, World!'));
124
123
  serve(router, { port: 3000 });
125
124
  ```
126
125
 
127
- **Bun**
128
- ```typescript
129
- import { Router, defineCoreHandler, serve } from 'routup/bun';
130
-
131
- const router = new Router();
132
- router.get('/', defineCoreHandler(() => 'Hello, World!'));
133
- serve(router, { port: 3000 });
134
- ```
135
-
136
- **Deno**
137
- ```typescript
138
- import { Router, defineCoreHandler, serve } from 'routup/deno';
139
-
140
- const router = new Router();
141
- router.get('/', defineCoreHandler(() => 'Hello, World!'));
142
- serve(router, { port: 3000 });
143
- ```
144
-
145
- **Cloudflare Workers**
146
- ```typescript
147
- import { Router, defineCoreHandler } from 'routup/cloudflare';
148
-
149
- const router = new Router();
150
- router.get('/', defineCoreHandler(() => 'Hello, World!'));
151
-
152
- export default { fetch: (request) => router.fetch(request) };
153
- ```
126
+ For runtime-specific APIs (e.g. `toNodeHandler`), use the corresponding entrypoint like `routup/node`.
154
127
 
155
128
  ## Plugins
156
129
 
@@ -171,7 +144,16 @@ Routup is minimalistic by design. [Plugins](https://github.com/routup/plugins) e
171
144
 
172
145
  ## Benchmarks
173
146
 
174
- > **Note:** These benchmarks were recorded with routup v4 (Node.js 18, Sep 2023). Routup v5 uses srvx and Web Standard APIs — updated benchmarks will follow.
147
+ > **Note:** These benchmarks were recorded with routup v4 (Node.js 18, Sep 2023). Updated v5 benchmarks will follow.
148
+
149
+ | Package | Requests/s | Latency (ms) | Throughput/MB |
150
+ |:-----------|:-----------:|-------------:|--------------:|
151
+ | http | 61062 | 15.87 | 10.89 |
152
+ | fastify | 59679 | 16.26 | 10.70 |
153
+ | koa | 45763 | 21.35 | 8.16 |
154
+ | **routup** | 44588 | 21.91 | 9.02 |
155
+ | hapi | 41374 | 23.67 | 7.38 |
156
+ | express | 13376 | 74.18 | 2.39 |
175
157
 
176
158
  To run benchmarks yourself, see the [benchmarks](https://github.com/routup/benchmarks) repository.
177
159
 
package/dist/bun.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_src = require("./src-D_4IPMmD.cjs");
2
+ const require_src = require("./src-BTv-fDqY.cjs");
3
3
  let srvx_bun = require("srvx/bun");
4
4
  //#region src/_entries/bun.ts
5
5
  function serve(router, options) {
package/dist/bun.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-Dm50O_sj.cjs";
1
+ import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-eUBZJk6a.cjs";
2
2
  import { Server, ServerOptions } from "srvx";
3
3
 
4
4
  //#region src/_entries/bun.d.ts
package/dist/bun.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-DN3wy86V.mjs";
1
+ import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-BBvBVzPm.mjs";
2
2
  import { Server, ServerOptions } from "srvx";
3
3
 
4
4
  //#region src/_entries/bun.d.ts
package/dist/bun.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as isError, A as useRequestNegotiator, B as appendResponseHeaderDirective, C as defineCoreHandler, D as sendFormat, E as sendRedirect, F as toResponse, G as setResponseCacheHeaders, H as setResponseGone, I as setResponseHeaderContentType, J as HandlerSymbol, K as isPath, L as setResponseHeaderAttachment, M as sendFile, N as sendCreated, O as getRequestAcceptableContentType, P as sendAccepted, Q as RoutupError, R as setResponseContentTypeByFileName, S as defineErrorHandler, T as sendStream, U as createEventStream, V as isResponseGone, W as serializeEventStreamMessage, X as RoutupEvent, Y as HandlerType, Z as createError, _ as fromWebHandler, a as getRequestHostName, b as fromNodeHandler, c as getRequestAcceptableLanguages, d as getRequestAcceptableCharset, et as HeaderName, f as getRequestAcceptableCharsets, g as isHandlerOptions, h as isHandler, i as getRequestIP, j as getRequestHeader, k as getRequestAcceptableContentTypes, l as getRequestAcceptableEncoding, m as readBody, n as isPlugin, o as matchRequestContentType, p as isRequestCacheable, q as PathMatcher, r as getRequestProtocol, s as getRequestAcceptableLanguage, t as Router, tt as MethodName, u as getRequestAcceptableEncodings, v as isWebHandler, w as Handler, x as fromNodeMiddleware, y as isWebHandlerProvider, z as appendResponseHeader } from "./src-CpLmo5Po.mjs";
1
+ import { $ as isError, A as useRequestNegotiator, B as appendResponseHeaderDirective, C as defineCoreHandler, D as sendFormat, E as sendRedirect, F as toResponse, G as setResponseCacheHeaders, H as setResponseGone, I as setResponseHeaderContentType, J as HandlerSymbol, K as isPath, L as setResponseHeaderAttachment, M as sendFile, N as sendCreated, O as getRequestAcceptableContentType, P as sendAccepted, Q as RoutupError, R as setResponseContentTypeByFileName, S as defineErrorHandler, T as sendStream, U as createEventStream, V as isResponseGone, W as serializeEventStreamMessage, X as RoutupEvent, Y as HandlerType, Z as createError, _ as fromWebHandler, a as getRequestHostName, b as fromNodeHandler, c as getRequestAcceptableLanguages, d as getRequestAcceptableCharset, et as HeaderName, f as getRequestAcceptableCharsets, g as isHandlerOptions, h as isHandler, i as getRequestIP, j as getRequestHeader, k as getRequestAcceptableContentTypes, l as getRequestAcceptableEncoding, m as readBody, n as isPlugin, o as matchRequestContentType, p as isRequestCacheable, q as PathMatcher, r as getRequestProtocol, s as getRequestAcceptableLanguage, t as Router, tt as MethodName, u as getRequestAcceptableEncodings, v as isWebHandler, w as Handler, x as fromNodeMiddleware, y as isWebHandlerProvider, z as appendResponseHeader } from "./src-CNoRH9eg.mjs";
2
2
  import { serve as serve$1 } from "srvx/bun";
3
3
  //#region src/_entries/bun.ts
4
4
  function serve(router, options) {
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_src = require("./src-D_4IPMmD.cjs");
2
+ const require_src = require("./src-BTv-fDqY.cjs");
3
3
  let srvx_cloudflare = require("srvx/cloudflare");
4
4
  //#region src/_entries/cloudflare.ts
5
5
  function serve(router, options) {
@@ -1,4 +1,4 @@
1
- import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-Dm50O_sj.cjs";
1
+ import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-eUBZJk6a.cjs";
2
2
  import { Server, ServerOptions } from "srvx";
3
3
 
4
4
  //#region src/_entries/cloudflare.d.ts
@@ -1,4 +1,4 @@
1
- import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-DN3wy86V.mjs";
1
+ import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-BBvBVzPm.mjs";
2
2
  import { Server, ServerOptions } from "srvx";
3
3
 
4
4
  //#region src/_entries/cloudflare.d.ts
@@ -1,4 +1,4 @@
1
- import { $ as isError, A as useRequestNegotiator, B as appendResponseHeaderDirective, C as defineCoreHandler, D as sendFormat, E as sendRedirect, F as toResponse, G as setResponseCacheHeaders, H as setResponseGone, I as setResponseHeaderContentType, J as HandlerSymbol, K as isPath, L as setResponseHeaderAttachment, M as sendFile, N as sendCreated, O as getRequestAcceptableContentType, P as sendAccepted, Q as RoutupError, R as setResponseContentTypeByFileName, S as defineErrorHandler, T as sendStream, U as createEventStream, V as isResponseGone, W as serializeEventStreamMessage, X as RoutupEvent, Y as HandlerType, Z as createError, _ as fromWebHandler, a as getRequestHostName, b as fromNodeHandler, c as getRequestAcceptableLanguages, d as getRequestAcceptableCharset, et as HeaderName, f as getRequestAcceptableCharsets, g as isHandlerOptions, h as isHandler, i as getRequestIP, j as getRequestHeader, k as getRequestAcceptableContentTypes, l as getRequestAcceptableEncoding, m as readBody, n as isPlugin, o as matchRequestContentType, p as isRequestCacheable, q as PathMatcher, r as getRequestProtocol, s as getRequestAcceptableLanguage, t as Router, tt as MethodName, u as getRequestAcceptableEncodings, v as isWebHandler, w as Handler, x as fromNodeMiddleware, y as isWebHandlerProvider, z as appendResponseHeader } from "./src-CpLmo5Po.mjs";
1
+ import { $ as isError, A as useRequestNegotiator, B as appendResponseHeaderDirective, C as defineCoreHandler, D as sendFormat, E as sendRedirect, F as toResponse, G as setResponseCacheHeaders, H as setResponseGone, I as setResponseHeaderContentType, J as HandlerSymbol, K as isPath, L as setResponseHeaderAttachment, M as sendFile, N as sendCreated, O as getRequestAcceptableContentType, P as sendAccepted, Q as RoutupError, R as setResponseContentTypeByFileName, S as defineErrorHandler, T as sendStream, U as createEventStream, V as isResponseGone, W as serializeEventStreamMessage, X as RoutupEvent, Y as HandlerType, Z as createError, _ as fromWebHandler, a as getRequestHostName, b as fromNodeHandler, c as getRequestAcceptableLanguages, d as getRequestAcceptableCharset, et as HeaderName, f as getRequestAcceptableCharsets, g as isHandlerOptions, h as isHandler, i as getRequestIP, j as getRequestHeader, k as getRequestAcceptableContentTypes, l as getRequestAcceptableEncoding, m as readBody, n as isPlugin, o as matchRequestContentType, p as isRequestCacheable, q as PathMatcher, r as getRequestProtocol, s as getRequestAcceptableLanguage, t as Router, tt as MethodName, u as getRequestAcceptableEncodings, v as isWebHandler, w as Handler, x as fromNodeMiddleware, y as isWebHandlerProvider, z as appendResponseHeader } from "./src-CNoRH9eg.mjs";
2
2
  import { serve as serve$1 } from "srvx/cloudflare";
3
3
  //#region src/_entries/cloudflare.ts
4
4
  function serve(router, options) {
package/dist/deno.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_src = require("./src-D_4IPMmD.cjs");
2
+ const require_src = require("./src-BTv-fDqY.cjs");
3
3
  let srvx_deno = require("srvx/deno");
4
4
  //#region src/_entries/deno.ts
5
5
  function serve(router, options) {
package/dist/deno.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-Dm50O_sj.cjs";
1
+ import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-eUBZJk6a.cjs";
2
2
  import { Server, ServerOptions } from "srvx";
3
3
 
4
4
  //#region src/_entries/deno.d.ts
package/dist/deno.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-DN3wy86V.mjs";
1
+ import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-BBvBVzPm.mjs";
2
2
  import { Server, ServerOptions } from "srvx";
3
3
 
4
4
  //#region src/_entries/deno.d.ts
package/dist/deno.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as isError, A as useRequestNegotiator, B as appendResponseHeaderDirective, C as defineCoreHandler, D as sendFormat, E as sendRedirect, F as toResponse, G as setResponseCacheHeaders, H as setResponseGone, I as setResponseHeaderContentType, J as HandlerSymbol, K as isPath, L as setResponseHeaderAttachment, M as sendFile, N as sendCreated, O as getRequestAcceptableContentType, P as sendAccepted, Q as RoutupError, R as setResponseContentTypeByFileName, S as defineErrorHandler, T as sendStream, U as createEventStream, V as isResponseGone, W as serializeEventStreamMessage, X as RoutupEvent, Y as HandlerType, Z as createError, _ as fromWebHandler, a as getRequestHostName, b as fromNodeHandler, c as getRequestAcceptableLanguages, d as getRequestAcceptableCharset, et as HeaderName, f as getRequestAcceptableCharsets, g as isHandlerOptions, h as isHandler, i as getRequestIP, j as getRequestHeader, k as getRequestAcceptableContentTypes, l as getRequestAcceptableEncoding, m as readBody, n as isPlugin, o as matchRequestContentType, p as isRequestCacheable, q as PathMatcher, r as getRequestProtocol, s as getRequestAcceptableLanguage, t as Router, tt as MethodName, u as getRequestAcceptableEncodings, v as isWebHandler, w as Handler, x as fromNodeMiddleware, y as isWebHandlerProvider, z as appendResponseHeader } from "./src-CpLmo5Po.mjs";
1
+ import { $ as isError, A as useRequestNegotiator, B as appendResponseHeaderDirective, C as defineCoreHandler, D as sendFormat, E as sendRedirect, F as toResponse, G as setResponseCacheHeaders, H as setResponseGone, I as setResponseHeaderContentType, J as HandlerSymbol, K as isPath, L as setResponseHeaderAttachment, M as sendFile, N as sendCreated, O as getRequestAcceptableContentType, P as sendAccepted, Q as RoutupError, R as setResponseContentTypeByFileName, S as defineErrorHandler, T as sendStream, U as createEventStream, V as isResponseGone, W as serializeEventStreamMessage, X as RoutupEvent, Y as HandlerType, Z as createError, _ as fromWebHandler, a as getRequestHostName, b as fromNodeHandler, c as getRequestAcceptableLanguages, d as getRequestAcceptableCharset, et as HeaderName, f as getRequestAcceptableCharsets, g as isHandlerOptions, h as isHandler, i as getRequestIP, j as getRequestHeader, k as getRequestAcceptableContentTypes, l as getRequestAcceptableEncoding, m as readBody, n as isPlugin, o as matchRequestContentType, p as isRequestCacheable, q as PathMatcher, r as getRequestProtocol, s as getRequestAcceptableLanguage, t as Router, tt as MethodName, u as getRequestAcceptableEncodings, v as isWebHandler, w as Handler, x as fromNodeMiddleware, y as isWebHandlerProvider, z as appendResponseHeader } from "./src-CNoRH9eg.mjs";
2
2
  import { serve as serve$1 } from "srvx/deno";
3
3
  //#region src/_entries/deno.ts
4
4
  function serve(router, options) {
package/dist/generic.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_src = require("./src-D_4IPMmD.cjs");
2
+ const require_src = require("./src-BTv-fDqY.cjs");
3
3
  let srvx_generic = require("srvx/generic");
4
4
  //#region src/_entries/generic.ts
5
5
  function serve(router, options) {
@@ -1,4 +1,4 @@
1
- import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-Dm50O_sj.cjs";
1
+ import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-eUBZJk6a.cjs";
2
2
  import { Server, ServerOptions } from "srvx";
3
3
 
4
4
  //#region src/_entries/generic.d.ts
@@ -1,4 +1,4 @@
1
- import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-DN3wy86V.mjs";
1
+ import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-BBvBVzPm.mjs";
2
2
  import { Server, ServerOptions } from "srvx";
3
3
 
4
4
  //#region src/_entries/generic.d.ts
package/dist/generic.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as isError, A as useRequestNegotiator, B as appendResponseHeaderDirective, C as defineCoreHandler, D as sendFormat, E as sendRedirect, F as toResponse, G as setResponseCacheHeaders, H as setResponseGone, I as setResponseHeaderContentType, J as HandlerSymbol, K as isPath, L as setResponseHeaderAttachment, M as sendFile, N as sendCreated, O as getRequestAcceptableContentType, P as sendAccepted, Q as RoutupError, R as setResponseContentTypeByFileName, S as defineErrorHandler, T as sendStream, U as createEventStream, V as isResponseGone, W as serializeEventStreamMessage, X as RoutupEvent, Y as HandlerType, Z as createError, _ as fromWebHandler, a as getRequestHostName, b as fromNodeHandler, c as getRequestAcceptableLanguages, d as getRequestAcceptableCharset, et as HeaderName, f as getRequestAcceptableCharsets, g as isHandlerOptions, h as isHandler, i as getRequestIP, j as getRequestHeader, k as getRequestAcceptableContentTypes, l as getRequestAcceptableEncoding, m as readBody, n as isPlugin, o as matchRequestContentType, p as isRequestCacheable, q as PathMatcher, r as getRequestProtocol, s as getRequestAcceptableLanguage, t as Router, tt as MethodName, u as getRequestAcceptableEncodings, v as isWebHandler, w as Handler, x as fromNodeMiddleware, y as isWebHandlerProvider, z as appendResponseHeader } from "./src-CpLmo5Po.mjs";
1
+ import { $ as isError, A as useRequestNegotiator, B as appendResponseHeaderDirective, C as defineCoreHandler, D as sendFormat, E as sendRedirect, F as toResponse, G as setResponseCacheHeaders, H as setResponseGone, I as setResponseHeaderContentType, J as HandlerSymbol, K as isPath, L as setResponseHeaderAttachment, M as sendFile, N as sendCreated, O as getRequestAcceptableContentType, P as sendAccepted, Q as RoutupError, R as setResponseContentTypeByFileName, S as defineErrorHandler, T as sendStream, U as createEventStream, V as isResponseGone, W as serializeEventStreamMessage, X as RoutupEvent, Y as HandlerType, Z as createError, _ as fromWebHandler, a as getRequestHostName, b as fromNodeHandler, c as getRequestAcceptableLanguages, d as getRequestAcceptableCharset, et as HeaderName, f as getRequestAcceptableCharsets, g as isHandlerOptions, h as isHandler, i as getRequestIP, j as getRequestHeader, k as getRequestAcceptableContentTypes, l as getRequestAcceptableEncoding, m as readBody, n as isPlugin, o as matchRequestContentType, p as isRequestCacheable, q as PathMatcher, r as getRequestProtocol, s as getRequestAcceptableLanguage, t as Router, tt as MethodName, u as getRequestAcceptableEncodings, v as isWebHandler, w as Handler, x as fromNodeMiddleware, y as isWebHandlerProvider, z as appendResponseHeader } from "./src-CNoRH9eg.mjs";
2
2
  import { serve as serve$1 } from "srvx/generic";
3
3
  //#region src/_entries/generic.ts
4
4
  function serve(router, options) {
@@ -823,8 +823,15 @@ declare function getRequestHostName(event: IRoutupEvent, options?: RequestHostNa
823
823
  //#endregion
824
824
  //#region src/request/helpers/ip.d.ts
825
825
  type RequestIpOptions = {
826
- trustProxy?: boolean;
826
+ trustProxy?: TrustProxyInput;
827
827
  };
828
+ /**
829
+ * Get the client IP address from the request.
830
+ *
831
+ * When `trustProxy` is configured, walks the `X-Forwarded-For` chain
832
+ * and returns the rightmost untrusted address (the actual client IP).
833
+ * Falls back to `event.request.ip` (the direct connection IP).
834
+ */
828
835
  declare function getRequestIP(event: IRoutupEvent, options?: RequestIpOptions): string | undefined;
829
836
  //#endregion
830
837
  //#region src/request/helpers/negotiator.d.ts
@@ -838,4 +845,4 @@ type RequestProtocolOptions = {
838
845
  declare function getRequestProtocol(event: IRoutupEvent, options?: RequestProtocolOptions): string;
839
846
  //#endregion
840
847
  export { RouterPipelineContext as $, sendAccepted as A, RoutupRequest as At, createEventStream as B, sendRedirect as C, PathMatcher as Ct, SendFileStats as D, IDispatcher as Dt, SendFileOptions as E, PathMatcherOptions as Et, isResponseGone as F, MethodName as Ft, isError as G, EventStreamMessage as H, setResponseGone as I, isPlugin as J, createError as K, serializeEventStreamMessage as L, setResponseHeaderAttachment as M, HTTPErrorInput$1 as Mt, appendResponseHeader as N, RoutupError as Nt, sendFile as O, RoutupEvent as Ot, appendResponseHeaderDirective as P, HeaderName as Pt, IRouter as Q, EventStreamHandle as R, sendStream as S, isPath as St, SendFileContentOptions as T, PathMatcherExecResult as Tt, ResponseCacheHeadersOptions as U, EventStreamListener as V, setResponseCacheHeaders as W, PluginInstallContext as X, Plugin as Y, PluginInstallFn as Z, getRequestHeader as _, ErrorHandler as _t, getRequestIP as a, WebHandler as at, toResponse as b, HandlerSymbol as bt, matchRequestContentType as c, fromNodeMiddleware as ct, getRequestAcceptableEncoding as d, defineCoreHandler as dt, isHandler as et, getRequestAcceptableEncodings as f, CoreHandler as ft, getRequestAcceptableContentTypes as g, defineErrorHandler as gt, getRequestAcceptableContentType as h, HandlerOptions as ht, RequestIpOptions as i, fromWebHandler as it, setResponseHeaderContentType as j, RoutupResponse as jt, sendCreated as k, IRoutupEvent as kt, getRequestAcceptableLanguage as l, NodeHandler as lt, getRequestAcceptableCharsets as m, Handler as mt, getRequestProtocol as n, isWebHandler as nt, RequestHostNameOptions as o, WebHandlerProvider as ot, getRequestAcceptableCharset as p, CoreHandlerOptions as pt, Router as q, useRequestNegotiator as r, isWebHandlerProvider as rt, getRequestHostName as s, fromNodeHandler as st, RequestProtocolOptions as t, isHandlerOptions as tt, getRequestAcceptableLanguages as u, NodeMiddleware as ut, isRequestCacheable as v, ErrorHandlerOptions as vt, sendFormat as w, Path as wt, setResponseContentTypeByFileName as x, HandlerType as xt, readBody as y, HandlerBaseOptions as yt, EventStreamOptions as z };
841
- //# sourceMappingURL=index-DN3wy86V.d.mts.map
848
+ //# sourceMappingURL=index-BBvBVzPm.d.mts.map
@@ -823,8 +823,15 @@ declare function getRequestHostName(event: IRoutupEvent, options?: RequestHostNa
823
823
  //#endregion
824
824
  //#region src/request/helpers/ip.d.ts
825
825
  type RequestIpOptions = {
826
- trustProxy?: boolean;
826
+ trustProxy?: TrustProxyInput;
827
827
  };
828
+ /**
829
+ * Get the client IP address from the request.
830
+ *
831
+ * When `trustProxy` is configured, walks the `X-Forwarded-For` chain
832
+ * and returns the rightmost untrusted address (the actual client IP).
833
+ * Falls back to `event.request.ip` (the direct connection IP).
834
+ */
828
835
  declare function getRequestIP(event: IRoutupEvent, options?: RequestIpOptions): string | undefined;
829
836
  //#endregion
830
837
  //#region src/request/helpers/negotiator.d.ts
@@ -838,4 +845,4 @@ type RequestProtocolOptions = {
838
845
  declare function getRequestProtocol(event: IRoutupEvent, options?: RequestProtocolOptions): string;
839
846
  //#endregion
840
847
  export { RouterPipelineContext as $, sendAccepted as A, RoutupRequest as At, createEventStream as B, sendRedirect as C, PathMatcher as Ct, SendFileStats as D, IDispatcher as Dt, SendFileOptions as E, PathMatcherOptions as Et, isResponseGone as F, MethodName as Ft, isError as G, EventStreamMessage as H, setResponseGone as I, isPlugin as J, createError as K, serializeEventStreamMessage as L, setResponseHeaderAttachment as M, HTTPErrorInput$1 as Mt, appendResponseHeader as N, RoutupError as Nt, sendFile as O, RoutupEvent as Ot, appendResponseHeaderDirective as P, HeaderName as Pt, IRouter as Q, EventStreamHandle as R, sendStream as S, isPath as St, SendFileContentOptions as T, PathMatcherExecResult as Tt, ResponseCacheHeadersOptions as U, EventStreamListener as V, setResponseCacheHeaders as W, PluginInstallContext as X, Plugin as Y, PluginInstallFn as Z, getRequestHeader as _, ErrorHandler as _t, getRequestIP as a, WebHandler as at, toResponse as b, HandlerSymbol as bt, matchRequestContentType as c, fromNodeMiddleware as ct, getRequestAcceptableEncoding as d, defineCoreHandler as dt, isHandler as et, getRequestAcceptableEncodings as f, CoreHandler as ft, getRequestAcceptableContentTypes as g, defineErrorHandler as gt, getRequestAcceptableContentType as h, HandlerOptions as ht, RequestIpOptions as i, fromWebHandler as it, setResponseHeaderContentType as j, RoutupResponse as jt, sendCreated as k, IRoutupEvent as kt, getRequestAcceptableLanguage as l, NodeHandler as lt, getRequestAcceptableCharsets as m, Handler as mt, getRequestProtocol as n, isWebHandler as nt, RequestHostNameOptions as o, WebHandlerProvider as ot, getRequestAcceptableCharset as p, CoreHandlerOptions as pt, Router as q, useRequestNegotiator as r, isWebHandlerProvider as rt, getRequestHostName as s, fromNodeHandler as st, RequestProtocolOptions as t, isHandlerOptions as tt, getRequestAcceptableLanguages as u, NodeMiddleware as ut, isRequestCacheable as v, ErrorHandlerOptions as vt, sendFormat as w, Path as wt, setResponseContentTypeByFileName as x, HandlerType as xt, readBody as y, HandlerBaseOptions as yt, EventStreamOptions as z };
841
- //# sourceMappingURL=index-Dm50O_sj.d.cts.map
848
+ //# sourceMappingURL=index-eUBZJk6a.d.cts.map
package/dist/node.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_src = require("./src-D_4IPMmD.cjs");
2
+ const require_src = require("./src-BTv-fDqY.cjs");
3
3
  let srvx_node = require("srvx/node");
4
4
  //#region src/_entries/node.ts
5
5
  function serve(router, options) {
package/dist/node.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-Dm50O_sj.cjs";
1
+ import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-eUBZJk6a.cjs";
2
2
  import * as _$srvx from "srvx";
3
3
  import { Server, ServerOptions } from "srvx";
4
4
  import * as _$srvx_node0 from "srvx/node";
package/dist/node.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-DN3wy86V.mjs";
1
+ import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-BBvBVzPm.mjs";
2
2
  import * as _$srvx_node0 from "srvx/node";
3
3
  import * as _$srvx from "srvx";
4
4
  import { Server, ServerOptions } from "srvx";
package/dist/node.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as isError, A as useRequestNegotiator, B as appendResponseHeaderDirective, C as defineCoreHandler, D as sendFormat, E as sendRedirect, F as toResponse, G as setResponseCacheHeaders, H as setResponseGone, I as setResponseHeaderContentType, J as HandlerSymbol, K as isPath, L as setResponseHeaderAttachment, M as sendFile, N as sendCreated, O as getRequestAcceptableContentType, P as sendAccepted, Q as RoutupError, R as setResponseContentTypeByFileName, S as defineErrorHandler, T as sendStream, U as createEventStream, V as isResponseGone, W as serializeEventStreamMessage, X as RoutupEvent, Y as HandlerType, Z as createError, _ as fromWebHandler, a as getRequestHostName, b as fromNodeHandler, c as getRequestAcceptableLanguages, d as getRequestAcceptableCharset, et as HeaderName, f as getRequestAcceptableCharsets, g as isHandlerOptions, h as isHandler, i as getRequestIP, j as getRequestHeader, k as getRequestAcceptableContentTypes, l as getRequestAcceptableEncoding, m as readBody, n as isPlugin, o as matchRequestContentType, p as isRequestCacheable, q as PathMatcher, r as getRequestProtocol, s as getRequestAcceptableLanguage, t as Router, tt as MethodName, u as getRequestAcceptableEncodings, v as isWebHandler, w as Handler, x as fromNodeMiddleware, y as isWebHandlerProvider, z as appendResponseHeader } from "./src-CpLmo5Po.mjs";
1
+ import { $ as isError, A as useRequestNegotiator, B as appendResponseHeaderDirective, C as defineCoreHandler, D as sendFormat, E as sendRedirect, F as toResponse, G as setResponseCacheHeaders, H as setResponseGone, I as setResponseHeaderContentType, J as HandlerSymbol, K as isPath, L as setResponseHeaderAttachment, M as sendFile, N as sendCreated, O as getRequestAcceptableContentType, P as sendAccepted, Q as RoutupError, R as setResponseContentTypeByFileName, S as defineErrorHandler, T as sendStream, U as createEventStream, V as isResponseGone, W as serializeEventStreamMessage, X as RoutupEvent, Y as HandlerType, Z as createError, _ as fromWebHandler, a as getRequestHostName, b as fromNodeHandler, c as getRequestAcceptableLanguages, d as getRequestAcceptableCharset, et as HeaderName, f as getRequestAcceptableCharsets, g as isHandlerOptions, h as isHandler, i as getRequestIP, j as getRequestHeader, k as getRequestAcceptableContentTypes, l as getRequestAcceptableEncoding, m as readBody, n as isPlugin, o as matchRequestContentType, p as isRequestCacheable, q as PathMatcher, r as getRequestProtocol, s as getRequestAcceptableLanguage, t as Router, tt as MethodName, u as getRequestAcceptableEncodings, v as isWebHandler, w as Handler, x as fromNodeMiddleware, y as isWebHandlerProvider, z as appendResponseHeader } from "./src-CNoRH9eg.mjs";
2
2
  import { serve as serve$1, toNodeHandler as toNodeHandler$1 } from "srvx/node";
3
3
  //#region src/_entries/node.ts
4
4
  function serve(router, options) {
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_src = require("./src-D_4IPMmD.cjs");
2
+ const require_src = require("./src-BTv-fDqY.cjs");
3
3
  let srvx_service_worker = require("srvx/service-worker");
4
4
  //#region src/_entries/service-worker.ts
5
5
  function serve(router, options) {
@@ -1,4 +1,4 @@
1
- import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-Dm50O_sj.cjs";
1
+ import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-eUBZJk6a.cjs";
2
2
  import * as _$srvx from "srvx";
3
3
  import { ServerOptions } from "srvx";
4
4
  import * as _$srvx_service_worker0 from "srvx/service-worker";
@@ -1,4 +1,4 @@
1
- import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-DN3wy86V.mjs";
1
+ import { $ as RouterPipelineContext, A as sendAccepted, At as RoutupRequest, B as createEventStream, C as sendRedirect, Ct as PathMatcher, D as SendFileStats, Dt as IDispatcher, E as SendFileOptions, Et as PathMatcherOptions, F as isResponseGone, Ft as MethodName, G as isError, H as EventStreamMessage, I as setResponseGone, J as isPlugin, K as createError, L as serializeEventStreamMessage, M as setResponseHeaderAttachment, Mt as HTTPErrorInput, N as appendResponseHeader, Nt as RoutupError, O as sendFile, Ot as RoutupEvent, P as appendResponseHeaderDirective, Pt as HeaderName, Q as IRouter, R as EventStreamHandle, S as sendStream, St as isPath, T as SendFileContentOptions, Tt as PathMatcherExecResult, U as ResponseCacheHeadersOptions, V as EventStreamListener, W as setResponseCacheHeaders, X as PluginInstallContext, Y as Plugin, Z as PluginInstallFn, _ as getRequestHeader, _t as ErrorHandler, a as getRequestIP, at as WebHandler, b as toResponse, bt as HandlerSymbol, c as matchRequestContentType, ct as fromNodeMiddleware, d as getRequestAcceptableEncoding, dt as defineCoreHandler, et as isHandler, f as getRequestAcceptableEncodings, ft as CoreHandler, g as getRequestAcceptableContentTypes, gt as defineErrorHandler, h as getRequestAcceptableContentType, ht as HandlerOptions, i as RequestIpOptions, it as fromWebHandler, j as setResponseHeaderContentType, jt as RoutupResponse, k as sendCreated, kt as IRoutupEvent, l as getRequestAcceptableLanguage, lt as NodeHandler, m as getRequestAcceptableCharsets, mt as Handler, n as getRequestProtocol, nt as isWebHandler, o as RequestHostNameOptions, ot as WebHandlerProvider, p as getRequestAcceptableCharset, pt as CoreHandlerOptions, q as Router, r as useRequestNegotiator, rt as isWebHandlerProvider, s as getRequestHostName, st as fromNodeHandler, t as RequestProtocolOptions, tt as isHandlerOptions, u as getRequestAcceptableLanguages, ut as NodeMiddleware, v as isRequestCacheable, vt as ErrorHandlerOptions, w as sendFormat, wt as Path, x as setResponseContentTypeByFileName, xt as HandlerType, y as readBody, yt as HandlerBaseOptions, z as EventStreamOptions } from "./index-BBvBVzPm.mjs";
2
2
  import * as _$srvx from "srvx";
3
3
  import { ServerOptions } from "srvx";
4
4
  import * as _$srvx_service_worker0 from "srvx/service-worker";
@@ -1,4 +1,4 @@
1
- import { $ as isError, A as useRequestNegotiator, B as appendResponseHeaderDirective, C as defineCoreHandler, D as sendFormat, E as sendRedirect, F as toResponse, G as setResponseCacheHeaders, H as setResponseGone, I as setResponseHeaderContentType, J as HandlerSymbol, K as isPath, L as setResponseHeaderAttachment, M as sendFile, N as sendCreated, O as getRequestAcceptableContentType, P as sendAccepted, Q as RoutupError, R as setResponseContentTypeByFileName, S as defineErrorHandler, T as sendStream, U as createEventStream, V as isResponseGone, W as serializeEventStreamMessage, X as RoutupEvent, Y as HandlerType, Z as createError, _ as fromWebHandler, a as getRequestHostName, b as fromNodeHandler, c as getRequestAcceptableLanguages, d as getRequestAcceptableCharset, et as HeaderName, f as getRequestAcceptableCharsets, g as isHandlerOptions, h as isHandler, i as getRequestIP, j as getRequestHeader, k as getRequestAcceptableContentTypes, l as getRequestAcceptableEncoding, m as readBody, n as isPlugin, o as matchRequestContentType, p as isRequestCacheable, q as PathMatcher, r as getRequestProtocol, s as getRequestAcceptableLanguage, t as Router, tt as MethodName, u as getRequestAcceptableEncodings, v as isWebHandler, w as Handler, x as fromNodeMiddleware, y as isWebHandlerProvider, z as appendResponseHeader } from "./src-CpLmo5Po.mjs";
1
+ import { $ as isError, A as useRequestNegotiator, B as appendResponseHeaderDirective, C as defineCoreHandler, D as sendFormat, E as sendRedirect, F as toResponse, G as setResponseCacheHeaders, H as setResponseGone, I as setResponseHeaderContentType, J as HandlerSymbol, K as isPath, L as setResponseHeaderAttachment, M as sendFile, N as sendCreated, O as getRequestAcceptableContentType, P as sendAccepted, Q as RoutupError, R as setResponseContentTypeByFileName, S as defineErrorHandler, T as sendStream, U as createEventStream, V as isResponseGone, W as serializeEventStreamMessage, X as RoutupEvent, Y as HandlerType, Z as createError, _ as fromWebHandler, a as getRequestHostName, b as fromNodeHandler, c as getRequestAcceptableLanguages, d as getRequestAcceptableCharset, et as HeaderName, f as getRequestAcceptableCharsets, g as isHandlerOptions, h as isHandler, i as getRequestIP, j as getRequestHeader, k as getRequestAcceptableContentTypes, l as getRequestAcceptableEncoding, m as readBody, n as isPlugin, o as matchRequestContentType, p as isRequestCacheable, q as PathMatcher, r as getRequestProtocol, s as getRequestAcceptableLanguage, t as Router, tt as MethodName, u as getRequestAcceptableEncodings, v as isWebHandler, w as Handler, x as fromNodeMiddleware, y as isWebHandlerProvider, z as appendResponseHeader } from "./src-CNoRH9eg.mjs";
2
2
  import { serve as serve$1 } from "srvx/service-worker";
3
3
  //#region src/_entries/service-worker.ts
4
4
  function serve(router, options) {
@@ -1215,16 +1215,30 @@ function getRequestHostName(event, options = {}) {
1215
1215
  }
1216
1216
  //#endregion
1217
1217
  //#region src/request/helpers/ip.ts
1218
+ /**
1219
+ * Get the client IP address from the request.
1220
+ *
1221
+ * When `trustProxy` is configured, walks the `X-Forwarded-For` chain
1222
+ * and returns the rightmost untrusted address (the actual client IP).
1223
+ * Falls back to `event.request.ip` (the direct connection IP).
1224
+ */
1218
1225
  function getRequestIP(event, options = {}) {
1219
- if (options.trustProxy) {
1220
- const forwarded = event.headers.get(HeaderName.X_FORWARDED_FOR);
1221
- if (forwarded) {
1222
- const first = forwarded.split(",")[0];
1223
- if (first) return first.trim();
1226
+ let trustProxy;
1227
+ if (typeof options.trustProxy !== "undefined") trustProxy = buildTrustProxyFn(options.trustProxy);
1228
+ else trustProxy = findRouterOption("trustProxy", event.routerPath);
1229
+ const socketAddr = event.request.ip;
1230
+ if (!socketAddr) return;
1231
+ const forwarded = event.headers.get(HeaderName.X_FORWARDED_FOR);
1232
+ const addrs = [socketAddr];
1233
+ if (forwarded) {
1234
+ const parts = forwarded.split(",");
1235
+ for (let i = parts.length - 1; i >= 0; i--) {
1236
+ const addr = parts[i].trim();
1237
+ if (addr) addrs.push(addr);
1224
1238
  }
1225
1239
  }
1226
- const request = event.request;
1227
- if (request.ip) return request.ip;
1240
+ for (let i = 0; i < addrs.length - 1; i++) if (!trustProxy(addrs[i], i)) return addrs[i];
1241
+ return addrs[addrs.length - 1];
1228
1242
  }
1229
1243
  //#endregion
1230
1244
  //#region src/request/helpers/protocol.ts
@@ -1957,4 +1971,4 @@ Object.defineProperty(exports, "useRequestNegotiator", {
1957
1971
  }
1958
1972
  });
1959
1973
 
1960
- //# sourceMappingURL=src-D_4IPMmD.cjs.map
1974
+ //# sourceMappingURL=src-BTv-fDqY.cjs.map