Aktueller Stand
This commit is contained in:
398
backend/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js
generated
vendored
Normal file
398
backend/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js
generated
vendored
Normal file
@@ -0,0 +1,398 @@
|
||||
"use strict";
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
var handler_exports = {};
|
||||
__export(handler_exports, {
|
||||
ALBProcessor: () => ALBProcessor,
|
||||
EventProcessor: () => EventProcessor,
|
||||
EventV1Processor: () => EventV1Processor,
|
||||
EventV2Processor: () => EventV2Processor,
|
||||
LatticeV2Processor: () => LatticeV2Processor,
|
||||
defaultIsContentTypeBinary: () => defaultIsContentTypeBinary,
|
||||
getProcessor: () => getProcessor,
|
||||
handle: () => handle,
|
||||
isContentEncodingBinary: () => isContentEncodingBinary,
|
||||
streamHandle: () => streamHandle
|
||||
});
|
||||
module.exports = __toCommonJS(handler_exports);
|
||||
var import_encode = require("../../utils/encode");
|
||||
function sanitizeHeaderValue(value) {
|
||||
const hasNonAscii = /[^\x00-\x7F]/.test(value);
|
||||
if (!hasNonAscii) {
|
||||
return value;
|
||||
}
|
||||
return encodeURIComponent(value);
|
||||
}
|
||||
const getRequestContext = (event) => {
|
||||
return event.requestContext;
|
||||
};
|
||||
const streamToNodeStream = async (reader, writer) => {
|
||||
let readResult = await reader.read();
|
||||
while (!readResult.done) {
|
||||
writer.write(readResult.value);
|
||||
readResult = await reader.read();
|
||||
}
|
||||
writer.end();
|
||||
};
|
||||
const streamHandle = (app) => {
|
||||
return awslambda.streamifyResponse(
|
||||
async (event, responseStream, context) => {
|
||||
const processor = getProcessor(event);
|
||||
try {
|
||||
const req = processor.createRequest(event);
|
||||
const requestContext = getRequestContext(event);
|
||||
const res = await app.fetch(req, {
|
||||
event,
|
||||
requestContext,
|
||||
context
|
||||
});
|
||||
const headers = {};
|
||||
const cookies = [];
|
||||
res.headers.forEach((value, name) => {
|
||||
if (name === "set-cookie") {
|
||||
cookies.push(value);
|
||||
} else {
|
||||
headers[name] = value;
|
||||
}
|
||||
});
|
||||
const httpResponseMetadata = {
|
||||
statusCode: res.status,
|
||||
headers,
|
||||
cookies
|
||||
};
|
||||
responseStream = awslambda.HttpResponseStream.from(responseStream, httpResponseMetadata);
|
||||
if (res.body) {
|
||||
await streamToNodeStream(res.body.getReader(), responseStream);
|
||||
} else {
|
||||
responseStream.write("");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error processing request:", error);
|
||||
responseStream.write("Internal Server Error");
|
||||
} finally {
|
||||
responseStream.end();
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
const handle = (app, { isContentTypeBinary } = { isContentTypeBinary: void 0 }) => {
|
||||
return async (event, lambdaContext) => {
|
||||
const processor = getProcessor(event);
|
||||
const req = processor.createRequest(event);
|
||||
const requestContext = getRequestContext(event);
|
||||
const res = await app.fetch(req, {
|
||||
event,
|
||||
requestContext,
|
||||
lambdaContext
|
||||
});
|
||||
return processor.createResult(event, res, { isContentTypeBinary });
|
||||
};
|
||||
};
|
||||
class EventProcessor {
|
||||
getHeaderValue(headers, key) {
|
||||
const value = headers ? Array.isArray(headers[key]) ? headers[key][0] : headers[key] : void 0;
|
||||
return value;
|
||||
}
|
||||
getDomainName(event) {
|
||||
if (event.requestContext && "domainName" in event.requestContext) {
|
||||
return event.requestContext.domainName;
|
||||
}
|
||||
const hostFromHeaders = this.getHeaderValue(event.headers, "host");
|
||||
if (hostFromHeaders) {
|
||||
return hostFromHeaders;
|
||||
}
|
||||
const multiValueHeaders = "multiValueHeaders" in event ? event.multiValueHeaders : {};
|
||||
const hostFromMultiValueHeaders = this.getHeaderValue(multiValueHeaders, "host");
|
||||
return hostFromMultiValueHeaders;
|
||||
}
|
||||
createRequest(event) {
|
||||
const queryString = this.getQueryString(event);
|
||||
const domainName = this.getDomainName(event);
|
||||
const path = this.getPath(event);
|
||||
const urlPath = `https://${domainName}${path}`;
|
||||
const url = queryString ? `${urlPath}?${queryString}` : urlPath;
|
||||
const headers = this.getHeaders(event);
|
||||
const method = this.getMethod(event);
|
||||
const requestInit = {
|
||||
headers,
|
||||
method
|
||||
};
|
||||
if (event.body) {
|
||||
requestInit.body = event.isBase64Encoded ? (0, import_encode.decodeBase64)(event.body) : event.body;
|
||||
}
|
||||
return new Request(url, requestInit);
|
||||
}
|
||||
async createResult(event, res, options) {
|
||||
const contentType = res.headers.get("content-type");
|
||||
const isContentTypeBinary = options.isContentTypeBinary ?? defaultIsContentTypeBinary;
|
||||
let isBase64Encoded = contentType && isContentTypeBinary(contentType) ? true : false;
|
||||
if (!isBase64Encoded) {
|
||||
const contentEncoding = res.headers.get("content-encoding");
|
||||
isBase64Encoded = isContentEncodingBinary(contentEncoding);
|
||||
}
|
||||
const body = isBase64Encoded ? (0, import_encode.encodeBase64)(await res.arrayBuffer()) : await res.text();
|
||||
const result = {
|
||||
body,
|
||||
statusCode: res.status,
|
||||
isBase64Encoded,
|
||||
..."multiValueHeaders" in event && event.multiValueHeaders ? {
|
||||
multiValueHeaders: {}
|
||||
} : {
|
||||
headers: {}
|
||||
}
|
||||
};
|
||||
this.setCookies(event, res, result);
|
||||
if (result.multiValueHeaders) {
|
||||
res.headers.forEach((value, key) => {
|
||||
result.multiValueHeaders[key] = [value];
|
||||
});
|
||||
} else {
|
||||
res.headers.forEach((value, key) => {
|
||||
result.headers[key] = value;
|
||||
});
|
||||
}
|
||||
return result;
|
||||
}
|
||||
setCookies(event, res, result) {
|
||||
if (res.headers.has("set-cookie")) {
|
||||
const cookies = res.headers.getSetCookie ? res.headers.getSetCookie() : Array.from(res.headers.entries()).filter(([k]) => k === "set-cookie").map(([, v]) => v);
|
||||
if (Array.isArray(cookies)) {
|
||||
this.setCookiesToResult(result, cookies);
|
||||
res.headers.delete("set-cookie");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
class EventV2Processor extends EventProcessor {
|
||||
getPath(event) {
|
||||
return event.rawPath;
|
||||
}
|
||||
getMethod(event) {
|
||||
return event.requestContext.http.method;
|
||||
}
|
||||
getQueryString(event) {
|
||||
return event.rawQueryString;
|
||||
}
|
||||
getCookies(event, headers) {
|
||||
if (Array.isArray(event.cookies)) {
|
||||
headers.set("Cookie", event.cookies.join("; "));
|
||||
}
|
||||
}
|
||||
setCookiesToResult(result, cookies) {
|
||||
result.cookies = cookies;
|
||||
}
|
||||
getHeaders(event) {
|
||||
const headers = new Headers();
|
||||
this.getCookies(event, headers);
|
||||
if (event.headers) {
|
||||
for (const [k, v] of Object.entries(event.headers)) {
|
||||
if (v) {
|
||||
headers.set(k, v);
|
||||
}
|
||||
}
|
||||
}
|
||||
return headers;
|
||||
}
|
||||
}
|
||||
const v2Processor = new EventV2Processor();
|
||||
class EventV1Processor extends EventProcessor {
|
||||
getPath(event) {
|
||||
return event.path;
|
||||
}
|
||||
getMethod(event) {
|
||||
return event.httpMethod;
|
||||
}
|
||||
getQueryString(event) {
|
||||
if (event.multiValueQueryStringParameters) {
|
||||
return Object.entries(event.multiValueQueryStringParameters || {}).filter(([, value]) => value).map(
|
||||
([key, values]) => values.map((value) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join("&")
|
||||
).join("&");
|
||||
} else {
|
||||
return Object.entries(event.queryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value || "")}`).join("&");
|
||||
}
|
||||
}
|
||||
getCookies(event, headers) {
|
||||
}
|
||||
getHeaders(event) {
|
||||
const headers = new Headers();
|
||||
this.getCookies(event, headers);
|
||||
if (event.headers) {
|
||||
for (const [k, v] of Object.entries(event.headers)) {
|
||||
if (v) {
|
||||
headers.set(k, sanitizeHeaderValue(v));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (event.multiValueHeaders) {
|
||||
for (const [k, values] of Object.entries(event.multiValueHeaders)) {
|
||||
if (values) {
|
||||
const foundK = headers.get(k);
|
||||
values.forEach((v) => {
|
||||
const sanitizedValue = sanitizeHeaderValue(v);
|
||||
return (!foundK || !foundK.includes(sanitizedValue)) && headers.append(k, sanitizedValue);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
return headers;
|
||||
}
|
||||
setCookiesToResult(result, cookies) {
|
||||
result.multiValueHeaders = {
|
||||
"set-cookie": cookies
|
||||
};
|
||||
}
|
||||
}
|
||||
const v1Processor = new EventV1Processor();
|
||||
class ALBProcessor extends EventProcessor {
|
||||
getHeaders(event) {
|
||||
const headers = new Headers();
|
||||
if (event.multiValueHeaders) {
|
||||
for (const [key, values] of Object.entries(event.multiValueHeaders)) {
|
||||
if (values && Array.isArray(values)) {
|
||||
const sanitizedValue = sanitizeHeaderValue(values.join("; "));
|
||||
headers.set(key, sanitizedValue);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (const [key, value] of Object.entries(event.headers ?? {})) {
|
||||
if (value) {
|
||||
headers.set(key, sanitizeHeaderValue(value));
|
||||
}
|
||||
}
|
||||
}
|
||||
return headers;
|
||||
}
|
||||
getPath(event) {
|
||||
return event.path;
|
||||
}
|
||||
getMethod(event) {
|
||||
return event.httpMethod;
|
||||
}
|
||||
getQueryString(event) {
|
||||
if (event.multiValueQueryStringParameters) {
|
||||
return Object.entries(event.multiValueQueryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${key}=${value.join(`&${key}=`)}`).join("&");
|
||||
} else {
|
||||
return Object.entries(event.queryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${key}=${value}`).join("&");
|
||||
}
|
||||
}
|
||||
getCookies(event, headers) {
|
||||
let cookie;
|
||||
if (event.multiValueHeaders) {
|
||||
cookie = event.multiValueHeaders["cookie"]?.join("; ");
|
||||
} else {
|
||||
cookie = event.headers ? event.headers["cookie"] : void 0;
|
||||
}
|
||||
if (cookie) {
|
||||
headers.append("Cookie", cookie);
|
||||
}
|
||||
}
|
||||
setCookiesToResult(result, cookies) {
|
||||
if (result.multiValueHeaders) {
|
||||
result.multiValueHeaders["set-cookie"] = cookies;
|
||||
} else {
|
||||
result.headers["set-cookie"] = cookies.join(", ");
|
||||
}
|
||||
}
|
||||
}
|
||||
const albProcessor = new ALBProcessor();
|
||||
class LatticeV2Processor extends EventProcessor {
|
||||
getPath(event) {
|
||||
return event.path;
|
||||
}
|
||||
getMethod(event) {
|
||||
return event.method;
|
||||
}
|
||||
getQueryString() {
|
||||
return "";
|
||||
}
|
||||
getHeaders(event) {
|
||||
const headers = new Headers();
|
||||
if (event.headers) {
|
||||
for (const [k, values] of Object.entries(event.headers)) {
|
||||
if (values) {
|
||||
const foundK = headers.get(k);
|
||||
values.forEach((v) => {
|
||||
const sanitizedValue = sanitizeHeaderValue(v);
|
||||
return (!foundK || !foundK.includes(sanitizedValue)) && headers.append(k, sanitizedValue);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
return headers;
|
||||
}
|
||||
getCookies() {
|
||||
}
|
||||
setCookiesToResult(result, cookies) {
|
||||
result.headers = {
|
||||
...result.headers,
|
||||
"set-cookie": cookies.join(", ")
|
||||
};
|
||||
}
|
||||
}
|
||||
const latticeV2Processor = new LatticeV2Processor();
|
||||
const getProcessor = (event) => {
|
||||
if (isProxyEventALB(event)) {
|
||||
return albProcessor;
|
||||
}
|
||||
if (isProxyEventV2(event)) {
|
||||
return v2Processor;
|
||||
}
|
||||
if (isLatticeEventV2(event)) {
|
||||
return latticeV2Processor;
|
||||
}
|
||||
return v1Processor;
|
||||
};
|
||||
const isProxyEventALB = (event) => {
|
||||
if (event.requestContext) {
|
||||
return Object.hasOwn(event.requestContext, "elb");
|
||||
}
|
||||
return false;
|
||||
};
|
||||
const isProxyEventV2 = (event) => {
|
||||
return Object.hasOwn(event, "rawPath");
|
||||
};
|
||||
const isLatticeEventV2 = (event) => {
|
||||
if (event.requestContext) {
|
||||
return Object.hasOwn(event.requestContext, "serviceArn");
|
||||
}
|
||||
return false;
|
||||
};
|
||||
const defaultIsContentTypeBinary = (contentType) => {
|
||||
return !/^text\/(?:plain|html|css|javascript|csv)|(?:\/|\+)(?:json|xml)\s*(?:;|$)/.test(
|
||||
contentType
|
||||
);
|
||||
};
|
||||
const isContentEncodingBinary = (contentEncoding) => {
|
||||
if (contentEncoding === null) {
|
||||
return false;
|
||||
}
|
||||
return /^(gzip|deflate|compress|br)/.test(contentEncoding);
|
||||
};
|
||||
// Annotate the CommonJS export names for ESM import in node:
|
||||
0 && (module.exports = {
|
||||
ALBProcessor,
|
||||
EventProcessor,
|
||||
EventV1Processor,
|
||||
EventV2Processor,
|
||||
LatticeV2Processor,
|
||||
defaultIsContentTypeBinary,
|
||||
getProcessor,
|
||||
handle,
|
||||
isContentEncodingBinary,
|
||||
streamHandle
|
||||
});
|
||||
32
backend/node_modules/hono/dist/cjs/adapter/aws-lambda/index.js
generated
vendored
Normal file
32
backend/node_modules/hono/dist/cjs/adapter/aws-lambda/index.js
generated
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
"use strict";
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
var aws_lambda_exports = {};
|
||||
__export(aws_lambda_exports, {
|
||||
defaultIsContentTypeBinary: () => import_handler.defaultIsContentTypeBinary,
|
||||
handle: () => import_handler.handle,
|
||||
streamHandle: () => import_handler.streamHandle
|
||||
});
|
||||
module.exports = __toCommonJS(aws_lambda_exports);
|
||||
var import_handler = require("./handler");
|
||||
// Annotate the CommonJS export names for ESM import in node:
|
||||
0 && (module.exports = {
|
||||
defaultIsContentTypeBinary,
|
||||
handle,
|
||||
streamHandle
|
||||
});
|
||||
16
backend/node_modules/hono/dist/cjs/adapter/aws-lambda/types.js
generated
vendored
Normal file
16
backend/node_modules/hono/dist/cjs/adapter/aws-lambda/types.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
var types_exports = {};
|
||||
module.exports = __toCommonJS(types_exports);
|
||||
Reference in New Issue
Block a user