hono 4.3.8 → 4.3.10
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/adapter/aws-lambda/handler.js +5 -1
- package/dist/cjs/adapter/aws-lambda/handler.js +5 -1
- package/dist/cjs/http-exception.js +5 -1
- package/dist/cjs/middleware/etag/index.js +2 -0
- package/dist/cjs/middleware/secure-headers/index.js +2 -1
- package/dist/http-exception.js +5 -1
- package/dist/middleware/etag/index.js +1 -0
- package/dist/middleware/secure-headers/index.js +2 -1
- package/dist/types/adapter/aws-lambda/handler.d.ts +3 -0
- package/dist/types/helper/factory/index.d.ts +1 -1
- package/dist/types/middleware/etag/index.d.ts +7 -0
- package/package.json +1 -1
|
@@ -218,7 +218,11 @@ var albProcessor = new class ALBProcessor extends EventProcessor {
|
|
|
218
218
|
return event.httpMethod;
|
|
219
219
|
}
|
|
220
220
|
getQueryString(event) {
|
|
221
|
-
|
|
221
|
+
if (event.queryStringParameters) {
|
|
222
|
+
return Object.entries(event.queryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${key}=${value}`).join("&");
|
|
223
|
+
} else {
|
|
224
|
+
return Object.entries(event.multiValueQueryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${key}=${value.join(`&${key}=`)}`).join("&");
|
|
225
|
+
}
|
|
222
226
|
}
|
|
223
227
|
getCookies(event, headers) {
|
|
224
228
|
let cookie;
|
|
@@ -250,7 +250,11 @@ const albProcessor = new class ALBProcessor extends EventProcessor {
|
|
|
250
250
|
return event.httpMethod;
|
|
251
251
|
}
|
|
252
252
|
getQueryString(event) {
|
|
253
|
-
|
|
253
|
+
if (event.queryStringParameters) {
|
|
254
|
+
return Object.entries(event.queryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${key}=${value}`).join("&");
|
|
255
|
+
} else {
|
|
256
|
+
return Object.entries(event.multiValueQueryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${key}=${value.join(`&${key}=`)}`).join("&");
|
|
257
|
+
}
|
|
254
258
|
}
|
|
255
259
|
getCookies(event, headers) {
|
|
256
260
|
let cookie;
|
|
@@ -31,7 +31,11 @@ class HTTPException extends Error {
|
|
|
31
31
|
}
|
|
32
32
|
getResponse() {
|
|
33
33
|
if (this.res) {
|
|
34
|
-
|
|
34
|
+
const newResponse = new Response(this.res.body, {
|
|
35
|
+
status: this.status,
|
|
36
|
+
headers: this.res.headers
|
|
37
|
+
});
|
|
38
|
+
return newResponse;
|
|
35
39
|
}
|
|
36
40
|
return new Response(this.message, {
|
|
37
41
|
status: this.status
|
|
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var etag_exports = {};
|
|
20
20
|
__export(etag_exports, {
|
|
21
|
+
RETAINED_304_HEADERS: () => RETAINED_304_HEADERS,
|
|
21
22
|
etag: () => etag
|
|
22
23
|
});
|
|
23
24
|
module.exports = __toCommonJS(etag_exports);
|
|
@@ -66,5 +67,6 @@ const etag = (options) => {
|
|
|
66
67
|
};
|
|
67
68
|
// Annotate the CommonJS export names for ESM import in node:
|
|
68
69
|
0 && (module.exports = {
|
|
70
|
+
RETAINED_304_HEADERS,
|
|
69
71
|
etag
|
|
70
72
|
});
|
|
@@ -22,6 +22,7 @@ __export(secure_headers_exports, {
|
|
|
22
22
|
secureHeaders: () => secureHeaders
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(secure_headers_exports);
|
|
25
|
+
var import_encode = require("../../utils/encode");
|
|
25
26
|
const HEADERS_MAP = {
|
|
26
27
|
crossOriginEmbedderPolicy: ["Cross-Origin-Embedder-Policy", "require-corp"],
|
|
27
28
|
crossOriginResourcePolicy: ["Cross-Origin-Resource-Policy", "same-origin"],
|
|
@@ -53,7 +54,7 @@ const DEFAULT_OPTIONS = {
|
|
|
53
54
|
const generateNonce = () => {
|
|
54
55
|
const buffer = new Uint8Array(16);
|
|
55
56
|
crypto.getRandomValues(buffer);
|
|
56
|
-
return
|
|
57
|
+
return (0, import_encode.encodeBase64)(buffer);
|
|
57
58
|
};
|
|
58
59
|
const NONCE = (ctx) => {
|
|
59
60
|
const nonce = ctx.get("secureHeadersNonce") || (() => {
|
package/dist/http-exception.js
CHANGED
|
@@ -9,7 +9,11 @@ var HTTPException = class extends Error {
|
|
|
9
9
|
}
|
|
10
10
|
getResponse() {
|
|
11
11
|
if (this.res) {
|
|
12
|
-
|
|
12
|
+
const newResponse = new Response(this.res.body, {
|
|
13
|
+
status: this.status,
|
|
14
|
+
headers: this.res.headers
|
|
15
|
+
});
|
|
16
|
+
return newResponse;
|
|
13
17
|
}
|
|
14
18
|
return new Response(this.message, {
|
|
15
19
|
status: this.status
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// src/middleware/secure-headers/index.ts
|
|
2
|
+
import { encodeBase64 } from "../../utils/encode.js";
|
|
2
3
|
var HEADERS_MAP = {
|
|
3
4
|
crossOriginEmbedderPolicy: ["Cross-Origin-Embedder-Policy", "require-corp"],
|
|
4
5
|
crossOriginResourcePolicy: ["Cross-Origin-Resource-Policy", "same-origin"],
|
|
@@ -30,7 +31,7 @@ var DEFAULT_OPTIONS = {
|
|
|
30
31
|
var generateNonce = () => {
|
|
31
32
|
const buffer = new Uint8Array(16);
|
|
32
33
|
crypto.getRandomValues(buffer);
|
|
33
|
-
return
|
|
34
|
+
return encodeBase64(buffer);
|
|
34
35
|
};
|
|
35
36
|
var NONCE = (ctx) => {
|
|
36
37
|
const nonce = ctx.get("secureHeadersNonce") || (() => {
|
|
@@ -51,6 +51,9 @@ export interface ALBProxyEvent {
|
|
|
51
51
|
body: string | null;
|
|
52
52
|
isBase64Encoded: boolean;
|
|
53
53
|
queryStringParameters?: Record<string, string | undefined>;
|
|
54
|
+
multiValueQueryStringParameters?: {
|
|
55
|
+
[parameterKey: string]: string[];
|
|
56
|
+
};
|
|
54
57
|
requestContext: ALBRequestContext;
|
|
55
58
|
}
|
|
56
59
|
export interface APIGatewayProxyResult {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Hono } from '../../hono';
|
|
2
2
|
import type { Env, H, HandlerResponse, Input, MiddlewareHandler } from '../../types';
|
|
3
3
|
type InitApp<E extends Env = Env> = (app: Hono<E>) => void;
|
|
4
|
-
interface CreateHandlersInterface<E extends Env, P extends string> {
|
|
4
|
+
export interface CreateHandlersInterface<E extends Env, P extends string> {
|
|
5
5
|
<I extends Input = {}, R extends HandlerResponse<any> = any>(handler1: H<E, P, I, R>): [
|
|
6
6
|
H<E, P, I, R>
|
|
7
7
|
];
|
|
@@ -3,5 +3,12 @@ type ETagOptions = {
|
|
|
3
3
|
retainedHeaders?: string[];
|
|
4
4
|
weak?: boolean;
|
|
5
5
|
};
|
|
6
|
+
/**
|
|
7
|
+
* Default headers to pass through on 304 responses. From the spec:
|
|
8
|
+
* > The response must not contain a body and must include the headers that
|
|
9
|
+
* > would have been sent in an equivalent 200 OK response: Cache-Control,
|
|
10
|
+
* > Content-Location, Date, ETag, Expires, and Vary.
|
|
11
|
+
*/
|
|
12
|
+
export declare const RETAINED_304_HEADERS: string[];
|
|
6
13
|
export declare const etag: (options?: ETagOptions) => MiddlewareHandler;
|
|
7
14
|
export {};
|