@daloyjs/core 0.32.0 → 0.34.1
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 +37 -2
- package/dist/adapters/bun.d.ts +4 -0
- package/dist/adapters/bun.d.ts.map +1 -1
- package/dist/adapters/bun.js +6 -1
- package/dist/adapters/bun.js.map +1 -1
- package/dist/adapters/cloudflare.d.ts +2 -0
- package/dist/adapters/cloudflare.d.ts.map +1 -1
- package/dist/adapters/cloudflare.js +1 -0
- package/dist/adapters/cloudflare.js.map +1 -1
- package/dist/adapters/deno.d.ts +3 -0
- package/dist/adapters/deno.d.ts.map +1 -1
- package/dist/adapters/deno.js +1 -0
- package/dist/adapters/deno.js.map +1 -1
- package/dist/adapters/fastly.d.ts +2 -0
- package/dist/adapters/fastly.d.ts.map +1 -1
- package/dist/adapters/fastly.js +2 -0
- package/dist/adapters/fastly.js.map +1 -1
- package/dist/adapters/lambda.d.ts +7 -0
- package/dist/adapters/lambda.d.ts.map +1 -1
- package/dist/adapters/lambda.js +1 -0
- package/dist/adapters/lambda.js.map +1 -1
- package/dist/adapters/node.d.ts +3 -0
- package/dist/adapters/node.d.ts.map +1 -1
- package/dist/adapters/node.js +8 -2
- package/dist/adapters/node.js.map +1 -1
- package/dist/adapters/vercel.d.ts +4 -0
- package/dist/adapters/vercel.d.ts.map +1 -1
- package/dist/adapters/vercel.js +1 -0
- package/dist/adapters/vercel.js.map +1 -1
- package/dist/app.d.ts +37 -37
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +103 -63
- package/dist/app.js.map +1 -1
- package/dist/banner.d.ts +2 -0
- package/dist/banner.d.ts.map +1 -1
- package/dist/banner.js.map +1 -1
- package/dist/cli.d.ts +12 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +38 -31
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +10 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/compression.d.ts +2 -2
- package/dist/compression.js +2 -2
- package/dist/config.d.ts +2 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/conn-info.d.ts +5 -5
- package/dist/conn-info.js +4 -4
- package/dist/contract.d.ts +19 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +10 -0
- package/dist/contract.js.map +1 -1
- package/dist/cookie.d.ts +15 -1
- package/dist/cookie.d.ts.map +1 -1
- package/dist/cookie.js +24 -4
- package/dist/cookie.js.map +1 -1
- package/dist/dependency.d.ts +2 -1
- package/dist/dependency.d.ts.map +1 -1
- package/dist/dependency.js +1 -1
- package/dist/dependency.js.map +1 -1
- package/dist/discriminator.d.ts +9 -0
- package/dist/discriminator.d.ts.map +1 -1
- package/dist/discriminator.js.map +1 -1
- package/dist/docs.d.ts +49 -2
- package/dist/docs.d.ts.map +1 -1
- package/dist/docs.js +26 -2
- package/dist/docs.js.map +1 -1
- package/dist/errors.d.ts +5 -5
- package/dist/errors.js +7 -7
- package/dist/errors.js.map +1 -1
- package/dist/etag.d.ts +1 -1
- package/dist/etag.js +1 -1
- package/dist/fetch-guard.d.ts +163 -0
- package/dist/fetch-guard.d.ts.map +1 -0
- package/dist/fetch-guard.js +265 -0
- package/dist/fetch-guard.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/ip-restriction.d.ts +17 -0
- package/dist/ip-restriction.d.ts.map +1 -1
- package/dist/ip-restriction.js +6 -3
- package/dist/ip-restriction.js.map +1 -1
- package/dist/jwk.d.ts +1 -1
- package/dist/jwk.d.ts.map +1 -1
- package/dist/jwk.js +3 -3
- package/dist/jwt.d.ts +3 -3
- package/dist/jwt.d.ts.map +1 -1
- package/dist/jwt.js +19 -7
- package/dist/jwt.js.map +1 -1
- package/dist/load-shedding.d.ts +1 -1
- package/dist/load-shedding.js +1 -1
- package/dist/logger.d.ts +19 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +66 -4
- package/dist/logger.js.map +1 -1
- package/dist/middleware.d.ts +48 -15
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +26 -14
- package/dist/middleware.js.map +1 -1
- package/dist/multipart.d.ts +23 -0
- package/dist/multipart.d.ts.map +1 -1
- package/dist/multipart.js +70 -0
- package/dist/multipart.js.map +1 -1
- package/dist/openapi.d.ts +13 -0
- package/dist/openapi.d.ts.map +1 -1
- package/dist/openapi.js +5 -0
- package/dist/openapi.js.map +1 -1
- package/dist/router.d.ts +9 -0
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +6 -0
- package/dist/router.js.map +1 -1
- package/dist/sbom.cdx.json +60 -0
- package/dist/sbom.spdx.json +42 -0
- package/dist/security-schemes.d.ts +29 -0
- package/dist/security-schemes.d.ts.map +1 -1
- package/dist/security-schemes.js +11 -0
- package/dist/security-schemes.js.map +1 -1
- package/dist/security.d.ts +53 -2
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +67 -2
- package/dist/security.js.map +1 -1
- package/dist/session.d.ts +7 -2
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +2 -2
- package/dist/session.js.map +1 -1
- package/dist/streaming.d.ts +8 -0
- package/dist/streaming.d.ts.map +1 -1
- package/dist/streaming.js.map +1 -1
- package/dist/subdomains.d.ts +2 -1
- package/dist/subdomains.d.ts.map +1 -1
- package/dist/subdomains.js +2 -1
- package/dist/subdomains.js.map +1 -1
- package/dist/time-claims.d.ts +1 -2
- package/dist/time-claims.d.ts.map +1 -1
- package/dist/time-claims.js +1 -2
- package/dist/time-claims.js.map +1 -1
- package/dist/tracing.d.ts +10 -0
- package/dist/tracing.d.ts.map +1 -1
- package/dist/tracing.js +5 -0
- package/dist/tracing.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/websocket.d.ts +71 -2
- package/dist/websocket.d.ts.map +1 -1
- package/dist/websocket.js +82 -0
- package/dist/websocket.js.map +1 -1
- package/package.json +13 -1
package/dist/websocket.d.ts
CHANGED
|
@@ -35,8 +35,11 @@ export declare const WS_CLOSE_CODE: {
|
|
|
35
35
|
};
|
|
36
36
|
/** Maximum payload length permitted on a single control frame (RFC 6455 §5.5). */
|
|
37
37
|
export declare const WS_MAX_CONTROL_PAYLOAD = 125;
|
|
38
|
+
/** Default ceiling for queued outbound bytes before backpressure handling triggers (1 MiB). */
|
|
38
39
|
export declare const DEFAULT_WS_BACKPRESSURE_LIMIT: number;
|
|
40
|
+
/** Default maximum inbound frame/message payload length (1 MiB). */
|
|
39
41
|
export declare const DEFAULT_WS_MAX_PAYLOAD_LENGTH: number;
|
|
42
|
+
/** Default idle timeout applied to WebSocket routes (seconds). */
|
|
40
43
|
export declare const DEFAULT_WS_IDLE_TIMEOUT_SECONDS = 120;
|
|
41
44
|
/**
|
|
42
45
|
* Live, server-side view of a WebSocket connection. Implementations are
|
|
@@ -106,7 +109,7 @@ export interface WebSocketHandler<P extends string = string, S = AppState, TData
|
|
|
106
109
|
/** Maximum inbound message payload length in bytes. Default: 1 MiB. */
|
|
107
110
|
maxPayloadLength?: number;
|
|
108
111
|
/**
|
|
109
|
-
*
|
|
112
|
+
* Explicitly mark this WebSocket route as intentionally public.
|
|
110
113
|
* In production with `secureDefaults` enabled, routes without a
|
|
111
114
|
* `beforeUpgrade` decision hook are refused at registration unless this is
|
|
112
115
|
* `true`, so an authenticated WebSocket cannot accidentally perform auth in
|
|
@@ -116,7 +119,7 @@ export interface WebSocketHandler<P extends string = string, S = AppState, TData
|
|
|
116
119
|
*/
|
|
117
120
|
acknowledgeUnauthenticated?: boolean;
|
|
118
121
|
/**
|
|
119
|
-
*
|
|
122
|
+
* Acknowledge that a header-mutating middleware (CORS,
|
|
120
123
|
* `secureHeaders`, `etag`, `compression`, CSRF) is mounted on a path that
|
|
121
124
|
* matches this WebSocket route. By default the framework refuses at
|
|
122
125
|
* registration because once the RFC 6455 upgrade response is sent, no
|
|
@@ -127,6 +130,43 @@ export interface WebSocketHandler<P extends string = string, S = AppState, TData
|
|
|
127
130
|
* @since 0.32.0
|
|
128
131
|
*/
|
|
129
132
|
acknowledgeHeaderMutatingMiddleware?: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Allowlist for the upgrade request's `Origin` header. Daloy validates
|
|
135
|
+
* this **before** {@link WebSocketHandler.beforeUpgrade} runs, closing the
|
|
136
|
+
* Cross-Site WebSocket Hijacking (CSWSH) class of bug — including the
|
|
137
|
+
* Storybook dev-server upgrade hijack disclosed as
|
|
138
|
+
* [CVE-2026-27148](https://www.aikido.dev/blog/storybooks-websockets-attack)
|
|
139
|
+
* — where a malicious site triggers `new WebSocket(...)` in a victim's
|
|
140
|
+
* browser. Browsers always attach cookies on a WS handshake; without
|
|
141
|
+
* Origin validation the upgrade succeeds and the attacker can speak the
|
|
142
|
+
* protocol on the user's behalf.
|
|
143
|
+
*
|
|
144
|
+
* Accepted forms:
|
|
145
|
+
* - `"same-origin"` — when an `Origin` header is present, it must match
|
|
146
|
+
* the request's own origin (scheme + host + port). When absent (a
|
|
147
|
+
* non-browser client), the upgrade is allowed.
|
|
148
|
+
* - `readonly string[]` — when an `Origin` header is present, it must
|
|
149
|
+
* equal one of the listed origins exactly. When absent, allowed.
|
|
150
|
+
* - `(origin, request) => boolean` — full control. The function is
|
|
151
|
+
* invoked with the `Origin` header (string or `null`) and the upgrade
|
|
152
|
+
* `Request`; returning `false` rejects the handshake with `403`.
|
|
153
|
+
*
|
|
154
|
+
* @since 0.33.0
|
|
155
|
+
*/
|
|
156
|
+
allowedOrigins?: "same-origin" | readonly string[] | ((origin: string | null, request: Request) => boolean);
|
|
157
|
+
/**
|
|
158
|
+
* Acknowledge that this WebSocket route is intentionally exposed to
|
|
159
|
+
* upgrade requests from any browser origin. In production with
|
|
160
|
+
* `secureDefaults` enabled, registration refuses to add a WS route
|
|
161
|
+
* unless either {@link WebSocketHandler.allowedOrigins} is set or this
|
|
162
|
+
* flag is `true`, mirroring the Storybook / CSWSH lesson: the
|
|
163
|
+
* `beforeUpgrade` hook authenticates the user, but CSWSH attaches the
|
|
164
|
+
* user's own cookies, so authentication alone does not stop the
|
|
165
|
+
* cross-site handshake.
|
|
166
|
+
*
|
|
167
|
+
* @since 0.33.0
|
|
168
|
+
*/
|
|
169
|
+
acknowledgeCrossOriginUpgrade?: boolean;
|
|
130
170
|
beforeUpgrade?(request: Request, ctx: WebSocketContext<P, S>): Response | string | undefined | Promise<Response | string | undefined>;
|
|
131
171
|
open?(conn: WebSocketConnection<TData>, ctx: WebSocketContext<P, S>): void | Promise<void>;
|
|
132
172
|
message?(conn: WebSocketConnection<TData>, data: string | Uint8Array | ArrayBuffer, isBinary: boolean): void | Promise<void>;
|
|
@@ -134,6 +174,7 @@ export interface WebSocketHandler<P extends string = string, S = AppState, TData
|
|
|
134
174
|
error?(conn: WebSocketConnection<TData>, err: unknown): void | Promise<void>;
|
|
135
175
|
drain?(conn: WebSocketConnection<TData>): void | Promise<void>;
|
|
136
176
|
}
|
|
177
|
+
/** Result of {@link normalizeWebSocketOptions}: fully resolved limits applied by the adapter. */
|
|
137
178
|
export interface NormalizedWebSocketOptions {
|
|
138
179
|
closeOnBackpressureLimit: boolean;
|
|
139
180
|
backpressureLimit: number;
|
|
@@ -141,10 +182,16 @@ export interface NormalizedWebSocketOptions {
|
|
|
141
182
|
idleTimeout: number;
|
|
142
183
|
maxPayloadLength: number;
|
|
143
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Resolve a user-supplied {@link WebSocketHandler} into the strict
|
|
187
|
+
* {@link NormalizedWebSocketOptions} the adapter consumes. Applies defaults,
|
|
188
|
+
* runs production safety checks, and throws on invalid values.
|
|
189
|
+
*/
|
|
144
190
|
export declare function normalizeWebSocketOptions(handler: WebSocketHandler<any, any, any>, context: {
|
|
145
191
|
production: boolean;
|
|
146
192
|
secureDefaults: boolean;
|
|
147
193
|
}): NormalizedWebSocketOptions;
|
|
194
|
+
/** Non-nullable `beforeUpgrade` hook type from {@link WebSocketHandler}, useful for adapter authors composing upgrade gates. */
|
|
148
195
|
export type WebSocketBeforeUpgrade<P extends string = string, S = AppState> = NonNullable<WebSocketHandler<P, S>["beforeUpgrade"]>;
|
|
149
196
|
/**
|
|
150
197
|
* Adapt `rateLimit({ groupId })` to the WebSocket upgrade boundary. Use it as
|
|
@@ -156,6 +203,7 @@ export type WebSocketBeforeUpgrade<P extends string = string, S = AppState> = No
|
|
|
156
203
|
export declare function wsRateLimit<P extends string = string, S = AppState>(options: RateLimitOptions): WebSocketBeforeUpgrade<P, S>;
|
|
157
204
|
/** Helper for declaring a handler with full type-inference. */
|
|
158
205
|
export declare function defineWebSocket<P extends string, S = AppState, TData = unknown>(handler: WebSocketHandler<P, S, TData>): WebSocketHandler<P, S, TData>;
|
|
206
|
+
/** Entry stored inside {@link WebSocketRegistry} for a single WS route. */
|
|
159
207
|
export interface WebSocketRouteEntry {
|
|
160
208
|
path: PathString;
|
|
161
209
|
handler: WebSocketHandler<any, any, any>;
|
|
@@ -219,6 +267,25 @@ export type HandshakeResult = {
|
|
|
219
267
|
export declare function validateUpgrade(headers: {
|
|
220
268
|
get(name: string): string | null;
|
|
221
269
|
}): Promise<HandshakeResult>;
|
|
270
|
+
/**
|
|
271
|
+
* Validate the `Origin` header on a WebSocket upgrade request against the
|
|
272
|
+
* route's `allowedOrigins` policy. Adapters call this **before** invoking
|
|
273
|
+
* the route's `beforeUpgrade` hook so a Cross-Site WebSocket Hijacking
|
|
274
|
+
* attempt is rejected with `403` before any authenticated handler runs.
|
|
275
|
+
*
|
|
276
|
+
* Returns `{ ok: true }` when the upgrade is permitted, otherwise
|
|
277
|
+
* `{ ok: false, reason }` with a short human-readable reason suitable for
|
|
278
|
+
* the upgrade-error body.
|
|
279
|
+
*
|
|
280
|
+
* @since 0.33.0
|
|
281
|
+
*/
|
|
282
|
+
export declare function checkWebSocketOrigin(request: Request, policy: WebSocketHandler<any, any, any>["allowedOrigins"]): {
|
|
283
|
+
ok: true;
|
|
284
|
+
} | {
|
|
285
|
+
ok: false;
|
|
286
|
+
reason: string;
|
|
287
|
+
};
|
|
288
|
+
/** A single decoded RFC 6455 frame, as returned by {@link parseFrame}. */
|
|
222
289
|
export interface ParsedFrame {
|
|
223
290
|
fin: boolean;
|
|
224
291
|
opcode: number;
|
|
@@ -262,6 +329,7 @@ export declare function decodeClosePayload(payload: Uint8Array): {
|
|
|
262
329
|
export declare class WebSocketProtocolError extends Error {
|
|
263
330
|
constructor(message: string);
|
|
264
331
|
}
|
|
332
|
+
/** Specialization of {@link WebSocketProtocolError} thrown when an inbound message exceeds the configured `maxPayloadLength`. */
|
|
265
333
|
export declare class WebSocketPayloadTooLargeError extends WebSocketProtocolError {
|
|
266
334
|
readonly limit: number;
|
|
267
335
|
readonly actual: number;
|
|
@@ -278,6 +346,7 @@ export interface MessageEvent {
|
|
|
278
346
|
/** True when the message was assembled from binary frames. */
|
|
279
347
|
isBinary: boolean;
|
|
280
348
|
}
|
|
349
|
+
/** Callbacks supplied to a {@link FrameSink} by an adapter to receive decoded frames and protocol events. */
|
|
281
350
|
export interface FrameSinkEvents {
|
|
282
351
|
onMessage(ev: MessageEvent): void;
|
|
283
352
|
onPing(payload: Uint8Array): void;
|
package/dist/websocket.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAe,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChF,kEAAkE;AAClE,eAAO,MAAM,OAAO,yCAAyC,CAAC;AAE9D,+CAA+C;AAC/C,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,wBAAwB;AACxB,eAAO,MAAM,SAAS;;;;;;;CAOZ,CAAC;AAEX,0CAA0C;AAC1C,eAAO,MAAM,aAAa;;;;;;;;;;;CAWhB,CAAC;AAEX,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C,eAAO,MAAM,6BAA6B,QAAc,CAAC;AACzD,eAAO,MAAM,6BAA6B,QAAc,CAAC;AACzD,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAInD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB,CAAC,KAAK,GAAG,OAAO;IAClD,0BAA0B;IAC1B,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,2DAA2D;IAC3D,UAAU,EAAE,aAAa,GAAG,YAAY,CAAC;IACzC,6EAA6E;IAC7E,IAAI,EAAE,KAAK,CAAC;IACZ,mCAAmC;IACnC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,IAAI,CAAC;IAC7D,0DAA0D;IAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,uCAAuC;IACvC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,IAAI,CAAC;IAC9D,uCAAuC;IACvC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,IAAI,CAAC;IAC9D,mEAAmE;IACnE,SAAS,IAAI,IAAI,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,QAAQ;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC;IACT,iFAAiF;IACjF,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB,CAC/B,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,CAAC,GAAG,QAAQ,EACZ,KAAK,GAAG,OAAO;IAEf,gEAAgE;IAChE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAC;IACtC,+FAA+F;IAC/F,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2FAA2F;IAC3F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;OAQG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;;;;;;;;;OAUG;IACH,mCAAmC,CAAC,EAAE,OAAO,CAAC;IAC9C,aAAa,CAAC,CACZ,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC1B,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1E,IAAI,CAAC,CACH,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAChC,GAAG,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC1B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,OAAO,CAAC,CACN,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAChC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,EACvC,QAAQ,EAAE,OAAO,GAChB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,KAAK,CAAC,CACJ,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,KAAK,CAAC,CAAC,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,KAAK,CAAC,CAAC,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,0BAA0B;IACzC,wBAAwB,EAAE,OAAO,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"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"}
|
package/dist/websocket.js
CHANGED
|
@@ -68,14 +68,29 @@ export const WS_CLOSE_CODE = {
|
|
|
68
68
|
};
|
|
69
69
|
/** Maximum payload length permitted on a single control frame (RFC 6455 §5.5). */
|
|
70
70
|
export const WS_MAX_CONTROL_PAYLOAD = 125;
|
|
71
|
+
/** Default ceiling for queued outbound bytes before backpressure handling triggers (1 MiB). */
|
|
71
72
|
export const DEFAULT_WS_BACKPRESSURE_LIMIT = 1024 * 1024;
|
|
73
|
+
/** Default maximum inbound frame/message payload length (1 MiB). */
|
|
72
74
|
export const DEFAULT_WS_MAX_PAYLOAD_LENGTH = 1024 * 1024;
|
|
75
|
+
/** Default idle timeout applied to WebSocket routes (seconds). */
|
|
73
76
|
export const DEFAULT_WS_IDLE_TIMEOUT_SECONDS = 120;
|
|
74
77
|
function assertPositiveWebSocketInteger(name, value) {
|
|
75
78
|
if (!Number.isInteger(value) || value <= 0) {
|
|
76
79
|
throw new Error(`app.ws(): ${name} must be a positive integer.`);
|
|
77
80
|
}
|
|
78
81
|
}
|
|
82
|
+
function assertWebSocketOriginPolicy(policy) {
|
|
83
|
+
if (policy === undefined || policy === "same-origin" || typeof policy === "function")
|
|
84
|
+
return;
|
|
85
|
+
if (!Array.isArray(policy)) {
|
|
86
|
+
throw new Error('app.ws(): allowedOrigins must be "same-origin", an array of origin strings, or a predicate function.');
|
|
87
|
+
}
|
|
88
|
+
for (const origin of policy) {
|
|
89
|
+
if (typeof origin !== "string" || origin.length === 0) {
|
|
90
|
+
throw new Error("app.ws(): allowedOrigins entries must be non-empty origin strings.");
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
79
94
|
function schemaToJson(schema) {
|
|
80
95
|
const converter = schema?.toJSONSchema;
|
|
81
96
|
if (typeof converter !== "function")
|
|
@@ -105,6 +120,11 @@ function declaredSchemaMaxBytes(schema) {
|
|
|
105
120
|
}
|
|
106
121
|
return undefined;
|
|
107
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Resolve a user-supplied {@link WebSocketHandler} into the strict
|
|
125
|
+
* {@link NormalizedWebSocketOptions} the adapter consumes. Applies defaults,
|
|
126
|
+
* runs production safety checks, and throws on invalid values.
|
|
127
|
+
*/
|
|
108
128
|
export function normalizeWebSocketOptions(handler, context) {
|
|
109
129
|
const closeOnBackpressureLimit = handler.closeOnBackpressureLimit ?? true;
|
|
110
130
|
const backpressureLimit = handler.backpressureLimit ?? DEFAULT_WS_BACKPRESSURE_LIMIT;
|
|
@@ -120,6 +140,7 @@ export function normalizeWebSocketOptions(handler, context) {
|
|
|
120
140
|
if (typeof perMessageDeflate !== "boolean") {
|
|
121
141
|
throw new Error("app.ws(): perMessageDeflate must be a boolean.");
|
|
122
142
|
}
|
|
143
|
+
assertWebSocketOriginPolicy(handler.allowedOrigins);
|
|
123
144
|
if (perMessageDeflate && context.secureDefaults && context.production) {
|
|
124
145
|
throw new Error("app.ws(): perMessageDeflate: true is refused in production under secureDefaults. " +
|
|
125
146
|
"Leave it false or pass app({ secureDefaults: false }) only for a reviewed deployment.");
|
|
@@ -334,6 +355,66 @@ function isValidWebSocketKey(key) {
|
|
|
334
355
|
return false;
|
|
335
356
|
}
|
|
336
357
|
}
|
|
358
|
+
/**
|
|
359
|
+
* Validate the `Origin` header on a WebSocket upgrade request against the
|
|
360
|
+
* route's `allowedOrigins` policy. Adapters call this **before** invoking
|
|
361
|
+
* the route's `beforeUpgrade` hook so a Cross-Site WebSocket Hijacking
|
|
362
|
+
* attempt is rejected with `403` before any authenticated handler runs.
|
|
363
|
+
*
|
|
364
|
+
* Returns `{ ok: true }` when the upgrade is permitted, otherwise
|
|
365
|
+
* `{ ok: false, reason }` with a short human-readable reason suitable for
|
|
366
|
+
* the upgrade-error body.
|
|
367
|
+
*
|
|
368
|
+
* @since 0.33.0
|
|
369
|
+
*/
|
|
370
|
+
export function checkWebSocketOrigin(request, policy) {
|
|
371
|
+
if (policy === undefined)
|
|
372
|
+
return { ok: true };
|
|
373
|
+
const origin = request.headers.get("origin");
|
|
374
|
+
if (typeof policy === "function") {
|
|
375
|
+
let allowed;
|
|
376
|
+
try {
|
|
377
|
+
allowed = policy(origin, request) === true;
|
|
378
|
+
}
|
|
379
|
+
catch {
|
|
380
|
+
return { ok: false, reason: "WebSocket origin check failed" };
|
|
381
|
+
}
|
|
382
|
+
return allowed
|
|
383
|
+
? { ok: true }
|
|
384
|
+
: { ok: false, reason: "WebSocket upgrade rejected by origin policy" };
|
|
385
|
+
}
|
|
386
|
+
// For string-list and "same-origin" policies, a missing Origin header
|
|
387
|
+
// means the client is not a browser (browsers always attach Origin on
|
|
388
|
+
// a WS handshake) and the CSWSH class of attack is not reachable, so we
|
|
389
|
+
// allow it through. Callers that want to reject non-browser clients can
|
|
390
|
+
// pass a predicate function.
|
|
391
|
+
if (origin === null)
|
|
392
|
+
return { ok: true };
|
|
393
|
+
if (policy === "same-origin") {
|
|
394
|
+
try {
|
|
395
|
+
const requestOrigin = new URL(request.url).origin;
|
|
396
|
+
return origin === requestOrigin
|
|
397
|
+
? { ok: true }
|
|
398
|
+
: {
|
|
399
|
+
ok: false,
|
|
400
|
+
reason: "WebSocket upgrade rejected: cross-origin handshake",
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
catch {
|
|
404
|
+
return { ok: false, reason: "WebSocket origin check failed" };
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
if (!Array.isArray(policy)) {
|
|
408
|
+
return { ok: false, reason: "WebSocket origin policy is invalid" };
|
|
409
|
+
}
|
|
410
|
+
// string[] allowlist
|
|
411
|
+
return policy.includes(origin)
|
|
412
|
+
? { ok: true }
|
|
413
|
+
: {
|
|
414
|
+
ok: false,
|
|
415
|
+
reason: "WebSocket upgrade rejected: origin not allowlisted",
|
|
416
|
+
};
|
|
417
|
+
}
|
|
337
418
|
/** Returned from `parseFrame` when the buffer doesn't yet hold a full frame. */
|
|
338
419
|
export const FRAME_INCOMPLETE = Symbol("daloy.ws.frameIncomplete");
|
|
339
420
|
/**
|
|
@@ -514,6 +595,7 @@ export class WebSocketProtocolError extends Error {
|
|
|
514
595
|
this.name = "WebSocketProtocolError";
|
|
515
596
|
}
|
|
516
597
|
}
|
|
598
|
+
/** Specialization of {@link WebSocketProtocolError} thrown when an inbound message exceeds the configured `maxPayloadLength`. */
|
|
517
599
|
export class WebSocketPayloadTooLargeError extends WebSocketProtocolError {
|
|
518
600
|
limit;
|
|
519
601
|
actual;
|
package/dist/websocket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@daloyjs/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.34.1",
|
|
4
4
|
"description": "DaloyJS is a runtime-portable, contract-first TypeScript web framework with built-in OpenAPI (Hey API), typed client generation, large-scale maintainability, and security-first defaults. Hono-grade portability, Elysia-grade DX, FastAPI-grade docs, Fastify-grade ops — distributed via pnpm.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -175,14 +175,26 @@
|
|
|
175
175
|
"typecheck": "tsc --noEmit",
|
|
176
176
|
"gen:openapi": "node --import tsx scripts/dump-openapi.ts",
|
|
177
177
|
"gen:client": "openapi-ts",
|
|
178
|
+
"gen:sbom": "node --import tsx scripts/generate-sbom.ts --package-json ./package.json --out-cyclonedx ./dist/sbom.cdx.json --out-spdx ./dist/sbom.spdx.json && node --import tsx scripts/generate-sbom.ts --package-json ./packages/create-daloy/package.json --out-cyclonedx ./packages/create-daloy/sbom.cdx.json --out-spdx ./packages/create-daloy/sbom.spdx.json",
|
|
178
179
|
"gen": "pnpm gen:openapi && pnpm gen:client",
|
|
179
180
|
"verify:lockfile": "node --import tsx scripts/verify-lockfile-sources.ts",
|
|
180
181
|
"verify:no-runtime-deps": "node --import tsx scripts/verify-no-runtime-deps.ts",
|
|
182
|
+
"verify:no-lifecycle-scripts": "node --import tsx scripts/verify-no-lifecycle-scripts.ts",
|
|
183
|
+
"verify:no-bin-shadowing": "node --import tsx scripts/verify-no-bin-shadowing.ts",
|
|
181
184
|
"verify:secret-comparisons": "node --import tsx scripts/verify-secret-comparisons.ts",
|
|
185
|
+
"verify:no-unsafe-buffer": "node --import tsx scripts/verify-no-unsafe-buffer.ts",
|
|
186
|
+
"verify:no-remote-exec": "node --import tsx scripts/verify-no-remote-exec.ts",
|
|
187
|
+
"verify:no-vulnerable-sandboxes": "node --import tsx scripts/verify-no-vulnerable-sandboxes.ts",
|
|
188
|
+
"verify:no-leaked-credentials": "node --import tsx scripts/verify-no-leaked-credentials.ts",
|
|
189
|
+
"verify:no-invisible-unicode": "node --import tsx scripts/verify-no-invisible-unicode.ts",
|
|
190
|
+
"verify:no-encoded-payloads": "node --import tsx scripts/verify-no-encoded-payloads.ts",
|
|
191
|
+
"verify:no-registry-exfiltration": "node --import tsx scripts/verify-no-registry-exfiltration.ts",
|
|
192
|
+
"verify:actions-pinned": "node --import tsx scripts/verify-actions-pinned.ts",
|
|
182
193
|
"verify:wave9-audits": "node --import tsx scripts/verify-wave9-audits.ts",
|
|
183
194
|
"verify:wave10-audits": "node --import tsx scripts/verify-wave10-audits.ts",
|
|
184
195
|
"verify:wave11-audits": "node --import tsx scripts/verify-wave11-audits.ts",
|
|
185
196
|
"verify:wave12-audits": "node --import tsx scripts/verify-wave12-audits.ts",
|
|
197
|
+
"verify:sbom": "node --import tsx scripts/verify-sbom.ts",
|
|
186
198
|
"audit": "pnpm audit --prod"
|
|
187
199
|
}
|
|
188
200
|
}
|