h3-nightly 2.0.1-rc.5 → 2.0.1-rc.6
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/dist/h3.d.mts +8 -8
- package/dist/h3.mjs +7 -4
- package/package.json +25 -25
package/dist/h3.d.mts
CHANGED
|
@@ -426,7 +426,7 @@ interface TypedRequest<Body = unknown, Headers$1 extends Record<string, string>
|
|
|
426
426
|
headers: TypedHeaders<Headers$1>;
|
|
427
427
|
}
|
|
428
428
|
type MaybePromise<T = unknown> = T | Promise<T>;
|
|
429
|
-
type HTTPHandler = EventHandler | FetchableObject | H3Core
|
|
429
|
+
type HTTPHandler = EventHandler | FetchableObject | H3Core;
|
|
430
430
|
interface EventHandler<_RequestT extends EventHandlerRequest = EventHandlerRequest, _ResponseT extends EventHandlerResponse = EventHandlerResponse> {
|
|
431
431
|
(event: H3Event<_RequestT>): _ResponseT;
|
|
432
432
|
meta?: H3RouteMeta;
|
|
@@ -640,7 +640,7 @@ type MiddlewareOptions = {
|
|
|
640
640
|
method?: string;
|
|
641
641
|
match?: (event: H3Event) => boolean;
|
|
642
642
|
};
|
|
643
|
-
declare class H3Core {
|
|
643
|
+
declare class H3Core$1 {
|
|
644
644
|
/**
|
|
645
645
|
* H3 instance config.
|
|
646
646
|
*/
|
|
@@ -674,7 +674,7 @@ declare class H3Core {
|
|
|
674
674
|
/** @internal */
|
|
675
675
|
"~addRoute"(_route: H3Route): void;
|
|
676
676
|
}
|
|
677
|
-
declare class H3$1 extends H3Core {
|
|
677
|
+
declare class H3$1 extends H3Core$1 {
|
|
678
678
|
/** @internal */
|
|
679
679
|
"~rou3": RouterContext;
|
|
680
680
|
/**
|
|
@@ -751,7 +751,7 @@ declare class H3Event<_RequestT extends EventHandlerRequest = EventHandlerReques
|
|
|
751
751
|
/**
|
|
752
752
|
* Access to the H3 application instance.
|
|
753
753
|
*/
|
|
754
|
-
app?: H3Core
|
|
754
|
+
app?: H3Core;
|
|
755
755
|
/**
|
|
756
756
|
* Incoming HTTP request info.
|
|
757
757
|
*
|
|
@@ -772,7 +772,7 @@ declare class H3Event<_RequestT extends EventHandlerRequest = EventHandlerReques
|
|
|
772
772
|
* @internal
|
|
773
773
|
*/
|
|
774
774
|
static __is_event__: boolean;
|
|
775
|
-
constructor(req: ServerRequest, context?: H3EventContext, app?: H3Core
|
|
775
|
+
constructor(req: ServerRequest, context?: H3EventContext, app?: H3Core);
|
|
776
776
|
/**
|
|
777
777
|
* Prepared HTTP response.
|
|
778
778
|
*/
|
|
@@ -821,7 +821,7 @@ declare class H3EventResponse {
|
|
|
821
821
|
statusText?: string;
|
|
822
822
|
get headers(): Headers;
|
|
823
823
|
}
|
|
824
|
-
declare class H3Core
|
|
824
|
+
declare class H3Core implements H3Core$1 {
|
|
825
825
|
readonly config: H3CoreConfig;
|
|
826
826
|
"~middleware": Middleware[];
|
|
827
827
|
"~routes": H3Route[];
|
|
@@ -1745,7 +1745,7 @@ declare function defineWebSocket(hooks: Partial<Hooks>): Partial<Hooks>;
|
|
|
1745
1745
|
*
|
|
1746
1746
|
* @see https://h3.dev/guide/websocket
|
|
1747
1747
|
*/
|
|
1748
|
-
declare function defineWebSocketHandler(hooks: Partial<Hooks>): EventHandler;
|
|
1748
|
+
declare function defineWebSocketHandler(hooks: Partial<Hooks> | ((event: H3Event) => Partial<Hooks> | Promise<Partial<Hooks>>)): EventHandler;
|
|
1749
1749
|
/** @deprecated Use `HTTPError` */
|
|
1750
1750
|
type H3Error = HTTPError;
|
|
1751
1751
|
/** @deprecated Use `HTTPError` */
|
|
@@ -1851,4 +1851,4 @@ declare const createApp: (config?: H3Config) => H3;
|
|
|
1851
1851
|
declare const createRouter: (config?: H3Config) => H3;
|
|
1852
1852
|
/** @deprecated Please use `withBase()` */
|
|
1853
1853
|
declare const useBase: (base: string, input: EventHandler | H3) => EventHandler;
|
|
1854
|
-
export { RequestFingerprintOptions as $, EventHandlerWithFetch as $n, getValidatedQuery as $t, readFormDataBody as A, H3EventContext as An, readValidatedBody as At, setHeader as B, RouteOptions as Bn, html as Bt, getResponseHeader as C, isEvent as Cn, getChunkedCookie as Ct, isError as D, H3Core
|
|
1854
|
+
export { RequestFingerprintOptions as $, EventHandlerWithFetch as $n, getValidatedQuery as $t, readFormDataBody as A, H3EventContext as An, readValidatedBody as At, setHeader as B, RouteOptions as Bn, html as Bt, getResponseHeader as C, isEvent as Cn, getChunkedCookie as Ct, isError as D, H3Core as Dn, setCookie as Dt, getResponseStatusText as E, H3 as En, setChunkedCookie as Et, sendNoContent as F, H3RouteMeta as Fn, proxyRequest as Ft, toNodeHandler as G, ErrorInput as Gn, assertMethod as Gt, setResponseHeader as H, definePlugin as Hn, noContent as Ht, sendProxy as I, HTTPMethod as In, bodyLimit as It, WebSocketHooks as J, EventHandler as Jn, getRequestIP as Jt, toNodeListener as K, HTTPError as Kn, getQuery as Kt, sendRedirect as L, MatchedRoute as Ln, onError as Lt, readRawBody as M, H3CoreConfig as Mn, fetchWithEvent as Mt, removeResponseHeader as N, H3Plugin as Nn, getProxyRequestHeaders as Nt, lazyEventHandler as O, H3Event as On, assertBodySize as Ot, sendIterable as P, H3Route as Pn, proxy as Pt, defineWebSocketHandler as Q, EventHandlerResponse as Qn, getRouterParams as Qt, sendStream as R, MiddlewareOptions as Rn, onRequest as Rt, getRequestWebStream as S, getEventContext as Sn, deleteCookie as St, getResponseStatus as T, mockEvent as Tn, parseCookies as Tt, setResponseHeaders as U, ErrorBody as Un, redirect as Ut, setHeaders as V, RouterContext as Vn, iterable as Vt, setResponseStatus as W, ErrorDetails as Wn, writeEarlyHints as Wt, WebSocketPeer as X, EventHandlerObject as Xn, getRequestURL as Xt, WebSocketMessage as Y, EventHandlerFetch as Yn, getRequestProtocol as Yt, defineWebSocket as Z, EventHandlerRequest as Zn, getRouterParam as Zt, getHeaders as _, defineHandler as _n, sanitizeStatusMessage as _t, appendResponseHeaders as a, NodeHandler as an, Middleware as ar, appendCorsHeaders as at, getRequestHeaders as b, dynamicEventHandler as bn, createEventStream as bt, createError as c, defineNodeMiddleware as cn, SessionConfig as cr, isPreflightRequest as ct, defineEventHandler as d, toWebHandler as dn, clearSession as dr, ServeStaticOptions as dt, getValidatedRouterParams as en, FetchHandler$1 as er, getRequestFingerprint as et, defineNodeListener as f, HTTPResponse as fn, getSession as fr, StaticAssetMeta as ft, getHeader as g, toMiddleware as gn, useSession as gr, sanitizeStatusCode as gt, getBodyStream as h, defineMiddleware as hn, updateSession as hr, handleCacheHeaders as ht, appendResponseHeader as i, defineRoute as in, LazyEventHandler as ir, CorsOptions as it, readMultipartFormData as j, H3Config as jn, ProxyOptions as jt, readFormData as k, HTTPEvent as kn, readBody as kt, createRouter as l, fromNodeHandler as ln, SessionData as lr, isCorsOriginAllowed as lt, fromNodeMiddleware as m, callMiddleware as mn, unsealSession as mr, CacheConditions as mt, appendHeader as n, toRequest as nn, HTTPHandler as nr, basicAuth as nt, clearResponseHeaders as o, NodeMiddleware as on, TypedServerRequest as or, appendCorsPreflightHeaders as ot, eventHandler as p, toResponse as pn, sealSession as pr, serveStatic as pt, useBase as q, DynamicEventHandler as qn, getRequestHost as qt, appendHeaders as r, RouteDefinition as rn, InferEventInput as rr, requireBasicAuth as rt, createApp as s, defineNodeHandler as sn, Session as sr, handleCors as st, H3Error as t, isMethod as tn, FetchableObject as tr, BasicAuthOptions as tt, defaultContentType as u, fromWebHandler as un, SessionManager as ur, withBase as ut, getMethod as v, defineLazyEventHandler as vn, EventStreamMessage as vt, getResponseHeaders as w, isHTTPEvent as wn, getCookie as wt, getRequestPath as x, toEventHandler as xn, deleteChunkedCookie as xt, getRequestHeader as y, defineValidatedHandler as yn, EventStreamOptions as yt, sendWebResponse as z, PreparedResponse as zn, onResponse as zt };
|
package/dist/h3.mjs
CHANGED
|
@@ -231,6 +231,7 @@ function prepareResponse(val, event, config, nested) {
|
|
|
231
231
|
}
|
|
232
232
|
const preparedRes = event[kEventRes];
|
|
233
233
|
const preparedHeaders = preparedRes?.[kEventResHeaders];
|
|
234
|
+
event[kEventRes] = void 0;
|
|
234
235
|
if (!(val instanceof Response)) {
|
|
235
236
|
const res = prepareResponseBody(val, event, config);
|
|
236
237
|
const status = res.status || preparedRes?.status;
|
|
@@ -392,6 +393,7 @@ function is404(val) {
|
|
|
392
393
|
return isUnhandledResponse(val) || val?.status === 404 && val instanceof Response;
|
|
393
394
|
}
|
|
394
395
|
|
|
396
|
+
|
|
395
397
|
const plusRegex = /\+/g;
|
|
396
398
|
function parseQuery(input) {
|
|
397
399
|
const params = new EmptyObject();
|
|
@@ -1241,8 +1243,7 @@ async function proxy(event, target, opts = {}) {
|
|
|
1241
1243
|
const headers = new Headers();
|
|
1242
1244
|
const cookies = [];
|
|
1243
1245
|
for (const [key, value] of response.headers.entries()) {
|
|
1244
|
-
if (key === "content-encoding") continue;
|
|
1245
|
-
if (key === "content-length") continue;
|
|
1246
|
+
if (key === "content-encoding" || key === "content-length" || key === "transfer-encoding") continue;
|
|
1246
1247
|
if (key === "set-cookie") {
|
|
1247
1248
|
cookies.push(value);
|
|
1248
1249
|
continue;
|
|
@@ -1832,6 +1833,7 @@ function withBase(base, input) {
|
|
|
1832
1833
|
}
|
|
1833
1834
|
|
|
1834
1835
|
|
|
1836
|
+
|
|
1835
1837
|
const defaults = /* @__PURE__ */ Object.freeze({
|
|
1836
1838
|
ttl: 0,
|
|
1837
1839
|
timestampSkewSec: 60,
|
|
@@ -2337,8 +2339,9 @@ function defineWebSocket(hooks) {
|
|
|
2337
2339
|
}
|
|
2338
2340
|
|
|
2339
2341
|
function defineWebSocketHandler(hooks) {
|
|
2340
|
-
return defineHandler(function _webSocketHandler() {
|
|
2341
|
-
|
|
2342
|
+
return defineHandler(function _webSocketHandler(event) {
|
|
2343
|
+
const crossws = typeof hooks === "function" ? hooks(event) : hooks;
|
|
2344
|
+
return Object.assign(new Response("WebSocket upgrade is required.", { status: 426 }), { crossws });
|
|
2342
2345
|
});
|
|
2343
2346
|
}
|
|
2344
2347
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "h3-nightly",
|
|
3
|
-
"version": "2.0.1-rc.
|
|
3
|
+
"version": "2.0.1-rc.6",
|
|
4
4
|
"description": "Minimal H(TTP) framework built for high performance and portability.",
|
|
5
5
|
"homepage": "https://h3.dev",
|
|
6
6
|
"repository": "h3js/h3",
|
|
@@ -48,45 +48,45 @@
|
|
|
48
48
|
"h3": "link:."
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"rou3": "^0.7.
|
|
52
|
-
"srvx": "^0.9.
|
|
51
|
+
"rou3": "^0.7.10",
|
|
52
|
+
"srvx": "^0.9.7"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@happy-dom/global-registrator": "^20.0.
|
|
55
|
+
"@happy-dom/global-registrator": "^20.0.11",
|
|
56
56
|
"@mitata/counters": "^0.0.8",
|
|
57
57
|
"@types/connect": "^3.4.38",
|
|
58
|
-
"@types/express": "^5.0.
|
|
59
|
-
"@types/node": "^24.
|
|
60
|
-
"@types/react": "^19.2.
|
|
61
|
-
"@types/react-dom": "^19.2.
|
|
62
|
-
"@vitest/coverage-v8": "^4.0.
|
|
58
|
+
"@types/express": "^5.0.6",
|
|
59
|
+
"@types/node": "^24.10.1",
|
|
60
|
+
"@types/react": "^19.2.7",
|
|
61
|
+
"@types/react-dom": "^19.2.3",
|
|
62
|
+
"@vitest/coverage-v8": "^4.0.15",
|
|
63
63
|
"automd": "^0.4.2",
|
|
64
64
|
"changelogen": "^0.6.2",
|
|
65
65
|
"connect": "^3.7.0",
|
|
66
66
|
"cookie-es": "^2.0.0",
|
|
67
67
|
"crossws": "^0.4.1",
|
|
68
|
-
"elysia": "^1.4.
|
|
69
|
-
"esbuild": "^0.
|
|
70
|
-
"eslint": "^9.
|
|
68
|
+
"elysia": "^1.4.18",
|
|
69
|
+
"esbuild": "^0.27.1",
|
|
70
|
+
"eslint": "^9.39.1",
|
|
71
71
|
"eslint-config-unjs": "^0.5.0",
|
|
72
|
-
"express": "^5.1
|
|
72
|
+
"express": "^5.2.1",
|
|
73
73
|
"fetchdts": "^0.1.7",
|
|
74
74
|
"get-port-please": "^3.2.0",
|
|
75
|
-
"h3-nightly": "^2.0.0-
|
|
76
|
-
"happy-dom": "^20.0.
|
|
77
|
-
"hono": "^4.10.
|
|
75
|
+
"h3-nightly": "^2.0.0-20251121-160644-d6475e1",
|
|
76
|
+
"happy-dom": "^20.0.11",
|
|
77
|
+
"hono": "^4.10.7",
|
|
78
78
|
"magic-string": "^0.30.21",
|
|
79
79
|
"memoirist": "^0.4.0",
|
|
80
80
|
"mitata": "^1.0.34",
|
|
81
|
-
"obuild": "^0.
|
|
82
|
-
"oxc-parser": "^0.
|
|
83
|
-
"prettier": "^3.
|
|
84
|
-
"react": "^19.2.
|
|
85
|
-
"react-dom": "^19.2.
|
|
81
|
+
"obuild": "^0.4.7",
|
|
82
|
+
"oxc-parser": "^0.101.0",
|
|
83
|
+
"prettier": "^3.7.4",
|
|
84
|
+
"react": "^19.2.1",
|
|
85
|
+
"react-dom": "^19.2.1",
|
|
86
86
|
"typescript": "^5.9.3",
|
|
87
|
-
"vite": "^7.
|
|
88
|
-
"vitest": "^4.0.
|
|
89
|
-
"zod": "^4.1.
|
|
87
|
+
"vite": "^7.2.7",
|
|
88
|
+
"vitest": "^4.0.15",
|
|
89
|
+
"zod": "^4.1.13"
|
|
90
90
|
},
|
|
91
91
|
"peerDependencies": {
|
|
92
92
|
"crossws": "^0.4.1"
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"optional": true
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
|
-
"packageManager": "pnpm@10.
|
|
99
|
+
"packageManager": "pnpm@10.24.0",
|
|
100
100
|
"engines": {
|
|
101
101
|
"node": ">=20.11.1"
|
|
102
102
|
}
|