@daloyjs/core 0.35.0 → 0.35.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 +145 -29
- package/dist/adapters/bun.d.ts +0 -1
- package/dist/adapters/bun.js +0 -1
- package/dist/adapters/cloudflare.d.ts +0 -1
- package/dist/adapters/cloudflare.js +0 -1
- package/dist/adapters/deno.d.ts +0 -1
- package/dist/adapters/deno.js +0 -1
- package/dist/adapters/fastly.d.ts +0 -1
- package/dist/adapters/fastly.js +0 -1
- package/dist/adapters/lambda.d.ts +0 -1
- package/dist/adapters/lambda.js +0 -1
- package/dist/adapters/node.d.ts +11 -1
- package/dist/adapters/node.js +246 -44
- package/dist/adapters/vercel.d.ts +0 -1
- package/dist/adapters/vercel.js +0 -1
- package/dist/app.d.ts +52 -1
- package/dist/app.js +557 -146
- package/dist/banner.d.ts +0 -1
- package/dist/banner.js +0 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +0 -1
- package/dist/client.d.ts +0 -1
- package/dist/client.js +0 -1
- package/dist/combine.d.ts +0 -1
- package/dist/combine.js +0 -1
- package/dist/compression.d.ts +0 -1
- package/dist/compression.js +0 -1
- package/dist/config.d.ts +0 -1
- package/dist/config.js +0 -1
- package/dist/conn-info.d.ts +0 -1
- package/dist/conn-info.js +0 -1
- package/dist/contract.d.ts +0 -1
- package/dist/contract.js +0 -1
- package/dist/cookie.d.ts +0 -1
- package/dist/cookie.js +0 -1
- package/dist/dependency.d.ts +0 -1
- package/dist/dependency.js +0 -1
- package/dist/discriminator.d.ts +0 -1
- package/dist/discriminator.js +0 -1
- package/dist/docs.d.ts +0 -1
- package/dist/docs.js +0 -1
- package/dist/errors.d.ts +0 -1
- package/dist/errors.js +6 -3
- package/dist/etag.d.ts +0 -1
- package/dist/etag.js +0 -1
- package/dist/fetch-guard.d.ts +0 -1
- package/dist/fetch-guard.js +0 -1
- package/dist/hashing.d.ts +0 -1
- package/dist/hashing.js +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/ip-restriction.d.ts +0 -1
- package/dist/ip-restriction.js +0 -1
- package/dist/jwk.d.ts +0 -1
- package/dist/jwk.js +0 -1
- package/dist/jwt.d.ts +0 -1
- package/dist/jwt.js +0 -1
- package/dist/load-shedding.d.ts +0 -1
- package/dist/load-shedding.js +0 -1
- package/dist/logger.d.ts +0 -1
- package/dist/logger.js +0 -1
- package/dist/middleware.d.ts +0 -1
- package/dist/middleware.js +16 -13
- package/dist/multipart.d.ts +0 -1
- package/dist/multipart.js +0 -1
- package/dist/openapi.d.ts +0 -1
- package/dist/openapi.js +0 -1
- package/dist/rate-limit-redis.d.ts +0 -1
- package/dist/rate-limit-redis.js +0 -1
- package/dist/router.d.ts +0 -1
- package/dist/router.js +0 -1
- package/dist/safe-redirect.d.ts +2 -3
- package/dist/safe-redirect.js +2 -3
- package/dist/sbom.cdx.json +9 -9
- package/dist/sbom.spdx.json +5 -5
- package/dist/schema.d.ts +0 -1
- package/dist/schema.js +0 -1
- package/dist/security-schemes.d.ts +0 -1
- package/dist/security-schemes.js +0 -1
- package/dist/security.d.ts +0 -16
- package/dist/security.js +32 -4
- package/dist/session.d.ts +0 -1
- package/dist/session.js +0 -1
- package/dist/streaming.d.ts +0 -1
- package/dist/streaming.js +0 -1
- package/dist/subdomains.d.ts +0 -1
- package/dist/subdomains.js +0 -1
- package/dist/time-claims.d.ts +0 -1
- package/dist/time-claims.js +0 -1
- package/dist/tracing.d.ts +0 -1
- package/dist/tracing.js +0 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.js +0 -1
- package/dist/websocket.d.ts +0 -1
- package/dist/websocket.js +0 -1
- package/package.json +6 -2
- package/dist/adapters/bun.d.ts.map +0 -1
- package/dist/adapters/bun.js.map +0 -1
- package/dist/adapters/cloudflare.d.ts.map +0 -1
- package/dist/adapters/cloudflare.js.map +0 -1
- package/dist/adapters/deno.d.ts.map +0 -1
- package/dist/adapters/deno.js.map +0 -1
- package/dist/adapters/fastly.d.ts.map +0 -1
- package/dist/adapters/fastly.js.map +0 -1
- package/dist/adapters/lambda.d.ts.map +0 -1
- package/dist/adapters/lambda.js.map +0 -1
- package/dist/adapters/node.d.ts.map +0 -1
- package/dist/adapters/node.js.map +0 -1
- package/dist/adapters/vercel.d.ts.map +0 -1
- package/dist/adapters/vercel.js.map +0 -1
- package/dist/app.d.ts.map +0 -1
- package/dist/app.js.map +0 -1
- package/dist/banner.d.ts.map +0 -1
- package/dist/banner.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/combine.d.ts.map +0 -1
- package/dist/combine.js.map +0 -1
- package/dist/compression.d.ts.map +0 -1
- package/dist/compression.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/conn-info.d.ts.map +0 -1
- package/dist/conn-info.js.map +0 -1
- package/dist/contract.d.ts.map +0 -1
- package/dist/contract.js.map +0 -1
- package/dist/cookie.d.ts.map +0 -1
- package/dist/cookie.js.map +0 -1
- package/dist/dependency.d.ts.map +0 -1
- package/dist/dependency.js.map +0 -1
- package/dist/discriminator.d.ts.map +0 -1
- package/dist/discriminator.js.map +0 -1
- package/dist/docs.d.ts.map +0 -1
- package/dist/docs.js.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/etag.d.ts.map +0 -1
- package/dist/etag.js.map +0 -1
- package/dist/fetch-guard.d.ts.map +0 -1
- package/dist/fetch-guard.js.map +0 -1
- package/dist/hashing.d.ts.map +0 -1
- package/dist/hashing.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/ip-restriction.d.ts.map +0 -1
- package/dist/ip-restriction.js.map +0 -1
- package/dist/jwk.d.ts.map +0 -1
- package/dist/jwk.js.map +0 -1
- package/dist/jwt.d.ts.map +0 -1
- package/dist/jwt.js.map +0 -1
- package/dist/load-shedding.d.ts.map +0 -1
- package/dist/load-shedding.js.map +0 -1
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js.map +0 -1
- package/dist/middleware.d.ts.map +0 -1
- package/dist/middleware.js.map +0 -1
- package/dist/multipart.d.ts.map +0 -1
- package/dist/multipart.js.map +0 -1
- package/dist/openapi.d.ts.map +0 -1
- package/dist/openapi.js.map +0 -1
- package/dist/rate-limit-redis.d.ts.map +0 -1
- package/dist/rate-limit-redis.js.map +0 -1
- package/dist/router.d.ts.map +0 -1
- package/dist/router.js.map +0 -1
- package/dist/safe-redirect.d.ts.map +0 -1
- package/dist/safe-redirect.js.map +0 -1
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js.map +0 -1
- package/dist/security-schemes.d.ts.map +0 -1
- package/dist/security-schemes.js.map +0 -1
- package/dist/security.d.ts.map +0 -1
- package/dist/security.js.map +0 -1
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js.map +0 -1
- package/dist/streaming.d.ts.map +0 -1
- package/dist/streaming.js.map +0 -1
- package/dist/subdomains.d.ts.map +0 -1
- package/dist/subdomains.js.map +0 -1
- package/dist/time-claims.d.ts.map +0 -1
- package/dist/time-claims.js.map +0 -1
- package/dist/tracing.d.ts.map +0 -1
- package/dist/tracing.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/websocket.d.ts.map +0 -1
- package/dist/websocket.js.map +0 -1
package/dist/banner.d.ts
CHANGED
|
@@ -37,4 +37,3 @@ export declare function formatStartupBanner(options: StartupBannerOptions): stri
|
|
|
37
37
|
* replace ad-hoc `console.log("listening on …")` calls in starter templates.
|
|
38
38
|
*/
|
|
39
39
|
export declare function printStartupBanner(options: StartupBannerOptions, write?: (s: string) => void): void;
|
|
40
|
-
//# sourceMappingURL=banner.d.ts.map
|
package/dist/banner.js
CHANGED
package/dist/cli.d.ts
CHANGED
package/dist/cli.js
CHANGED
package/dist/client.d.ts
CHANGED
package/dist/client.js
CHANGED
package/dist/combine.d.ts
CHANGED
package/dist/combine.js
CHANGED
package/dist/compression.d.ts
CHANGED
package/dist/compression.js
CHANGED
package/dist/config.d.ts
CHANGED
|
@@ -95,4 +95,3 @@ export interface DefineConfigOptions<S extends StandardSchemaV1> {
|
|
|
95
95
|
* @since 0.20.0
|
|
96
96
|
*/
|
|
97
97
|
export declare function defineConfig<S extends StandardSchemaV1>(opts: DefineConfigOptions<S>): Promise<StandardSchemaV1.InferOutput<S>>;
|
|
98
|
-
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.js
CHANGED
package/dist/conn-info.d.ts
CHANGED
package/dist/conn-info.js
CHANGED
package/dist/contract.d.ts
CHANGED
|
@@ -47,4 +47,3 @@ export interface ContractTestOptions {
|
|
|
47
47
|
* @returns A {@link ContractReport}. In CI, exit non-zero when `report.ok` is `false`.
|
|
48
48
|
*/
|
|
49
49
|
export declare function runContractTests(app: App, opts?: ContractTestOptions): Promise<ContractReport>;
|
|
50
|
-
//# sourceMappingURL=contract.d.ts.map
|
package/dist/contract.js
CHANGED
package/dist/cookie.d.ts
CHANGED
|
@@ -123,4 +123,3 @@ export declare function serializeClearCookie(name: string, attributes?: CookieAt
|
|
|
123
123
|
export declare function readRequestCookie(header: string | null | undefined, name: string): string | null;
|
|
124
124
|
/** @internal Re-exported for tests. */
|
|
125
125
|
export declare const __COOKIE_FRAMEWORK_PREFIX__ = "daloy.cookie";
|
|
126
|
-
//# sourceMappingURL=cookie.d.ts.map
|
package/dist/cookie.js
CHANGED
package/dist/dependency.d.ts
CHANGED
|
@@ -45,4 +45,3 @@ export interface DependencyHooks extends Hooks {
|
|
|
45
45
|
* @since 0.24.0
|
|
46
46
|
*/
|
|
47
47
|
export declare function defineDependency<TName extends string, TValue, TStateKey extends string = TName>(opts: DependencyOptions<TName, TValue, TStateKey>): DependencyHooks;
|
|
48
|
-
//# sourceMappingURL=dependency.d.ts.map
|
package/dist/dependency.js
CHANGED
package/dist/discriminator.d.ts
CHANGED
|
@@ -71,4 +71,3 @@ export type DiscriminatedUnion<V extends Record<string, StandardSchemaV1>> = Sta
|
|
|
71
71
|
*/
|
|
72
72
|
export declare function discriminatedUnion<P extends string, V extends Record<string, StandardSchemaV1>>(propertyName: P, variants: V, opts?: DiscriminatedUnionOptions): DiscriminatedUnion<V>;
|
|
73
73
|
export {};
|
|
74
|
-
//# sourceMappingURL=discriminator.d.ts.map
|
package/dist/discriminator.js
CHANGED
package/dist/docs.d.ts
CHANGED
|
@@ -153,4 +153,3 @@ export declare function docsContentSecurityPolicy(opts?: DocsContentSecurityPoli
|
|
|
153
153
|
* {@link docsContentSecurityPolicy} (or a caller-supplied override).
|
|
154
154
|
*/
|
|
155
155
|
export declare function htmlResponse(html: string, opts?: HtmlResponseOptions): Response;
|
|
156
|
-
//# sourceMappingURL=docs.d.ts.map
|
package/dist/docs.js
CHANGED
|
@@ -113,4 +113,3 @@ function scalarConfigurationAttr(specUrl, configuration) {
|
|
|
113
113
|
const { content: _content, fetch: _fetch, plugins: _plugins, sources: _sources, spec: _spec, url: _url, ...uiConfiguration } = configuration;
|
|
114
114
|
return ` data-configuration='${escapeHtml(JSON.stringify({ ...uiConfiguration, url: specUrl }))}'`;
|
|
115
115
|
}
|
|
116
|
-
//# sourceMappingURL=docs.js.map
|
package/dist/errors.d.ts
CHANGED
package/dist/errors.js
CHANGED
|
@@ -202,8 +202,12 @@ export class HttpError extends Error {
|
|
|
202
202
|
if (opts.requestId)
|
|
203
203
|
out.instance = `urn:request:${opts.requestId}`;
|
|
204
204
|
const headers = new Headers({ "content-type": "application/problem+json" });
|
|
205
|
-
|
|
206
|
-
|
|
205
|
+
// Skip the Object.entries({}) churn on the common case where the
|
|
206
|
+
// error was constructed without extra response headers.
|
|
207
|
+
if (this.headers !== undefined) {
|
|
208
|
+
for (const [name, value] of Object.entries(this.headers)) {
|
|
209
|
+
headers.set(name, value);
|
|
210
|
+
}
|
|
207
211
|
}
|
|
208
212
|
// Merge Context.set.headers (CSRF rotation, session renewal,
|
|
209
213
|
// request-id, secureHeaders output) without overriding headers the
|
|
@@ -444,4 +448,3 @@ export class InternalError extends HttpError {
|
|
|
444
448
|
this.name = "InternalError";
|
|
445
449
|
}
|
|
446
450
|
}
|
|
447
|
-
//# sourceMappingURL=errors.js.map
|
package/dist/etag.d.ts
CHANGED
package/dist/etag.js
CHANGED
package/dist/fetch-guard.d.ts
CHANGED
package/dist/fetch-guard.js
CHANGED
package/dist/hashing.d.ts
CHANGED
package/dist/hashing.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -63,4 +63,3 @@ export { otelTracing, TRACING_SPAN_KIND_SERVER, TRACING_SPAN_STATUS_UNSET, TRACI
|
|
|
63
63
|
export type { OtelTracingOptions, TracingAttributes, TracingAttributeValue, TracingSpan, TracingStartSpanOptions, TracingTracer, } from "./tracing.js";
|
|
64
64
|
export { defineWebSocket, WebSocketRegistry, WebSocketProtocolError, WebSocketPayloadTooLargeError, WS_GUID, WS_READY_STATE, WS_OPCODE, WS_CLOSE_CODE, WS_MAX_CONTROL_PAYLOAD, DEFAULT_WS_BACKPRESSURE_LIMIT, DEFAULT_WS_MAX_PAYLOAD_LENGTH, DEFAULT_WS_IDLE_TIMEOUT_SECONDS, computeAcceptKey, parseSubprotocols, validateSelectedSubprotocol, validateUpgrade, checkWebSocketOrigin, parseFrame, encodeFrame, encodeClosePayload, decodeClosePayload, encodeSendPayload, normalizeWebSocketOptions, wsRateLimit, FrameSink, FRAME_INCOMPLETE, } from "./websocket.js";
|
|
65
65
|
export type { WebSocketConnection, WebSocketContext, WebSocketHandler, WebSocketRouteEntry, NormalizedWebSocketOptions, WebSocketBeforeUpgrade, HandshakeResult, ParsedFrame, MessageEvent as WebSocketMessageEvent, FrameSinkEvents, } from "./websocket.js";
|
|
66
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -31,4 +31,3 @@ export { session, rotateSession, signValue, verifySignedValue, MemorySessionStor
|
|
|
31
31
|
export { fileField, multipartObject, isFileFieldSchema, isMultipartObjectSchema, } from "./multipart.js";
|
|
32
32
|
export { otelTracing, TRACING_SPAN_KIND_SERVER, TRACING_SPAN_STATUS_UNSET, TRACING_SPAN_STATUS_OK, TRACING_SPAN_STATUS_ERROR, } from "./tracing.js";
|
|
33
33
|
export { defineWebSocket, WebSocketRegistry, WebSocketProtocolError, WebSocketPayloadTooLargeError, WS_GUID, WS_READY_STATE, WS_OPCODE, WS_CLOSE_CODE, WS_MAX_CONTROL_PAYLOAD, DEFAULT_WS_BACKPRESSURE_LIMIT, DEFAULT_WS_MAX_PAYLOAD_LENGTH, DEFAULT_WS_IDLE_TIMEOUT_SECONDS, computeAcceptKey, parseSubprotocols, validateSelectedSubprotocol, validateUpgrade, checkWebSocketOrigin, parseFrame, encodeFrame, encodeClosePayload, decodeClosePayload, encodeSendPayload, normalizeWebSocketOptions, wsRateLimit, FrameSink, FRAME_INCOMPLETE, } from "./websocket.js";
|
|
34
|
-
//# sourceMappingURL=index.js.map
|
package/dist/ip-restriction.d.ts
CHANGED
|
@@ -89,4 +89,3 @@ export declare function matchesMatcher(ip: ParsedIp, m: IpMatcher): boolean;
|
|
|
89
89
|
export declare function compileCidrMatcher(input: string): IpMatcher;
|
|
90
90
|
/** @internal */
|
|
91
91
|
export declare function parseIp(input: string): ParsedIp | undefined;
|
|
92
|
-
//# sourceMappingURL=ip-restriction.d.ts.map
|
package/dist/ip-restriction.js
CHANGED
package/dist/jwk.d.ts
CHANGED
package/dist/jwk.js
CHANGED
package/dist/jwt.d.ts
CHANGED
package/dist/jwt.js
CHANGED
package/dist/load-shedding.d.ts
CHANGED
package/dist/load-shedding.js
CHANGED
package/dist/logger.d.ts
CHANGED
package/dist/logger.js
CHANGED
package/dist/middleware.d.ts
CHANGED
package/dist/middleware.js
CHANGED
|
@@ -223,7 +223,7 @@ export function secureHeaders(opts = {}) {
|
|
|
223
223
|
const ref = opts.referrerPolicy ?? "no-referrer";
|
|
224
224
|
if (ref !== false)
|
|
225
225
|
headers["referrer-policy"] = ref;
|
|
226
|
-
const perm = opts.permissionsPolicy ?? "camera=(), microphone=(), geolocation=()";
|
|
226
|
+
const perm = opts.permissionsPolicy ?? "camera=(), microphone=(), geolocation=(), clipboard-write=()";
|
|
227
227
|
if (perm !== false)
|
|
228
228
|
headers["permissions-policy"] = perm;
|
|
229
229
|
const coop = opts.crossOriginOpenerPolicy ?? "same-origin";
|
|
@@ -259,14 +259,16 @@ export function secureHeaders(opts = {}) {
|
|
|
259
259
|
.join(", ");
|
|
260
260
|
}
|
|
261
261
|
}
|
|
262
|
-
const
|
|
263
|
-
|
|
264
|
-
|
|
262
|
+
const headerEntries = Object.entries(headers);
|
|
263
|
+
const hooks = {};
|
|
264
|
+
if (cspIsDynamic) {
|
|
265
|
+
hooks.beforeHandle = (ctx) => {
|
|
266
|
+
if (cspOpt.nonce) {
|
|
265
267
|
ctx.state[CSP_NONCE_STATE] = generateCspNonce();
|
|
266
268
|
}
|
|
267
|
-
}
|
|
268
|
-
onSend(res, ctx) {
|
|
269
|
-
if (
|
|
269
|
+
};
|
|
270
|
+
hooks.onSend = (res, ctx) => {
|
|
271
|
+
if (!res.headers.has("content-security-policy")) {
|
|
270
272
|
const nonce = ctx
|
|
271
273
|
? ctx.state[CSP_NONCE_STATE]
|
|
272
274
|
: undefined;
|
|
@@ -275,14 +277,16 @@ export function secureHeaders(opts = {}) {
|
|
|
275
277
|
res.headers.set("content-security-policy", header);
|
|
276
278
|
}
|
|
277
279
|
return undefined;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
if (headerEntries.length > 0) {
|
|
283
|
+
hooks.onResponse = (res) => {
|
|
284
|
+
for (const [k, v] of headerEntries) {
|
|
281
285
|
if (!res.headers.has(k))
|
|
282
286
|
res.headers.set(k, v);
|
|
283
287
|
}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
288
|
+
};
|
|
289
|
+
}
|
|
286
290
|
hooks[SECURE_HEADERS_MARKER] = true;
|
|
287
291
|
return hooks;
|
|
288
292
|
}
|
|
@@ -1248,4 +1252,3 @@ export function requireScopes(scopes) {
|
|
|
1248
1252
|
return hooks;
|
|
1249
1253
|
}
|
|
1250
1254
|
export { timingSafeEqual };
|
|
1251
|
-
//# sourceMappingURL=middleware.js.map
|
package/dist/multipart.d.ts
CHANGED
|
@@ -166,4 +166,3 @@ export declare function getMultipartShape(s: unknown): {
|
|
|
166
166
|
/** Internal: read the file-field options used for OpenAPI documentation. */
|
|
167
167
|
export declare function getFileFieldOptions(s: unknown): (Required<Pick<FileFieldOptions, "format">> & FileFieldOptions) | undefined;
|
|
168
168
|
export {};
|
|
169
|
-
//# sourceMappingURL=multipart.d.ts.map
|
package/dist/multipart.js
CHANGED
package/dist/openapi.d.ts
CHANGED
package/dist/openapi.js
CHANGED
package/dist/rate-limit-redis.js
CHANGED
package/dist/router.d.ts
CHANGED
package/dist/router.js
CHANGED
package/dist/safe-redirect.d.ts
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
* });
|
|
39
39
|
* ```
|
|
40
40
|
*
|
|
41
|
-
* @since 0.35.
|
|
41
|
+
* @since 0.35.2
|
|
42
42
|
*/
|
|
43
43
|
/** Reason an open-redirect candidate was refused. */
|
|
44
44
|
export type SafeRedirectBlockReason = "empty-target" | "invalid-control-characters" | "protocol-relative" | "backslash-path" | "path-not-allowed" | "origin-not-allowed" | "scheme-not-allowed" | "parse-failed";
|
|
@@ -86,7 +86,6 @@ export interface SafeRedirectOptions {
|
|
|
86
86
|
* @param target - User-supplied URL candidate (path or absolute URL).
|
|
87
87
|
* @param options - Allowlist + response configuration.
|
|
88
88
|
*
|
|
89
|
-
* @since 0.35.
|
|
89
|
+
* @since 0.35.2
|
|
90
90
|
*/
|
|
91
91
|
export declare function safeRedirect(target: string, options?: SafeRedirectOptions): Response;
|
|
92
|
-
//# sourceMappingURL=safe-redirect.d.ts.map
|
package/dist/safe-redirect.js
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
* });
|
|
39
39
|
* ```
|
|
40
40
|
*
|
|
41
|
-
* @since 0.35.
|
|
41
|
+
* @since 0.35.2
|
|
42
42
|
*/
|
|
43
43
|
/** Thrown when {@link safeRedirect} refuses a candidate URL and no `fallback` is configured. */
|
|
44
44
|
export class OpenRedirectBlockedError extends Error {
|
|
@@ -126,7 +126,7 @@ function classify(target, allowedPaths, allowedOrigins) {
|
|
|
126
126
|
* @param target - User-supplied URL candidate (path or absolute URL).
|
|
127
127
|
* @param options - Allowlist + response configuration.
|
|
128
128
|
*
|
|
129
|
-
* @since 0.35.
|
|
129
|
+
* @since 0.35.2
|
|
130
130
|
*/
|
|
131
131
|
export function safeRedirect(target, options = {}) {
|
|
132
132
|
const allowedPaths = options.allowedPaths ?? [];
|
|
@@ -166,4 +166,3 @@ export function safeRedirect(target, options = {}) {
|
|
|
166
166
|
}
|
|
167
167
|
throw new OpenRedirectBlockedError(result.reason, target);
|
|
168
168
|
}
|
|
169
|
-
//# sourceMappingURL=safe-redirect.js.map
|
package/dist/sbom.cdx.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.5",
|
|
4
|
-
"serialNumber": "urn:uuid:
|
|
4
|
+
"serialNumber": "urn:uuid:1d9fa950-874b-5a89-9b39-98f1bbdfdb30",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
|
-
"timestamp": "2026-05-
|
|
7
|
+
"timestamp": "2026-05-28T07:51:16.251Z",
|
|
8
8
|
"tools": [
|
|
9
9
|
{
|
|
10
10
|
"vendor": "DaloyJS",
|
|
11
11
|
"name": "daloy-generate-sbom",
|
|
12
|
-
"version": "0.35.
|
|
12
|
+
"version": "0.35.2"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"authors": [
|
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
],
|
|
20
20
|
"component": {
|
|
21
21
|
"type": "library",
|
|
22
|
-
"bom-ref": "pkg:npm/@daloyjs/core@0.35.
|
|
22
|
+
"bom-ref": "pkg:npm/@daloyjs/core@0.35.2",
|
|
23
23
|
"name": "@daloyjs/core",
|
|
24
|
-
"version": "0.35.
|
|
24
|
+
"version": "0.35.2",
|
|
25
25
|
"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.",
|
|
26
|
-
"purl": "pkg:npm/@daloyjs/core@0.35.
|
|
26
|
+
"purl": "pkg:npm/@daloyjs/core@0.35.2",
|
|
27
27
|
"licenses": [
|
|
28
28
|
{
|
|
29
29
|
"license": {
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
}
|
|
47
47
|
],
|
|
48
48
|
"swid": {
|
|
49
|
-
"tagId": "swidtag--daloyjs-core-0.35.
|
|
49
|
+
"tagId": "swidtag--daloyjs-core-0.35.2",
|
|
50
50
|
"name": "@daloyjs/core",
|
|
51
|
-
"version": "0.35.
|
|
51
|
+
"version": "0.35.2",
|
|
52
52
|
"tagVersion": 0,
|
|
53
53
|
"patch": false
|
|
54
54
|
}
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"components": [],
|
|
58
58
|
"dependencies": [
|
|
59
59
|
{
|
|
60
|
-
"ref": "pkg:npm/@daloyjs/core@0.35.
|
|
60
|
+
"ref": "pkg:npm/@daloyjs/core@0.35.2",
|
|
61
61
|
"dependsOn": []
|
|
62
62
|
}
|
|
63
63
|
]
|
package/dist/sbom.spdx.json
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"spdxVersion": "SPDX-2.3",
|
|
3
3
|
"dataLicense": "CC0-1.0",
|
|
4
4
|
"SPDXID": "SPDXRef-DOCUMENT",
|
|
5
|
-
"name": "@daloyjs/core-0.35.
|
|
6
|
-
"documentNamespace": "https://github.com/daloyjs/daloy/sbom/@daloyjs/core-0.35.
|
|
5
|
+
"name": "@daloyjs/core-0.35.2",
|
|
6
|
+
"documentNamespace": "https://github.com/daloyjs/daloy/sbom/@daloyjs/core-0.35.2-1d9fa950-874b-5a89-9b39-98f1bbdfdb30",
|
|
7
7
|
"creationInfo": {
|
|
8
|
-
"created": "2026-05-
|
|
8
|
+
"created": "2026-05-28T07:51:16.251Z",
|
|
9
9
|
"creators": [
|
|
10
10
|
"Tool: daloy-generate-sbom",
|
|
11
11
|
"Organization: DaloyJS"
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
{
|
|
17
17
|
"SPDXID": "SPDXRef-Package--daloyjs-core",
|
|
18
18
|
"name": "@daloyjs/core",
|
|
19
|
-
"versionInfo": "0.35.
|
|
19
|
+
"versionInfo": "0.35.2",
|
|
20
20
|
"downloadLocation": "https://github.com/daloyjs/daloy",
|
|
21
21
|
"filesAnalyzed": false,
|
|
22
22
|
"licenseConcluded": "MIT",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
{
|
|
28
28
|
"referenceCategory": "PACKAGE-MANAGER",
|
|
29
29
|
"referenceType": "purl",
|
|
30
|
-
"referenceLocator": "pkg:npm/@daloyjs/core@0.35.
|
|
30
|
+
"referenceLocator": "pkg:npm/@daloyjs/core@0.35.2"
|
|
31
31
|
}
|
|
32
32
|
]
|
|
33
33
|
}
|
package/dist/schema.d.ts
CHANGED
package/dist/schema.js
CHANGED
package/dist/security-schemes.js
CHANGED
package/dist/security.d.ts
CHANGED
|
@@ -85,21 +85,6 @@ export declare function sanitizeHeaderValue(value: string): string;
|
|
|
85
85
|
* @since 0.1.0
|
|
86
86
|
*/
|
|
87
87
|
export declare function timingSafeEqual(a: string, b: string): boolean;
|
|
88
|
-
/**
|
|
89
|
-
* Generate a cryptographically strong, URL-safe identifier (~22 chars).
|
|
90
|
-
*
|
|
91
|
-
* Uses Web Crypto's `crypto.randomUUID()` when available, falling back to
|
|
92
|
-
* 16 random bytes via `crypto.getRandomValues()`. The last-resort fallback
|
|
93
|
-
* (timestamp + `Math.random()`) only triggers in environments without
|
|
94
|
-
* WebCrypto, which is none of Node 20+/Bun/Deno/Cloudflare Workers/Vercel
|
|
95
|
-
* Edge.
|
|
96
|
-
*
|
|
97
|
-
* Suitable for request ids, session ids, and short-lived correlation tokens.
|
|
98
|
-
* Do not use for long-lived secrets unless you also sign or wrap them.
|
|
99
|
-
*
|
|
100
|
-
* @returns A random URL-safe id string.
|
|
101
|
-
* @since 0.1.0
|
|
102
|
-
*/
|
|
103
88
|
export declare function randomId(): string;
|
|
104
89
|
/**
|
|
105
90
|
* Header names that MUST appear at most once on a request per RFC 7230.
|
|
@@ -388,4 +373,3 @@ export declare function hasMongoOperatorKeys(value: unknown): boolean;
|
|
|
388
373
|
* @since 0.35.0
|
|
389
374
|
*/
|
|
390
375
|
export declare function assertNoMongoOperators(value: unknown): void;
|
|
391
|
-
//# sourceMappingURL=security.d.ts.map
|