├── .gitignore ├── .prettierrc ├── README.md ├── assets ├── favicon.png └── style.css ├── index.tsx ├── lib ├── html.tsx └── statuses.ts ├── package-lock.json ├── package.json ├── tsconfig.json └── wrangler.jsonc /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /dist 3 | **/*.rs.bk 4 | Cargo.lock 5 | bin/ 6 | pkg/ 7 | wasm-pack.log 8 | worker/ 9 | node_modules/ 10 | .cargo-ok 11 | .wrangler -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "arrowParens": "avoid" 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # HTTP Raccoons API 2 | 3 | HTTP Raccoons. That's it. 4 | 5 | Link: https://httpraccoons.com/ 6 | -------------------------------------------------------------------------------- /assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonlarsson/http-raccoons/20cf571170044d21b7b98f90e749799417926266/assets/favicon.png -------------------------------------------------------------------------------- /assets/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: sans-serif; 3 | } 4 | 5 | hr { 6 | height: 7px; 7 | background-color: #bf2042; 8 | } 9 | 10 | li { 11 | margin: 10px 0; 12 | } 13 | 14 | code { 15 | background-color: #282c34; 16 | color: #fff; 17 | padding: 2px 5px; 18 | border-radius: 5px; 19 | word-break: break-all; 20 | } 21 | 22 | .instructions { 23 | font-size: 18px; 24 | } 25 | 26 | #combinedLink { 27 | text-decoration: none; 28 | color: inherit; 29 | } 30 | 31 | .status-code { 32 | color: #ff5b5b; 33 | } 34 | 35 | .file-extension { 36 | color: lightblue; 37 | } 38 | 39 | .query-real { 40 | color: yellow; 41 | } 42 | 43 | .query-wait { 44 | color: #49b3ff; 45 | } 46 | 47 | #imageGallery { 48 | display: flex; 49 | gap: 10px; 50 | flex-wrap: wrap; 51 | justify-content: space-evenly; 52 | margin: 20px 0; 53 | } 54 | 55 | #imageGalleryElement { 56 | border-bottom: 2px solid transparent; 57 | border-radius: 10px; 58 | padding-bottom: 3px; 59 | display: flex; 60 | flex-direction: column; 61 | align-items: center; 62 | gap: 2px; 63 | } 64 | 65 | #imageGalleryElement:hover { 66 | border-color: #bf2042; 67 | } 68 | 69 | #imageGalleryElement > span > a, 70 | ul > li > a { 71 | font-weight: 600; 72 | text-decoration: none; 73 | color: inherit; 74 | } 75 | 76 | #imageGalleryElement > span > a:hover, 77 | ul > li > a:hover { 78 | text-decoration: underline; 79 | } 80 | 81 | details > summary:hover { 82 | text-decoration: underline; 83 | } 84 | -------------------------------------------------------------------------------- /index.tsx: -------------------------------------------------------------------------------- 1 | import { Context, Hono } from "hono"; 2 | import type { StatusCode } from "hono/utils/http-status"; 3 | import statuses from "./lib/statuses"; 4 | import { LandingPage } from "./lib/html"; 5 | //@ts-ignore pesky typescript 6 | import styles from "./assets/style.css"; 7 | //@ts-ignore pesky typescript 8 | import favicon from "./assets/favicon.png"; 9 | 10 | const app = new Hono<{ Bindings: Bindings }>(); 11 | const availableStatuses = Object.keys(statuses); 12 | 13 | type Bindings = { 14 | CODES_KV: KVNamespace; 15 | }; 16 | 17 | type Status = { 18 | code: number; 19 | message: string; 20 | }; 21 | 22 | // Serve static assets 23 | app.get("/style.css", c => c.text(styles)); 24 | app.get("/favicon.png", c => c.text(favicon)); 25 | 26 | // Return root HTML 27 | app.get("/", c => c.html()); 28 | 29 | // Return an array of all the statuses 30 | app.get("/all", c => { 31 | const output = availableStatuses.map(status => { 32 | const statusObject: Status = statuses[status]; 33 | return { 34 | code: statusObject.code, 35 | message: statusObject.message, 36 | formats: { 37 | main: `https://httpraccoons.com/${statusObject.code}`, 38 | image: `https://httpraccoons.com/image/${statusObject.code}`, 39 | text: `https://httpraccoons.com/text/${statusObject.code}`, 40 | json: `https://httpraccoons.com/json/${statusObject.code}`, 41 | cdn: `https://cdn.httpraccoons.com/${statusObject.code}.png`, 42 | }, 43 | }; 44 | }); 45 | return c.json(output); 46 | }); 47 | 48 | // Return png 49 | app.get("/:statusImage", async c => { 50 | const statusInput = c.req.param("statusImage"); 51 | const query = c.req.query(); 52 | 53 | if (!availableStatuses.includes(statusInput) && statusInput !== "random") 54 | return c.text( 55 | `Status '${statusInput}' is not valid. Status must be one of ${availableStatuses.join( 56 | ", " 57 | )}, random`, 58 | 404 59 | ); 60 | 61 | const status = 62 | statusInput === "random" ? getRandomStatus() : statuses[statusInput]; 63 | 64 | // Wait for x milliseconds before responding if a query is specified 65 | if (useSleepFunction(query)) await sleep(determineWaitTime(query)); 66 | 67 | return respondWithImage(c, status, query); 68 | }); 69 | 70 | // Return image, text, or json 71 | app.get("/:type/:status", async c => { 72 | let { type, status: statusInput } = c.req.param(); 73 | const query = c.req.query(); 74 | 75 | if (!["png", "image", "text", "json"].includes(type)) 76 | return c.text( 77 | `Type '${type}' is not valid. Type must be one of: image, text, json.`, 78 | 400 79 | ); 80 | 81 | if (!availableStatuses.includes(statusInput) && statusInput !== "random") 82 | return c.text( 83 | `Status '${statusInput}' is not valid. Status must be one of ${availableStatuses.join( 84 | ", " 85 | )}, random`, 86 | 404 87 | ); 88 | 89 | const status = 90 | statusInput === "random" ? getRandomStatus() : statuses[statusInput]; 91 | 92 | // Wait for x milliseconds before responding if a query is specified 93 | if (useSleepFunction(query)) await sleep(determineWaitTime(query)); 94 | 95 | switch (type) { 96 | case "png": 97 | case "image": 98 | return respondWithImage(c, status, query); 99 | case "text": 100 | return c.text( 101 | `${status.code} ${status.message}`, 102 | useRealHTTPResponseCode(query) 103 | ? determineRealHTTPResponseCode(status.code) 104 | : 200 105 | ); 106 | case "json": 107 | return c.json( 108 | { 109 | code: status.code, 110 | message: status.message, 111 | formats: { 112 | main: `https://httpraccoons.com/${status.code}`, 113 | image: `https://httpraccoons.com/image/${status.code}`, 114 | text: `https://httpraccoons.com/text/${status.code}`, 115 | json: `https://httpraccoons.com/json/${status.code}`, 116 | cdn: `https://cdn.httpraccoons.com/${status.code}.png`, 117 | }, 118 | }, 119 | useRealHTTPResponseCode(query) 120 | ? determineRealHTTPResponseCode(status.code) 121 | : 200 122 | ); 123 | } 124 | }); 125 | 126 | // 404 127 | app.get("*", async c => { 128 | const imageDataBase64 = await c.env.CODES_KV.get("HTTP_404", { 129 | cacheTtl: 604_800, 130 | }); 131 | return new Response(getImageBlobFromBase64(imageDataBase64), { 132 | headers: { "Content-Type": "image/png" }, 133 | status: 404, 134 | }); 135 | }); 136 | 137 | const respondWithImage = async ( 138 | c: Context, 139 | status: Status, 140 | query: Record 141 | ) => { 142 | // Get the Base64 data from KV, and cache for 1 week 143 | const imageDataBase64 = await (c.env.CODES_KV as KVNamespace).get( 144 | `HTTP_${status.code}`, 145 | { cacheTtl: 604_800 } 146 | ); 147 | // If no KV found, return 148 | if (!imageDataBase64) 149 | return c.text( 150 | `Could not find KV results for HTTP ${status.code} (${status.message}). This is not expected and will only show if Cloudflare fails or if I forgot an image.`, 151 | 404 152 | ); 153 | 154 | const img = getImageBlobFromBase64(imageDataBase64); 155 | 156 | return new Response(img, { 157 | headers: { "Content-Type": "image/png" }, 158 | status: useRealHTTPResponseCode(query) 159 | ? determineRealHTTPResponseCode(status.code) 160 | : 200, 161 | }); 162 | }; 163 | 164 | // Turn base64 data into image blob 165 | const getImageBlobFromBase64 = (imageDataBase64: string) => { 166 | const b64String = imageDataBase64.split(",")[1]; 167 | const byteString = atob(b64String); 168 | const arrayBuffer = new ArrayBuffer(byteString.length); 169 | const intArray = new Uint8Array(arrayBuffer); 170 | for (let i = 0; i < byteString.length; i++) { 171 | intArray[i] = byteString.charCodeAt(i); 172 | } 173 | return new Blob([intArray], { type: "image/png" }); 174 | }; 175 | 176 | // Whether or not to attempt to return the requested HTTP code. Returns true if ?real or ?simulate are true 177 | const useRealHTTPResponseCode = (query: Record) => 178 | ["1", "true", "yes"].includes(query.simulate ?? query.real); 179 | 180 | // Whether or not to use the sleep function. Returns true if ?wait or ?sleep are integers 181 | const useSleepFunction = (query: Record) => 182 | Number.isInteger(Number.parseInt(query.wait ?? query.sleep)); 183 | 184 | // Queries ?real=1 OR ?simulate=1: If the code is not a valid HTTP code, return with 404. This is to prevent /999 to return a CF error due to 999 not being a valid HTTP code 185 | const determineRealHTTPResponseCode = (code: number): StatusCode => 186 | code >= 200 && code <= 599 ? (code as StatusCode) : 404; 187 | 188 | // If wait query is more than 110 seconds (110,000 ms), set time to 110,000 ms 189 | const determineWaitTime = (query: Record) => 190 | Number.parseInt(query.wait ?? query.sleep) > 110_000 191 | ? 110_000 192 | : Number.parseInt(query.wait || query.sleep); 193 | 194 | // Basic sleep util 195 | const sleep = (ms: number): Promise => 196 | new Promise(resolve => setTimeout(resolve, ms)); 197 | 198 | // Get random status 199 | const getRandomStatus = (): Status => { 200 | const keys = Object.keys(statuses).filter(status => status !== "999"); 201 | return statuses[keys[Math.floor(Math.random() * keys.length)]]; 202 | }; 203 | 204 | export default app; 205 | -------------------------------------------------------------------------------- /lib/html.tsx: -------------------------------------------------------------------------------- 1 | import statuses from "./statuses"; 2 | 3 | export const LandingPage = () => { 4 | return ( 5 | 6 | 7 | TrasHTTPandas - Raccoon HTTP Responses 8 | 9 | 10 | 11 | 12 | 13 | 14 | 18 | 22 | 26 | 27 | 28 | 32 | 36 | 40 | 41 | 42 | 43 | 44 | 45 | 46 |

TrasHTTPandas - Trash Panda HTTP Responses

47 |

48 | Made by Mozzy. Built using{" "} 49 | Cloudflare Workers.{" "} 50 | 51 | GitHub Repo 52 | 53 | . I do not own any of the raccoon images. Full credits go to the 54 | respective owners. 55 |

56 | 57 |
58 | 59 |
60 |

61 | To return image/png, use{" "} 62 | 63 | https://httpraccoons.com/ 64 | [status_code] 65 | {" "} 66 | (CDN:{" "} 67 | 68 | https://cdn.httpraccoons.com/ 69 | [status_code].png 70 | 71 | ) 72 |

73 | 74 |

75 | To return text/plain, use{" "} 76 | 77 | https://httpraccoons.com/ 78 | text/ 79 | [status_code] 80 | 81 |

82 | 83 |

84 | To return application/json, use{" "} 85 | 86 | https://httpraccoons.com/ 87 | json/ 88 | [status_code] 89 | 90 |

91 | 92 |

93 | Any{" "} 94 | 95 | [status_code] 96 | {" "} 97 | can be replaced by{" "} 98 | 99 | random 100 | {" "} 101 | to return a random status code like{" "} 102 | 103 | 104 | https://httpraccoons.com/ 105 | random 106 | 107 | 108 |

109 | 110 |

111 | To return the requested HTTP code (200-599) instead of 200 OK, add{" "} 112 | 113 | ?real=1 114 | {" "} 115 | or{" "} 116 | 117 | ?simulate=1 118 | {" "} 119 | like{" "} 120 | 121 | 122 | https://httpraccoons.com/500 123 | ?real=1 124 | 125 | 126 |

127 | 128 |

129 | To set the response time manually, add{" "} 130 | 131 | ?wait=x 132 | {" "} 133 | or{" "} 134 | 135 | ?sleep=x 136 | {" "} 137 | where x is an integer of 138 | milliseconds (max 110000) like{" "} 139 | 140 | 141 | https://httpraccoons.com/500 142 | ?wait=5000 143 | 144 | 145 |

146 | 147 |

148 | Combined, it might look like{" "} 149 | 150 | 151 | https://httpraccoons.com/ 152 | json/ 153 | 420 154 | ?simulate=true 155 | &sleep=6000 156 | 157 | 158 |

159 |
160 | 161 |
162 | 163 | 164 | 165 | JSON. 166 | stringify( 167 | statuses 168 | ) 169 | 170 | 171 | 172 |
178 | List 179 | 180 |
181 | 182 | 183 | 184 | 185 | ); 186 | }; 187 | 188 | const StatusList = () => { 189 | return ( 190 |
    191 | {Object.values(statuses).map(status => ( 192 |
  • 193 | {status.code} {status.message} - ( 194 | image) ( 195 | text) ( 196 | json) ( 197 | CDN) 198 |
  • 199 | ))} 200 |
201 | ); 202 | }; 203 | 204 | const StatusImageGallery = () => { 205 | return ( 206 |
207 | {Object.values(statuses).map(status => ( 208 |
212 | 213 | 218 | 219 | 220 | 221 | text |{" "} 222 | json |{" "} 223 | CDN 224 | 225 |
226 | ))} 227 |
228 | ); 229 | }; 230 | -------------------------------------------------------------------------------- /lib/statuses.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | "100": { 3 | code: 100, 4 | message: "Continue", 5 | cfImagesId: "8985537f-4737-4cb0-e5c0-dede4a08fd00", 6 | }, 7 | "101": { 8 | code: 101, 9 | message: "Switching Protocols", 10 | cfImagesId: "95e98a51-1626-47bf-6ddd-61fecc786200", 11 | }, 12 | "102": { 13 | code: 102, 14 | message: "Processing", 15 | cfImagesId: "11d8b978-4445-4a1a-10e3-e9a9935f1600", 16 | }, 17 | "103": { 18 | code: 103, 19 | message: "Early Hints", 20 | cfImagesId: "db6e1f21-e07e-4597-693b-b22417d00700", 21 | }, 22 | "200": { 23 | code: 200, 24 | message: "OK", 25 | cfImagesId: "5a6b198f-c2d5-43b4-9fd7-f7561cd49b00", 26 | }, 27 | "201": { 28 | code: 201, 29 | message: "Created", 30 | cfImagesId: "1badb21b-792d-4a8a-45a2-4c9e935dca00", 31 | }, 32 | "202": { 33 | code: 202, 34 | message: "Accepted", 35 | cfImagesId: "b2c1b3ce-1210-417b-5a9c-c10748e3a400", 36 | }, 37 | "203": { 38 | code: 203, 39 | message: "Non-Authoritative Information", 40 | cfImagesId: "e246b5f9-dbc4-4482-9a5b-b295041d9a00", 41 | }, 42 | "204": { 43 | code: 204, 44 | message: "No Content", 45 | cfImagesId: "23fa99a5-d733-49f7-b9fc-cb2d66e83f00", 46 | }, 47 | "205": { 48 | code: 205, 49 | message: "Reset Content", 50 | cfImagesId: "0e665270-e098-4c52-2759-2bbe4720a300", 51 | }, 52 | "206": { 53 | code: 206, 54 | message: "Partial Content", 55 | cfImagesId: "38faca35-bbbb-425f-6e24-dd1174b35600", 56 | }, 57 | "207": { 58 | code: 207, 59 | message: "Multi-Status", 60 | cfImagesId: "e7db2167-51e3-47e7-cb27-54a9cdcd2d00", 61 | }, 62 | "300": { 63 | code: 300, 64 | message: "Multiple Choices", 65 | cfImagesId: "49ce0e74-3b27-4b24-3ed7-21d0671c1700", 66 | }, 67 | "301": { 68 | code: 301, 69 | message: "Moved Permanently", 70 | cfImagesId: "ba4f4175-9de6-4991-2746-43fbd3a51200", 71 | }, 72 | "302": { 73 | code: 302, 74 | message: "Found", 75 | cfImagesId: "aedaab0d-96ff-41e8-fa73-78e4f82c4e00", 76 | }, 77 | "303": { 78 | code: 303, 79 | message: "See Other", 80 | cfImagesId: "caba9db0-f762-4a5d-eafc-a779ad401d00", 81 | }, 82 | "304": { 83 | code: 304, 84 | message: "Not Modified", 85 | cfImagesId: "08a1935f-8d71-46d4-0551-0a86e8ff6d00", 86 | }, 87 | "305": { 88 | code: 305, 89 | message: "Use Proxy", 90 | cfImagesId: "b0967372-0aaf-4923-e30c-ebb61954ad00", 91 | }, 92 | "307": { 93 | code: 307, 94 | message: "Temporary Redirect", 95 | cfImagesId: "684847ee-c3f9-4a5f-254b-72475b650300", 96 | }, 97 | "308": { 98 | code: 308, 99 | message: "Permanent Redirect", 100 | cfImagesId: "5101950c-3201-4a98-613c-43a42cce5500", 101 | }, 102 | "400": { 103 | code: 400, 104 | message: "Bad Request", 105 | cfImagesId: "f616c2d8-e4dc-4ae0-3388-d8c9fcae0500", 106 | }, 107 | "401": { 108 | code: 401, 109 | message: "Unauthorized", 110 | cfImagesId: "d919d3f2-1d46-4acd-db14-b00fd4c71000", 111 | }, 112 | "402": { 113 | code: 402, 114 | message: "Payment Required", 115 | cfImagesId: "469e69a1-c5f1-4b76-a158-11880d918900", 116 | }, 117 | "403": { 118 | code: 403, 119 | message: "Forbidden", 120 | cfImagesId: "5143d7c7-507d-48fc-2df5-7c6572aa1800", 121 | }, 122 | "404": { 123 | code: 404, 124 | message: "Not Found", 125 | cfImagesId: "c03f8ea3-fe8e-4e98-3aa6-5ed762a1b000", 126 | }, 127 | "405": { 128 | code: 405, 129 | message: "Method Not Allowed", 130 | cfImagesId: "50964e5b-1f64-44b0-8622-7e1775297e00", 131 | }, 132 | "406": { 133 | code: 406, 134 | message: "Not Acceptable", 135 | cfImagesId: "b76bf45b-a77a-4559-63ce-4295739be600", 136 | }, 137 | "407": { 138 | code: 407, 139 | message: "Proxy Authentication Required", 140 | cfImagesId: "157fba96-7aa7-4a55-011f-07e637915100", 141 | }, 142 | "408": { 143 | code: 408, 144 | message: "Request Timeout", 145 | cfImagesId: "8cbf6ef2-e3e0-496c-cad7-281bececdb00", 146 | }, 147 | "409": { 148 | code: 409, 149 | message: "Conflict", 150 | cfImagesId: "2514c2db-a95c-4ab9-3a70-9a078bf2f300", 151 | }, 152 | "410": { 153 | code: 410, 154 | message: "Gone", 155 | cfImagesId: "06958d42-3b29-46ca-ebe8-025d0400a600", 156 | }, 157 | "411": { 158 | code: 411, 159 | message: "Length Required", 160 | cfImagesId: "5435f7f2-84f5-40d8-8194-7d938c273b00", 161 | }, 162 | "412": { 163 | code: 412, 164 | message: "Precondition Failed", 165 | cfImagesId: "067ce90c-fde0-4a49-b063-d553c35e6b00", 166 | }, 167 | "413": { 168 | code: 413, 169 | message: "Payload Too Large", 170 | cfImagesId: "913c133a-bb2a-45fb-f681-a7dd42fa0600", 171 | }, 172 | "414": { 173 | code: 414, 174 | message: "URI Too Long", 175 | cfImagesId: "cdaaadf2-55b2-4bf3-6c9c-0ebaeb19d700", 176 | }, 177 | "415": { 178 | code: 415, 179 | message: "Unsupported Media Type", 180 | cfImagesId: "ed49fb08-f1aa-4c55-0c2e-c17b54b0bc00", 181 | }, 182 | "416": { 183 | code: 416, 184 | message: "Range Not Satisfiable", 185 | cfImagesId: "9d34ec66-8bcb-4d86-e6a2-a7458a559900", 186 | }, 187 | "417": { 188 | code: 417, 189 | message: "Expectation Failed", 190 | cfImagesId: "17087e13-2575-4847-7683-9a2d6e2fc300", 191 | }, 192 | "418": { 193 | code: 418, 194 | message: "I'm a teapot", 195 | cfImagesId: "a18f1d60-e301-4b3c-d973-2cafd28fb900", 196 | }, 197 | "420": { 198 | code: 420, 199 | message: "Enhance Your Calm", 200 | cfImagesId: "d08790bb-ad12-4d8d-5af9-e2f079a42200", 201 | }, 202 | "421": { 203 | code: 421, 204 | message: "Misdirected Request", 205 | cfImagesId: "d3e4b272-2ed8-4f74-94ed-9979ca164900", 206 | }, 207 | "422": { 208 | code: 422, 209 | message: "Unprocessable Entity", 210 | cfImagesId: "82c3202b-3668-42c8-63dd-d33f27ba8800", 211 | }, 212 | "423": { 213 | code: 423, 214 | message: "Locked", 215 | cfImagesId: "24690cc5-e538-46d0-65a1-7293732aee00", 216 | }, 217 | "424": { 218 | code: 424, 219 | message: "Failed Dependency", 220 | cfImagesId: "ffd01d77-d798-46cc-d41a-b80188862e00", 221 | }, 222 | "425": { 223 | code: 425, 224 | message: "Too Early", 225 | cfImagesId: "debd2892-8236-4b89-9659-66ecf8a96c00", 226 | }, 227 | "426": { 228 | code: 426, 229 | message: "Upgrade Required", 230 | cfImagesId: "ed2b20a9-be48-4342-455a-8c6a926f1000", 231 | }, 232 | "428": { 233 | code: 428, 234 | message: "Preconditional Required", 235 | cfImagesId: "4e56f8f4-b6a8-4b8f-8b61-65d49f194400", 236 | }, 237 | "429": { 238 | code: 429, 239 | message: "Too Many Requests", 240 | cfImagesId: "69094b2f-e989-4cd7-3bd8-e9c21c76f400", 241 | }, 242 | "431": { 243 | code: 431, 244 | message: "Request Header Fields Too Large", 245 | cfImagesId: "bd09a02c-1304-4f95-2b91-a9c1c6fbe300", 246 | }, 247 | "451": { 248 | code: 451, 249 | message: "Unavailable For Legal Reasons", 250 | cfImagesId: "9ff4e693-f9a0-4112-c52d-c6f376e1c300", 251 | }, 252 | "500": { 253 | code: 500, 254 | message: "Internal Server Error", 255 | cfImagesId: "a14f3546-a21c-43c3-b850-3750a11d9f00", 256 | }, 257 | "501": { 258 | code: 501, 259 | message: "Not Implemented", 260 | cfImagesId: "e55b107c-0bae-458e-1c63-d9284b4f2300", 261 | }, 262 | "502": { 263 | code: 502, 264 | message: "Bad Gateway", 265 | cfImagesId: "73782226-bfc6-47b4-b726-1e416ca46d00", 266 | }, 267 | "503": { 268 | code: 503, 269 | message: "Service Unavailable", 270 | cfImagesId: "f07b97f4-8368-4d7d-f51a-2804c60b2c00", 271 | }, 272 | "504": { 273 | code: 504, 274 | message: "Gateway Timeout", 275 | cfImagesId: "8e5665cb-e419-4cad-f437-1651afb41400", 276 | }, 277 | "505": { 278 | code: 505, 279 | message: "HTTP Version Not Supported", 280 | cfImagesId: "8da67cf7-bf6f-4dd9-36ea-06023e8b2a00", 281 | }, 282 | "506": { 283 | code: 506, 284 | message: "Variant Also Negotiates", 285 | cfImagesId: "d7913b0e-bb5b-48c7-bed7-3b1c4b4cd600", 286 | }, 287 | "507": { 288 | code: 507, 289 | message: "Insufficient Storage", 290 | cfImagesId: "e412084d-ea24-4af8-edc8-ec0ec57d2100", 291 | }, 292 | "508": { 293 | code: 508, 294 | message: "Loop Detected", 295 | cfImagesId: "fc616d35-9212-4e3f-d32d-f6dcd3f19200", 296 | }, 297 | "510": { 298 | code: 510, 299 | message: "Not Extended", 300 | cfImagesId: "1dfd25ee-0624-4eb9-f269-2b4e928f2300", 301 | }, 302 | "511": { 303 | code: 511, 304 | message: "Network Authentication Required", 305 | cfImagesId: "e478e63d-9356-4e61-8c47-f5c9298c7900", 306 | }, 307 | "999": { 308 | code: 999, 309 | message: "No Raccoon Found :(", 310 | cfImagesId: "16fa11f5-3f84-4d3d-b2cb-39b28ee2c900", 311 | }, 312 | }; 313 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "trashttpandas", 3 | "version": "2.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "trashttpandas", 9 | "version": "2.0.0", 10 | "license": "MIT", 11 | "dependencies": { 12 | "hono": "^4.1.3" 13 | }, 14 | "devDependencies": { 15 | "@cloudflare/workers-types": "^4.20240320.1", 16 | "wrangler": "^4.14.4" 17 | } 18 | }, 19 | "node_modules/@cloudflare/kv-asset-handler": { 20 | "version": "0.4.0", 21 | "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.0.tgz", 22 | "integrity": "sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==", 23 | "dev": true, 24 | "license": "MIT OR Apache-2.0", 25 | "dependencies": { 26 | "mime": "^3.0.0" 27 | }, 28 | "engines": { 29 | "node": ">=18.0.0" 30 | } 31 | }, 32 | "node_modules/@cloudflare/unenv-preset": { 33 | "version": "2.3.1", 34 | "resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.3.1.tgz", 35 | "integrity": "sha512-Xq57Qd+ADpt6hibcVBO0uLG9zzRgyRhfCUgBT9s+g3+3Ivg5zDyVgLFy40ES1VdNcu8rPNSivm9A+kGP5IVaPg==", 36 | "dev": true, 37 | "license": "MIT OR Apache-2.0", 38 | "peerDependencies": { 39 | "unenv": "2.0.0-rc.15", 40 | "workerd": "^1.20250320.0" 41 | }, 42 | "peerDependenciesMeta": { 43 | "workerd": { 44 | "optional": true 45 | } 46 | } 47 | }, 48 | "node_modules/@cloudflare/workerd-darwin-64": { 49 | "version": "1.20250507.0", 50 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250507.0.tgz", 51 | "integrity": "sha512-xC+8hmQuOUUNCVT9DWpLMfxhR4Xs4kI8v7Bkybh4pzGC85moH6fMfCBNaP0YQCNAA/BR56aL/AwfvMVGskTK/A==", 52 | "cpu": [ 53 | "x64" 54 | ], 55 | "dev": true, 56 | "license": "Apache-2.0", 57 | "optional": true, 58 | "os": [ 59 | "darwin" 60 | ], 61 | "engines": { 62 | "node": ">=16" 63 | } 64 | }, 65 | "node_modules/@cloudflare/workerd-darwin-arm64": { 66 | "version": "1.20250507.0", 67 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250507.0.tgz", 68 | "integrity": "sha512-Oynff5H8yM4trfUFaKdkOvPV3jac8mg7QC19ILZluCVgLx/JGEVLEJ7do1Na9rLqV8CK4gmUXPrUMX7uerhQgg==", 69 | "cpu": [ 70 | "arm64" 71 | ], 72 | "dev": true, 73 | "license": "Apache-2.0", 74 | "optional": true, 75 | "os": [ 76 | "darwin" 77 | ], 78 | "engines": { 79 | "node": ">=16" 80 | } 81 | }, 82 | "node_modules/@cloudflare/workerd-linux-64": { 83 | "version": "1.20250507.0", 84 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250507.0.tgz", 85 | "integrity": "sha512-/HAA+Zg/R7Q/Smyl835FUFKjotZN1UzN9j/BHBd0xKmKov97QkXAX8gsyGnyKqRReIOinp8x/8+UebTICR7VJw==", 86 | "cpu": [ 87 | "x64" 88 | ], 89 | "dev": true, 90 | "license": "Apache-2.0", 91 | "optional": true, 92 | "os": [ 93 | "linux" 94 | ], 95 | "engines": { 96 | "node": ">=16" 97 | } 98 | }, 99 | "node_modules/@cloudflare/workerd-linux-arm64": { 100 | "version": "1.20250507.0", 101 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250507.0.tgz", 102 | "integrity": "sha512-NMPibSdOYeycU0IrKkgOESFJQy7dEpHvuatZxQxlT+mIQK0INzI3irp2kKxhF99s25kPC4p+xg9bU3ugTrs3VQ==", 103 | "cpu": [ 104 | "arm64" 105 | ], 106 | "dev": true, 107 | "license": "Apache-2.0", 108 | "optional": true, 109 | "os": [ 110 | "linux" 111 | ], 112 | "engines": { 113 | "node": ">=16" 114 | } 115 | }, 116 | "node_modules/@cloudflare/workerd-windows-64": { 117 | "version": "1.20250507.0", 118 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250507.0.tgz", 119 | "integrity": "sha512-c91fhNP8ufycdIDqjVyKTqeb4ewkbAYXFQbLreMVgh4LLQQPDDEte8wCdmaFy5bIL0M9d85PpdCq51RCzq/FaQ==", 120 | "cpu": [ 121 | "x64" 122 | ], 123 | "dev": true, 124 | "license": "Apache-2.0", 125 | "optional": true, 126 | "os": [ 127 | "win32" 128 | ], 129 | "engines": { 130 | "node": ">=16" 131 | } 132 | }, 133 | "node_modules/@cloudflare/workers-types": { 134 | "version": "4.20250510.0", 135 | "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20250510.0.tgz", 136 | "integrity": "sha512-VLdSYUooX2QhdlzyBnnLAqa5B3xWyr5vdvya9NZk2BJNmRt2iblSLunj7iBKiW9J+SIBHz7c+kUzUJKoFLKRjg==", 137 | "dev": true, 138 | "license": "MIT OR Apache-2.0" 139 | }, 140 | "node_modules/@cspotcode/source-map-support": { 141 | "version": "0.8.1", 142 | "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", 143 | "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", 144 | "dev": true, 145 | "license": "MIT", 146 | "dependencies": { 147 | "@jridgewell/trace-mapping": "0.3.9" 148 | }, 149 | "engines": { 150 | "node": ">=12" 151 | } 152 | }, 153 | "node_modules/@emnapi/runtime": { 154 | "version": "1.4.3", 155 | "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", 156 | "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", 157 | "dev": true, 158 | "license": "MIT", 159 | "optional": true, 160 | "dependencies": { 161 | "tslib": "^2.4.0" 162 | } 163 | }, 164 | "node_modules/@esbuild/aix-ppc64": { 165 | "version": "0.25.4", 166 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", 167 | "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", 168 | "cpu": [ 169 | "ppc64" 170 | ], 171 | "dev": true, 172 | "license": "MIT", 173 | "optional": true, 174 | "os": [ 175 | "aix" 176 | ], 177 | "engines": { 178 | "node": ">=18" 179 | } 180 | }, 181 | "node_modules/@esbuild/android-arm": { 182 | "version": "0.25.4", 183 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", 184 | "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", 185 | "cpu": [ 186 | "arm" 187 | ], 188 | "dev": true, 189 | "license": "MIT", 190 | "optional": true, 191 | "os": [ 192 | "android" 193 | ], 194 | "engines": { 195 | "node": ">=18" 196 | } 197 | }, 198 | "node_modules/@esbuild/android-arm64": { 199 | "version": "0.25.4", 200 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", 201 | "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", 202 | "cpu": [ 203 | "arm64" 204 | ], 205 | "dev": true, 206 | "license": "MIT", 207 | "optional": true, 208 | "os": [ 209 | "android" 210 | ], 211 | "engines": { 212 | "node": ">=18" 213 | } 214 | }, 215 | "node_modules/@esbuild/android-x64": { 216 | "version": "0.25.4", 217 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", 218 | "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", 219 | "cpu": [ 220 | "x64" 221 | ], 222 | "dev": true, 223 | "license": "MIT", 224 | "optional": true, 225 | "os": [ 226 | "android" 227 | ], 228 | "engines": { 229 | "node": ">=18" 230 | } 231 | }, 232 | "node_modules/@esbuild/darwin-arm64": { 233 | "version": "0.25.4", 234 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", 235 | "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", 236 | "cpu": [ 237 | "arm64" 238 | ], 239 | "dev": true, 240 | "license": "MIT", 241 | "optional": true, 242 | "os": [ 243 | "darwin" 244 | ], 245 | "engines": { 246 | "node": ">=18" 247 | } 248 | }, 249 | "node_modules/@esbuild/darwin-x64": { 250 | "version": "0.25.4", 251 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", 252 | "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", 253 | "cpu": [ 254 | "x64" 255 | ], 256 | "dev": true, 257 | "license": "MIT", 258 | "optional": true, 259 | "os": [ 260 | "darwin" 261 | ], 262 | "engines": { 263 | "node": ">=18" 264 | } 265 | }, 266 | "node_modules/@esbuild/freebsd-arm64": { 267 | "version": "0.25.4", 268 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", 269 | "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", 270 | "cpu": [ 271 | "arm64" 272 | ], 273 | "dev": true, 274 | "license": "MIT", 275 | "optional": true, 276 | "os": [ 277 | "freebsd" 278 | ], 279 | "engines": { 280 | "node": ">=18" 281 | } 282 | }, 283 | "node_modules/@esbuild/freebsd-x64": { 284 | "version": "0.25.4", 285 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", 286 | "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", 287 | "cpu": [ 288 | "x64" 289 | ], 290 | "dev": true, 291 | "license": "MIT", 292 | "optional": true, 293 | "os": [ 294 | "freebsd" 295 | ], 296 | "engines": { 297 | "node": ">=18" 298 | } 299 | }, 300 | "node_modules/@esbuild/linux-arm": { 301 | "version": "0.25.4", 302 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", 303 | "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", 304 | "cpu": [ 305 | "arm" 306 | ], 307 | "dev": true, 308 | "license": "MIT", 309 | "optional": true, 310 | "os": [ 311 | "linux" 312 | ], 313 | "engines": { 314 | "node": ">=18" 315 | } 316 | }, 317 | "node_modules/@esbuild/linux-arm64": { 318 | "version": "0.25.4", 319 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", 320 | "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", 321 | "cpu": [ 322 | "arm64" 323 | ], 324 | "dev": true, 325 | "license": "MIT", 326 | "optional": true, 327 | "os": [ 328 | "linux" 329 | ], 330 | "engines": { 331 | "node": ">=18" 332 | } 333 | }, 334 | "node_modules/@esbuild/linux-ia32": { 335 | "version": "0.25.4", 336 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", 337 | "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", 338 | "cpu": [ 339 | "ia32" 340 | ], 341 | "dev": true, 342 | "license": "MIT", 343 | "optional": true, 344 | "os": [ 345 | "linux" 346 | ], 347 | "engines": { 348 | "node": ">=18" 349 | } 350 | }, 351 | "node_modules/@esbuild/linux-loong64": { 352 | "version": "0.25.4", 353 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", 354 | "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", 355 | "cpu": [ 356 | "loong64" 357 | ], 358 | "dev": true, 359 | "license": "MIT", 360 | "optional": true, 361 | "os": [ 362 | "linux" 363 | ], 364 | "engines": { 365 | "node": ">=18" 366 | } 367 | }, 368 | "node_modules/@esbuild/linux-mips64el": { 369 | "version": "0.25.4", 370 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", 371 | "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", 372 | "cpu": [ 373 | "mips64el" 374 | ], 375 | "dev": true, 376 | "license": "MIT", 377 | "optional": true, 378 | "os": [ 379 | "linux" 380 | ], 381 | "engines": { 382 | "node": ">=18" 383 | } 384 | }, 385 | "node_modules/@esbuild/linux-ppc64": { 386 | "version": "0.25.4", 387 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", 388 | "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", 389 | "cpu": [ 390 | "ppc64" 391 | ], 392 | "dev": true, 393 | "license": "MIT", 394 | "optional": true, 395 | "os": [ 396 | "linux" 397 | ], 398 | "engines": { 399 | "node": ">=18" 400 | } 401 | }, 402 | "node_modules/@esbuild/linux-riscv64": { 403 | "version": "0.25.4", 404 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", 405 | "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", 406 | "cpu": [ 407 | "riscv64" 408 | ], 409 | "dev": true, 410 | "license": "MIT", 411 | "optional": true, 412 | "os": [ 413 | "linux" 414 | ], 415 | "engines": { 416 | "node": ">=18" 417 | } 418 | }, 419 | "node_modules/@esbuild/linux-s390x": { 420 | "version": "0.25.4", 421 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", 422 | "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", 423 | "cpu": [ 424 | "s390x" 425 | ], 426 | "dev": true, 427 | "license": "MIT", 428 | "optional": true, 429 | "os": [ 430 | "linux" 431 | ], 432 | "engines": { 433 | "node": ">=18" 434 | } 435 | }, 436 | "node_modules/@esbuild/linux-x64": { 437 | "version": "0.25.4", 438 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", 439 | "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", 440 | "cpu": [ 441 | "x64" 442 | ], 443 | "dev": true, 444 | "license": "MIT", 445 | "optional": true, 446 | "os": [ 447 | "linux" 448 | ], 449 | "engines": { 450 | "node": ">=18" 451 | } 452 | }, 453 | "node_modules/@esbuild/netbsd-arm64": { 454 | "version": "0.25.4", 455 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", 456 | "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", 457 | "cpu": [ 458 | "arm64" 459 | ], 460 | "dev": true, 461 | "license": "MIT", 462 | "optional": true, 463 | "os": [ 464 | "netbsd" 465 | ], 466 | "engines": { 467 | "node": ">=18" 468 | } 469 | }, 470 | "node_modules/@esbuild/netbsd-x64": { 471 | "version": "0.25.4", 472 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", 473 | "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", 474 | "cpu": [ 475 | "x64" 476 | ], 477 | "dev": true, 478 | "license": "MIT", 479 | "optional": true, 480 | "os": [ 481 | "netbsd" 482 | ], 483 | "engines": { 484 | "node": ">=18" 485 | } 486 | }, 487 | "node_modules/@esbuild/openbsd-arm64": { 488 | "version": "0.25.4", 489 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", 490 | "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", 491 | "cpu": [ 492 | "arm64" 493 | ], 494 | "dev": true, 495 | "license": "MIT", 496 | "optional": true, 497 | "os": [ 498 | "openbsd" 499 | ], 500 | "engines": { 501 | "node": ">=18" 502 | } 503 | }, 504 | "node_modules/@esbuild/openbsd-x64": { 505 | "version": "0.25.4", 506 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", 507 | "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", 508 | "cpu": [ 509 | "x64" 510 | ], 511 | "dev": true, 512 | "license": "MIT", 513 | "optional": true, 514 | "os": [ 515 | "openbsd" 516 | ], 517 | "engines": { 518 | "node": ">=18" 519 | } 520 | }, 521 | "node_modules/@esbuild/sunos-x64": { 522 | "version": "0.25.4", 523 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", 524 | "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", 525 | "cpu": [ 526 | "x64" 527 | ], 528 | "dev": true, 529 | "license": "MIT", 530 | "optional": true, 531 | "os": [ 532 | "sunos" 533 | ], 534 | "engines": { 535 | "node": ">=18" 536 | } 537 | }, 538 | "node_modules/@esbuild/win32-arm64": { 539 | "version": "0.25.4", 540 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", 541 | "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", 542 | "cpu": [ 543 | "arm64" 544 | ], 545 | "dev": true, 546 | "license": "MIT", 547 | "optional": true, 548 | "os": [ 549 | "win32" 550 | ], 551 | "engines": { 552 | "node": ">=18" 553 | } 554 | }, 555 | "node_modules/@esbuild/win32-ia32": { 556 | "version": "0.25.4", 557 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", 558 | "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", 559 | "cpu": [ 560 | "ia32" 561 | ], 562 | "dev": true, 563 | "license": "MIT", 564 | "optional": true, 565 | "os": [ 566 | "win32" 567 | ], 568 | "engines": { 569 | "node": ">=18" 570 | } 571 | }, 572 | "node_modules/@esbuild/win32-x64": { 573 | "version": "0.25.4", 574 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", 575 | "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", 576 | "cpu": [ 577 | "x64" 578 | ], 579 | "dev": true, 580 | "license": "MIT", 581 | "optional": true, 582 | "os": [ 583 | "win32" 584 | ], 585 | "engines": { 586 | "node": ">=18" 587 | } 588 | }, 589 | "node_modules/@fastify/busboy": { 590 | "version": "2.1.1", 591 | "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", 592 | "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", 593 | "dev": true, 594 | "license": "MIT", 595 | "engines": { 596 | "node": ">=14" 597 | } 598 | }, 599 | "node_modules/@img/sharp-darwin-arm64": { 600 | "version": "0.33.5", 601 | "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", 602 | "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", 603 | "cpu": [ 604 | "arm64" 605 | ], 606 | "dev": true, 607 | "license": "Apache-2.0", 608 | "optional": true, 609 | "os": [ 610 | "darwin" 611 | ], 612 | "engines": { 613 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 614 | }, 615 | "funding": { 616 | "url": "https://opencollective.com/libvips" 617 | }, 618 | "optionalDependencies": { 619 | "@img/sharp-libvips-darwin-arm64": "1.0.4" 620 | } 621 | }, 622 | "node_modules/@img/sharp-darwin-x64": { 623 | "version": "0.33.5", 624 | "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", 625 | "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", 626 | "cpu": [ 627 | "x64" 628 | ], 629 | "dev": true, 630 | "license": "Apache-2.0", 631 | "optional": true, 632 | "os": [ 633 | "darwin" 634 | ], 635 | "engines": { 636 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 637 | }, 638 | "funding": { 639 | "url": "https://opencollective.com/libvips" 640 | }, 641 | "optionalDependencies": { 642 | "@img/sharp-libvips-darwin-x64": "1.0.4" 643 | } 644 | }, 645 | "node_modules/@img/sharp-libvips-darwin-arm64": { 646 | "version": "1.0.4", 647 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", 648 | "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", 649 | "cpu": [ 650 | "arm64" 651 | ], 652 | "dev": true, 653 | "license": "LGPL-3.0-or-later", 654 | "optional": true, 655 | "os": [ 656 | "darwin" 657 | ], 658 | "funding": { 659 | "url": "https://opencollective.com/libvips" 660 | } 661 | }, 662 | "node_modules/@img/sharp-libvips-darwin-x64": { 663 | "version": "1.0.4", 664 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", 665 | "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", 666 | "cpu": [ 667 | "x64" 668 | ], 669 | "dev": true, 670 | "license": "LGPL-3.0-or-later", 671 | "optional": true, 672 | "os": [ 673 | "darwin" 674 | ], 675 | "funding": { 676 | "url": "https://opencollective.com/libvips" 677 | } 678 | }, 679 | "node_modules/@img/sharp-libvips-linux-arm": { 680 | "version": "1.0.5", 681 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", 682 | "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", 683 | "cpu": [ 684 | "arm" 685 | ], 686 | "dev": true, 687 | "license": "LGPL-3.0-or-later", 688 | "optional": true, 689 | "os": [ 690 | "linux" 691 | ], 692 | "funding": { 693 | "url": "https://opencollective.com/libvips" 694 | } 695 | }, 696 | "node_modules/@img/sharp-libvips-linux-arm64": { 697 | "version": "1.0.4", 698 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", 699 | "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", 700 | "cpu": [ 701 | "arm64" 702 | ], 703 | "dev": true, 704 | "license": "LGPL-3.0-or-later", 705 | "optional": true, 706 | "os": [ 707 | "linux" 708 | ], 709 | "funding": { 710 | "url": "https://opencollective.com/libvips" 711 | } 712 | }, 713 | "node_modules/@img/sharp-libvips-linux-s390x": { 714 | "version": "1.0.4", 715 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", 716 | "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", 717 | "cpu": [ 718 | "s390x" 719 | ], 720 | "dev": true, 721 | "license": "LGPL-3.0-or-later", 722 | "optional": true, 723 | "os": [ 724 | "linux" 725 | ], 726 | "funding": { 727 | "url": "https://opencollective.com/libvips" 728 | } 729 | }, 730 | "node_modules/@img/sharp-libvips-linux-x64": { 731 | "version": "1.0.4", 732 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", 733 | "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", 734 | "cpu": [ 735 | "x64" 736 | ], 737 | "dev": true, 738 | "license": "LGPL-3.0-or-later", 739 | "optional": true, 740 | "os": [ 741 | "linux" 742 | ], 743 | "funding": { 744 | "url": "https://opencollective.com/libvips" 745 | } 746 | }, 747 | "node_modules/@img/sharp-libvips-linuxmusl-arm64": { 748 | "version": "1.0.4", 749 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", 750 | "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", 751 | "cpu": [ 752 | "arm64" 753 | ], 754 | "dev": true, 755 | "license": "LGPL-3.0-or-later", 756 | "optional": true, 757 | "os": [ 758 | "linux" 759 | ], 760 | "funding": { 761 | "url": "https://opencollective.com/libvips" 762 | } 763 | }, 764 | "node_modules/@img/sharp-libvips-linuxmusl-x64": { 765 | "version": "1.0.4", 766 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", 767 | "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", 768 | "cpu": [ 769 | "x64" 770 | ], 771 | "dev": true, 772 | "license": "LGPL-3.0-or-later", 773 | "optional": true, 774 | "os": [ 775 | "linux" 776 | ], 777 | "funding": { 778 | "url": "https://opencollective.com/libvips" 779 | } 780 | }, 781 | "node_modules/@img/sharp-linux-arm": { 782 | "version": "0.33.5", 783 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", 784 | "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", 785 | "cpu": [ 786 | "arm" 787 | ], 788 | "dev": true, 789 | "license": "Apache-2.0", 790 | "optional": true, 791 | "os": [ 792 | "linux" 793 | ], 794 | "engines": { 795 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 796 | }, 797 | "funding": { 798 | "url": "https://opencollective.com/libvips" 799 | }, 800 | "optionalDependencies": { 801 | "@img/sharp-libvips-linux-arm": "1.0.5" 802 | } 803 | }, 804 | "node_modules/@img/sharp-linux-arm64": { 805 | "version": "0.33.5", 806 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", 807 | "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", 808 | "cpu": [ 809 | "arm64" 810 | ], 811 | "dev": true, 812 | "license": "Apache-2.0", 813 | "optional": true, 814 | "os": [ 815 | "linux" 816 | ], 817 | "engines": { 818 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 819 | }, 820 | "funding": { 821 | "url": "https://opencollective.com/libvips" 822 | }, 823 | "optionalDependencies": { 824 | "@img/sharp-libvips-linux-arm64": "1.0.4" 825 | } 826 | }, 827 | "node_modules/@img/sharp-linux-s390x": { 828 | "version": "0.33.5", 829 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", 830 | "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", 831 | "cpu": [ 832 | "s390x" 833 | ], 834 | "dev": true, 835 | "license": "Apache-2.0", 836 | "optional": true, 837 | "os": [ 838 | "linux" 839 | ], 840 | "engines": { 841 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 842 | }, 843 | "funding": { 844 | "url": "https://opencollective.com/libvips" 845 | }, 846 | "optionalDependencies": { 847 | "@img/sharp-libvips-linux-s390x": "1.0.4" 848 | } 849 | }, 850 | "node_modules/@img/sharp-linux-x64": { 851 | "version": "0.33.5", 852 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", 853 | "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", 854 | "cpu": [ 855 | "x64" 856 | ], 857 | "dev": true, 858 | "license": "Apache-2.0", 859 | "optional": true, 860 | "os": [ 861 | "linux" 862 | ], 863 | "engines": { 864 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 865 | }, 866 | "funding": { 867 | "url": "https://opencollective.com/libvips" 868 | }, 869 | "optionalDependencies": { 870 | "@img/sharp-libvips-linux-x64": "1.0.4" 871 | } 872 | }, 873 | "node_modules/@img/sharp-linuxmusl-arm64": { 874 | "version": "0.33.5", 875 | "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", 876 | "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", 877 | "cpu": [ 878 | "arm64" 879 | ], 880 | "dev": true, 881 | "license": "Apache-2.0", 882 | "optional": true, 883 | "os": [ 884 | "linux" 885 | ], 886 | "engines": { 887 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 888 | }, 889 | "funding": { 890 | "url": "https://opencollective.com/libvips" 891 | }, 892 | "optionalDependencies": { 893 | "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" 894 | } 895 | }, 896 | "node_modules/@img/sharp-linuxmusl-x64": { 897 | "version": "0.33.5", 898 | "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", 899 | "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", 900 | "cpu": [ 901 | "x64" 902 | ], 903 | "dev": true, 904 | "license": "Apache-2.0", 905 | "optional": true, 906 | "os": [ 907 | "linux" 908 | ], 909 | "engines": { 910 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 911 | }, 912 | "funding": { 913 | "url": "https://opencollective.com/libvips" 914 | }, 915 | "optionalDependencies": { 916 | "@img/sharp-libvips-linuxmusl-x64": "1.0.4" 917 | } 918 | }, 919 | "node_modules/@img/sharp-wasm32": { 920 | "version": "0.33.5", 921 | "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", 922 | "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", 923 | "cpu": [ 924 | "wasm32" 925 | ], 926 | "dev": true, 927 | "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", 928 | "optional": true, 929 | "dependencies": { 930 | "@emnapi/runtime": "^1.2.0" 931 | }, 932 | "engines": { 933 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 934 | }, 935 | "funding": { 936 | "url": "https://opencollective.com/libvips" 937 | } 938 | }, 939 | "node_modules/@img/sharp-win32-ia32": { 940 | "version": "0.33.5", 941 | "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", 942 | "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", 943 | "cpu": [ 944 | "ia32" 945 | ], 946 | "dev": true, 947 | "license": "Apache-2.0 AND LGPL-3.0-or-later", 948 | "optional": true, 949 | "os": [ 950 | "win32" 951 | ], 952 | "engines": { 953 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 954 | }, 955 | "funding": { 956 | "url": "https://opencollective.com/libvips" 957 | } 958 | }, 959 | "node_modules/@img/sharp-win32-x64": { 960 | "version": "0.33.5", 961 | "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", 962 | "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", 963 | "cpu": [ 964 | "x64" 965 | ], 966 | "dev": true, 967 | "license": "Apache-2.0 AND LGPL-3.0-or-later", 968 | "optional": true, 969 | "os": [ 970 | "win32" 971 | ], 972 | "engines": { 973 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 974 | }, 975 | "funding": { 976 | "url": "https://opencollective.com/libvips" 977 | } 978 | }, 979 | "node_modules/@jridgewell/resolve-uri": { 980 | "version": "3.1.2", 981 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 982 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 983 | "dev": true, 984 | "license": "MIT", 985 | "engines": { 986 | "node": ">=6.0.0" 987 | } 988 | }, 989 | "node_modules/@jridgewell/sourcemap-codec": { 990 | "version": "1.5.0", 991 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 992 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 993 | "dev": true, 994 | "license": "MIT" 995 | }, 996 | "node_modules/@jridgewell/trace-mapping": { 997 | "version": "0.3.9", 998 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", 999 | "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", 1000 | "dev": true, 1001 | "license": "MIT", 1002 | "dependencies": { 1003 | "@jridgewell/resolve-uri": "^3.0.3", 1004 | "@jridgewell/sourcemap-codec": "^1.4.10" 1005 | } 1006 | }, 1007 | "node_modules/acorn": { 1008 | "version": "8.14.0", 1009 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", 1010 | "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", 1011 | "dev": true, 1012 | "license": "MIT", 1013 | "bin": { 1014 | "acorn": "bin/acorn" 1015 | }, 1016 | "engines": { 1017 | "node": ">=0.4.0" 1018 | } 1019 | }, 1020 | "node_modules/acorn-walk": { 1021 | "version": "8.3.2", 1022 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", 1023 | "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", 1024 | "dev": true, 1025 | "license": "MIT", 1026 | "engines": { 1027 | "node": ">=0.4.0" 1028 | } 1029 | }, 1030 | "node_modules/as-table": { 1031 | "version": "1.0.55", 1032 | "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", 1033 | "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", 1034 | "dev": true, 1035 | "license": "MIT", 1036 | "dependencies": { 1037 | "printable-characters": "^1.0.42" 1038 | } 1039 | }, 1040 | "node_modules/blake3-wasm": { 1041 | "version": "2.1.5", 1042 | "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", 1043 | "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", 1044 | "dev": true, 1045 | "license": "MIT" 1046 | }, 1047 | "node_modules/color": { 1048 | "version": "4.2.3", 1049 | "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", 1050 | "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", 1051 | "dev": true, 1052 | "license": "MIT", 1053 | "optional": true, 1054 | "dependencies": { 1055 | "color-convert": "^2.0.1", 1056 | "color-string": "^1.9.0" 1057 | }, 1058 | "engines": { 1059 | "node": ">=12.5.0" 1060 | } 1061 | }, 1062 | "node_modules/color-convert": { 1063 | "version": "2.0.1", 1064 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1065 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1066 | "dev": true, 1067 | "license": "MIT", 1068 | "optional": true, 1069 | "dependencies": { 1070 | "color-name": "~1.1.4" 1071 | }, 1072 | "engines": { 1073 | "node": ">=7.0.0" 1074 | } 1075 | }, 1076 | "node_modules/color-name": { 1077 | "version": "1.1.4", 1078 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1079 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1080 | "dev": true, 1081 | "license": "MIT", 1082 | "optional": true 1083 | }, 1084 | "node_modules/color-string": { 1085 | "version": "1.9.1", 1086 | "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", 1087 | "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 1088 | "dev": true, 1089 | "license": "MIT", 1090 | "optional": true, 1091 | "dependencies": { 1092 | "color-name": "^1.0.0", 1093 | "simple-swizzle": "^0.2.2" 1094 | } 1095 | }, 1096 | "node_modules/cookie": { 1097 | "version": "0.7.2", 1098 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 1099 | "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", 1100 | "dev": true, 1101 | "license": "MIT", 1102 | "engines": { 1103 | "node": ">= 0.6" 1104 | } 1105 | }, 1106 | "node_modules/data-uri-to-buffer": { 1107 | "version": "2.0.2", 1108 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", 1109 | "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", 1110 | "dev": true, 1111 | "license": "MIT" 1112 | }, 1113 | "node_modules/defu": { 1114 | "version": "6.1.4", 1115 | "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", 1116 | "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", 1117 | "dev": true, 1118 | "license": "MIT" 1119 | }, 1120 | "node_modules/detect-libc": { 1121 | "version": "2.0.4", 1122 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", 1123 | "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", 1124 | "dev": true, 1125 | "license": "Apache-2.0", 1126 | "optional": true, 1127 | "engines": { 1128 | "node": ">=8" 1129 | } 1130 | }, 1131 | "node_modules/esbuild": { 1132 | "version": "0.25.4", 1133 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", 1134 | "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", 1135 | "dev": true, 1136 | "hasInstallScript": true, 1137 | "license": "MIT", 1138 | "bin": { 1139 | "esbuild": "bin/esbuild" 1140 | }, 1141 | "engines": { 1142 | "node": ">=18" 1143 | }, 1144 | "optionalDependencies": { 1145 | "@esbuild/aix-ppc64": "0.25.4", 1146 | "@esbuild/android-arm": "0.25.4", 1147 | "@esbuild/android-arm64": "0.25.4", 1148 | "@esbuild/android-x64": "0.25.4", 1149 | "@esbuild/darwin-arm64": "0.25.4", 1150 | "@esbuild/darwin-x64": "0.25.4", 1151 | "@esbuild/freebsd-arm64": "0.25.4", 1152 | "@esbuild/freebsd-x64": "0.25.4", 1153 | "@esbuild/linux-arm": "0.25.4", 1154 | "@esbuild/linux-arm64": "0.25.4", 1155 | "@esbuild/linux-ia32": "0.25.4", 1156 | "@esbuild/linux-loong64": "0.25.4", 1157 | "@esbuild/linux-mips64el": "0.25.4", 1158 | "@esbuild/linux-ppc64": "0.25.4", 1159 | "@esbuild/linux-riscv64": "0.25.4", 1160 | "@esbuild/linux-s390x": "0.25.4", 1161 | "@esbuild/linux-x64": "0.25.4", 1162 | "@esbuild/netbsd-arm64": "0.25.4", 1163 | "@esbuild/netbsd-x64": "0.25.4", 1164 | "@esbuild/openbsd-arm64": "0.25.4", 1165 | "@esbuild/openbsd-x64": "0.25.4", 1166 | "@esbuild/sunos-x64": "0.25.4", 1167 | "@esbuild/win32-arm64": "0.25.4", 1168 | "@esbuild/win32-ia32": "0.25.4", 1169 | "@esbuild/win32-x64": "0.25.4" 1170 | } 1171 | }, 1172 | "node_modules/exit-hook": { 1173 | "version": "2.2.1", 1174 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", 1175 | "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", 1176 | "dev": true, 1177 | "license": "MIT", 1178 | "engines": { 1179 | "node": ">=6" 1180 | }, 1181 | "funding": { 1182 | "url": "https://github.com/sponsors/sindresorhus" 1183 | } 1184 | }, 1185 | "node_modules/exsolve": { 1186 | "version": "1.0.5", 1187 | "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz", 1188 | "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==", 1189 | "dev": true, 1190 | "license": "MIT" 1191 | }, 1192 | "node_modules/fsevents": { 1193 | "version": "2.3.3", 1194 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 1195 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 1196 | "dev": true, 1197 | "hasInstallScript": true, 1198 | "license": "MIT", 1199 | "optional": true, 1200 | "os": [ 1201 | "darwin" 1202 | ], 1203 | "engines": { 1204 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1205 | } 1206 | }, 1207 | "node_modules/get-source": { 1208 | "version": "2.0.12", 1209 | "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", 1210 | "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", 1211 | "dev": true, 1212 | "license": "Unlicense", 1213 | "dependencies": { 1214 | "data-uri-to-buffer": "^2.0.0", 1215 | "source-map": "^0.6.1" 1216 | } 1217 | }, 1218 | "node_modules/glob-to-regexp": { 1219 | "version": "0.4.1", 1220 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 1221 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 1222 | "dev": true, 1223 | "license": "BSD-2-Clause" 1224 | }, 1225 | "node_modules/hono": { 1226 | "version": "4.1.3", 1227 | "resolved": "https://registry.npmjs.org/hono/-/hono-4.1.3.tgz", 1228 | "integrity": "sha512-V0I6qCw0gn2MA4LLtyXe6oD3/7ToeQf5Zv98o7uSuLuViQgWHJeYoYrZ4NbXhOtg4SaZjNJJm1+XuFB3LN+j6A==", 1229 | "engines": { 1230 | "node": ">=16.0.0" 1231 | } 1232 | }, 1233 | "node_modules/is-arrayish": { 1234 | "version": "0.3.2", 1235 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 1236 | "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", 1237 | "dev": true, 1238 | "license": "MIT", 1239 | "optional": true 1240 | }, 1241 | "node_modules/mime": { 1242 | "version": "3.0.0", 1243 | "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 1244 | "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 1245 | "dev": true, 1246 | "license": "MIT", 1247 | "bin": { 1248 | "mime": "cli.js" 1249 | }, 1250 | "engines": { 1251 | "node": ">=10.0.0" 1252 | } 1253 | }, 1254 | "node_modules/miniflare": { 1255 | "version": "4.20250507.0", 1256 | "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20250507.0.tgz", 1257 | "integrity": "sha512-EgbQRt/Hnr8HCmW2J/4LRNE3yOzJTdNd98XJ8gnGXFKcimXxUFPiWP3k1df+ZPCtEHp6cXxi8+jP7v9vuIbIsg==", 1258 | "dev": true, 1259 | "license": "MIT", 1260 | "dependencies": { 1261 | "@cspotcode/source-map-support": "0.8.1", 1262 | "acorn": "8.14.0", 1263 | "acorn-walk": "8.3.2", 1264 | "exit-hook": "2.2.1", 1265 | "glob-to-regexp": "0.4.1", 1266 | "stoppable": "1.1.0", 1267 | "undici": "^5.28.5", 1268 | "workerd": "1.20250507.0", 1269 | "ws": "8.18.0", 1270 | "youch": "3.3.4", 1271 | "zod": "3.22.3" 1272 | }, 1273 | "bin": { 1274 | "miniflare": "bootstrap.js" 1275 | }, 1276 | "engines": { 1277 | "node": ">=18.0.0" 1278 | } 1279 | }, 1280 | "node_modules/mustache": { 1281 | "version": "4.2.0", 1282 | "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", 1283 | "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", 1284 | "dev": true, 1285 | "license": "MIT", 1286 | "bin": { 1287 | "mustache": "bin/mustache" 1288 | } 1289 | }, 1290 | "node_modules/ohash": { 1291 | "version": "2.0.11", 1292 | "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", 1293 | "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", 1294 | "dev": true, 1295 | "license": "MIT" 1296 | }, 1297 | "node_modules/path-to-regexp": { 1298 | "version": "6.3.0", 1299 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", 1300 | "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", 1301 | "dev": true, 1302 | "license": "MIT" 1303 | }, 1304 | "node_modules/pathe": { 1305 | "version": "2.0.3", 1306 | "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", 1307 | "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", 1308 | "dev": true, 1309 | "license": "MIT" 1310 | }, 1311 | "node_modules/printable-characters": { 1312 | "version": "1.0.42", 1313 | "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", 1314 | "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", 1315 | "dev": true, 1316 | "license": "Unlicense" 1317 | }, 1318 | "node_modules/semver": { 1319 | "version": "7.7.1", 1320 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", 1321 | "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", 1322 | "dev": true, 1323 | "license": "ISC", 1324 | "optional": true, 1325 | "bin": { 1326 | "semver": "bin/semver.js" 1327 | }, 1328 | "engines": { 1329 | "node": ">=10" 1330 | } 1331 | }, 1332 | "node_modules/sharp": { 1333 | "version": "0.33.5", 1334 | "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", 1335 | "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", 1336 | "dev": true, 1337 | "hasInstallScript": true, 1338 | "license": "Apache-2.0", 1339 | "optional": true, 1340 | "dependencies": { 1341 | "color": "^4.2.3", 1342 | "detect-libc": "^2.0.3", 1343 | "semver": "^7.6.3" 1344 | }, 1345 | "engines": { 1346 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1347 | }, 1348 | "funding": { 1349 | "url": "https://opencollective.com/libvips" 1350 | }, 1351 | "optionalDependencies": { 1352 | "@img/sharp-darwin-arm64": "0.33.5", 1353 | "@img/sharp-darwin-x64": "0.33.5", 1354 | "@img/sharp-libvips-darwin-arm64": "1.0.4", 1355 | "@img/sharp-libvips-darwin-x64": "1.0.4", 1356 | "@img/sharp-libvips-linux-arm": "1.0.5", 1357 | "@img/sharp-libvips-linux-arm64": "1.0.4", 1358 | "@img/sharp-libvips-linux-s390x": "1.0.4", 1359 | "@img/sharp-libvips-linux-x64": "1.0.4", 1360 | "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", 1361 | "@img/sharp-libvips-linuxmusl-x64": "1.0.4", 1362 | "@img/sharp-linux-arm": "0.33.5", 1363 | "@img/sharp-linux-arm64": "0.33.5", 1364 | "@img/sharp-linux-s390x": "0.33.5", 1365 | "@img/sharp-linux-x64": "0.33.5", 1366 | "@img/sharp-linuxmusl-arm64": "0.33.5", 1367 | "@img/sharp-linuxmusl-x64": "0.33.5", 1368 | "@img/sharp-wasm32": "0.33.5", 1369 | "@img/sharp-win32-ia32": "0.33.5", 1370 | "@img/sharp-win32-x64": "0.33.5" 1371 | } 1372 | }, 1373 | "node_modules/simple-swizzle": { 1374 | "version": "0.2.2", 1375 | "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 1376 | "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", 1377 | "dev": true, 1378 | "license": "MIT", 1379 | "optional": true, 1380 | "dependencies": { 1381 | "is-arrayish": "^0.3.1" 1382 | } 1383 | }, 1384 | "node_modules/source-map": { 1385 | "version": "0.6.1", 1386 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1387 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1388 | "dev": true, 1389 | "license": "BSD-3-Clause", 1390 | "engines": { 1391 | "node": ">=0.10.0" 1392 | } 1393 | }, 1394 | "node_modules/stacktracey": { 1395 | "version": "2.1.8", 1396 | "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", 1397 | "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", 1398 | "dev": true, 1399 | "license": "Unlicense", 1400 | "dependencies": { 1401 | "as-table": "^1.0.36", 1402 | "get-source": "^2.0.12" 1403 | } 1404 | }, 1405 | "node_modules/stoppable": { 1406 | "version": "1.1.0", 1407 | "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", 1408 | "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", 1409 | "dev": true, 1410 | "license": "MIT", 1411 | "engines": { 1412 | "node": ">=4", 1413 | "npm": ">=6" 1414 | } 1415 | }, 1416 | "node_modules/tslib": { 1417 | "version": "2.8.1", 1418 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 1419 | "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 1420 | "dev": true, 1421 | "license": "0BSD", 1422 | "optional": true 1423 | }, 1424 | "node_modules/ufo": { 1425 | "version": "1.6.1", 1426 | "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", 1427 | "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", 1428 | "dev": true, 1429 | "license": "MIT" 1430 | }, 1431 | "node_modules/undici": { 1432 | "version": "5.29.0", 1433 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", 1434 | "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", 1435 | "dev": true, 1436 | "license": "MIT", 1437 | "dependencies": { 1438 | "@fastify/busboy": "^2.0.0" 1439 | }, 1440 | "engines": { 1441 | "node": ">=14.0" 1442 | } 1443 | }, 1444 | "node_modules/unenv": { 1445 | "version": "2.0.0-rc.15", 1446 | "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.15.tgz", 1447 | "integrity": "sha512-J/rEIZU8w6FOfLNz/hNKsnY+fFHWnu9MH4yRbSZF3xbbGHovcetXPs7sD+9p8L6CeNC//I9bhRYAOsBt2u7/OA==", 1448 | "dev": true, 1449 | "license": "MIT", 1450 | "dependencies": { 1451 | "defu": "^6.1.4", 1452 | "exsolve": "^1.0.4", 1453 | "ohash": "^2.0.11", 1454 | "pathe": "^2.0.3", 1455 | "ufo": "^1.5.4" 1456 | } 1457 | }, 1458 | "node_modules/workerd": { 1459 | "version": "1.20250507.0", 1460 | "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20250507.0.tgz", 1461 | "integrity": "sha512-OXaGjEh5THT9iblwWIyPrYBoaPe/d4zN03Go7/w8CmS8sma7//O9hjbk43sboWkc89taGPmU0/LNyZUUiUlHeQ==", 1462 | "dev": true, 1463 | "hasInstallScript": true, 1464 | "license": "Apache-2.0", 1465 | "bin": { 1466 | "workerd": "bin/workerd" 1467 | }, 1468 | "engines": { 1469 | "node": ">=16" 1470 | }, 1471 | "optionalDependencies": { 1472 | "@cloudflare/workerd-darwin-64": "1.20250507.0", 1473 | "@cloudflare/workerd-darwin-arm64": "1.20250507.0", 1474 | "@cloudflare/workerd-linux-64": "1.20250507.0", 1475 | "@cloudflare/workerd-linux-arm64": "1.20250507.0", 1476 | "@cloudflare/workerd-windows-64": "1.20250507.0" 1477 | } 1478 | }, 1479 | "node_modules/wrangler": { 1480 | "version": "4.14.4", 1481 | "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.14.4.tgz", 1482 | "integrity": "sha512-HIdOdiMIcJV5ymw80RKsr3Uzen/p1kRX4jnCEmR2XVeoEhV2Qw6GABxS5WMTlSES2/vEX0Y+ezUAdsprcUhJ5g==", 1483 | "dev": true, 1484 | "license": "MIT OR Apache-2.0", 1485 | "dependencies": { 1486 | "@cloudflare/kv-asset-handler": "0.4.0", 1487 | "@cloudflare/unenv-preset": "2.3.1", 1488 | "blake3-wasm": "2.1.5", 1489 | "esbuild": "0.25.4", 1490 | "miniflare": "4.20250507.0", 1491 | "path-to-regexp": "6.3.0", 1492 | "unenv": "2.0.0-rc.15", 1493 | "workerd": "1.20250507.0" 1494 | }, 1495 | "bin": { 1496 | "wrangler": "bin/wrangler.js", 1497 | "wrangler2": "bin/wrangler.js" 1498 | }, 1499 | "engines": { 1500 | "node": ">=18.0.0" 1501 | }, 1502 | "optionalDependencies": { 1503 | "fsevents": "~2.3.2", 1504 | "sharp": "^0.33.5" 1505 | }, 1506 | "peerDependencies": { 1507 | "@cloudflare/workers-types": "^4.20250507.0" 1508 | }, 1509 | "peerDependenciesMeta": { 1510 | "@cloudflare/workers-types": { 1511 | "optional": true 1512 | } 1513 | } 1514 | }, 1515 | "node_modules/ws": { 1516 | "version": "8.18.0", 1517 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 1518 | "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 1519 | "dev": true, 1520 | "license": "MIT", 1521 | "engines": { 1522 | "node": ">=10.0.0" 1523 | }, 1524 | "peerDependencies": { 1525 | "bufferutil": "^4.0.1", 1526 | "utf-8-validate": ">=5.0.2" 1527 | }, 1528 | "peerDependenciesMeta": { 1529 | "bufferutil": { 1530 | "optional": true 1531 | }, 1532 | "utf-8-validate": { 1533 | "optional": true 1534 | } 1535 | } 1536 | }, 1537 | "node_modules/youch": { 1538 | "version": "3.3.4", 1539 | "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz", 1540 | "integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==", 1541 | "dev": true, 1542 | "license": "MIT", 1543 | "dependencies": { 1544 | "cookie": "^0.7.1", 1545 | "mustache": "^4.2.0", 1546 | "stacktracey": "^2.1.8" 1547 | } 1548 | }, 1549 | "node_modules/zod": { 1550 | "version": "3.22.3", 1551 | "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.3.tgz", 1552 | "integrity": "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==", 1553 | "dev": true, 1554 | "license": "MIT", 1555 | "funding": { 1556 | "url": "https://github.com/sponsors/colinhacks" 1557 | } 1558 | } 1559 | }, 1560 | "dependencies": { 1561 | "@cloudflare/kv-asset-handler": { 1562 | "version": "0.4.0", 1563 | "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.0.tgz", 1564 | "integrity": "sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==", 1565 | "dev": true, 1566 | "requires": { 1567 | "mime": "^3.0.0" 1568 | } 1569 | }, 1570 | "@cloudflare/unenv-preset": { 1571 | "version": "2.3.1", 1572 | "resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.3.1.tgz", 1573 | "integrity": "sha512-Xq57Qd+ADpt6hibcVBO0uLG9zzRgyRhfCUgBT9s+g3+3Ivg5zDyVgLFy40ES1VdNcu8rPNSivm9A+kGP5IVaPg==", 1574 | "dev": true, 1575 | "requires": {} 1576 | }, 1577 | "@cloudflare/workerd-darwin-64": { 1578 | "version": "1.20250507.0", 1579 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250507.0.tgz", 1580 | "integrity": "sha512-xC+8hmQuOUUNCVT9DWpLMfxhR4Xs4kI8v7Bkybh4pzGC85moH6fMfCBNaP0YQCNAA/BR56aL/AwfvMVGskTK/A==", 1581 | "dev": true, 1582 | "optional": true 1583 | }, 1584 | "@cloudflare/workerd-darwin-arm64": { 1585 | "version": "1.20250507.0", 1586 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250507.0.tgz", 1587 | "integrity": "sha512-Oynff5H8yM4trfUFaKdkOvPV3jac8mg7QC19ILZluCVgLx/JGEVLEJ7do1Na9rLqV8CK4gmUXPrUMX7uerhQgg==", 1588 | "dev": true, 1589 | "optional": true 1590 | }, 1591 | "@cloudflare/workerd-linux-64": { 1592 | "version": "1.20250507.0", 1593 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250507.0.tgz", 1594 | "integrity": "sha512-/HAA+Zg/R7Q/Smyl835FUFKjotZN1UzN9j/BHBd0xKmKov97QkXAX8gsyGnyKqRReIOinp8x/8+UebTICR7VJw==", 1595 | "dev": true, 1596 | "optional": true 1597 | }, 1598 | "@cloudflare/workerd-linux-arm64": { 1599 | "version": "1.20250507.0", 1600 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250507.0.tgz", 1601 | "integrity": "sha512-NMPibSdOYeycU0IrKkgOESFJQy7dEpHvuatZxQxlT+mIQK0INzI3irp2kKxhF99s25kPC4p+xg9bU3ugTrs3VQ==", 1602 | "dev": true, 1603 | "optional": true 1604 | }, 1605 | "@cloudflare/workerd-windows-64": { 1606 | "version": "1.20250507.0", 1607 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250507.0.tgz", 1608 | "integrity": "sha512-c91fhNP8ufycdIDqjVyKTqeb4ewkbAYXFQbLreMVgh4LLQQPDDEte8wCdmaFy5bIL0M9d85PpdCq51RCzq/FaQ==", 1609 | "dev": true, 1610 | "optional": true 1611 | }, 1612 | "@cloudflare/workers-types": { 1613 | "version": "4.20250510.0", 1614 | "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20250510.0.tgz", 1615 | "integrity": "sha512-VLdSYUooX2QhdlzyBnnLAqa5B3xWyr5vdvya9NZk2BJNmRt2iblSLunj7iBKiW9J+SIBHz7c+kUzUJKoFLKRjg==", 1616 | "dev": true 1617 | }, 1618 | "@cspotcode/source-map-support": { 1619 | "version": "0.8.1", 1620 | "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", 1621 | "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", 1622 | "dev": true, 1623 | "requires": { 1624 | "@jridgewell/trace-mapping": "0.3.9" 1625 | } 1626 | }, 1627 | "@emnapi/runtime": { 1628 | "version": "1.4.3", 1629 | "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", 1630 | "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", 1631 | "dev": true, 1632 | "optional": true, 1633 | "requires": { 1634 | "tslib": "^2.4.0" 1635 | } 1636 | }, 1637 | "@esbuild/aix-ppc64": { 1638 | "version": "0.25.4", 1639 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", 1640 | "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", 1641 | "dev": true, 1642 | "optional": true 1643 | }, 1644 | "@esbuild/android-arm": { 1645 | "version": "0.25.4", 1646 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", 1647 | "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", 1648 | "dev": true, 1649 | "optional": true 1650 | }, 1651 | "@esbuild/android-arm64": { 1652 | "version": "0.25.4", 1653 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", 1654 | "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", 1655 | "dev": true, 1656 | "optional": true 1657 | }, 1658 | "@esbuild/android-x64": { 1659 | "version": "0.25.4", 1660 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", 1661 | "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", 1662 | "dev": true, 1663 | "optional": true 1664 | }, 1665 | "@esbuild/darwin-arm64": { 1666 | "version": "0.25.4", 1667 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", 1668 | "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", 1669 | "dev": true, 1670 | "optional": true 1671 | }, 1672 | "@esbuild/darwin-x64": { 1673 | "version": "0.25.4", 1674 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", 1675 | "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", 1676 | "dev": true, 1677 | "optional": true 1678 | }, 1679 | "@esbuild/freebsd-arm64": { 1680 | "version": "0.25.4", 1681 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", 1682 | "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", 1683 | "dev": true, 1684 | "optional": true 1685 | }, 1686 | "@esbuild/freebsd-x64": { 1687 | "version": "0.25.4", 1688 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", 1689 | "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", 1690 | "dev": true, 1691 | "optional": true 1692 | }, 1693 | "@esbuild/linux-arm": { 1694 | "version": "0.25.4", 1695 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", 1696 | "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", 1697 | "dev": true, 1698 | "optional": true 1699 | }, 1700 | "@esbuild/linux-arm64": { 1701 | "version": "0.25.4", 1702 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", 1703 | "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", 1704 | "dev": true, 1705 | "optional": true 1706 | }, 1707 | "@esbuild/linux-ia32": { 1708 | "version": "0.25.4", 1709 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", 1710 | "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", 1711 | "dev": true, 1712 | "optional": true 1713 | }, 1714 | "@esbuild/linux-loong64": { 1715 | "version": "0.25.4", 1716 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", 1717 | "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", 1718 | "dev": true, 1719 | "optional": true 1720 | }, 1721 | "@esbuild/linux-mips64el": { 1722 | "version": "0.25.4", 1723 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", 1724 | "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", 1725 | "dev": true, 1726 | "optional": true 1727 | }, 1728 | "@esbuild/linux-ppc64": { 1729 | "version": "0.25.4", 1730 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", 1731 | "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", 1732 | "dev": true, 1733 | "optional": true 1734 | }, 1735 | "@esbuild/linux-riscv64": { 1736 | "version": "0.25.4", 1737 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", 1738 | "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", 1739 | "dev": true, 1740 | "optional": true 1741 | }, 1742 | "@esbuild/linux-s390x": { 1743 | "version": "0.25.4", 1744 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", 1745 | "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", 1746 | "dev": true, 1747 | "optional": true 1748 | }, 1749 | "@esbuild/linux-x64": { 1750 | "version": "0.25.4", 1751 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", 1752 | "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", 1753 | "dev": true, 1754 | "optional": true 1755 | }, 1756 | "@esbuild/netbsd-arm64": { 1757 | "version": "0.25.4", 1758 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", 1759 | "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", 1760 | "dev": true, 1761 | "optional": true 1762 | }, 1763 | "@esbuild/netbsd-x64": { 1764 | "version": "0.25.4", 1765 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", 1766 | "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", 1767 | "dev": true, 1768 | "optional": true 1769 | }, 1770 | "@esbuild/openbsd-arm64": { 1771 | "version": "0.25.4", 1772 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", 1773 | "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", 1774 | "dev": true, 1775 | "optional": true 1776 | }, 1777 | "@esbuild/openbsd-x64": { 1778 | "version": "0.25.4", 1779 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", 1780 | "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", 1781 | "dev": true, 1782 | "optional": true 1783 | }, 1784 | "@esbuild/sunos-x64": { 1785 | "version": "0.25.4", 1786 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", 1787 | "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", 1788 | "dev": true, 1789 | "optional": true 1790 | }, 1791 | "@esbuild/win32-arm64": { 1792 | "version": "0.25.4", 1793 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", 1794 | "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", 1795 | "dev": true, 1796 | "optional": true 1797 | }, 1798 | "@esbuild/win32-ia32": { 1799 | "version": "0.25.4", 1800 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", 1801 | "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", 1802 | "dev": true, 1803 | "optional": true 1804 | }, 1805 | "@esbuild/win32-x64": { 1806 | "version": "0.25.4", 1807 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", 1808 | "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", 1809 | "dev": true, 1810 | "optional": true 1811 | }, 1812 | "@fastify/busboy": { 1813 | "version": "2.1.1", 1814 | "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", 1815 | "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", 1816 | "dev": true 1817 | }, 1818 | "@img/sharp-darwin-arm64": { 1819 | "version": "0.33.5", 1820 | "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", 1821 | "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", 1822 | "dev": true, 1823 | "optional": true, 1824 | "requires": { 1825 | "@img/sharp-libvips-darwin-arm64": "1.0.4" 1826 | } 1827 | }, 1828 | "@img/sharp-darwin-x64": { 1829 | "version": "0.33.5", 1830 | "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", 1831 | "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", 1832 | "dev": true, 1833 | "optional": true, 1834 | "requires": { 1835 | "@img/sharp-libvips-darwin-x64": "1.0.4" 1836 | } 1837 | }, 1838 | "@img/sharp-libvips-darwin-arm64": { 1839 | "version": "1.0.4", 1840 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", 1841 | "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", 1842 | "dev": true, 1843 | "optional": true 1844 | }, 1845 | "@img/sharp-libvips-darwin-x64": { 1846 | "version": "1.0.4", 1847 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", 1848 | "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", 1849 | "dev": true, 1850 | "optional": true 1851 | }, 1852 | "@img/sharp-libvips-linux-arm": { 1853 | "version": "1.0.5", 1854 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", 1855 | "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", 1856 | "dev": true, 1857 | "optional": true 1858 | }, 1859 | "@img/sharp-libvips-linux-arm64": { 1860 | "version": "1.0.4", 1861 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", 1862 | "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", 1863 | "dev": true, 1864 | "optional": true 1865 | }, 1866 | "@img/sharp-libvips-linux-s390x": { 1867 | "version": "1.0.4", 1868 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", 1869 | "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", 1870 | "dev": true, 1871 | "optional": true 1872 | }, 1873 | "@img/sharp-libvips-linux-x64": { 1874 | "version": "1.0.4", 1875 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", 1876 | "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", 1877 | "dev": true, 1878 | "optional": true 1879 | }, 1880 | "@img/sharp-libvips-linuxmusl-arm64": { 1881 | "version": "1.0.4", 1882 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", 1883 | "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", 1884 | "dev": true, 1885 | "optional": true 1886 | }, 1887 | "@img/sharp-libvips-linuxmusl-x64": { 1888 | "version": "1.0.4", 1889 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", 1890 | "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", 1891 | "dev": true, 1892 | "optional": true 1893 | }, 1894 | "@img/sharp-linux-arm": { 1895 | "version": "0.33.5", 1896 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", 1897 | "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", 1898 | "dev": true, 1899 | "optional": true, 1900 | "requires": { 1901 | "@img/sharp-libvips-linux-arm": "1.0.5" 1902 | } 1903 | }, 1904 | "@img/sharp-linux-arm64": { 1905 | "version": "0.33.5", 1906 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", 1907 | "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", 1908 | "dev": true, 1909 | "optional": true, 1910 | "requires": { 1911 | "@img/sharp-libvips-linux-arm64": "1.0.4" 1912 | } 1913 | }, 1914 | "@img/sharp-linux-s390x": { 1915 | "version": "0.33.5", 1916 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", 1917 | "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", 1918 | "dev": true, 1919 | "optional": true, 1920 | "requires": { 1921 | "@img/sharp-libvips-linux-s390x": "1.0.4" 1922 | } 1923 | }, 1924 | "@img/sharp-linux-x64": { 1925 | "version": "0.33.5", 1926 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", 1927 | "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", 1928 | "dev": true, 1929 | "optional": true, 1930 | "requires": { 1931 | "@img/sharp-libvips-linux-x64": "1.0.4" 1932 | } 1933 | }, 1934 | "@img/sharp-linuxmusl-arm64": { 1935 | "version": "0.33.5", 1936 | "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", 1937 | "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", 1938 | "dev": true, 1939 | "optional": true, 1940 | "requires": { 1941 | "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" 1942 | } 1943 | }, 1944 | "@img/sharp-linuxmusl-x64": { 1945 | "version": "0.33.5", 1946 | "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", 1947 | "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", 1948 | "dev": true, 1949 | "optional": true, 1950 | "requires": { 1951 | "@img/sharp-libvips-linuxmusl-x64": "1.0.4" 1952 | } 1953 | }, 1954 | "@img/sharp-wasm32": { 1955 | "version": "0.33.5", 1956 | "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", 1957 | "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", 1958 | "dev": true, 1959 | "optional": true, 1960 | "requires": { 1961 | "@emnapi/runtime": "^1.2.0" 1962 | } 1963 | }, 1964 | "@img/sharp-win32-ia32": { 1965 | "version": "0.33.5", 1966 | "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", 1967 | "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", 1968 | "dev": true, 1969 | "optional": true 1970 | }, 1971 | "@img/sharp-win32-x64": { 1972 | "version": "0.33.5", 1973 | "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", 1974 | "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", 1975 | "dev": true, 1976 | "optional": true 1977 | }, 1978 | "@jridgewell/resolve-uri": { 1979 | "version": "3.1.2", 1980 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 1981 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 1982 | "dev": true 1983 | }, 1984 | "@jridgewell/sourcemap-codec": { 1985 | "version": "1.5.0", 1986 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 1987 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 1988 | "dev": true 1989 | }, 1990 | "@jridgewell/trace-mapping": { 1991 | "version": "0.3.9", 1992 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", 1993 | "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", 1994 | "dev": true, 1995 | "requires": { 1996 | "@jridgewell/resolve-uri": "^3.0.3", 1997 | "@jridgewell/sourcemap-codec": "^1.4.10" 1998 | } 1999 | }, 2000 | "acorn": { 2001 | "version": "8.14.0", 2002 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", 2003 | "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", 2004 | "dev": true 2005 | }, 2006 | "acorn-walk": { 2007 | "version": "8.3.2", 2008 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", 2009 | "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", 2010 | "dev": true 2011 | }, 2012 | "as-table": { 2013 | "version": "1.0.55", 2014 | "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", 2015 | "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", 2016 | "dev": true, 2017 | "requires": { 2018 | "printable-characters": "^1.0.42" 2019 | } 2020 | }, 2021 | "blake3-wasm": { 2022 | "version": "2.1.5", 2023 | "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", 2024 | "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", 2025 | "dev": true 2026 | }, 2027 | "color": { 2028 | "version": "4.2.3", 2029 | "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", 2030 | "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", 2031 | "dev": true, 2032 | "optional": true, 2033 | "requires": { 2034 | "color-convert": "^2.0.1", 2035 | "color-string": "^1.9.0" 2036 | } 2037 | }, 2038 | "color-convert": { 2039 | "version": "2.0.1", 2040 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2041 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2042 | "dev": true, 2043 | "optional": true, 2044 | "requires": { 2045 | "color-name": "~1.1.4" 2046 | } 2047 | }, 2048 | "color-name": { 2049 | "version": "1.1.4", 2050 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2051 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2052 | "dev": true, 2053 | "optional": true 2054 | }, 2055 | "color-string": { 2056 | "version": "1.9.1", 2057 | "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", 2058 | "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 2059 | "dev": true, 2060 | "optional": true, 2061 | "requires": { 2062 | "color-name": "^1.0.0", 2063 | "simple-swizzle": "^0.2.2" 2064 | } 2065 | }, 2066 | "cookie": { 2067 | "version": "0.7.2", 2068 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 2069 | "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", 2070 | "dev": true 2071 | }, 2072 | "data-uri-to-buffer": { 2073 | "version": "2.0.2", 2074 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", 2075 | "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", 2076 | "dev": true 2077 | }, 2078 | "defu": { 2079 | "version": "6.1.4", 2080 | "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", 2081 | "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", 2082 | "dev": true 2083 | }, 2084 | "detect-libc": { 2085 | "version": "2.0.4", 2086 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", 2087 | "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", 2088 | "dev": true, 2089 | "optional": true 2090 | }, 2091 | "esbuild": { 2092 | "version": "0.25.4", 2093 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", 2094 | "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", 2095 | "dev": true, 2096 | "requires": { 2097 | "@esbuild/aix-ppc64": "0.25.4", 2098 | "@esbuild/android-arm": "0.25.4", 2099 | "@esbuild/android-arm64": "0.25.4", 2100 | "@esbuild/android-x64": "0.25.4", 2101 | "@esbuild/darwin-arm64": "0.25.4", 2102 | "@esbuild/darwin-x64": "0.25.4", 2103 | "@esbuild/freebsd-arm64": "0.25.4", 2104 | "@esbuild/freebsd-x64": "0.25.4", 2105 | "@esbuild/linux-arm": "0.25.4", 2106 | "@esbuild/linux-arm64": "0.25.4", 2107 | "@esbuild/linux-ia32": "0.25.4", 2108 | "@esbuild/linux-loong64": "0.25.4", 2109 | "@esbuild/linux-mips64el": "0.25.4", 2110 | "@esbuild/linux-ppc64": "0.25.4", 2111 | "@esbuild/linux-riscv64": "0.25.4", 2112 | "@esbuild/linux-s390x": "0.25.4", 2113 | "@esbuild/linux-x64": "0.25.4", 2114 | "@esbuild/netbsd-arm64": "0.25.4", 2115 | "@esbuild/netbsd-x64": "0.25.4", 2116 | "@esbuild/openbsd-arm64": "0.25.4", 2117 | "@esbuild/openbsd-x64": "0.25.4", 2118 | "@esbuild/sunos-x64": "0.25.4", 2119 | "@esbuild/win32-arm64": "0.25.4", 2120 | "@esbuild/win32-ia32": "0.25.4", 2121 | "@esbuild/win32-x64": "0.25.4" 2122 | } 2123 | }, 2124 | "exit-hook": { 2125 | "version": "2.2.1", 2126 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", 2127 | "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", 2128 | "dev": true 2129 | }, 2130 | "exsolve": { 2131 | "version": "1.0.5", 2132 | "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz", 2133 | "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==", 2134 | "dev": true 2135 | }, 2136 | "fsevents": { 2137 | "version": "2.3.3", 2138 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 2139 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 2140 | "dev": true, 2141 | "optional": true 2142 | }, 2143 | "get-source": { 2144 | "version": "2.0.12", 2145 | "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", 2146 | "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", 2147 | "dev": true, 2148 | "requires": { 2149 | "data-uri-to-buffer": "^2.0.0", 2150 | "source-map": "^0.6.1" 2151 | } 2152 | }, 2153 | "glob-to-regexp": { 2154 | "version": "0.4.1", 2155 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 2156 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 2157 | "dev": true 2158 | }, 2159 | "hono": { 2160 | "version": "4.1.3", 2161 | "resolved": "https://registry.npmjs.org/hono/-/hono-4.1.3.tgz", 2162 | "integrity": "sha512-V0I6qCw0gn2MA4LLtyXe6oD3/7ToeQf5Zv98o7uSuLuViQgWHJeYoYrZ4NbXhOtg4SaZjNJJm1+XuFB3LN+j6A==" 2163 | }, 2164 | "is-arrayish": { 2165 | "version": "0.3.2", 2166 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 2167 | "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", 2168 | "dev": true, 2169 | "optional": true 2170 | }, 2171 | "mime": { 2172 | "version": "3.0.0", 2173 | "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 2174 | "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 2175 | "dev": true 2176 | }, 2177 | "miniflare": { 2178 | "version": "4.20250507.0", 2179 | "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20250507.0.tgz", 2180 | "integrity": "sha512-EgbQRt/Hnr8HCmW2J/4LRNE3yOzJTdNd98XJ8gnGXFKcimXxUFPiWP3k1df+ZPCtEHp6cXxi8+jP7v9vuIbIsg==", 2181 | "dev": true, 2182 | "requires": { 2183 | "@cspotcode/source-map-support": "0.8.1", 2184 | "acorn": "8.14.0", 2185 | "acorn-walk": "8.3.2", 2186 | "exit-hook": "2.2.1", 2187 | "glob-to-regexp": "0.4.1", 2188 | "stoppable": "1.1.0", 2189 | "undici": "^5.28.5", 2190 | "workerd": "1.20250507.0", 2191 | "ws": "8.18.0", 2192 | "youch": "3.3.4", 2193 | "zod": "3.22.3" 2194 | } 2195 | }, 2196 | "mustache": { 2197 | "version": "4.2.0", 2198 | "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", 2199 | "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", 2200 | "dev": true 2201 | }, 2202 | "ohash": { 2203 | "version": "2.0.11", 2204 | "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", 2205 | "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", 2206 | "dev": true 2207 | }, 2208 | "path-to-regexp": { 2209 | "version": "6.3.0", 2210 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", 2211 | "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", 2212 | "dev": true 2213 | }, 2214 | "pathe": { 2215 | "version": "2.0.3", 2216 | "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", 2217 | "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", 2218 | "dev": true 2219 | }, 2220 | "printable-characters": { 2221 | "version": "1.0.42", 2222 | "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", 2223 | "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", 2224 | "dev": true 2225 | }, 2226 | "semver": { 2227 | "version": "7.7.1", 2228 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", 2229 | "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", 2230 | "dev": true, 2231 | "optional": true 2232 | }, 2233 | "sharp": { 2234 | "version": "0.33.5", 2235 | "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", 2236 | "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", 2237 | "dev": true, 2238 | "optional": true, 2239 | "requires": { 2240 | "@img/sharp-darwin-arm64": "0.33.5", 2241 | "@img/sharp-darwin-x64": "0.33.5", 2242 | "@img/sharp-libvips-darwin-arm64": "1.0.4", 2243 | "@img/sharp-libvips-darwin-x64": "1.0.4", 2244 | "@img/sharp-libvips-linux-arm": "1.0.5", 2245 | "@img/sharp-libvips-linux-arm64": "1.0.4", 2246 | "@img/sharp-libvips-linux-s390x": "1.0.4", 2247 | "@img/sharp-libvips-linux-x64": "1.0.4", 2248 | "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", 2249 | "@img/sharp-libvips-linuxmusl-x64": "1.0.4", 2250 | "@img/sharp-linux-arm": "0.33.5", 2251 | "@img/sharp-linux-arm64": "0.33.5", 2252 | "@img/sharp-linux-s390x": "0.33.5", 2253 | "@img/sharp-linux-x64": "0.33.5", 2254 | "@img/sharp-linuxmusl-arm64": "0.33.5", 2255 | "@img/sharp-linuxmusl-x64": "0.33.5", 2256 | "@img/sharp-wasm32": "0.33.5", 2257 | "@img/sharp-win32-ia32": "0.33.5", 2258 | "@img/sharp-win32-x64": "0.33.5", 2259 | "color": "^4.2.3", 2260 | "detect-libc": "^2.0.3", 2261 | "semver": "^7.6.3" 2262 | } 2263 | }, 2264 | "simple-swizzle": { 2265 | "version": "0.2.2", 2266 | "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 2267 | "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", 2268 | "dev": true, 2269 | "optional": true, 2270 | "requires": { 2271 | "is-arrayish": "^0.3.1" 2272 | } 2273 | }, 2274 | "source-map": { 2275 | "version": "0.6.1", 2276 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2277 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 2278 | "dev": true 2279 | }, 2280 | "stacktracey": { 2281 | "version": "2.1.8", 2282 | "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", 2283 | "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", 2284 | "dev": true, 2285 | "requires": { 2286 | "as-table": "^1.0.36", 2287 | "get-source": "^2.0.12" 2288 | } 2289 | }, 2290 | "stoppable": { 2291 | "version": "1.1.0", 2292 | "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", 2293 | "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", 2294 | "dev": true 2295 | }, 2296 | "tslib": { 2297 | "version": "2.8.1", 2298 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 2299 | "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 2300 | "dev": true, 2301 | "optional": true 2302 | }, 2303 | "ufo": { 2304 | "version": "1.6.1", 2305 | "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", 2306 | "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", 2307 | "dev": true 2308 | }, 2309 | "undici": { 2310 | "version": "5.29.0", 2311 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", 2312 | "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", 2313 | "dev": true, 2314 | "requires": { 2315 | "@fastify/busboy": "^2.0.0" 2316 | } 2317 | }, 2318 | "unenv": { 2319 | "version": "2.0.0-rc.15", 2320 | "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.15.tgz", 2321 | "integrity": "sha512-J/rEIZU8w6FOfLNz/hNKsnY+fFHWnu9MH4yRbSZF3xbbGHovcetXPs7sD+9p8L6CeNC//I9bhRYAOsBt2u7/OA==", 2322 | "dev": true, 2323 | "requires": { 2324 | "defu": "^6.1.4", 2325 | "exsolve": "^1.0.4", 2326 | "ohash": "^2.0.11", 2327 | "pathe": "^2.0.3", 2328 | "ufo": "^1.5.4" 2329 | } 2330 | }, 2331 | "workerd": { 2332 | "version": "1.20250507.0", 2333 | "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20250507.0.tgz", 2334 | "integrity": "sha512-OXaGjEh5THT9iblwWIyPrYBoaPe/d4zN03Go7/w8CmS8sma7//O9hjbk43sboWkc89taGPmU0/LNyZUUiUlHeQ==", 2335 | "dev": true, 2336 | "requires": { 2337 | "@cloudflare/workerd-darwin-64": "1.20250507.0", 2338 | "@cloudflare/workerd-darwin-arm64": "1.20250507.0", 2339 | "@cloudflare/workerd-linux-64": "1.20250507.0", 2340 | "@cloudflare/workerd-linux-arm64": "1.20250507.0", 2341 | "@cloudflare/workerd-windows-64": "1.20250507.0" 2342 | } 2343 | }, 2344 | "wrangler": { 2345 | "version": "4.14.4", 2346 | "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.14.4.tgz", 2347 | "integrity": "sha512-HIdOdiMIcJV5ymw80RKsr3Uzen/p1kRX4jnCEmR2XVeoEhV2Qw6GABxS5WMTlSES2/vEX0Y+ezUAdsprcUhJ5g==", 2348 | "dev": true, 2349 | "requires": { 2350 | "@cloudflare/kv-asset-handler": "0.4.0", 2351 | "@cloudflare/unenv-preset": "2.3.1", 2352 | "blake3-wasm": "2.1.5", 2353 | "esbuild": "0.25.4", 2354 | "fsevents": "~2.3.2", 2355 | "miniflare": "4.20250507.0", 2356 | "path-to-regexp": "6.3.0", 2357 | "sharp": "^0.33.5", 2358 | "unenv": "2.0.0-rc.15", 2359 | "workerd": "1.20250507.0" 2360 | } 2361 | }, 2362 | "ws": { 2363 | "version": "8.18.0", 2364 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 2365 | "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 2366 | "dev": true, 2367 | "requires": {} 2368 | }, 2369 | "youch": { 2370 | "version": "3.3.4", 2371 | "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz", 2372 | "integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==", 2373 | "dev": true, 2374 | "requires": { 2375 | "cookie": "^0.7.1", 2376 | "mustache": "^4.2.0", 2377 | "stacktracey": "^2.1.8" 2378 | } 2379 | }, 2380 | "zod": { 2381 | "version": "3.22.3", 2382 | "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.3.tgz", 2383 | "integrity": "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==", 2384 | "dev": true 2385 | } 2386 | } 2387 | } 2388 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "name": "trashttpandas", 4 | "version": "2.0.0", 5 | "description": "An API for HTTP Raccoons on Cloudflare Workers.", 6 | "scripts": { 7 | "dev": "wrangler dev", 8 | "dev:remote": "wrangler dev --remote", 9 | "deploy": "wrangler deploy --minify" 10 | }, 11 | "author": "Leon San José Larsson ", 12 | "license": "MIT", 13 | "dependencies": { 14 | "hono": "^4.1.3" 15 | }, 16 | "devDependencies": { 17 | "@cloudflare/workers-types": "^4.20240320.1", 18 | "wrangler": "^4.14.4" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "module": "CommonJS", 5 | "lib": ["ES2020"], 6 | "types": ["@cloudflare/workers-types"], 7 | "jsx": "react-jsx", 8 | "jsxImportSource": "hono/jsx" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /wrangler.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "node_modules/wrangler/config-schema.json", 3 | 4 | "name": "trashttpandas", 5 | "main": "./index.tsx", 6 | "compatibility_date": "2023-08-03", 7 | 8 | "observability": { 9 | "enabled": true 10 | }, 11 | 12 | "kv_namespaces": [ 13 | { 14 | "binding": "CODES_KV", 15 | "id": "6d813d9939be47a98daf2e8fc3abe5f0", 16 | "preview_id": "6d813d9939be47a98daf2e8fc3abe5f0" 17 | } 18 | ], 19 | 20 | "rules": [ 21 | { 22 | "type": "Text", 23 | "globs": ["**/*.txt"], 24 | "fallthrough": true 25 | }, 26 | { 27 | "type": "Text", 28 | "globs": ["**/*.css"], 29 | "fallthrough": true 30 | }, 31 | { 32 | "type": "Data", 33 | "globs": ["**/*.png"], 34 | "fallthrough": true 35 | } 36 | ] 37 | } 38 | --------------------------------------------------------------------------------