Openstatus www.openstatus.dev

📸 screenshot website (#744)

authored by

Thibault Le Ouay and committed by
GitHub
d472537e 5671c4b6

+2643 -98
+10
apps/screenshot-worker/.gitignore
··· 1 + node_modules 2 + dist 3 + .wrangler 4 + .dev.vars 5 + 6 + # Change them to your taste: 7 + package-lock.json 8 + yarn.lock 9 + pnpm-lock.yaml 10 + bun.lockb
+3
apps/screenshot-worker/README.md
··· 1 + # Screenshot Worker 2 + 3 + This is a worker that takes screenshots of web pages when we create an incident.
+23
apps/screenshot-worker/package.json
··· 1 + { 2 + "name": "@openstatus/screenshot-worker", 3 + "version": "0.0.1", 4 + "scripts": { 5 + "dev": "wrangler dev src/index.ts", 6 + "deploy": "wrangler deploy --minify src/index.ts" 7 + }, 8 + "dependencies": { 9 + "@hono/zod-validator": "0.2.1", 10 + "@libsql/client": "0.6.0", 11 + "@openstatus/db": "workspace:*", 12 + "drizzle-orm": "0.30.7", 13 + "hono": "4.2.2", 14 + "zod": "3.22.2" 15 + }, 16 + "devDependencies": { 17 + "@cloudflare/puppeteer": "0.0.6", 18 + "@cloudflare/workers-types": "4.20240403.0", 19 + "@openstatus/tsconfig": "workspace:*", 20 + "typescript": "5.4.4", 21 + "wrangler": "3.47.0" 22 + } 23 + }
+82
apps/screenshot-worker/src/index.ts
··· 1 + import puppeteer from "@cloudflare/puppeteer"; 2 + import { zValidator } from "@hono/zod-validator"; 3 + import { createClient } from "@libsql/client/web"; 4 + import { eq } from "drizzle-orm"; 5 + import { drizzle } from "drizzle-orm/libsql"; 6 + import { Hono } from "hono"; 7 + import { z } from "zod"; 8 + 9 + import { incidentTable } from "@openstatus/db/src/schema/incidents/incident"; 10 + 11 + type Bindings = { 12 + MYBROWSER: Fetcher; 13 + MY_BUCKET: R2Bucket; 14 + DATABASE_URL: string; 15 + DATABASE_AUTH_TOKEN: string; 16 + HEADER_TOKEN: string; 17 + }; 18 + 19 + const app = new Hono<{ Bindings: Bindings }>(); 20 + 21 + const createDrizzleClient = (env: Bindings) => { 22 + const url = env.DATABASE_URL?.trim(); 23 + if (url === undefined) { 24 + throw new Error("DATABASE_URL env var is not defined"); 25 + } 26 + 27 + const authToken = env.DATABASE_AUTH_TOKEN?.trim(); 28 + if (authToken === undefined) { 29 + throw new Error("DATABASE_AUTH_TOKEN env var is not defined"); 30 + } 31 + 32 + return drizzle(createClient({ url, authToken })); 33 + }; 34 + 35 + app.post( 36 + "/", 37 + zValidator( 38 + "json", 39 + z.object({ 40 + url: z.string().url(), 41 + incidentId: z.number(), 42 + kind: z.enum(["incident", "recovery"]), 43 + }), 44 + ), 45 + async (c) => { 46 + const auth = c.req.header("Authorization"); 47 + if (auth !== `Basic ${c.env.HEADER_TOKEN}`) { 48 + console.error("Unauthorized"); 49 + return c.text("Unauthorized", 401); 50 + } 51 + 52 + const data = c.req.valid("json"); 53 + 54 + const env = c.env; 55 + const db = createDrizzleClient(env); 56 + const browser = await puppeteer.launch(c.env.MYBROWSER); 57 + const page = await browser.newPage(); 58 + await page.goto("https://www.openstatus.dev"); 59 + const img = await page.screenshot(); 60 + const id = `${data.incidentId}-${Date.now()}.png`; 61 + const url = `https://screenshot.openstat.us/${id}`; 62 + const r = await c.env.MY_BUCKET.put(id, img); 63 + await browser.close(); 64 + if (data.kind === "incident") { 65 + await db 66 + .update(incidentTable) 67 + .set({ incidentScreenshotUrl: url }) 68 + .where(eq(incidentTable.id, data.incidentId)) 69 + .run(); 70 + } 71 + if (data.kind === "recovery") { 72 + await db 73 + .update(incidentTable) 74 + .set({ recoveryScreenshotUrl: url }) 75 + .where(eq(incidentTable.id, data.incidentId)) 76 + .run(); 77 + } 78 + return c.text("Screenshot saved"); 79 + }, 80 + ); 81 + 82 + export default app;
+7
apps/screenshot-worker/tsconfig.json
··· 1 + { 2 + "extends": "@openstatus/tsconfig/base.json", 3 + "include": ["src", "*.ts", "**/*.ts"], 4 + "compilerOptions": { 5 + "types": ["@cloudflare/workers-types"] 6 + } 7 + }
+24
apps/screenshot-worker/wrangler.toml
··· 1 + name = "screenshot-worker" 2 + compatibility_date = "2024-04-01" 3 + compatibility_flags = [ "nodejs_compat" ] 4 + 5 + browser = { binding = "MYBROWSER" } 6 + 7 + # [vars] 8 + # MY_VAR = "my-variable" 9 + 10 + # [[kv_namespaces]] 11 + # binding = "MY_KV_NAMESPACE" 12 + # id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 13 + 14 + [[r2_buckets]] 15 + binding = "MY_BUCKET" 16 + bucket_name = "incident-screenshot" 17 + 18 + # [[d1_databases]] 19 + # binding = "DB" 20 + # database_name = "my-database" 21 + # database_id = "" 22 + 23 + # [ai] 24 + # binding = "AI"
+2
apps/server/.env.example
··· 8 8 RESEND_API_KEY= 9 9 TWILLIO_AUTH_TOKEN=your_auth_token 10 10 TWILLIO_ACCOUNT_ID=your_account_id 11 + 12 + SCREENSHOT_SERVICE_URL=http://your.endpoint
+1
apps/server/.env.test
··· 10 10 FLY_REGION=ams 11 11 RESEND_API_KEY=test 12 12 SQLD_HTTP_AUTH=basic:token 13 + SCREENSHOT_SERVICE_URL=http://your.endpoint
+61 -2
apps/server/src/checker/index.ts
··· 116 116 .get(); 117 117 118 118 if (incident === undefined) { 119 - await db 119 + const newIncident = await db 120 120 .insert(incidentTable) 121 121 .values({ 122 122 monitorId: Number(monitorId), 123 123 workspaceId: monitor.workspaceId, 124 124 startedAt: new Date(cronTimestamp), 125 125 }) 126 - .onConflictDoNothing(); 126 + .onConflictDoNothing() 127 + .returning(); 127 128 128 129 await triggerNotifications({ 129 130 monitorId, ··· 131 132 message, 132 133 notifType: "alert", 133 134 }); 135 + 136 + if (newIncident.length > 0) { 137 + const monitor = await db 138 + .select({ url: schema.monitor.url }) 139 + .from(schema.monitor) 140 + .where(eq(schema.monitor.id, Number(monitorId))) 141 + .get(); 142 + if (monitor) { 143 + await triggerScreenshot({ 144 + data: { 145 + url: monitor.url, 146 + incidentId: newIncident[0].id, 147 + kind: "incident", 148 + }, 149 + }); 150 + } 151 + } 134 152 } 135 153 } 136 154 } ··· 198 216 message, 199 217 notifType: "recovery", 200 218 }); 219 + 220 + const monitor = await db 221 + .select({ url: schema.monitor.url }) 222 + .from(schema.monitor) 223 + .where(eq(schema.monitor.id, Number(monitorId))) 224 + .get(); 225 + if (monitor) { 226 + await triggerScreenshot({ 227 + data: { 228 + url: monitor.url, 229 + incidentId: incident.id, 230 + kind: "recovery", 231 + }, 232 + }); 233 + } 201 234 } 202 235 } 203 236 } ··· 205 238 206 239 return c.text("Ok", 200); 207 240 }); 241 + 242 + const payload = z.object({ 243 + url: z.string().url(), 244 + incidentId: z.number(), 245 + kind: z.enum(["incident", "recovery"]), 246 + }); 247 + 248 + const triggerScreenshot = async ({ 249 + data, 250 + }: { 251 + data: z.infer<typeof payload>; 252 + }) => { 253 + console.log(` 📸 taking screenshot for incident ${data.incidentId}`); 254 + await fetch(env.SCREENSHOT_SERVICE_URL, { 255 + method: "POST", 256 + headers: { 257 + "Content-Type": "application/json", 258 + Authorization: `Basic ${env.CRON_SECRET}`, 259 + }, 260 + body: JSON.stringify({ 261 + url: data.url, 262 + incidentId: data.incidentId, 263 + kind: data.kind, 264 + }), 265 + }); 266 + };
+1
apps/server/src/env.ts
··· 14 14 CRON_SECRET: z.string(), 15 15 JITSU_WRITE_KEY: z.string().optional(), 16 16 JITSU_HOST: z.string().optional(), 17 + SCREENSHOT_SERVICE_URL: z.string(), 17 18 }, 18 19 19 20 /**
+2
packages/db/drizzle/0023_dry_blink.sql
··· 1 + ALTER TABLE incident ADD `incident_screenshot_url` text;--> statement-breakpoint 2 + ALTER TABLE incident ADD `recovery_screenshot_url` text;
+1626
packages/db/drizzle/meta/0023_snapshot.json
··· 1 + { 2 + "version": "5", 3 + "dialect": "sqlite", 4 + "id": "a8569d87-b829-4372-9f00-1c61a956f117", 5 + "prevId": "a53b01bf-cce5-411d-99cf-a0645f3bd125", 6 + "tables": { 7 + "status_report_to_monitors": { 8 + "name": "status_report_to_monitors", 9 + "columns": { 10 + "monitor_id": { 11 + "name": "monitor_id", 12 + "type": "integer", 13 + "primaryKey": false, 14 + "notNull": true, 15 + "autoincrement": false 16 + }, 17 + "status_report_id": { 18 + "name": "status_report_id", 19 + "type": "integer", 20 + "primaryKey": false, 21 + "notNull": true, 22 + "autoincrement": false 23 + }, 24 + "created_at": { 25 + "name": "created_at", 26 + "type": "integer", 27 + "primaryKey": false, 28 + "notNull": false, 29 + "autoincrement": false, 30 + "default": "(strftime('%s', 'now'))" 31 + } 32 + }, 33 + "indexes": {}, 34 + "foreignKeys": { 35 + "status_report_to_monitors_monitor_id_monitor_id_fk": { 36 + "name": "status_report_to_monitors_monitor_id_monitor_id_fk", 37 + "tableFrom": "status_report_to_monitors", 38 + "tableTo": "monitor", 39 + "columnsFrom": [ 40 + "monitor_id" 41 + ], 42 + "columnsTo": [ 43 + "id" 44 + ], 45 + "onDelete": "cascade", 46 + "onUpdate": "no action" 47 + }, 48 + "status_report_to_monitors_status_report_id_status_report_id_fk": { 49 + "name": "status_report_to_monitors_status_report_id_status_report_id_fk", 50 + "tableFrom": "status_report_to_monitors", 51 + "tableTo": "status_report", 52 + "columnsFrom": [ 53 + "status_report_id" 54 + ], 55 + "columnsTo": [ 56 + "id" 57 + ], 58 + "onDelete": "cascade", 59 + "onUpdate": "no action" 60 + } 61 + }, 62 + "compositePrimaryKeys": { 63 + "status_report_to_monitors_monitor_id_status_report_id_pk": { 64 + "columns": [ 65 + "monitor_id", 66 + "status_report_id" 67 + ], 68 + "name": "status_report_to_monitors_monitor_id_status_report_id_pk" 69 + } 70 + }, 71 + "uniqueConstraints": {} 72 + }, 73 + "status_reports_to_pages": { 74 + "name": "status_reports_to_pages", 75 + "columns": { 76 + "page_id": { 77 + "name": "page_id", 78 + "type": "integer", 79 + "primaryKey": false, 80 + "notNull": true, 81 + "autoincrement": false 82 + }, 83 + "status_report_id": { 84 + "name": "status_report_id", 85 + "type": "integer", 86 + "primaryKey": false, 87 + "notNull": true, 88 + "autoincrement": false 89 + }, 90 + "created_at": { 91 + "name": "created_at", 92 + "type": "integer", 93 + "primaryKey": false, 94 + "notNull": false, 95 + "autoincrement": false, 96 + "default": "(strftime('%s', 'now'))" 97 + } 98 + }, 99 + "indexes": {}, 100 + "foreignKeys": { 101 + "status_reports_to_pages_page_id_page_id_fk": { 102 + "name": "status_reports_to_pages_page_id_page_id_fk", 103 + "tableFrom": "status_reports_to_pages", 104 + "tableTo": "page", 105 + "columnsFrom": [ 106 + "page_id" 107 + ], 108 + "columnsTo": [ 109 + "id" 110 + ], 111 + "onDelete": "cascade", 112 + "onUpdate": "no action" 113 + }, 114 + "status_reports_to_pages_status_report_id_status_report_id_fk": { 115 + "name": "status_reports_to_pages_status_report_id_status_report_id_fk", 116 + "tableFrom": "status_reports_to_pages", 117 + "tableTo": "status_report", 118 + "columnsFrom": [ 119 + "status_report_id" 120 + ], 121 + "columnsTo": [ 122 + "id" 123 + ], 124 + "onDelete": "cascade", 125 + "onUpdate": "no action" 126 + } 127 + }, 128 + "compositePrimaryKeys": { 129 + "status_reports_to_pages_page_id_status_report_id_pk": { 130 + "columns": [ 131 + "page_id", 132 + "status_report_id" 133 + ], 134 + "name": "status_reports_to_pages_page_id_status_report_id_pk" 135 + } 136 + }, 137 + "uniqueConstraints": {} 138 + }, 139 + "status_report": { 140 + "name": "status_report", 141 + "columns": { 142 + "id": { 143 + "name": "id", 144 + "type": "integer", 145 + "primaryKey": true, 146 + "notNull": true, 147 + "autoincrement": false 148 + }, 149 + "status": { 150 + "name": "status", 151 + "type": "text", 152 + "primaryKey": false, 153 + "notNull": true, 154 + "autoincrement": false 155 + }, 156 + "title": { 157 + "name": "title", 158 + "type": "text(256)", 159 + "primaryKey": false, 160 + "notNull": true, 161 + "autoincrement": false 162 + }, 163 + "workspace_id": { 164 + "name": "workspace_id", 165 + "type": "integer", 166 + "primaryKey": false, 167 + "notNull": false, 168 + "autoincrement": false 169 + }, 170 + "created_at": { 171 + "name": "created_at", 172 + "type": "integer", 173 + "primaryKey": false, 174 + "notNull": false, 175 + "autoincrement": false, 176 + "default": "(strftime('%s', 'now'))" 177 + }, 178 + "updated_at": { 179 + "name": "updated_at", 180 + "type": "integer", 181 + "primaryKey": false, 182 + "notNull": false, 183 + "autoincrement": false, 184 + "default": "(strftime('%s', 'now'))" 185 + } 186 + }, 187 + "indexes": {}, 188 + "foreignKeys": { 189 + "status_report_workspace_id_workspace_id_fk": { 190 + "name": "status_report_workspace_id_workspace_id_fk", 191 + "tableFrom": "status_report", 192 + "tableTo": "workspace", 193 + "columnsFrom": [ 194 + "workspace_id" 195 + ], 196 + "columnsTo": [ 197 + "id" 198 + ], 199 + "onDelete": "no action", 200 + "onUpdate": "no action" 201 + } 202 + }, 203 + "compositePrimaryKeys": {}, 204 + "uniqueConstraints": {} 205 + }, 206 + "status_report_update": { 207 + "name": "status_report_update", 208 + "columns": { 209 + "id": { 210 + "name": "id", 211 + "type": "integer", 212 + "primaryKey": true, 213 + "notNull": true, 214 + "autoincrement": false 215 + }, 216 + "status": { 217 + "name": "status", 218 + "type": "text(4)", 219 + "primaryKey": false, 220 + "notNull": true, 221 + "autoincrement": false 222 + }, 223 + "date": { 224 + "name": "date", 225 + "type": "integer", 226 + "primaryKey": false, 227 + "notNull": true, 228 + "autoincrement": false 229 + }, 230 + "message": { 231 + "name": "message", 232 + "type": "text", 233 + "primaryKey": false, 234 + "notNull": true, 235 + "autoincrement": false 236 + }, 237 + "status_report_id": { 238 + "name": "status_report_id", 239 + "type": "integer", 240 + "primaryKey": false, 241 + "notNull": true, 242 + "autoincrement": false 243 + }, 244 + "created_at": { 245 + "name": "created_at", 246 + "type": "integer", 247 + "primaryKey": false, 248 + "notNull": false, 249 + "autoincrement": false, 250 + "default": "(strftime('%s', 'now'))" 251 + }, 252 + "updated_at": { 253 + "name": "updated_at", 254 + "type": "integer", 255 + "primaryKey": false, 256 + "notNull": false, 257 + "autoincrement": false, 258 + "default": "(strftime('%s', 'now'))" 259 + } 260 + }, 261 + "indexes": {}, 262 + "foreignKeys": { 263 + "status_report_update_status_report_id_status_report_id_fk": { 264 + "name": "status_report_update_status_report_id_status_report_id_fk", 265 + "tableFrom": "status_report_update", 266 + "tableTo": "status_report", 267 + "columnsFrom": [ 268 + "status_report_id" 269 + ], 270 + "columnsTo": [ 271 + "id" 272 + ], 273 + "onDelete": "cascade", 274 + "onUpdate": "no action" 275 + } 276 + }, 277 + "compositePrimaryKeys": {}, 278 + "uniqueConstraints": {} 279 + }, 280 + "integration": { 281 + "name": "integration", 282 + "columns": { 283 + "id": { 284 + "name": "id", 285 + "type": "integer", 286 + "primaryKey": true, 287 + "notNull": true, 288 + "autoincrement": false 289 + }, 290 + "name": { 291 + "name": "name", 292 + "type": "text(256)", 293 + "primaryKey": false, 294 + "notNull": true, 295 + "autoincrement": false 296 + }, 297 + "workspace_id": { 298 + "name": "workspace_id", 299 + "type": "integer", 300 + "primaryKey": false, 301 + "notNull": false, 302 + "autoincrement": false 303 + }, 304 + "credential": { 305 + "name": "credential", 306 + "type": "text", 307 + "primaryKey": false, 308 + "notNull": false, 309 + "autoincrement": false 310 + }, 311 + "external_id": { 312 + "name": "external_id", 313 + "type": "text", 314 + "primaryKey": false, 315 + "notNull": true, 316 + "autoincrement": false 317 + }, 318 + "created_at": { 319 + "name": "created_at", 320 + "type": "integer", 321 + "primaryKey": false, 322 + "notNull": false, 323 + "autoincrement": false, 324 + "default": "(strftime('%s', 'now'))" 325 + }, 326 + "updated_at": { 327 + "name": "updated_at", 328 + "type": "integer", 329 + "primaryKey": false, 330 + "notNull": false, 331 + "autoincrement": false, 332 + "default": "(strftime('%s', 'now'))" 333 + }, 334 + "data": { 335 + "name": "data", 336 + "type": "text", 337 + "primaryKey": false, 338 + "notNull": true, 339 + "autoincrement": false 340 + } 341 + }, 342 + "indexes": {}, 343 + "foreignKeys": { 344 + "integration_workspace_id_workspace_id_fk": { 345 + "name": "integration_workspace_id_workspace_id_fk", 346 + "tableFrom": "integration", 347 + "tableTo": "workspace", 348 + "columnsFrom": [ 349 + "workspace_id" 350 + ], 351 + "columnsTo": [ 352 + "id" 353 + ], 354 + "onDelete": "no action", 355 + "onUpdate": "no action" 356 + } 357 + }, 358 + "compositePrimaryKeys": {}, 359 + "uniqueConstraints": {} 360 + }, 361 + "page": { 362 + "name": "page", 363 + "columns": { 364 + "id": { 365 + "name": "id", 366 + "type": "integer", 367 + "primaryKey": true, 368 + "notNull": true, 369 + "autoincrement": false 370 + }, 371 + "workspace_id": { 372 + "name": "workspace_id", 373 + "type": "integer", 374 + "primaryKey": false, 375 + "notNull": true, 376 + "autoincrement": false 377 + }, 378 + "title": { 379 + "name": "title", 380 + "type": "text", 381 + "primaryKey": false, 382 + "notNull": true, 383 + "autoincrement": false 384 + }, 385 + "description": { 386 + "name": "description", 387 + "type": "text", 388 + "primaryKey": false, 389 + "notNull": true, 390 + "autoincrement": false 391 + }, 392 + "icon": { 393 + "name": "icon", 394 + "type": "text(256)", 395 + "primaryKey": false, 396 + "notNull": false, 397 + "autoincrement": false, 398 + "default": "''" 399 + }, 400 + "slug": { 401 + "name": "slug", 402 + "type": "text(256)", 403 + "primaryKey": false, 404 + "notNull": true, 405 + "autoincrement": false 406 + }, 407 + "custom_domain": { 408 + "name": "custom_domain", 409 + "type": "text(256)", 410 + "primaryKey": false, 411 + "notNull": true, 412 + "autoincrement": false 413 + }, 414 + "published": { 415 + "name": "published", 416 + "type": "integer", 417 + "primaryKey": false, 418 + "notNull": false, 419 + "autoincrement": false, 420 + "default": false 421 + }, 422 + "created_at": { 423 + "name": "created_at", 424 + "type": "integer", 425 + "primaryKey": false, 426 + "notNull": false, 427 + "autoincrement": false, 428 + "default": "(strftime('%s', 'now'))" 429 + }, 430 + "updated_at": { 431 + "name": "updated_at", 432 + "type": "integer", 433 + "primaryKey": false, 434 + "notNull": false, 435 + "autoincrement": false, 436 + "default": "(strftime('%s', 'now'))" 437 + } 438 + }, 439 + "indexes": { 440 + "page_slug_unique": { 441 + "name": "page_slug_unique", 442 + "columns": [ 443 + "slug" 444 + ], 445 + "isUnique": true 446 + } 447 + }, 448 + "foreignKeys": { 449 + "page_workspace_id_workspace_id_fk": { 450 + "name": "page_workspace_id_workspace_id_fk", 451 + "tableFrom": "page", 452 + "tableTo": "workspace", 453 + "columnsFrom": [ 454 + "workspace_id" 455 + ], 456 + "columnsTo": [ 457 + "id" 458 + ], 459 + "onDelete": "cascade", 460 + "onUpdate": "no action" 461 + } 462 + }, 463 + "compositePrimaryKeys": {}, 464 + "uniqueConstraints": {} 465 + }, 466 + "monitor": { 467 + "name": "monitor", 468 + "columns": { 469 + "id": { 470 + "name": "id", 471 + "type": "integer", 472 + "primaryKey": true, 473 + "notNull": true, 474 + "autoincrement": false 475 + }, 476 + "job_type": { 477 + "name": "job_type", 478 + "type": "text", 479 + "primaryKey": false, 480 + "notNull": true, 481 + "autoincrement": false, 482 + "default": "'other'" 483 + }, 484 + "periodicity": { 485 + "name": "periodicity", 486 + "type": "text", 487 + "primaryKey": false, 488 + "notNull": true, 489 + "autoincrement": false, 490 + "default": "'other'" 491 + }, 492 + "status": { 493 + "name": "status", 494 + "type": "text", 495 + "primaryKey": false, 496 + "notNull": true, 497 + "autoincrement": false, 498 + "default": "'active'" 499 + }, 500 + "active": { 501 + "name": "active", 502 + "type": "integer", 503 + "primaryKey": false, 504 + "notNull": false, 505 + "autoincrement": false, 506 + "default": false 507 + }, 508 + "regions": { 509 + "name": "regions", 510 + "type": "text", 511 + "primaryKey": false, 512 + "notNull": true, 513 + "autoincrement": false, 514 + "default": "''" 515 + }, 516 + "url": { 517 + "name": "url", 518 + "type": "text(2048)", 519 + "primaryKey": false, 520 + "notNull": true, 521 + "autoincrement": false 522 + }, 523 + "name": { 524 + "name": "name", 525 + "type": "text(256)", 526 + "primaryKey": false, 527 + "notNull": true, 528 + "autoincrement": false, 529 + "default": "''" 530 + }, 531 + "description": { 532 + "name": "description", 533 + "type": "text", 534 + "primaryKey": false, 535 + "notNull": true, 536 + "autoincrement": false, 537 + "default": "''" 538 + }, 539 + "headers": { 540 + "name": "headers", 541 + "type": "text", 542 + "primaryKey": false, 543 + "notNull": false, 544 + "autoincrement": false, 545 + "default": "''" 546 + }, 547 + "body": { 548 + "name": "body", 549 + "type": "text", 550 + "primaryKey": false, 551 + "notNull": false, 552 + "autoincrement": false, 553 + "default": "''" 554 + }, 555 + "method": { 556 + "name": "method", 557 + "type": "text", 558 + "primaryKey": false, 559 + "notNull": false, 560 + "autoincrement": false, 561 + "default": "'GET'" 562 + }, 563 + "workspace_id": { 564 + "name": "workspace_id", 565 + "type": "integer", 566 + "primaryKey": false, 567 + "notNull": false, 568 + "autoincrement": false 569 + }, 570 + "assertions": { 571 + "name": "assertions", 572 + "type": "text", 573 + "primaryKey": false, 574 + "notNull": false, 575 + "autoincrement": false 576 + }, 577 + "created_at": { 578 + "name": "created_at", 579 + "type": "integer", 580 + "primaryKey": false, 581 + "notNull": false, 582 + "autoincrement": false, 583 + "default": "(strftime('%s', 'now'))" 584 + }, 585 + "updated_at": { 586 + "name": "updated_at", 587 + "type": "integer", 588 + "primaryKey": false, 589 + "notNull": false, 590 + "autoincrement": false, 591 + "default": "(strftime('%s', 'now'))" 592 + } 593 + }, 594 + "indexes": {}, 595 + "foreignKeys": { 596 + "monitor_workspace_id_workspace_id_fk": { 597 + "name": "monitor_workspace_id_workspace_id_fk", 598 + "tableFrom": "monitor", 599 + "tableTo": "workspace", 600 + "columnsFrom": [ 601 + "workspace_id" 602 + ], 603 + "columnsTo": [ 604 + "id" 605 + ], 606 + "onDelete": "no action", 607 + "onUpdate": "no action" 608 + } 609 + }, 610 + "compositePrimaryKeys": {}, 611 + "uniqueConstraints": {} 612 + }, 613 + "monitors_to_pages": { 614 + "name": "monitors_to_pages", 615 + "columns": { 616 + "monitor_id": { 617 + "name": "monitor_id", 618 + "type": "integer", 619 + "primaryKey": false, 620 + "notNull": true, 621 + "autoincrement": false 622 + }, 623 + "page_id": { 624 + "name": "page_id", 625 + "type": "integer", 626 + "primaryKey": false, 627 + "notNull": true, 628 + "autoincrement": false 629 + }, 630 + "created_at": { 631 + "name": "created_at", 632 + "type": "integer", 633 + "primaryKey": false, 634 + "notNull": false, 635 + "autoincrement": false, 636 + "default": "(strftime('%s', 'now'))" 637 + } 638 + }, 639 + "indexes": {}, 640 + "foreignKeys": { 641 + "monitors_to_pages_monitor_id_monitor_id_fk": { 642 + "name": "monitors_to_pages_monitor_id_monitor_id_fk", 643 + "tableFrom": "monitors_to_pages", 644 + "tableTo": "monitor", 645 + "columnsFrom": [ 646 + "monitor_id" 647 + ], 648 + "columnsTo": [ 649 + "id" 650 + ], 651 + "onDelete": "cascade", 652 + "onUpdate": "no action" 653 + }, 654 + "monitors_to_pages_page_id_page_id_fk": { 655 + "name": "monitors_to_pages_page_id_page_id_fk", 656 + "tableFrom": "monitors_to_pages", 657 + "tableTo": "page", 658 + "columnsFrom": [ 659 + "page_id" 660 + ], 661 + "columnsTo": [ 662 + "id" 663 + ], 664 + "onDelete": "cascade", 665 + "onUpdate": "no action" 666 + } 667 + }, 668 + "compositePrimaryKeys": { 669 + "monitors_to_pages_monitor_id_page_id_pk": { 670 + "columns": [ 671 + "monitor_id", 672 + "page_id" 673 + ], 674 + "name": "monitors_to_pages_monitor_id_page_id_pk" 675 + } 676 + }, 677 + "uniqueConstraints": {} 678 + }, 679 + "user": { 680 + "name": "user", 681 + "columns": { 682 + "id": { 683 + "name": "id", 684 + "type": "integer", 685 + "primaryKey": true, 686 + "notNull": true, 687 + "autoincrement": false 688 + }, 689 + "tenant_id": { 690 + "name": "tenant_id", 691 + "type": "text(256)", 692 + "primaryKey": false, 693 + "notNull": false, 694 + "autoincrement": false 695 + }, 696 + "first_name": { 697 + "name": "first_name", 698 + "type": "text", 699 + "primaryKey": false, 700 + "notNull": false, 701 + "autoincrement": false, 702 + "default": "''" 703 + }, 704 + "last_name": { 705 + "name": "last_name", 706 + "type": "text", 707 + "primaryKey": false, 708 + "notNull": false, 709 + "autoincrement": false, 710 + "default": "''" 711 + }, 712 + "email": { 713 + "name": "email", 714 + "type": "text", 715 + "primaryKey": false, 716 + "notNull": false, 717 + "autoincrement": false, 718 + "default": "''" 719 + }, 720 + "photo_url": { 721 + "name": "photo_url", 722 + "type": "text", 723 + "primaryKey": false, 724 + "notNull": false, 725 + "autoincrement": false, 726 + "default": "''" 727 + }, 728 + "created_at": { 729 + "name": "created_at", 730 + "type": "integer", 731 + "primaryKey": false, 732 + "notNull": false, 733 + "autoincrement": false, 734 + "default": "(strftime('%s', 'now'))" 735 + }, 736 + "updated_at": { 737 + "name": "updated_at", 738 + "type": "integer", 739 + "primaryKey": false, 740 + "notNull": false, 741 + "autoincrement": false, 742 + "default": "(strftime('%s', 'now'))" 743 + } 744 + }, 745 + "indexes": { 746 + "user_tenant_id_unique": { 747 + "name": "user_tenant_id_unique", 748 + "columns": [ 749 + "tenant_id" 750 + ], 751 + "isUnique": true 752 + } 753 + }, 754 + "foreignKeys": {}, 755 + "compositePrimaryKeys": {}, 756 + "uniqueConstraints": {} 757 + }, 758 + "users_to_workspaces": { 759 + "name": "users_to_workspaces", 760 + "columns": { 761 + "user_id": { 762 + "name": "user_id", 763 + "type": "integer", 764 + "primaryKey": false, 765 + "notNull": true, 766 + "autoincrement": false 767 + }, 768 + "workspace_id": { 769 + "name": "workspace_id", 770 + "type": "integer", 771 + "primaryKey": false, 772 + "notNull": true, 773 + "autoincrement": false 774 + }, 775 + "role": { 776 + "name": "role", 777 + "type": "text", 778 + "primaryKey": false, 779 + "notNull": true, 780 + "autoincrement": false, 781 + "default": "'member'" 782 + }, 783 + "created_at": { 784 + "name": "created_at", 785 + "type": "integer", 786 + "primaryKey": false, 787 + "notNull": false, 788 + "autoincrement": false, 789 + "default": "(strftime('%s', 'now'))" 790 + } 791 + }, 792 + "indexes": {}, 793 + "foreignKeys": { 794 + "users_to_workspaces_user_id_user_id_fk": { 795 + "name": "users_to_workspaces_user_id_user_id_fk", 796 + "tableFrom": "users_to_workspaces", 797 + "tableTo": "user", 798 + "columnsFrom": [ 799 + "user_id" 800 + ], 801 + "columnsTo": [ 802 + "id" 803 + ], 804 + "onDelete": "no action", 805 + "onUpdate": "no action" 806 + }, 807 + "users_to_workspaces_workspace_id_workspace_id_fk": { 808 + "name": "users_to_workspaces_workspace_id_workspace_id_fk", 809 + "tableFrom": "users_to_workspaces", 810 + "tableTo": "workspace", 811 + "columnsFrom": [ 812 + "workspace_id" 813 + ], 814 + "columnsTo": [ 815 + "id" 816 + ], 817 + "onDelete": "no action", 818 + "onUpdate": "no action" 819 + } 820 + }, 821 + "compositePrimaryKeys": { 822 + "users_to_workspaces_user_id_workspace_id_pk": { 823 + "columns": [ 824 + "user_id", 825 + "workspace_id" 826 + ], 827 + "name": "users_to_workspaces_user_id_workspace_id_pk" 828 + } 829 + }, 830 + "uniqueConstraints": {} 831 + }, 832 + "page_subscriber": { 833 + "name": "page_subscriber", 834 + "columns": { 835 + "id": { 836 + "name": "id", 837 + "type": "integer", 838 + "primaryKey": true, 839 + "notNull": true, 840 + "autoincrement": false 841 + }, 842 + "email": { 843 + "name": "email", 844 + "type": "text", 845 + "primaryKey": false, 846 + "notNull": true, 847 + "autoincrement": false 848 + }, 849 + "page_id": { 850 + "name": "page_id", 851 + "type": "integer", 852 + "primaryKey": false, 853 + "notNull": true, 854 + "autoincrement": false 855 + }, 856 + "token": { 857 + "name": "token", 858 + "type": "text", 859 + "primaryKey": false, 860 + "notNull": false, 861 + "autoincrement": false 862 + }, 863 + "accepted_at": { 864 + "name": "accepted_at", 865 + "type": "integer", 866 + "primaryKey": false, 867 + "notNull": false, 868 + "autoincrement": false 869 + }, 870 + "expires_at": { 871 + "name": "expires_at", 872 + "type": "integer", 873 + "primaryKey": false, 874 + "notNull": false, 875 + "autoincrement": false 876 + }, 877 + "created_at": { 878 + "name": "created_at", 879 + "type": "integer", 880 + "primaryKey": false, 881 + "notNull": false, 882 + "autoincrement": false, 883 + "default": "(strftime('%s', 'now'))" 884 + }, 885 + "updated_at": { 886 + "name": "updated_at", 887 + "type": "integer", 888 + "primaryKey": false, 889 + "notNull": false, 890 + "autoincrement": false, 891 + "default": "(strftime('%s', 'now'))" 892 + } 893 + }, 894 + "indexes": {}, 895 + "foreignKeys": { 896 + "page_subscriber_page_id_page_id_fk": { 897 + "name": "page_subscriber_page_id_page_id_fk", 898 + "tableFrom": "page_subscriber", 899 + "tableTo": "page", 900 + "columnsFrom": [ 901 + "page_id" 902 + ], 903 + "columnsTo": [ 904 + "id" 905 + ], 906 + "onDelete": "no action", 907 + "onUpdate": "no action" 908 + } 909 + }, 910 + "compositePrimaryKeys": {}, 911 + "uniqueConstraints": {} 912 + }, 913 + "workspace": { 914 + "name": "workspace", 915 + "columns": { 916 + "id": { 917 + "name": "id", 918 + "type": "integer", 919 + "primaryKey": true, 920 + "notNull": true, 921 + "autoincrement": false 922 + }, 923 + "slug": { 924 + "name": "slug", 925 + "type": "text", 926 + "primaryKey": false, 927 + "notNull": true, 928 + "autoincrement": false 929 + }, 930 + "name": { 931 + "name": "name", 932 + "type": "text", 933 + "primaryKey": false, 934 + "notNull": false, 935 + "autoincrement": false 936 + }, 937 + "stripe_id": { 938 + "name": "stripe_id", 939 + "type": "text(256)", 940 + "primaryKey": false, 941 + "notNull": false, 942 + "autoincrement": false 943 + }, 944 + "subscription_id": { 945 + "name": "subscription_id", 946 + "type": "text", 947 + "primaryKey": false, 948 + "notNull": false, 949 + "autoincrement": false 950 + }, 951 + "plan": { 952 + "name": "plan", 953 + "type": "text", 954 + "primaryKey": false, 955 + "notNull": false, 956 + "autoincrement": false 957 + }, 958 + "ends_at": { 959 + "name": "ends_at", 960 + "type": "integer", 961 + "primaryKey": false, 962 + "notNull": false, 963 + "autoincrement": false 964 + }, 965 + "paid_until": { 966 + "name": "paid_until", 967 + "type": "integer", 968 + "primaryKey": false, 969 + "notNull": false, 970 + "autoincrement": false 971 + }, 972 + "created_at": { 973 + "name": "created_at", 974 + "type": "integer", 975 + "primaryKey": false, 976 + "notNull": false, 977 + "autoincrement": false, 978 + "default": "(strftime('%s', 'now'))" 979 + }, 980 + "updated_at": { 981 + "name": "updated_at", 982 + "type": "integer", 983 + "primaryKey": false, 984 + "notNull": false, 985 + "autoincrement": false, 986 + "default": "(strftime('%s', 'now'))" 987 + } 988 + }, 989 + "indexes": { 990 + "workspace_slug_unique": { 991 + "name": "workspace_slug_unique", 992 + "columns": [ 993 + "slug" 994 + ], 995 + "isUnique": true 996 + }, 997 + "workspace_stripe_id_unique": { 998 + "name": "workspace_stripe_id_unique", 999 + "columns": [ 1000 + "stripe_id" 1001 + ], 1002 + "isUnique": true 1003 + } 1004 + }, 1005 + "foreignKeys": {}, 1006 + "compositePrimaryKeys": {}, 1007 + "uniqueConstraints": {} 1008 + }, 1009 + "notification": { 1010 + "name": "notification", 1011 + "columns": { 1012 + "id": { 1013 + "name": "id", 1014 + "type": "integer", 1015 + "primaryKey": true, 1016 + "notNull": true, 1017 + "autoincrement": false 1018 + }, 1019 + "name": { 1020 + "name": "name", 1021 + "type": "text", 1022 + "primaryKey": false, 1023 + "notNull": true, 1024 + "autoincrement": false 1025 + }, 1026 + "provider": { 1027 + "name": "provider", 1028 + "type": "text", 1029 + "primaryKey": false, 1030 + "notNull": true, 1031 + "autoincrement": false 1032 + }, 1033 + "data": { 1034 + "name": "data", 1035 + "type": "text", 1036 + "primaryKey": false, 1037 + "notNull": false, 1038 + "autoincrement": false, 1039 + "default": "'{}'" 1040 + }, 1041 + "workspace_id": { 1042 + "name": "workspace_id", 1043 + "type": "integer", 1044 + "primaryKey": false, 1045 + "notNull": false, 1046 + "autoincrement": false 1047 + }, 1048 + "created_at": { 1049 + "name": "created_at", 1050 + "type": "integer", 1051 + "primaryKey": false, 1052 + "notNull": false, 1053 + "autoincrement": false, 1054 + "default": "(strftime('%s', 'now'))" 1055 + }, 1056 + "updated_at": { 1057 + "name": "updated_at", 1058 + "type": "integer", 1059 + "primaryKey": false, 1060 + "notNull": false, 1061 + "autoincrement": false, 1062 + "default": "(strftime('%s', 'now'))" 1063 + } 1064 + }, 1065 + "indexes": {}, 1066 + "foreignKeys": { 1067 + "notification_workspace_id_workspace_id_fk": { 1068 + "name": "notification_workspace_id_workspace_id_fk", 1069 + "tableFrom": "notification", 1070 + "tableTo": "workspace", 1071 + "columnsFrom": [ 1072 + "workspace_id" 1073 + ], 1074 + "columnsTo": [ 1075 + "id" 1076 + ], 1077 + "onDelete": "no action", 1078 + "onUpdate": "no action" 1079 + } 1080 + }, 1081 + "compositePrimaryKeys": {}, 1082 + "uniqueConstraints": {} 1083 + }, 1084 + "notifications_to_monitors": { 1085 + "name": "notifications_to_monitors", 1086 + "columns": { 1087 + "monitor_id": { 1088 + "name": "monitor_id", 1089 + "type": "integer", 1090 + "primaryKey": false, 1091 + "notNull": true, 1092 + "autoincrement": false 1093 + }, 1094 + "notification_id": { 1095 + "name": "notification_id", 1096 + "type": "integer", 1097 + "primaryKey": false, 1098 + "notNull": true, 1099 + "autoincrement": false 1100 + }, 1101 + "created_at": { 1102 + "name": "created_at", 1103 + "type": "integer", 1104 + "primaryKey": false, 1105 + "notNull": false, 1106 + "autoincrement": false, 1107 + "default": "(strftime('%s', 'now'))" 1108 + } 1109 + }, 1110 + "indexes": {}, 1111 + "foreignKeys": { 1112 + "notifications_to_monitors_monitor_id_monitor_id_fk": { 1113 + "name": "notifications_to_monitors_monitor_id_monitor_id_fk", 1114 + "tableFrom": "notifications_to_monitors", 1115 + "tableTo": "monitor", 1116 + "columnsFrom": [ 1117 + "monitor_id" 1118 + ], 1119 + "columnsTo": [ 1120 + "id" 1121 + ], 1122 + "onDelete": "cascade", 1123 + "onUpdate": "no action" 1124 + }, 1125 + "notifications_to_monitors_notification_id_notification_id_fk": { 1126 + "name": "notifications_to_monitors_notification_id_notification_id_fk", 1127 + "tableFrom": "notifications_to_monitors", 1128 + "tableTo": "notification", 1129 + "columnsFrom": [ 1130 + "notification_id" 1131 + ], 1132 + "columnsTo": [ 1133 + "id" 1134 + ], 1135 + "onDelete": "cascade", 1136 + "onUpdate": "no action" 1137 + } 1138 + }, 1139 + "compositePrimaryKeys": { 1140 + "notifications_to_monitors_monitor_id_notification_id_pk": { 1141 + "columns": [ 1142 + "monitor_id", 1143 + "notification_id" 1144 + ], 1145 + "name": "notifications_to_monitors_monitor_id_notification_id_pk" 1146 + } 1147 + }, 1148 + "uniqueConstraints": {} 1149 + }, 1150 + "monitor_status": { 1151 + "name": "monitor_status", 1152 + "columns": { 1153 + "monitor_id": { 1154 + "name": "monitor_id", 1155 + "type": "integer", 1156 + "primaryKey": false, 1157 + "notNull": true, 1158 + "autoincrement": false 1159 + }, 1160 + "region": { 1161 + "name": "region", 1162 + "type": "text", 1163 + "primaryKey": false, 1164 + "notNull": true, 1165 + "autoincrement": false, 1166 + "default": "''" 1167 + }, 1168 + "status": { 1169 + "name": "status", 1170 + "type": "text", 1171 + "primaryKey": false, 1172 + "notNull": true, 1173 + "autoincrement": false, 1174 + "default": "'active'" 1175 + }, 1176 + "created_at": { 1177 + "name": "created_at", 1178 + "type": "integer", 1179 + "primaryKey": false, 1180 + "notNull": false, 1181 + "autoincrement": false, 1182 + "default": "(strftime('%s', 'now'))" 1183 + }, 1184 + "updated_at": { 1185 + "name": "updated_at", 1186 + "type": "integer", 1187 + "primaryKey": false, 1188 + "notNull": false, 1189 + "autoincrement": false, 1190 + "default": "(strftime('%s', 'now'))" 1191 + } 1192 + }, 1193 + "indexes": { 1194 + "monitor_status_idx": { 1195 + "name": "monitor_status_idx", 1196 + "columns": [ 1197 + "monitor_id", 1198 + "region" 1199 + ], 1200 + "isUnique": false 1201 + } 1202 + }, 1203 + "foreignKeys": { 1204 + "monitor_status_monitor_id_monitor_id_fk": { 1205 + "name": "monitor_status_monitor_id_monitor_id_fk", 1206 + "tableFrom": "monitor_status", 1207 + "tableTo": "monitor", 1208 + "columnsFrom": [ 1209 + "monitor_id" 1210 + ], 1211 + "columnsTo": [ 1212 + "id" 1213 + ], 1214 + "onDelete": "cascade", 1215 + "onUpdate": "no action" 1216 + } 1217 + }, 1218 + "compositePrimaryKeys": { 1219 + "monitor_status_monitor_id_region_pk": { 1220 + "columns": [ 1221 + "monitor_id", 1222 + "region" 1223 + ], 1224 + "name": "monitor_status_monitor_id_region_pk" 1225 + } 1226 + }, 1227 + "uniqueConstraints": {} 1228 + }, 1229 + "invitation": { 1230 + "name": "invitation", 1231 + "columns": { 1232 + "id": { 1233 + "name": "id", 1234 + "type": "integer", 1235 + "primaryKey": true, 1236 + "notNull": true, 1237 + "autoincrement": false 1238 + }, 1239 + "email": { 1240 + "name": "email", 1241 + "type": "text", 1242 + "primaryKey": false, 1243 + "notNull": true, 1244 + "autoincrement": false 1245 + }, 1246 + "role": { 1247 + "name": "role", 1248 + "type": "text", 1249 + "primaryKey": false, 1250 + "notNull": true, 1251 + "autoincrement": false, 1252 + "default": "'member'" 1253 + }, 1254 + "workspace_id": { 1255 + "name": "workspace_id", 1256 + "type": "integer", 1257 + "primaryKey": false, 1258 + "notNull": true, 1259 + "autoincrement": false 1260 + }, 1261 + "token": { 1262 + "name": "token", 1263 + "type": "text", 1264 + "primaryKey": false, 1265 + "notNull": true, 1266 + "autoincrement": false 1267 + }, 1268 + "expires_at": { 1269 + "name": "expires_at", 1270 + "type": "integer", 1271 + "primaryKey": false, 1272 + "notNull": true, 1273 + "autoincrement": false 1274 + }, 1275 + "created_at": { 1276 + "name": "created_at", 1277 + "type": "integer", 1278 + "primaryKey": false, 1279 + "notNull": false, 1280 + "autoincrement": false, 1281 + "default": "(strftime('%s', 'now'))" 1282 + }, 1283 + "accepted_at": { 1284 + "name": "accepted_at", 1285 + "type": "integer", 1286 + "primaryKey": false, 1287 + "notNull": false, 1288 + "autoincrement": false 1289 + } 1290 + }, 1291 + "indexes": {}, 1292 + "foreignKeys": {}, 1293 + "compositePrimaryKeys": {}, 1294 + "uniqueConstraints": {} 1295 + }, 1296 + "incident": { 1297 + "name": "incident", 1298 + "columns": { 1299 + "id": { 1300 + "name": "id", 1301 + "type": "integer", 1302 + "primaryKey": true, 1303 + "notNull": true, 1304 + "autoincrement": false 1305 + }, 1306 + "title": { 1307 + "name": "title", 1308 + "type": "text", 1309 + "primaryKey": false, 1310 + "notNull": true, 1311 + "autoincrement": false, 1312 + "default": "''" 1313 + }, 1314 + "summary": { 1315 + "name": "summary", 1316 + "type": "text", 1317 + "primaryKey": false, 1318 + "notNull": true, 1319 + "autoincrement": false, 1320 + "default": "''" 1321 + }, 1322 + "status": { 1323 + "name": "status", 1324 + "type": "text", 1325 + "primaryKey": false, 1326 + "notNull": true, 1327 + "autoincrement": false, 1328 + "default": "'triage'" 1329 + }, 1330 + "monitor_id": { 1331 + "name": "monitor_id", 1332 + "type": "integer", 1333 + "primaryKey": false, 1334 + "notNull": false, 1335 + "autoincrement": false 1336 + }, 1337 + "workspace_id": { 1338 + "name": "workspace_id", 1339 + "type": "integer", 1340 + "primaryKey": false, 1341 + "notNull": false, 1342 + "autoincrement": false 1343 + }, 1344 + "started_at": { 1345 + "name": "started_at", 1346 + "type": "integer", 1347 + "primaryKey": false, 1348 + "notNull": true, 1349 + "autoincrement": false, 1350 + "default": "(strftime('%s', 'now'))" 1351 + }, 1352 + "acknowledged_at": { 1353 + "name": "acknowledged_at", 1354 + "type": "integer", 1355 + "primaryKey": false, 1356 + "notNull": false, 1357 + "autoincrement": false 1358 + }, 1359 + "acknowledged_by": { 1360 + "name": "acknowledged_by", 1361 + "type": "integer", 1362 + "primaryKey": false, 1363 + "notNull": false, 1364 + "autoincrement": false 1365 + }, 1366 + "resolved_at": { 1367 + "name": "resolved_at", 1368 + "type": "integer", 1369 + "primaryKey": false, 1370 + "notNull": false, 1371 + "autoincrement": false 1372 + }, 1373 + "resolved_by": { 1374 + "name": "resolved_by", 1375 + "type": "integer", 1376 + "primaryKey": false, 1377 + "notNull": false, 1378 + "autoincrement": false 1379 + }, 1380 + "incident_screenshot_url": { 1381 + "name": "incident_screenshot_url", 1382 + "type": "text", 1383 + "primaryKey": false, 1384 + "notNull": false, 1385 + "autoincrement": false 1386 + }, 1387 + "recovery_screenshot_url": { 1388 + "name": "recovery_screenshot_url", 1389 + "type": "text", 1390 + "primaryKey": false, 1391 + "notNull": false, 1392 + "autoincrement": false 1393 + }, 1394 + "auto_resolved": { 1395 + "name": "auto_resolved", 1396 + "type": "integer", 1397 + "primaryKey": false, 1398 + "notNull": false, 1399 + "autoincrement": false, 1400 + "default": false 1401 + }, 1402 + "created_at": { 1403 + "name": "created_at", 1404 + "type": "integer", 1405 + "primaryKey": false, 1406 + "notNull": false, 1407 + "autoincrement": false, 1408 + "default": "(strftime('%s', 'now'))" 1409 + }, 1410 + "updated_at": { 1411 + "name": "updated_at", 1412 + "type": "integer", 1413 + "primaryKey": false, 1414 + "notNull": false, 1415 + "autoincrement": false, 1416 + "default": "(strftime('%s', 'now'))" 1417 + } 1418 + }, 1419 + "indexes": { 1420 + "incident_monitor_id_started_at_unique": { 1421 + "name": "incident_monitor_id_started_at_unique", 1422 + "columns": [ 1423 + "monitor_id", 1424 + "started_at" 1425 + ], 1426 + "isUnique": true 1427 + } 1428 + }, 1429 + "foreignKeys": { 1430 + "incident_monitor_id_monitor_id_fk": { 1431 + "name": "incident_monitor_id_monitor_id_fk", 1432 + "tableFrom": "incident", 1433 + "tableTo": "monitor", 1434 + "columnsFrom": [ 1435 + "monitor_id" 1436 + ], 1437 + "columnsTo": [ 1438 + "id" 1439 + ], 1440 + "onDelete": "set default", 1441 + "onUpdate": "no action" 1442 + }, 1443 + "incident_workspace_id_workspace_id_fk": { 1444 + "name": "incident_workspace_id_workspace_id_fk", 1445 + "tableFrom": "incident", 1446 + "tableTo": "workspace", 1447 + "columnsFrom": [ 1448 + "workspace_id" 1449 + ], 1450 + "columnsTo": [ 1451 + "id" 1452 + ], 1453 + "onDelete": "no action", 1454 + "onUpdate": "no action" 1455 + }, 1456 + "incident_acknowledged_by_user_id_fk": { 1457 + "name": "incident_acknowledged_by_user_id_fk", 1458 + "tableFrom": "incident", 1459 + "tableTo": "user", 1460 + "columnsFrom": [ 1461 + "acknowledged_by" 1462 + ], 1463 + "columnsTo": [ 1464 + "id" 1465 + ], 1466 + "onDelete": "no action", 1467 + "onUpdate": "no action" 1468 + }, 1469 + "incident_resolved_by_user_id_fk": { 1470 + "name": "incident_resolved_by_user_id_fk", 1471 + "tableFrom": "incident", 1472 + "tableTo": "user", 1473 + "columnsFrom": [ 1474 + "resolved_by" 1475 + ], 1476 + "columnsTo": [ 1477 + "id" 1478 + ], 1479 + "onDelete": "no action", 1480 + "onUpdate": "no action" 1481 + } 1482 + }, 1483 + "compositePrimaryKeys": {}, 1484 + "uniqueConstraints": {} 1485 + }, 1486 + "monitor_tag": { 1487 + "name": "monitor_tag", 1488 + "columns": { 1489 + "id": { 1490 + "name": "id", 1491 + "type": "integer", 1492 + "primaryKey": true, 1493 + "notNull": true, 1494 + "autoincrement": false 1495 + }, 1496 + "workspace_id": { 1497 + "name": "workspace_id", 1498 + "type": "integer", 1499 + "primaryKey": false, 1500 + "notNull": true, 1501 + "autoincrement": false 1502 + }, 1503 + "name": { 1504 + "name": "name", 1505 + "type": "text", 1506 + "primaryKey": false, 1507 + "notNull": true, 1508 + "autoincrement": false 1509 + }, 1510 + "color": { 1511 + "name": "color", 1512 + "type": "text", 1513 + "primaryKey": false, 1514 + "notNull": true, 1515 + "autoincrement": false 1516 + }, 1517 + "created_at": { 1518 + "name": "created_at", 1519 + "type": "integer", 1520 + "primaryKey": false, 1521 + "notNull": false, 1522 + "autoincrement": false, 1523 + "default": "(strftime('%s', 'now'))" 1524 + }, 1525 + "updated_at": { 1526 + "name": "updated_at", 1527 + "type": "integer", 1528 + "primaryKey": false, 1529 + "notNull": false, 1530 + "autoincrement": false, 1531 + "default": "(strftime('%s', 'now'))" 1532 + } 1533 + }, 1534 + "indexes": {}, 1535 + "foreignKeys": { 1536 + "monitor_tag_workspace_id_workspace_id_fk": { 1537 + "name": "monitor_tag_workspace_id_workspace_id_fk", 1538 + "tableFrom": "monitor_tag", 1539 + "tableTo": "workspace", 1540 + "columnsFrom": [ 1541 + "workspace_id" 1542 + ], 1543 + "columnsTo": [ 1544 + "id" 1545 + ], 1546 + "onDelete": "cascade", 1547 + "onUpdate": "no action" 1548 + } 1549 + }, 1550 + "compositePrimaryKeys": {}, 1551 + "uniqueConstraints": {} 1552 + }, 1553 + "monitor_tag_to_monitor": { 1554 + "name": "monitor_tag_to_monitor", 1555 + "columns": { 1556 + "monitor_id": { 1557 + "name": "monitor_id", 1558 + "type": "integer", 1559 + "primaryKey": false, 1560 + "notNull": true, 1561 + "autoincrement": false 1562 + }, 1563 + "monitor_tag_id": { 1564 + "name": "monitor_tag_id", 1565 + "type": "integer", 1566 + "primaryKey": false, 1567 + "notNull": true, 1568 + "autoincrement": false 1569 + }, 1570 + "created_at": { 1571 + "name": "created_at", 1572 + "type": "integer", 1573 + "primaryKey": false, 1574 + "notNull": false, 1575 + "autoincrement": false, 1576 + "default": "(strftime('%s', 'now'))" 1577 + } 1578 + }, 1579 + "indexes": {}, 1580 + "foreignKeys": { 1581 + "monitor_tag_to_monitor_monitor_id_monitor_id_fk": { 1582 + "name": "monitor_tag_to_monitor_monitor_id_monitor_id_fk", 1583 + "tableFrom": "monitor_tag_to_monitor", 1584 + "tableTo": "monitor", 1585 + "columnsFrom": [ 1586 + "monitor_id" 1587 + ], 1588 + "columnsTo": [ 1589 + "id" 1590 + ], 1591 + "onDelete": "cascade", 1592 + "onUpdate": "no action" 1593 + }, 1594 + "monitor_tag_to_monitor_monitor_tag_id_monitor_tag_id_fk": { 1595 + "name": "monitor_tag_to_monitor_monitor_tag_id_monitor_tag_id_fk", 1596 + "tableFrom": "monitor_tag_to_monitor", 1597 + "tableTo": "monitor_tag", 1598 + "columnsFrom": [ 1599 + "monitor_tag_id" 1600 + ], 1601 + "columnsTo": [ 1602 + "id" 1603 + ], 1604 + "onDelete": "cascade", 1605 + "onUpdate": "no action" 1606 + } 1607 + }, 1608 + "compositePrimaryKeys": { 1609 + "monitor_tag_to_monitor_monitor_id_monitor_tag_id_pk": { 1610 + "columns": [ 1611 + "monitor_id", 1612 + "monitor_tag_id" 1613 + ], 1614 + "name": "monitor_tag_to_monitor_monitor_id_monitor_tag_id_pk" 1615 + } 1616 + }, 1617 + "uniqueConstraints": {} 1618 + } 1619 + }, 1620 + "enums": {}, 1621 + "_meta": { 1622 + "schemas": {}, 1623 + "tables": {}, 1624 + "columns": {} 1625 + } 1626 + }
+7
packages/db/drizzle/meta/_journal.json
··· 162 162 "when": 1711307113089, 163 163 "tag": "0022_chunky_rockslide", 164 164 "breakpoints": true 165 + }, 166 + { 167 + "idx": 23, 168 + "version": "5", 169 + "when": 1712311348272, 170 + "tag": "0023_dry_blink", 171 + "breakpoints": true 165 172 } 166 173 ] 167 174 }
+2 -2
packages/db/package.json
··· 12 12 "dev": "turso dev --db-file openstatus.db" 13 13 }, 14 14 "dependencies": { 15 - "@libsql/client": "0.5.2", 15 + "@libsql/client": "0.6.0", 16 16 "@t3-oss/env-core": "0.7.0", 17 17 "dotenv": "16.3.1", 18 - "drizzle-orm": "0.29.3", 18 + "drizzle-orm": "0.30.7", 19 19 "drizzle-zod": "0.5.1", 20 20 "zod": "3.22.2" 21 21 },
+2
packages/db/src/schema/incidents/incident.ts
··· 43 43 resolvedAt: integer("resolved_at", { mode: "timestamp" }), 44 44 resolvedBy: integer("resolved_by").references(() => user.id), 45 45 46 + incidentScreenshotUrl: text("incident_screenshot_url"), 47 + recoveryScreenshotUrl: text("recovery_screenshot_url"), 46 48 // If the incident was auto resolved 47 49 autoResolved: integer("auto_resolved", { mode: "boolean" }).default(false), 48 50
+790 -94
pnpm-lock.yaml
··· 35 35 36 36 apps/docs: {} 37 37 38 + apps/screenshot-worker: 39 + dependencies: 40 + '@hono/zod-validator': 41 + specifier: 0.2.1 42 + version: 0.2.1(hono@4.2.2)(zod@3.22.2) 43 + '@libsql/client': 44 + specifier: 0.6.0 45 + version: 0.6.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) 46 + '@openstatus/db': 47 + specifier: workspace:* 48 + version: link:../../packages/db 49 + drizzle-orm: 50 + specifier: 0.30.7 51 + version: 0.30.7(@cloudflare/workers-types@4.20240403.0)(@libsql/client@0.6.0) 52 + hono: 53 + specifier: 4.2.2 54 + version: 4.2.2 55 + zod: 56 + specifier: 3.22.2 57 + version: 3.22.2 58 + devDependencies: 59 + '@cloudflare/puppeteer': 60 + specifier: 0.0.6 61 + version: 0.0.6 62 + '@cloudflare/workers-types': 63 + specifier: 4.20240403.0 64 + version: 4.20240403.0 65 + '@openstatus/tsconfig': 66 + specifier: workspace:* 67 + version: link:../../packages/tsconfig 68 + typescript: 69 + specifier: 5.4.4 70 + version: 5.4.4 71 + wrangler: 72 + specifier: 3.47.0 73 + version: 3.47.0(@cloudflare/workers-types@4.20240403.0) 74 + 38 75 apps/server: 39 76 dependencies: 40 77 '@hono/sentry': ··· 502 539 packages/db: 503 540 dependencies: 504 541 '@libsql/client': 505 - specifier: 0.5.2 506 - version: 0.5.2(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3) 542 + specifier: 0.6.0 543 + version: 0.6.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) 507 544 '@t3-oss/env-core': 508 545 specifier: 0.7.0 509 546 version: 0.7.0(typescript@5.4.2)(zod@3.22.2) ··· 511 548 specifier: 16.3.1 512 549 version: 16.3.1 513 550 drizzle-orm: 514 - specifier: 0.29.3 515 - version: 0.29.3(@libsql/client@0.5.2)(better-sqlite3@9.4.1) 551 + specifier: 0.30.7 552 + version: 0.30.7(@libsql/client@0.6.0)(better-sqlite3@9.4.1) 516 553 drizzle-zod: 517 554 specifier: 0.5.1 518 - version: 0.5.1(drizzle-orm@0.29.3)(zod@3.22.2) 555 + version: 0.5.1(drizzle-orm@0.30.7)(zod@3.22.2) 519 556 zod: 520 557 specifier: 3.22.2 521 558 version: 3.22.2 ··· 1330 1367 csstype: 3.1.1 1331 1368 dev: false 1332 1369 1370 + /@cloudflare/kv-asset-handler@0.3.1: 1371 + resolution: {integrity: sha512-lKN2XCfKCmpKb86a1tl4GIwsJYDy9TGuwjhDELLmpKygQhw8X2xR4dusgpC5Tg7q1pB96Eb0rBo81kxSILQMwA==} 1372 + dependencies: 1373 + mime: 3.0.0 1374 + dev: true 1375 + 1376 + /@cloudflare/puppeteer@0.0.6: 1377 + resolution: {integrity: sha512-HwIdiGs3ls2mKVDm3hoobEYnH4p4K5UrxeFGklDzKALR3cHBWv6zryNCVkK4i/LYCbaCZCnQx+3vtBUqynii4Q==} 1378 + engines: {node: '>=14.1.0'} 1379 + dependencies: 1380 + debug: 4.3.4 1381 + devtools-protocol: 0.0.1019158 1382 + events: 3.3.0 1383 + stream: 0.0.2 1384 + url: 0.11.0 1385 + util: 0.12.5 1386 + transitivePeerDependencies: 1387 + - supports-color 1388 + dev: true 1389 + 1390 + /@cloudflare/workerd-darwin-64@1.20240403.0: 1391 + resolution: {integrity: sha512-gBsoGFHCkC3tfAmr/jr6UEKEyIIeNEvfbRSIJrrkkuJ8wqqkWGZB6pmKx5lfQDvQO8R+8PgcI4pduP0NY35s/Q==} 1392 + engines: {node: '>=16'} 1393 + cpu: [x64] 1394 + os: [darwin] 1395 + requiresBuild: true 1396 + dev: true 1397 + optional: true 1398 + 1399 + /@cloudflare/workerd-darwin-arm64@1.20240403.0: 1400 + resolution: {integrity: sha512-UykAt0YiFR4Y3o84QAEb6NQehwZ8CaEnZHw8doe1M03JiWxVcCdkDb3pbAs4p7Mj56/Gj0G0+SJ+JmQTn2aIQA==} 1401 + engines: {node: '>=16'} 1402 + cpu: [arm64] 1403 + os: [darwin] 1404 + requiresBuild: true 1405 + dev: true 1406 + optional: true 1407 + 1408 + /@cloudflare/workerd-linux-64@1.20240403.0: 1409 + resolution: {integrity: sha512-MS+Mg7MtXEH6ZFJcrGreSqDe+vU9hRZt8AZdhIVkQKDOCS6AjmBTEz6r6tj1iGLMLei4pEZegyXwf06clSR9Og==} 1410 + engines: {node: '>=16'} 1411 + cpu: [x64] 1412 + os: [linux] 1413 + requiresBuild: true 1414 + dev: true 1415 + optional: true 1416 + 1417 + /@cloudflare/workerd-linux-arm64@1.20240403.0: 1418 + resolution: {integrity: sha512-9oMs43nctF2TYYJOzCtVOldokweSWaSqWnUjIOsKOFZue2fG4UMgIH9Sh1D4/KCdVankA2xqZ08XhoV42Q9+0A==} 1419 + engines: {node: '>=16'} 1420 + cpu: [arm64] 1421 + os: [linux] 1422 + requiresBuild: true 1423 + dev: true 1424 + optional: true 1425 + 1426 + /@cloudflare/workerd-windows-64@1.20240403.0: 1427 + resolution: {integrity: sha512-5FGyjzDAoUaU15GhUAGXWzOOlbCLdiDHatnjl6XY0Mbiu3ik5lz592L15QkFnNVc9a3lZGGCIsfYW2sq2R01VQ==} 1428 + engines: {node: '>=16'} 1429 + cpu: [x64] 1430 + os: [win32] 1431 + requiresBuild: true 1432 + dev: true 1433 + optional: true 1434 + 1435 + /@cloudflare/workers-types@4.20240403.0: 1436 + resolution: {integrity: sha512-j2GRddQ5oMF/Y7JWn333JYyMKGla+gV9hFp0nQMm6a+BQccmslkF1keYOrE+dpvsa1pDu11rjC06t9LbJ2uwcQ==} 1437 + 1333 1438 /@commander-js/extra-typings@9.4.1(commander@9.4.1): 1334 1439 resolution: {integrity: sha512-v0BqORYamk1koxDon6femDGLWSL7P78vYTyOU5nFaALnmNALL+ktgdHvWbxzzBBJIKS7kv3XvM/DqNwiLcgFTA==} 1335 1440 peerDependencies: ··· 1431 1536 peerDependencies: 1432 1537 '@effect-ts/otel-node': '*' 1433 1538 peerDependenciesMeta: 1434 - '@effect-ts/core': 1435 - optional: true 1436 - '@effect-ts/otel': 1437 - optional: true 1438 1539 '@effect-ts/otel-node': 1439 1540 optional: true 1440 1541 dependencies: ··· 1544 1645 get-tsconfig: 4.7.2 1545 1646 dev: true 1546 1647 1648 + /@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19): 1649 + resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} 1650 + peerDependencies: 1651 + esbuild: '*' 1652 + dependencies: 1653 + esbuild: 0.17.19 1654 + dev: true 1655 + 1656 + /@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19): 1657 + resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} 1658 + peerDependencies: 1659 + esbuild: '*' 1660 + dependencies: 1661 + esbuild: 0.17.19 1662 + escape-string-regexp: 4.0.0 1663 + rollup-plugin-node-polyfills: 0.2.1 1664 + dev: true 1665 + 1547 1666 /@esbuild-plugins/node-resolve@0.1.4(esbuild@0.19.12): 1548 1667 resolution: {integrity: sha512-haFQ0qhxEpqtWWY0kx1Y5oE3sMyO1PcoSiWEPrAw6tm/ZOOLXjSs6Q+v1v9eyuVF0nNt50YEvrcrvENmyoMv5g==} 1549 1668 peerDependencies: ··· 1575 1694 dev: false 1576 1695 optional: true 1577 1696 1697 + /@esbuild/android-arm64@0.17.19: 1698 + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} 1699 + engines: {node: '>=12'} 1700 + cpu: [arm64] 1701 + os: [android] 1702 + requiresBuild: true 1703 + dev: true 1704 + optional: true 1705 + 1578 1706 /@esbuild/android-arm64@0.18.20: 1579 1707 resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 1580 1708 engines: {node: '>=12'} ··· 1601 1729 dev: false 1602 1730 optional: true 1603 1731 1732 + /@esbuild/android-arm@0.17.19: 1733 + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} 1734 + engines: {node: '>=12'} 1735 + cpu: [arm] 1736 + os: [android] 1737 + requiresBuild: true 1738 + dev: true 1739 + optional: true 1740 + 1604 1741 /@esbuild/android-arm@0.18.20: 1605 1742 resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 1606 1743 engines: {node: '>=12'} ··· 1627 1764 dev: false 1628 1765 optional: true 1629 1766 1767 + /@esbuild/android-x64@0.17.19: 1768 + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} 1769 + engines: {node: '>=12'} 1770 + cpu: [x64] 1771 + os: [android] 1772 + requiresBuild: true 1773 + dev: true 1774 + optional: true 1775 + 1630 1776 /@esbuild/android-x64@0.18.20: 1631 1777 resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 1632 1778 engines: {node: '>=12'} ··· 1653 1799 dev: false 1654 1800 optional: true 1655 1801 1802 + /@esbuild/darwin-arm64@0.17.19: 1803 + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} 1804 + engines: {node: '>=12'} 1805 + cpu: [arm64] 1806 + os: [darwin] 1807 + requiresBuild: true 1808 + dev: true 1809 + optional: true 1810 + 1656 1811 /@esbuild/darwin-arm64@0.18.20: 1657 1812 resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 1658 1813 engines: {node: '>=12'} ··· 1679 1834 dev: false 1680 1835 optional: true 1681 1836 1837 + /@esbuild/darwin-x64@0.17.19: 1838 + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} 1839 + engines: {node: '>=12'} 1840 + cpu: [x64] 1841 + os: [darwin] 1842 + requiresBuild: true 1843 + dev: true 1844 + optional: true 1845 + 1682 1846 /@esbuild/darwin-x64@0.18.20: 1683 1847 resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 1684 1848 engines: {node: '>=12'} ··· 1705 1869 dev: false 1706 1870 optional: true 1707 1871 1872 + /@esbuild/freebsd-arm64@0.17.19: 1873 + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} 1874 + engines: {node: '>=12'} 1875 + cpu: [arm64] 1876 + os: [freebsd] 1877 + requiresBuild: true 1878 + dev: true 1879 + optional: true 1880 + 1708 1881 /@esbuild/freebsd-arm64@0.18.20: 1709 1882 resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 1710 1883 engines: {node: '>=12'} ··· 1731 1904 dev: false 1732 1905 optional: true 1733 1906 1907 + /@esbuild/freebsd-x64@0.17.19: 1908 + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} 1909 + engines: {node: '>=12'} 1910 + cpu: [x64] 1911 + os: [freebsd] 1912 + requiresBuild: true 1913 + dev: true 1914 + optional: true 1915 + 1734 1916 /@esbuild/freebsd-x64@0.18.20: 1735 1917 resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 1736 1918 engines: {node: '>=12'} ··· 1757 1939 dev: false 1758 1940 optional: true 1759 1941 1942 + /@esbuild/linux-arm64@0.17.19: 1943 + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} 1944 + engines: {node: '>=12'} 1945 + cpu: [arm64] 1946 + os: [linux] 1947 + requiresBuild: true 1948 + dev: true 1949 + optional: true 1950 + 1760 1951 /@esbuild/linux-arm64@0.18.20: 1761 1952 resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 1762 1953 engines: {node: '>=12'} ··· 1783 1974 dev: false 1784 1975 optional: true 1785 1976 1977 + /@esbuild/linux-arm@0.17.19: 1978 + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} 1979 + engines: {node: '>=12'} 1980 + cpu: [arm] 1981 + os: [linux] 1982 + requiresBuild: true 1983 + dev: true 1984 + optional: true 1985 + 1786 1986 /@esbuild/linux-arm@0.18.20: 1787 1987 resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 1788 1988 engines: {node: '>=12'} ··· 1809 2009 dev: false 1810 2010 optional: true 1811 2011 2012 + /@esbuild/linux-ia32@0.17.19: 2013 + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} 2014 + engines: {node: '>=12'} 2015 + cpu: [ia32] 2016 + os: [linux] 2017 + requiresBuild: true 2018 + dev: true 2019 + optional: true 2020 + 1812 2021 /@esbuild/linux-ia32@0.18.20: 1813 2022 resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 1814 2023 engines: {node: '>=12'} ··· 1835 2044 dev: false 1836 2045 optional: true 1837 2046 2047 + /@esbuild/linux-loong64@0.17.19: 2048 + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} 2049 + engines: {node: '>=12'} 2050 + cpu: [loong64] 2051 + os: [linux] 2052 + requiresBuild: true 2053 + dev: true 2054 + optional: true 2055 + 1838 2056 /@esbuild/linux-loong64@0.18.20: 1839 2057 resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 1840 2058 engines: {node: '>=12'} ··· 1861 2079 dev: false 1862 2080 optional: true 1863 2081 2082 + /@esbuild/linux-mips64el@0.17.19: 2083 + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} 2084 + engines: {node: '>=12'} 2085 + cpu: [mips64el] 2086 + os: [linux] 2087 + requiresBuild: true 2088 + dev: true 2089 + optional: true 2090 + 1864 2091 /@esbuild/linux-mips64el@0.18.20: 1865 2092 resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 1866 2093 engines: {node: '>=12'} ··· 1887 2114 dev: false 1888 2115 optional: true 1889 2116 2117 + /@esbuild/linux-ppc64@0.17.19: 2118 + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} 2119 + engines: {node: '>=12'} 2120 + cpu: [ppc64] 2121 + os: [linux] 2122 + requiresBuild: true 2123 + dev: true 2124 + optional: true 2125 + 1890 2126 /@esbuild/linux-ppc64@0.18.20: 1891 2127 resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 1892 2128 engines: {node: '>=12'} ··· 1911 2147 os: [linux] 1912 2148 requiresBuild: true 1913 2149 dev: false 2150 + optional: true 2151 + 2152 + /@esbuild/linux-riscv64@0.17.19: 2153 + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} 2154 + engines: {node: '>=12'} 2155 + cpu: [riscv64] 2156 + os: [linux] 2157 + requiresBuild: true 2158 + dev: true 1914 2159 optional: true 1915 2160 1916 2161 /@esbuild/linux-riscv64@0.18.20: ··· 1939 2184 dev: false 1940 2185 optional: true 1941 2186 2187 + /@esbuild/linux-s390x@0.17.19: 2188 + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} 2189 + engines: {node: '>=12'} 2190 + cpu: [s390x] 2191 + os: [linux] 2192 + requiresBuild: true 2193 + dev: true 2194 + optional: true 2195 + 1942 2196 /@esbuild/linux-s390x@0.18.20: 1943 2197 resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 1944 2198 engines: {node: '>=12'} ··· 1965 2219 dev: false 1966 2220 optional: true 1967 2221 2222 + /@esbuild/linux-x64@0.17.19: 2223 + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} 2224 + engines: {node: '>=12'} 2225 + cpu: [x64] 2226 + os: [linux] 2227 + requiresBuild: true 2228 + dev: true 2229 + optional: true 2230 + 1968 2231 /@esbuild/linux-x64@0.18.20: 1969 2232 resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 1970 2233 engines: {node: '>=12'} ··· 1991 2254 dev: false 1992 2255 optional: true 1993 2256 2257 + /@esbuild/netbsd-x64@0.17.19: 2258 + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} 2259 + engines: {node: '>=12'} 2260 + cpu: [x64] 2261 + os: [netbsd] 2262 + requiresBuild: true 2263 + dev: true 2264 + optional: true 2265 + 1994 2266 /@esbuild/netbsd-x64@0.18.20: 1995 2267 resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 1996 2268 engines: {node: '>=12'} ··· 2017 2289 dev: false 2018 2290 optional: true 2019 2291 2292 + /@esbuild/openbsd-x64@0.17.19: 2293 + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} 2294 + engines: {node: '>=12'} 2295 + cpu: [x64] 2296 + os: [openbsd] 2297 + requiresBuild: true 2298 + dev: true 2299 + optional: true 2300 + 2020 2301 /@esbuild/openbsd-x64@0.18.20: 2021 2302 resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 2022 2303 engines: {node: '>=12'} ··· 2043 2324 dev: false 2044 2325 optional: true 2045 2326 2327 + /@esbuild/sunos-x64@0.17.19: 2328 + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} 2329 + engines: {node: '>=12'} 2330 + cpu: [x64] 2331 + os: [sunos] 2332 + requiresBuild: true 2333 + dev: true 2334 + optional: true 2335 + 2046 2336 /@esbuild/sunos-x64@0.18.20: 2047 2337 resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 2048 2338 engines: {node: '>=12'} ··· 2069 2359 dev: false 2070 2360 optional: true 2071 2361 2362 + /@esbuild/win32-arm64@0.17.19: 2363 + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} 2364 + engines: {node: '>=12'} 2365 + cpu: [arm64] 2366 + os: [win32] 2367 + requiresBuild: true 2368 + dev: true 2369 + optional: true 2370 + 2072 2371 /@esbuild/win32-arm64@0.18.20: 2073 2372 resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 2074 2373 engines: {node: '>=12'} ··· 2095 2394 dev: false 2096 2395 optional: true 2097 2396 2397 + /@esbuild/win32-ia32@0.17.19: 2398 + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} 2399 + engines: {node: '>=12'} 2400 + cpu: [ia32] 2401 + os: [win32] 2402 + requiresBuild: true 2403 + dev: true 2404 + optional: true 2405 + 2098 2406 /@esbuild/win32-ia32@0.18.20: 2099 2407 resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 2100 2408 engines: {node: '>=12'} ··· 2121 2429 dev: false 2122 2430 optional: true 2123 2431 2432 + /@esbuild/win32-x64@0.17.19: 2433 + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} 2434 + engines: {node: '>=12'} 2435 + cpu: [x64] 2436 + os: [win32] 2437 + requiresBuild: true 2438 + dev: true 2439 + optional: true 2440 + 2124 2441 /@esbuild/win32-x64@0.18.20: 2125 2442 resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 2126 2443 engines: {node: '>=12'} ··· 2174 2491 /@fal-works/esbuild-plugin-global-externals@2.1.2: 2175 2492 resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} 2176 2493 dev: false 2494 + 2495 + /@fastify/busboy@2.1.1: 2496 + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} 2497 + engines: {node: '>=14'} 2498 + dev: true 2177 2499 2178 2500 /@floating-ui/core@1.5.0: 2179 2501 resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==} ··· 2322 2644 zod: 3.22.2 2323 2645 dev: false 2324 2646 2647 + /@hono/zod-validator@0.2.1(hono@4.2.2)(zod@3.22.2): 2648 + resolution: {integrity: sha512-HFoxln7Q6JsE64qz2WBS28SD33UB2alp3aRKmcWnNLDzEL1BLsWfbdX6e1HIiUprHYTIXf5y7ax8eYidKUwyaA==} 2649 + peerDependencies: 2650 + hono: '>=3.9.0' 2651 + zod: ^3.19.1 2652 + dependencies: 2653 + hono: 4.2.2 2654 + zod: 3.22.2 2655 + dev: false 2656 + 2325 2657 /@hookform/resolvers@3.3.1(react-hook-form@7.47.0): 2326 2658 resolution: {integrity: sha512-K7KCKRKjymxIB90nHDQ7b9nli474ru99ZbqxiqDAWYsYhOsU3/4qLxW91y+1n04ic13ajjZ66L3aXbNef8PELQ==} 2327 2659 peerDependencies: ··· 2468 2800 tslib: 2.6.2 2469 2801 dev: false 2470 2802 2471 - /@libsql/client@0.5.2(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3): 2472 - resolution: {integrity: sha512-aHnYjsqE4QWhb+HdJj2HtLw6QBt61veSu6IQgFO5rxzdY/rb69YAgYF0ZvpVoMn12B/t9U9U7H3ow/IADo4Yhg==} 2803 + /@libsql/client@0.6.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): 2804 + resolution: {integrity: sha512-qhQzTG/y2IEVbL3+9PULDvlQFWJ/RnjFXECr/Nc3nRngGiiMysDaOV5VUzYk7DulUX98EA4wi+z3FspKrUplUA==} 2473 2805 dependencies: 2474 - '@libsql/core': 0.5.2 2475 - '@libsql/hrana-client': 0.5.6(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3) 2806 + '@libsql/core': 0.6.0 2807 + '@libsql/hrana-client': 0.6.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) 2476 2808 js-base64: 3.7.5 2477 - libsql: 0.3.4 2809 + libsql: 0.3.10 2478 2810 transitivePeerDependencies: 2479 2811 - bufferutil 2480 - - encoding 2481 2812 - utf-8-validate 2482 2813 dev: false 2483 2814 2484 - /@libsql/core@0.5.2: 2485 - resolution: {integrity: sha512-sBo55JJXRiggymOy91MvI+lJ15U8BdWBHytAeszpebhhbrkuTfd+5jDoB3sSZ0dMH0NIPAVQEEQnQldAO+SDXg==} 2815 + /@libsql/core@0.6.0: 2816 + resolution: {integrity: sha512-affAB8vSqQwqI9NBDJ5uJCVaHoOAS2pOpbv1kWConh1SBbmJBnHHd4KG73RAJ2sgd2+NbT9WA+XJBqxgp28YSw==} 2486 2817 dependencies: 2487 2818 js-base64: 3.7.5 2488 2819 dev: false 2489 2820 2490 - /@libsql/darwin-arm64@0.3.4: 2491 - resolution: {integrity: sha512-scNlltUTZp74jqjzDVVBtKUy5nZD+0+Q3CR8RJwCKrf73I/0IAKfvwddx4gsinymFqMn8hyiTGIZukgHlBjftA==} 2821 + /@libsql/darwin-arm64@0.3.10: 2822 + resolution: {integrity: sha512-RaexEFfPAFogd6dJlqkpCkTxdr6K14Z0286lodIJ8Ny77mWuWyBkWKxf70OYWXXAMxMJFUW+6al1F3/Osf/pTg==} 2492 2823 cpu: [arm64] 2493 2824 os: [darwin] 2494 2825 requiresBuild: true 2495 2826 dev: false 2496 2827 optional: true 2497 2828 2498 - /@libsql/darwin-x64@0.3.4: 2499 - resolution: {integrity: sha512-xZUVgzH1qshTnnE8RRZlvAgUGFE7w36iczMiDvGN5XHOuI6gLE4Lk1m/G51MKjN+p7AK/3wowlQpvZPK/KMV8Q==} 2829 + /@libsql/darwin-x64@0.3.10: 2830 + resolution: {integrity: sha512-SNVN6n4qNUdMW1fJMFmx4qn4n5RnXsxjFbczpkzG/V7m/5VeTFt1chhGcrahTHCr3+K6eRJWJUEQHRGqjBwPkw==} 2500 2831 cpu: [x64] 2501 2832 os: [darwin] 2502 2833 requiresBuild: true 2503 2834 dev: false 2504 2835 optional: true 2505 2836 2506 - /@libsql/hrana-client@0.5.6(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3): 2507 - resolution: {integrity: sha512-mjQoAmejZ1atG+M3YR2ZW+rg6ceBByH/S/h17ZoYZkqbWrvohFhXyz2LFxj++ARMoY9m6w3RJJIRdJdmnEUlFg==} 2837 + /@libsql/hrana-client@0.6.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): 2838 + resolution: {integrity: sha512-k+fqzdjqg3IvWfKmVJK5StsbjeTcyNAXFelUbXbGNz3yH1gEVT9mZ6kmhsIXP30ZSyVV0AE1Gi25p82mxC9hwg==} 2508 2839 dependencies: 2509 - '@libsql/isomorphic-fetch': 0.1.12(encoding@0.1.13) 2840 + '@libsql/isomorphic-fetch': 0.2.1 2510 2841 '@libsql/isomorphic-ws': 0.1.5(bufferutil@4.0.7)(utf-8-validate@6.0.3) 2511 2842 js-base64: 3.7.5 2512 2843 node-fetch: 3.3.2 2513 2844 transitivePeerDependencies: 2514 2845 - bufferutil 2515 - - encoding 2516 2846 - utf-8-validate 2517 2847 dev: false 2518 2848 2519 - /@libsql/isomorphic-fetch@0.1.12(encoding@0.1.13): 2520 - resolution: {integrity: sha512-MRo4UcmjAGAa3ac56LoD5OE13m2p0lu0VEtZC2NZMcogM/jc5fU9YtMQ3qbPjFJ+u2BBjFZgMPkQaLS1dlMhpg==} 2521 - dependencies: 2522 - '@types/node-fetch': 2.6.11 2523 - node-fetch: 2.7.0(encoding@0.1.13) 2524 - transitivePeerDependencies: 2525 - - encoding 2849 + /@libsql/isomorphic-fetch@0.2.1: 2850 + resolution: {integrity: sha512-Sv07QP1Aw8A5OOrmKgRUBKe2fFhF2hpGJhtHe3d1aRnTESZCGkn//0zDycMKTGamVWb3oLYRroOsCV8Ukes9GA==} 2526 2851 dev: false 2527 2852 2528 2853 /@libsql/isomorphic-ws@0.1.5(bufferutil@4.0.7)(utf-8-validate@6.0.3): ··· 2535 2860 - utf-8-validate 2536 2861 dev: false 2537 2862 2538 - /@libsql/linux-arm64-gnu@0.3.4: 2539 - resolution: {integrity: sha512-IewL34c9WyxPtvLQqYb5WX3IEqFjprDkFjXmySkDrF9+3k2AfmCurnXjJwOrWHu2GlNLo84mwSVsCQ/jfm8lPw==} 2863 + /@libsql/linux-arm64-gnu@0.3.10: 2864 + resolution: {integrity: sha512-2uXpi9d8qtyIOr7pyG4a88j6YXgemyIHEs2Wbp+PPletlCIPsFS+E7IQHbz8VwTohchOzcokGUm1Bc5QC+A7wg==} 2540 2865 cpu: [arm64] 2541 2866 os: [linux] 2542 2867 requiresBuild: true 2543 2868 dev: false 2544 2869 optional: true 2545 2870 2546 - /@libsql/linux-arm64-musl@0.3.4: 2547 - resolution: {integrity: sha512-Qiml3cZuLLptsZ9Mkdkt8sZROvVWyqhWcQkEPpp5MtSUiluy+8y+IHniiI7wJvOpi9A4tGREY9KoDZCWWPwLBw==} 2871 + /@libsql/linux-arm64-musl@0.3.10: 2872 + resolution: {integrity: sha512-72SN1FUavLvzHddCS861ynSpQndcW5oLGKA3U8CyMfgIZIwJAPc7+48Uj1plW00htXBx4GBpcntFp68KKIx3YQ==} 2548 2873 cpu: [arm64] 2549 2874 os: [linux] 2550 2875 requiresBuild: true 2551 2876 dev: false 2552 2877 optional: true 2553 2878 2554 - /@libsql/linux-x64-gnu@0.3.4: 2555 - resolution: {integrity: sha512-fZRwlEjzRkJFf+lPpe9AMbaF32IL5HFtQVfXe6nSuE+YwlUNC+kN7ElGIKfuh5wJ3S9S4fXMefH0FY4ynEz4vw==} 2879 + /@libsql/linux-x64-gnu@0.3.10: 2880 + resolution: {integrity: sha512-hXyNqVRi7ONuyWZ1SX6setxL0QaQ7InyS3bHLupsi9s7NpOGD5vcpTaYicJOqmIIm+6kt8vJfmo7ZxlarIHy7Q==} 2556 2881 cpu: [x64] 2557 2882 os: [linux] 2558 2883 requiresBuild: true 2559 2884 dev: false 2560 2885 optional: true 2561 2886 2562 - /@libsql/linux-x64-musl@0.3.4: 2563 - resolution: {integrity: sha512-TCjX+nQpK/xQC5jhQJWShc98FsoTWQCdp0w1ZhVa47jIFdTPh44rvVf9sS6j5K8bxfyMNiBQQNSn7A0vBfAZXw==} 2887 + /@libsql/linux-x64-musl@0.3.10: 2888 + resolution: {integrity: sha512-kNmIRxomVwt9S+cLyYS497F/3gXFF4r8wW12YSBQgxG75JYft07AHVd8J7HINg+oqRkLzT0s+mVX5dM6nk68EQ==} 2564 2889 cpu: [x64] 2565 2890 os: [linux] 2566 2891 requiresBuild: true 2567 2892 dev: false 2568 2893 optional: true 2569 2894 2570 - /@libsql/win32-x64-msvc@0.3.4: 2571 - resolution: {integrity: sha512-q8uLbIqIB6mMUqN6Joiy+GN5d8/WfKsk8cN28H71WAywmQVsFg1u0RJj3X28qFzNGz+K1z4BqQFBSPVEefqYNw==} 2895 + /@libsql/win32-x64-msvc@0.3.10: 2896 + resolution: {integrity: sha512-c/6rjdtGULKrJkLgfLobFefObfOtxjXGmCfPxv6pr0epPCeUEssfDbDIeEH9fQUgzogIMWEHwT8so52UJ/iT1Q==} 2572 2897 cpu: [x64] 2573 2898 os: [win32] 2574 2899 requiresBuild: true ··· 2832 3157 '@octokit/request-error': 3.0.3 2833 3158 '@octokit/types': 9.3.2 2834 3159 is-plain-object: 5.0.0 2835 - node-fetch: 2.7.0(encoding@0.1.13) 3160 + node-fetch: 2.7.0 2836 3161 universal-user-agent: 6.0.0 2837 3162 transitivePeerDependencies: 2838 3163 - encoding ··· 4704 5029 dependencies: 4705 5030 https-proxy-agent: 5.0.1 4706 5031 mkdirp: 0.5.6 4707 - node-fetch: 2.7.0(encoding@0.1.13) 5032 + node-fetch: 2.7.0 4708 5033 progress: 2.0.3 4709 5034 proxy-from-env: 1.1.0 4710 5035 which: 2.0.2 ··· 5338 5663 /@types/ms@0.7.33: 5339 5664 resolution: {integrity: sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==} 5340 5665 5341 - /@types/node-fetch@2.6.11: 5342 - resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} 5666 + /@types/node-fetch@2.6.2: 5667 + resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} 5343 5668 dependencies: 5344 5669 '@types/node': 20.8.0 5345 - form-data: 4.0.0 5670 + form-data: 3.0.1 5346 5671 dev: false 5347 5672 5348 - /@types/node-fetch@2.6.2: 5349 - resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} 5673 + /@types/node-forge@1.3.11: 5674 + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} 5350 5675 dependencies: 5351 5676 '@types/node': 20.8.0 5352 - form-data: 3.0.1 5353 - dev: false 5677 + dev: true 5354 5678 5355 5679 /@types/node@16.18.6: 5356 5680 resolution: {integrity: sha512-vmYJF0REqDyyU0gviezF/KHq/fYaUbFhkcNbQCuPGFQj6VTbXuHZoxs/Y7mutWe73C8AC6l9fFu8mSYiBAqkGA==} ··· 5946 6270 engines: {node: '>=0.10.0'} 5947 6271 dev: false 5948 6272 6273 + /as-table@1.0.55: 6274 + resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} 6275 + dependencies: 6276 + printable-characters: 1.0.42 6277 + dev: true 6278 + 5949 6279 /asn1js@3.0.5: 5950 6280 resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} 5951 6281 engines: {node: '>=12.0.0'} ··· 6000 6330 /available-typed-arrays@1.0.5: 6001 6331 resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 6002 6332 engines: {node: '>= 0.4'} 6003 - dev: false 6004 6333 6005 6334 /axe-core@4.8.2: 6006 6335 resolution: {integrity: sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==} ··· 6058 6387 inherits: 2.0.4 6059 6388 readable-stream: 3.6.2 6060 6389 6390 + /blake3-wasm@2.1.5: 6391 + resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} 6392 + dev: true 6393 + 6061 6394 /bluebird@3.4.7: 6062 6395 resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} 6063 6396 dev: false ··· 6155 6488 function-bind: 1.1.2 6156 6489 get-intrinsic: 1.2.1 6157 6490 set-function-length: 1.1.1 6158 - dev: false 6159 6491 6160 6492 /callsites@3.1.0: 6161 6493 resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} ··· 6204 6536 /caniuse-lite@1.0.30001585: 6205 6537 resolution: {integrity: sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==} 6206 6538 6539 + /capnp-ts@0.7.0: 6540 + resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} 6541 + dependencies: 6542 + debug: 4.3.4 6543 + tslib: 2.6.2 6544 + transitivePeerDependencies: 6545 + - supports-color 6546 + dev: true 6547 + 6207 6548 /ccount@2.0.1: 6208 6549 resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 6209 6550 ··· 6527 6868 /cookie@0.5.0: 6528 6869 resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 6529 6870 engines: {node: '>= 0.6'} 6530 - dev: false 6531 6871 6532 6872 /copy-anything@3.0.5: 6533 6873 resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} ··· 6669 7009 resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 6670 7010 dev: false 6671 7011 7012 + /data-uri-to-buffer@2.0.2: 7013 + resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} 7014 + dev: true 7015 + 6672 7016 /data-uri-to-buffer@4.0.1: 6673 7017 resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} 6674 7018 engines: {node: '>= 12'} ··· 6786 7130 get-intrinsic: 1.2.1 6787 7131 gopd: 1.0.1 6788 7132 has-property-descriptors: 1.0.0 6789 - dev: false 6790 7133 6791 7134 /define-properties@1.2.1: 6792 7135 resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} ··· 6874 7217 dequal: 2.0.3 6875 7218 dev: true 6876 7219 7220 + /devtools-protocol@0.0.1019158: 7221 + resolution: {integrity: sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ==} 7222 + dev: true 7223 + 6877 7224 /didyoumean@1.2.2: 6878 7225 resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 6879 7226 ··· 7005 7352 - supports-color 7006 7353 dev: true 7007 7354 7008 - /drizzle-orm@0.29.3(@libsql/client@0.5.2)(better-sqlite3@9.4.1): 7009 - resolution: {integrity: sha512-uSE027csliGSGYD0pqtM+SAQATMREb3eSM/U8s6r+Y0RFwTKwftnwwSkqx3oS65UBgqDOM0gMTl5UGNpt6lW0A==} 7355 + /drizzle-orm@0.30.7(@cloudflare/workers-types@4.20240403.0)(@libsql/client@0.6.0): 7356 + resolution: {integrity: sha512-9qefSZQlu2fO2qv24piHyWFWcxcOY15//0v4j8qomMqaxzipNoG+fUBrQ7Ftk7PY7APRbRdn/nkEXWxiI4a8mw==} 7010 7357 peerDependencies: 7011 7358 '@aws-sdk/client-rds-data': '>=3' 7012 7359 '@cloudflare/workers-types': '>=3' 7360 + '@electric-sql/pglite': '>=0.1.1' 7013 7361 '@libsql/client': '*' 7014 7362 '@neondatabase/serverless': '>=0.1' 7363 + '@op-engineering/op-sqlite': '>=2' 7015 7364 '@opentelemetry/api': ^1.4.1 7016 7365 '@planetscale/database': '>=1' 7017 7366 '@types/better-sqlite3': '*' 7018 7367 '@types/pg': '*' 7019 7368 '@types/react': '>=18' 7020 7369 '@types/sql.js': '*' 7021 - '@vercel/postgres': '*' 7370 + '@vercel/postgres': '>=0.8.0' 7371 + '@xata.io/client': '*' 7022 7372 better-sqlite3: '>=7' 7023 7373 bun-types: '*' 7024 7374 expo-sqlite: '>=13.2.0' ··· 7035 7385 optional: true 7036 7386 '@cloudflare/workers-types': 7037 7387 optional: true 7388 + '@electric-sql/pglite': 7389 + optional: true 7038 7390 '@libsql/client': 7039 7391 optional: true 7040 7392 '@neondatabase/serverless': 7393 + optional: true 7394 + '@op-engineering/op-sqlite': 7041 7395 optional: true 7042 7396 '@opentelemetry/api': 7043 7397 optional: true ··· 7053 7407 optional: true 7054 7408 '@vercel/postgres': 7055 7409 optional: true 7410 + '@xata.io/client': 7411 + optional: true 7056 7412 better-sqlite3: 7057 7413 optional: true 7058 7414 bun-types: ··· 7076 7432 sqlite3: 7077 7433 optional: true 7078 7434 dependencies: 7079 - '@libsql/client': 0.5.2(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3) 7435 + '@cloudflare/workers-types': 4.20240403.0 7436 + '@libsql/client': 0.6.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) 7437 + dev: false 7438 + 7439 + /drizzle-orm@0.30.7(@libsql/client@0.6.0)(better-sqlite3@9.4.1): 7440 + resolution: {integrity: sha512-9qefSZQlu2fO2qv24piHyWFWcxcOY15//0v4j8qomMqaxzipNoG+fUBrQ7Ftk7PY7APRbRdn/nkEXWxiI4a8mw==} 7441 + peerDependencies: 7442 + '@aws-sdk/client-rds-data': '>=3' 7443 + '@cloudflare/workers-types': '>=3' 7444 + '@electric-sql/pglite': '>=0.1.1' 7445 + '@libsql/client': '*' 7446 + '@neondatabase/serverless': '>=0.1' 7447 + '@op-engineering/op-sqlite': '>=2' 7448 + '@opentelemetry/api': ^1.4.1 7449 + '@planetscale/database': '>=1' 7450 + '@types/better-sqlite3': '*' 7451 + '@types/pg': '*' 7452 + '@types/react': '>=18' 7453 + '@types/sql.js': '*' 7454 + '@vercel/postgres': '>=0.8.0' 7455 + '@xata.io/client': '*' 7456 + better-sqlite3: '>=7' 7457 + bun-types: '*' 7458 + expo-sqlite: '>=13.2.0' 7459 + knex: '*' 7460 + kysely: '*' 7461 + mysql2: '>=2' 7462 + pg: '>=8' 7463 + postgres: '>=3' 7464 + react: '>=18' 7465 + sql.js: '>=1' 7466 + sqlite3: '>=5' 7467 + peerDependenciesMeta: 7468 + '@aws-sdk/client-rds-data': 7469 + optional: true 7470 + '@cloudflare/workers-types': 7471 + optional: true 7472 + '@electric-sql/pglite': 7473 + optional: true 7474 + '@libsql/client': 7475 + optional: true 7476 + '@neondatabase/serverless': 7477 + optional: true 7478 + '@op-engineering/op-sqlite': 7479 + optional: true 7480 + '@opentelemetry/api': 7481 + optional: true 7482 + '@planetscale/database': 7483 + optional: true 7484 + '@types/better-sqlite3': 7485 + optional: true 7486 + '@types/pg': 7487 + optional: true 7488 + '@types/react': 7489 + optional: true 7490 + '@types/sql.js': 7491 + optional: true 7492 + '@vercel/postgres': 7493 + optional: true 7494 + '@xata.io/client': 7495 + optional: true 7496 + better-sqlite3: 7497 + optional: true 7498 + bun-types: 7499 + optional: true 7500 + expo-sqlite: 7501 + optional: true 7502 + knex: 7503 + optional: true 7504 + kysely: 7505 + optional: true 7506 + mysql2: 7507 + optional: true 7508 + pg: 7509 + optional: true 7510 + postgres: 7511 + optional: true 7512 + react: 7513 + optional: true 7514 + sql.js: 7515 + optional: true 7516 + sqlite3: 7517 + optional: true 7518 + dependencies: 7519 + '@libsql/client': 0.6.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) 7080 7520 better-sqlite3: 9.4.1 7081 7521 dev: false 7082 7522 7083 - /drizzle-zod@0.5.1(drizzle-orm@0.29.3)(zod@3.22.2): 7523 + /drizzle-zod@0.5.1(drizzle-orm@0.30.7)(zod@3.22.2): 7084 7524 resolution: {integrity: sha512-C/8bvzUH/zSnVfwdSibOgFjLhtDtbKYmkbPbUCq46QZyZCH6kODIMSOgZ8R7rVjoI+tCj3k06MRJMDqsIeoS4A==} 7085 7525 peerDependencies: 7086 7526 drizzle-orm: '>=0.23.13' 7087 7527 zod: '*' 7088 7528 dependencies: 7089 - drizzle-orm: 0.29.3(@libsql/client@0.5.2)(better-sqlite3@9.4.1) 7529 + drizzle-orm: 0.30.7(@libsql/client@0.6.0)(better-sqlite3@9.4.1) 7090 7530 zod: 3.22.2 7091 7531 dev: false 7092 7532 ··· 7123 7563 /electron-to-chromium@1.4.563: 7124 7564 resolution: {integrity: sha512-dg5gj5qOgfZNkPNeyKBZQAQitIQ/xwfIDmEQJHCbXaD9ebTZxwJXUsDYcBlAvZGZLi+/354l35J1wkmP6CqYaw==} 7125 7565 7566 + /emitter-component@1.1.2: 7567 + resolution: {integrity: sha512-QdXO3nXOzZB4pAjM0n6ZE+R9/+kPpECA/XSELIcc54NeYVnBqIk+4DFiBgK+8QbV3mdvTG6nedl7dTYgO+5wDw==} 7568 + dev: true 7569 + 7126 7570 /emoji-regex@8.0.0: 7127 7571 resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 7128 7572 ··· 7134 7578 resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} 7135 7579 dependencies: 7136 7580 iconv-lite: 0.6.3 7581 + dev: true 7137 7582 7138 7583 /end-of-stream@1.4.4: 7139 7584 resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} ··· 7330 7775 '@esbuild/win32-ia32': 0.16.4 7331 7776 '@esbuild/win32-x64': 0.16.4 7332 7777 dev: false 7778 + 7779 + /esbuild@0.17.19: 7780 + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} 7781 + engines: {node: '>=12'} 7782 + hasBin: true 7783 + requiresBuild: true 7784 + optionalDependencies: 7785 + '@esbuild/android-arm': 0.17.19 7786 + '@esbuild/android-arm64': 0.17.19 7787 + '@esbuild/android-x64': 0.17.19 7788 + '@esbuild/darwin-arm64': 0.17.19 7789 + '@esbuild/darwin-x64': 0.17.19 7790 + '@esbuild/freebsd-arm64': 0.17.19 7791 + '@esbuild/freebsd-x64': 0.17.19 7792 + '@esbuild/linux-arm': 0.17.19 7793 + '@esbuild/linux-arm64': 0.17.19 7794 + '@esbuild/linux-ia32': 0.17.19 7795 + '@esbuild/linux-loong64': 0.17.19 7796 + '@esbuild/linux-mips64el': 0.17.19 7797 + '@esbuild/linux-ppc64': 0.17.19 7798 + '@esbuild/linux-riscv64': 0.17.19 7799 + '@esbuild/linux-s390x': 0.17.19 7800 + '@esbuild/linux-x64': 0.17.19 7801 + '@esbuild/netbsd-x64': 0.17.19 7802 + '@esbuild/openbsd-x64': 0.17.19 7803 + '@esbuild/sunos-x64': 0.17.19 7804 + '@esbuild/win32-arm64': 0.17.19 7805 + '@esbuild/win32-ia32': 0.17.19 7806 + '@esbuild/win32-x64': 0.17.19 7807 + dev: true 7333 7808 7334 7809 /esbuild@0.18.20: 7335 7810 resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} ··· 7762 8237 '@types/unist': 2.0.9 7763 8238 dev: false 7764 8239 8240 + /estree-walker@0.6.1: 8241 + resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} 8242 + dev: true 8243 + 7765 8244 /estree-walker@2.0.2: 7766 8245 resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 7767 8246 dev: false ··· 7792 8271 resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} 7793 8272 dev: false 7794 8273 8274 + /events@3.3.0: 8275 + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 8276 + engines: {node: '>=0.8.x'} 8277 + dev: true 8278 + 7795 8279 /execa@5.1.1: 7796 8280 resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 7797 8281 engines: {node: '>=10'} ··· 7806 8290 signal-exit: 3.0.7 7807 8291 strip-final-newline: 2.0.0 7808 8292 8293 + /exit-hook@2.2.1: 8294 + resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} 8295 + engines: {node: '>=6'} 8296 + dev: true 8297 + 7809 8298 /expand-template@2.0.3: 7810 8299 resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} 7811 8300 engines: {node: '>=6'} ··· 7934 8423 resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 7935 8424 dependencies: 7936 8425 is-callable: 1.2.7 7937 - dev: false 7938 8426 7939 8427 /foreground-child@3.1.1: 7940 8428 resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} ··· 8032 8520 8033 8521 /function-bind@1.1.2: 8034 8522 resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 8035 - dev: false 8036 8523 8037 8524 /function.prototype.name@1.1.6: 8038 8525 resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} ··· 8055 8542 extend: 3.0.2 8056 8543 https-proxy-agent: 7.0.2 8057 8544 is-stream: 2.0.1 8058 - node-fetch: 2.7.0(encoding@0.1.13) 8545 + node-fetch: 2.7.0 8059 8546 transitivePeerDependencies: 8060 8547 - encoding 8061 8548 - supports-color ··· 8088 8575 has: 1.0.4 8089 8576 has-proto: 1.0.1 8090 8577 has-symbols: 1.0.3 8091 - dev: false 8092 8578 8093 8579 /get-nonce@1.0.1: 8094 8580 resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} 8095 8581 engines: {node: '>=6'} 8096 8582 dev: false 8097 8583 8584 + /get-source@2.0.12: 8585 + resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} 8586 + dependencies: 8587 + data-uri-to-buffer: 2.0.2 8588 + source-map: 0.6.1 8589 + dev: true 8590 + 8098 8591 /get-stream@6.0.1: 8099 8592 resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 8100 8593 engines: {node: '>=10'} ··· 8145 8638 8146 8639 /glob-to-regexp@0.4.1: 8147 8640 resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 8148 - dev: false 8149 8641 8150 8642 /glob@10.3.10: 8151 8643 resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} ··· 8269 8761 abort-controller: 3.0.0 8270 8762 duplexify: 4.1.2 8271 8763 google-auth-library: 9.1.0 8272 - node-fetch: 2.7.0(encoding@0.1.13) 8764 + node-fetch: 2.7.0 8273 8765 object-hash: 3.0.0 8274 8766 proto3-json-serializer: 2.0.0 8275 8767 protobufjs: 7.2.5 ··· 8283 8775 resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 8284 8776 dependencies: 8285 8777 get-intrinsic: 1.2.1 8286 - dev: false 8287 8778 8288 8779 /graceful-fs@4.2.11: 8289 8780 resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} ··· 8365 8856 resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 8366 8857 dependencies: 8367 8858 get-intrinsic: 1.2.1 8368 - dev: false 8369 8859 8370 8860 /has-proto@1.0.1: 8371 8861 resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 8372 8862 engines: {node: '>= 0.4'} 8373 - dev: false 8374 8863 8375 8864 /has-symbols@1.0.3: 8376 8865 resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 8377 8866 engines: {node: '>= 0.4'} 8378 - dev: false 8379 8867 8380 8868 /has-tostringtag@1.0.0: 8381 8869 resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 8382 8870 engines: {node: '>= 0.4'} 8383 8871 dependencies: 8384 8872 has-symbols: 1.0.3 8385 - dev: false 8386 8873 8387 8874 /has@1.0.4: 8388 8875 resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} ··· 8556 9043 8557 9044 /hono@4.0.0: 8558 9045 resolution: {integrity: sha512-8dKhuBBpRZEodUttQhrSFJ6PQqHRjXHyeeegfxOf132pvgbf0tOb9qqb7q7eYwAWpOcYrsUOsWdJ0sQIIovhZg==} 9046 + engines: {node: '>=16.0.0'} 9047 + dev: false 9048 + 9049 + /hono@4.2.2: 9050 + resolution: {integrity: sha512-mDmjBHF6uBNN3TASdAbDCFsN9FLbrlgXyFZkhLEkU7hUgk0+T9hcsUrL/nho4qV+Xk0RDHx7gop4Q1gelZZVRw==} 8559 9051 engines: {node: '>=16.0.0'} 8560 9052 dev: false 8561 9053 ··· 8864 9356 is-decimal: 2.0.1 8865 9357 dev: false 8866 9358 9359 + /is-arguments@1.1.1: 9360 + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} 9361 + engines: {node: '>= 0.4'} 9362 + dependencies: 9363 + call-bind: 1.0.5 9364 + has-tostringtag: 1.0.0 9365 + dev: true 9366 + 8867 9367 /is-array-buffer@3.0.2: 8868 9368 resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} 8869 9369 dependencies: ··· 8914 9414 /is-callable@1.2.7: 8915 9415 resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 8916 9416 engines: {node: '>= 0.4'} 8917 - dev: false 8918 9417 8919 9418 /is-core-module@2.13.0: 8920 9419 resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} ··· 8956 9455 engines: {node: '>= 0.4'} 8957 9456 dependencies: 8958 9457 has-tostringtag: 1.0.0 8959 - dev: false 8960 9458 8961 9459 /is-glob@4.0.3: 8962 9460 resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} ··· 9092 9590 engines: {node: '>= 0.4'} 9093 9591 dependencies: 9094 9592 which-typed-array: 1.1.13 9095 - dev: false 9096 9593 9097 9594 /is-unicode-supported@0.1.0: 9098 9595 resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} ··· 9145 9642 /isomorphic-fetch@3.0.0: 9146 9643 resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} 9147 9644 dependencies: 9148 - node-fetch: 2.7.0(encoding@0.1.13) 9645 + node-fetch: 2.7.0 9149 9646 whatwg-fetch: 3.6.19 9150 9647 transitivePeerDependencies: 9151 9648 - encoding ··· 9461 9958 prelude-ls: 1.2.1 9462 9959 type-check: 0.4.0 9463 9960 9464 - /libsql@0.3.4: 9465 - resolution: {integrity: sha512-lbmNw2H7e2UrBoV0gtvivsBoa8bxuApoYEawAYzwHW+fY51p9VGMp6kS18iSs1QFAn7Ck8YXpT3l29RT2Yh0EQ==} 9466 - cpu: [x64, arm64] 9961 + /libsql@0.3.10: 9962 + resolution: {integrity: sha512-/8YMTbwWFPmrDWY+YFK3kYqVPFkMgQre0DGmBaOmjogMdSe+7GHm1/q9AZ61AWkEub/vHmi+bA4tqIzVhKnqzg==} 9963 + cpu: [x64, arm64, wasm32] 9467 9964 os: [darwin, linux, win32] 9468 9965 dependencies: 9469 9966 '@neon-rs/load': 0.0.4 9470 9967 detect-libc: 2.0.2 9471 9968 optionalDependencies: 9472 - '@libsql/darwin-arm64': 0.3.4 9473 - '@libsql/darwin-x64': 0.3.4 9474 - '@libsql/linux-arm64-gnu': 0.3.4 9475 - '@libsql/linux-arm64-musl': 0.3.4 9476 - '@libsql/linux-x64-gnu': 0.3.4 9477 - '@libsql/linux-x64-musl': 0.3.4 9478 - '@libsql/win32-x64-msvc': 0.3.4 9969 + '@libsql/darwin-arm64': 0.3.10 9970 + '@libsql/darwin-x64': 0.3.10 9971 + '@libsql/linux-arm64-gnu': 0.3.10 9972 + '@libsql/linux-arm64-musl': 0.3.10 9973 + '@libsql/linux-x64-gnu': 0.3.10 9974 + '@libsql/linux-x64-musl': 0.3.10 9975 + '@libsql/win32-x64-msvc': 0.3.10 9479 9976 dev: false 9480 9977 9481 9978 /lie@3.1.1: ··· 9624 10121 resolution: {integrity: sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==} 9625 10122 engines: {node: '>=12'} 9626 10123 dev: false 10124 + 10125 + /magic-string@0.25.9: 10126 + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 10127 + dependencies: 10128 + sourcemap-codec: 1.4.8 10129 + dev: true 9627 10130 9628 10131 /magic-string@0.27.0: 9629 10132 resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} ··· 10272 10775 mime-db: 1.52.0 10273 10776 dev: false 10274 10777 10778 + /mime@3.0.0: 10779 + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 10780 + engines: {node: '>=10.0.0'} 10781 + hasBin: true 10782 + dev: true 10783 + 10275 10784 /mimic-fn@2.1.0: 10276 10785 resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 10277 10786 engines: {node: '>=6'} ··· 10285 10794 engines: {node: '>=4'} 10286 10795 dev: false 10287 10796 10797 + /miniflare@3.20240403.0: 10798 + resolution: {integrity: sha512-4xoBRu60+7iCKRn6zZ/SiqP+U2FQ74LZymoZHhEcY3y62zHNRNKf8s9jsL/ooDtyQoAOKx9W5TjTGqDmOS5vfQ==} 10799 + engines: {node: '>=16.13'} 10800 + hasBin: true 10801 + dependencies: 10802 + '@cspotcode/source-map-support': 0.8.1 10803 + acorn: 8.10.0 10804 + acorn-walk: 8.2.0 10805 + capnp-ts: 0.7.0 10806 + exit-hook: 2.2.1 10807 + glob-to-regexp: 0.4.1 10808 + stoppable: 1.1.0 10809 + undici: 5.28.4 10810 + workerd: 1.20240403.0 10811 + ws: 8.14.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) 10812 + youch: 3.3.3 10813 + zod: 3.22.2 10814 + transitivePeerDependencies: 10815 + - bufferutil 10816 + - supports-color 10817 + - utf-8-validate 10818 + dev: true 10819 + 10288 10820 /minimatch@3.1.2: 10289 10821 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 10290 10822 dependencies: ··· 10346 10878 resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 10347 10879 dev: false 10348 10880 10881 + /mustache@4.2.0: 10882 + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} 10883 + hasBin: true 10884 + dev: true 10885 + 10349 10886 /mute-stream@0.0.8: 10350 10887 resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} 10351 10888 dev: true ··· 10505 11042 resolution: {integrity: sha512-VzW+TAk2wE4X9maiKMlT+GsPU4OMmR1U9CrHSmd3DFLn2IcZ9VJ6M6BBugGfYUnPCLSYxXdZy17M0BEJyhUTwg==} 10506 11043 dev: false 10507 11044 10508 - /node-fetch@2.7.0(encoding@0.1.13): 11045 + /node-fetch@2.7.0: 10509 11046 resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 10510 11047 engines: {node: 4.x || >=6.0.0} 10511 11048 peerDependencies: ··· 10514 11051 encoding: 10515 11052 optional: true 10516 11053 dependencies: 10517 - encoding: 0.1.13 10518 11054 whatwg-url: 5.0.0 10519 11055 dev: false 10520 11056 ··· 10527 11063 formdata-polyfill: 4.0.10 10528 11064 dev: false 10529 11065 11066 + /node-forge@1.3.1: 11067 + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} 11068 + engines: {node: '>= 6.13.0'} 11069 + dev: true 11070 + 10530 11071 /node-gyp-build@4.6.1: 10531 11072 resolution: {integrity: sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==} 10532 11073 hasBin: true ··· 10880 11421 10881 11422 /path-to-regexp@6.2.1: 10882 11423 resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} 10883 - dev: false 10884 11424 10885 11425 /path-type@4.0.0: 10886 11426 resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} ··· 11168 11708 js-beautify: 1.14.9 11169 11709 dev: false 11170 11710 11711 + /printable-characters@1.0.42: 11712 + resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} 11713 + dev: true 11714 + 11171 11715 /progress@2.0.3: 11172 11716 resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} 11173 11717 engines: {node: '>=0.4.0'} ··· 11244 11788 end-of-stream: 1.4.4 11245 11789 once: 1.4.0 11246 11790 11791 + /punycode@1.3.2: 11792 + resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} 11793 + dev: true 11794 + 11247 11795 /punycode@2.3.0: 11248 11796 resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 11249 11797 engines: {node: '>=6'} ··· 11265 11813 dependencies: 11266 11814 side-channel: 1.0.4 11267 11815 dev: false 11816 + 11817 + /querystring@0.2.0: 11818 + resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} 11819 + engines: {node: '>=0.4.x'} 11820 + deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. 11821 + dev: true 11268 11822 11269 11823 /querystringify@2.2.0: 11270 11824 resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} ··· 11801 12355 /resolve-pkg-maps@1.0.0: 11802 12356 resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 11803 12357 12358 + /resolve.exports@2.0.2: 12359 + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} 12360 + engines: {node: '>=10'} 12361 + dev: true 12362 + 11804 12363 /resolve@1.22.8: 11805 12364 resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 11806 12365 hasBin: true ··· 11848 12407 dependencies: 11849 12408 glob: 7.2.3 11850 12409 12410 + /rollup-plugin-inject@3.0.2: 12411 + resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} 12412 + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. 12413 + dependencies: 12414 + estree-walker: 0.6.1 12415 + magic-string: 0.25.9 12416 + rollup-pluginutils: 2.8.2 12417 + dev: true 12418 + 12419 + /rollup-plugin-node-polyfills@0.2.1: 12420 + resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} 12421 + dependencies: 12422 + rollup-plugin-inject: 3.0.2 12423 + dev: true 12424 + 12425 + /rollup-pluginutils@2.8.2: 12426 + resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} 12427 + dependencies: 12428 + estree-walker: 0.6.1 12429 + dev: true 12430 + 11851 12431 /rollup@2.78.0: 11852 12432 resolution: {integrity: sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg==} 11853 12433 engines: {node: '>=10.0.0'} ··· 11956 12536 parseley: 0.12.1 11957 12537 dev: false 11958 12538 12539 + /selfsigned@2.4.1: 12540 + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} 12541 + engines: {node: '>=10'} 12542 + dependencies: 12543 + '@types/node-forge': 1.3.11 12544 + node-forge: 1.3.1 12545 + dev: true 12546 + 11959 12547 /semver@5.7.2: 11960 12548 resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 11961 12549 hasBin: true ··· 11987 12575 get-intrinsic: 1.2.1 11988 12576 gopd: 1.0.1 11989 12577 has-property-descriptors: 1.0.0 11990 - dev: false 11991 12578 11992 12579 /set-function-name@2.0.1: 11993 12580 resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} ··· 12162 12749 whatwg-url: 7.1.0 12163 12750 dev: true 12164 12751 12752 + /sourcemap-codec@1.4.8: 12753 + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 12754 + deprecated: Please use @jridgewell/sourcemap-codec instead 12755 + dev: true 12756 + 12165 12757 /space-separated-tokens@2.0.2: 12166 12758 resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} 12167 12759 dev: false ··· 12206 12798 type-fest: 0.7.1 12207 12799 dev: false 12208 12800 12801 + /stacktracey@2.1.8: 12802 + resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} 12803 + dependencies: 12804 + as-table: 1.0.55 12805 + get-source: 2.0.12 12806 + dev: true 12807 + 12209 12808 /statuses@1.5.0: 12210 12809 resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} 12211 12810 engines: {node: '>= 0.6'} 12212 12811 dev: false 12213 12812 12813 + /stoppable@1.1.0: 12814 + resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} 12815 + engines: {node: '>=4', npm: '>=6'} 12816 + dev: true 12817 + 12214 12818 /stream-events@1.0.5: 12215 12819 resolution: {integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==} 12216 12820 dependencies: ··· 12220 12824 /stream-shift@1.0.1: 12221 12825 resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} 12222 12826 dev: false 12827 + 12828 + /stream@0.0.2: 12829 + resolution: {integrity: sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==} 12830 + dependencies: 12831 + emitter-component: 1.1.2 12832 + dev: true 12223 12833 12224 12834 /streamsearch@1.1.0: 12225 12835 resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} ··· 12440 13050 /svix-fetch@3.0.0: 12441 13051 resolution: {integrity: sha512-rcADxEFhSqHbraZIsjyZNh4TF6V+koloX1OzZ+AQuObX9mZ2LIMhm1buZeuc5BIZPftZpJCMBsSiBaeszo9tRw==} 12442 13052 dependencies: 12443 - node-fetch: 2.7.0(encoding@0.1.13) 13053 + node-fetch: 2.7.0 12444 13054 whatwg-fetch: 3.6.19 12445 13055 transitivePeerDependencies: 12446 13056 - encoding ··· 12598 13208 dependencies: 12599 13209 http-proxy-agent: 5.0.0 12600 13210 https-proxy-agent: 5.0.1 12601 - node-fetch: 2.7.0(encoding@0.1.13) 13211 + node-fetch: 2.7.0 12602 13212 stream-events: 1.0.5 12603 13213 uuid: 9.0.1 12604 13214 transitivePeerDependencies: ··· 13046 13656 engines: {node: '>=14.17'} 13047 13657 hasBin: true 13048 13658 13659 + /typescript@5.4.4: 13660 + resolution: {integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==} 13661 + engines: {node: '>=14.17'} 13662 + hasBin: true 13663 + dev: true 13664 + 13049 13665 /uglify-js@3.17.4: 13050 13666 resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} 13051 13667 engines: {node: '>=0.8.0'} ··· 13070 13686 busboy: 1.6.0 13071 13687 dev: false 13072 13688 13689 + /undici@5.28.4: 13690 + resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} 13691 + engines: {node: '>=14.0'} 13692 + dependencies: 13693 + '@fastify/busboy': 2.1.1 13694 + dev: true 13695 + 13073 13696 /unified@10.1.2: 13074 13697 resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} 13075 13698 dependencies: ··· 13243 13866 requires-port: 1.0.0 13244 13867 dev: false 13245 13868 13869 + /url@0.11.0: 13870 + resolution: {integrity: sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==} 13871 + dependencies: 13872 + punycode: 1.3.2 13873 + querystring: 0.2.0 13874 + dev: true 13875 + 13246 13876 /use-callback-ref@1.3.0(@types/react@18.2.64)(react@18.2.0): 13247 13877 resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} 13248 13878 engines: {node: '>=10'} ··· 13292 13922 /util-deprecate@1.0.2: 13293 13923 resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 13294 13924 13925 + /util@0.12.5: 13926 + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} 13927 + dependencies: 13928 + inherits: 2.0.4 13929 + is-arguments: 1.1.1 13930 + is-generator-function: 1.0.10 13931 + is-typed-array: 1.1.12 13932 + which-typed-array: 1.1.13 13933 + dev: true 13934 + 13295 13935 /uuid@8.3.2: 13296 13936 resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} 13297 13937 hasBin: true ··· 13532 14172 for-each: 0.3.3 13533 14173 gopd: 1.0.1 13534 14174 has-tostringtag: 1.0.0 13535 - dev: false 13536 14175 13537 14176 /which@2.0.2: 13538 14177 resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} ··· 13545 14184 resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} 13546 14185 dev: true 13547 14186 14187 + /workerd@1.20240403.0: 14188 + resolution: {integrity: sha512-OcUPNNIUn4dC3dyRc/W6sTPjgFjJQVpbqpMCx7RmAzVrEzB+nJlz25FZr5alxIG5769UmzvMB1wlK/hMddHk0w==} 14189 + engines: {node: '>=16'} 14190 + hasBin: true 14191 + requiresBuild: true 14192 + optionalDependencies: 14193 + '@cloudflare/workerd-darwin-64': 1.20240403.0 14194 + '@cloudflare/workerd-darwin-arm64': 1.20240403.0 14195 + '@cloudflare/workerd-linux-64': 1.20240403.0 14196 + '@cloudflare/workerd-linux-arm64': 1.20240403.0 14197 + '@cloudflare/workerd-windows-64': 1.20240403.0 14198 + dev: true 14199 + 14200 + /wrangler@3.47.0(@cloudflare/workers-types@4.20240403.0): 14201 + resolution: {integrity: sha512-aptr+g+ohgJLemIEoAVejcqnfnQWk248nkIyYxGDh8ohlDjQlo1vO0/mWiyqPUsmWOxl0Yr3jdZMtfi7iukayg==} 14202 + engines: {node: '>=16.17.0'} 14203 + hasBin: true 14204 + peerDependencies: 14205 + '@cloudflare/workers-types': ^4.20240402.0 14206 + peerDependenciesMeta: 14207 + '@cloudflare/workers-types': 14208 + optional: true 14209 + dependencies: 14210 + '@cloudflare/kv-asset-handler': 0.3.1 14211 + '@cloudflare/workers-types': 4.20240403.0 14212 + '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) 14213 + '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) 14214 + blake3-wasm: 2.1.5 14215 + chokidar: 3.5.3 14216 + esbuild: 0.17.19 14217 + miniflare: 3.20240403.0 14218 + nanoid: 3.3.6 14219 + path-to-regexp: 6.2.1 14220 + resolve: 1.22.8 14221 + resolve.exports: 2.0.2 14222 + selfsigned: 2.4.1 14223 + source-map: 0.6.1 14224 + xxhash-wasm: 1.0.2 14225 + optionalDependencies: 14226 + fsevents: 2.3.3 14227 + transitivePeerDependencies: 14228 + - bufferutil 14229 + - supports-color 14230 + - utf-8-validate 14231 + dev: true 14232 + 13548 14233 /wrap-ansi@6.2.0: 13549 14234 resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 13550 14235 engines: {node: '>=8'} ··· 13589 14274 dependencies: 13590 14275 bufferutil: 4.0.7 13591 14276 utf-8-validate: 6.0.3 13592 - dev: false 13593 14277 13594 14278 /xml-name-validator@4.0.0: 13595 14279 resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} ··· 13608 14292 resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 13609 14293 engines: {node: '>=0.4'} 13610 14294 dev: false 14295 + 14296 + /xxhash-wasm@1.0.2: 14297 + resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} 14298 + dev: true 13611 14299 13612 14300 /y18n@5.0.8: 13613 14301 resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} ··· 13663 14351 /yocto-queue@0.1.0: 13664 14352 resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 13665 14353 engines: {node: '>=10'} 14354 + 14355 + /youch@3.3.3: 14356 + resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==} 14357 + dependencies: 14358 + cookie: 0.5.0 14359 + mustache: 4.2.0 14360 + stacktracey: 2.1.8 14361 + dev: true 13666 14362 13667 14363 /zod@3.22.2: 13668 14364 resolution: {integrity: sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg==}