@@ -23,3 +23,3 @@ // src/adapter/cloudflare-workers/utils.ts | ||
| } | ||
| const key = ASSET_MANIFEST[path] || path; | ||
| const key = ASSET_MANIFEST[path]; | ||
| if (!key) { | ||
@@ -26,0 +26,0 @@ return null; |
@@ -45,3 +45,3 @@ "use strict"; | ||
| } | ||
| const key = ASSET_MANIFEST[path] || path; | ||
| const key = ASSET_MANIFEST[path]; | ||
| if (!key) { | ||
@@ -48,0 +48,0 @@ return null; |
@@ -27,2 +27,3 @@ "use strict"; | ||
| var import_html2 = require("../utils/html"); | ||
| var import_base = require("./base"); | ||
| var import_constants = require("./constants"); | ||
@@ -45,2 +46,16 @@ var import_context = require("./context"); | ||
| }; | ||
| const resolveChildEarly = (c) => { | ||
| if (c == null || typeof c === "boolean") { | ||
| return ""; | ||
| } else if (typeof c === "string") { | ||
| return c; | ||
| } else { | ||
| const str = c.toString(); | ||
| if (!(str instanceof Promise)) { | ||
| return (0, import_html.raw)(str); | ||
| } else { | ||
| return str; | ||
| } | ||
| } | ||
| }; | ||
| const ErrorBoundary = async ({ children, fallback, fallbackRender, onError }) => { | ||
@@ -55,13 +70,22 @@ if (!children) { | ||
| let fallbackStr; | ||
| const resolveFallbackStr = async () => { | ||
| const awaitedFallback = await fallback; | ||
| if (typeof awaitedFallback === "string") { | ||
| fallbackStr = awaitedFallback; | ||
| } else { | ||
| fallbackStr = await awaitedFallback?.toString(); | ||
| if (typeof fallbackStr === "string") { | ||
| fallbackStr = (0, import_html.raw)(fallbackStr); | ||
| } | ||
| } | ||
| }; | ||
| const fallbackRes = (error) => { | ||
| onError?.(error); | ||
| return (fallbackStr || fallbackRender?.(error) || "").toString(); | ||
| return fallbackStr || fallbackRender && (0, import_base.jsx)(import_base.Fragment, {}, fallbackRender(error)) || ""; | ||
| }; | ||
| let resArray = []; | ||
| try { | ||
| resArray = children.map( | ||
| (c) => c == null || typeof c === "boolean" ? "" : c.toString() | ||
| ); | ||
| resArray = children.map(resolveChildEarly); | ||
| } catch (e) { | ||
| fallbackStr = await fallback?.toString(); | ||
| await resolveFallbackStr(); | ||
| if (e instanceof Promise) { | ||
@@ -76,11 +100,13 @@ resArray = [ | ||
| if (resArray.some((res) => res instanceof Promise)) { | ||
| fallbackStr ||= await fallback?.toString(); | ||
| await resolveFallbackStr(); | ||
| const index = errorBoundaryCounter++; | ||
| const replaceRe = RegExp(`(<template id="E:${index}"></template>.*?)(.*?)(<!--E:${index}-->)`); | ||
| const caught = false; | ||
| const catchCallback = ({ error: error2, buffer }) => { | ||
| const catchCallback = async ({ error: error2, buffer }) => { | ||
| if (caught) { | ||
| return ""; | ||
| } | ||
| const fallbackResString = fallbackRes(error2); | ||
| const fallbackResString = await (0, import_base.Fragment)({ | ||
| children: fallbackRes(error2) | ||
| }).toString(); | ||
| if (buffer) { | ||
@@ -172,3 +198,3 @@ buffer[0] = buffer[0].replace(replaceRe, fallbackResString); | ||
| } else { | ||
| return (0, import_html.raw)(resArray.join("")); | ||
| return (0, import_base.Fragment)({ children: resArray }); | ||
| } | ||
@@ -175,0 +201,0 @@ }; |
@@ -27,3 +27,13 @@ "use strict"; | ||
| const vary = res.headers.get("Vary"); | ||
| return vary && vary.includes("*"); | ||
| if (vary && vary.includes("*")) { | ||
| return true; | ||
| } | ||
| const cacheControl = res.headers.get("Cache-Control"); | ||
| if (cacheControl && /(?:^|,\s*)(?:private|no-(?:store|cache))(?:\s*(?:=|,|$))/i.test(cacheControl)) { | ||
| return true; | ||
| } | ||
| if (res.headers.has("Set-Cookie")) { | ||
| return true; | ||
| } | ||
| return false; | ||
| }; | ||
@@ -30,0 +40,0 @@ const cache = (options) => { |
@@ -50,3 +50,4 @@ "use strict"; | ||
| }; | ||
| const IPV4_REGEX = /^[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}$/; | ||
| const IPV4_OCTET_PART = "(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])"; | ||
| const IPV4_REGEX = new RegExp(`^(?:${IPV4_OCTET_PART}\\.){3}${IPV4_OCTET_PART}$`); | ||
| const distinctRemoteAddr = (remoteAddr) => { | ||
@@ -53,0 +54,0 @@ if (IPV4_REGEX.test(remoteAddr)) { |
| // src/jsx/components.ts | ||
| import { raw } from "../helper/html/index.js"; | ||
| import { HtmlEscapedCallbackPhase, resolveCallback } from "../utils/html.js"; | ||
| import { jsx, Fragment } from "./base.js"; | ||
| import { DOM_RENDERER } from "./constants.js"; | ||
@@ -21,2 +22,16 @@ import { useContext } from "./context.js"; | ||
| }; | ||
| var resolveChildEarly = (c) => { | ||
| if (c == null || typeof c === "boolean") { | ||
| return ""; | ||
| } else if (typeof c === "string") { | ||
| return c; | ||
| } else { | ||
| const str = c.toString(); | ||
| if (!(str instanceof Promise)) { | ||
| return raw(str); | ||
| } else { | ||
| return str; | ||
| } | ||
| } | ||
| }; | ||
| var ErrorBoundary = async ({ children, fallback, fallbackRender, onError }) => { | ||
@@ -31,13 +46,22 @@ if (!children) { | ||
| let fallbackStr; | ||
| const resolveFallbackStr = async () => { | ||
| const awaitedFallback = await fallback; | ||
| if (typeof awaitedFallback === "string") { | ||
| fallbackStr = awaitedFallback; | ||
| } else { | ||
| fallbackStr = await awaitedFallback?.toString(); | ||
| if (typeof fallbackStr === "string") { | ||
| fallbackStr = raw(fallbackStr); | ||
| } | ||
| } | ||
| }; | ||
| const fallbackRes = (error) => { | ||
| onError?.(error); | ||
| return (fallbackStr || fallbackRender?.(error) || "").toString(); | ||
| return fallbackStr || fallbackRender && jsx(Fragment, {}, fallbackRender(error)) || ""; | ||
| }; | ||
| let resArray = []; | ||
| try { | ||
| resArray = children.map( | ||
| (c) => c == null || typeof c === "boolean" ? "" : c.toString() | ||
| ); | ||
| resArray = children.map(resolveChildEarly); | ||
| } catch (e) { | ||
| fallbackStr = await fallback?.toString(); | ||
| await resolveFallbackStr(); | ||
| if (e instanceof Promise) { | ||
@@ -52,11 +76,13 @@ resArray = [ | ||
| if (resArray.some((res) => res instanceof Promise)) { | ||
| fallbackStr ||= await fallback?.toString(); | ||
| await resolveFallbackStr(); | ||
| const index = errorBoundaryCounter++; | ||
| const replaceRe = RegExp(`(<template id="E:${index}"></template>.*?)(.*?)(<!--E:${index}-->)`); | ||
| const caught = false; | ||
| const catchCallback = ({ error: error2, buffer }) => { | ||
| const catchCallback = async ({ error: error2, buffer }) => { | ||
| if (caught) { | ||
| return ""; | ||
| } | ||
| const fallbackResString = fallbackRes(error2); | ||
| const fallbackResString = await Fragment({ | ||
| children: fallbackRes(error2) | ||
| }).toString(); | ||
| if (buffer) { | ||
@@ -148,3 +174,3 @@ buffer[0] = buffer[0].replace(replaceRe, fallbackResString); | ||
| } else { | ||
| return raw(resArray.join("")); | ||
| return Fragment({ children: resArray }); | ||
| } | ||
@@ -151,0 +177,0 @@ }; |
@@ -5,3 +5,13 @@ // src/middleware/cache/index.ts | ||
| const vary = res.headers.get("Vary"); | ||
| return vary && vary.includes("*"); | ||
| if (vary && vary.includes("*")) { | ||
| return true; | ||
| } | ||
| const cacheControl = res.headers.get("Cache-Control"); | ||
| if (cacheControl && /(?:^|,\s*)(?:private|no-(?:store|cache))(?:\s*(?:=|,|$))/i.test(cacheControl)) { | ||
| return true; | ||
| } | ||
| if (res.headers.has("Set-Cookie")) { | ||
| return true; | ||
| } | ||
| return false; | ||
| }; | ||
@@ -8,0 +18,0 @@ var cache = (options) => { |
@@ -23,3 +23,4 @@ // src/utils/ipaddr.ts | ||
| }; | ||
| var IPV4_REGEX = /^[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}$/; | ||
| var IPV4_OCTET_PART = "(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])"; | ||
| var IPV4_REGEX = new RegExp(`^(?:${IPV4_OCTET_PART}\\.){3}${IPV4_OCTET_PART}$`); | ||
| var distinctRemoteAddr = (remoteAddr) => { | ||
@@ -26,0 +27,0 @@ if (IPV4_REGEX.test(remoteAddr)) { |
+1
-1
| { | ||
| "name": "hono", | ||
| "version": "4.11.6", | ||
| "version": "4.11.7", | ||
| "description": "Web framework built on Web Standards", | ||
@@ -5,0 +5,0 @@ "main": "dist/cjs/index.js", |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
1250855
0.17%34902
0.21%