Openstatus www.openstatus.dev

๐Ÿ—‘๏ธ some clean up (#1011)

* ๐Ÿ—‘๏ธ some clean up

* ๐Ÿ—‘๏ธ some clean up

* ๐Ÿ—‘๏ธ some clean up

* ๐Ÿ—‘๏ธ some clean up

authored by

Thibault Le Ouay and committed by
GitHub
99d718a2 218fa617

+29 -2176
-4
apps/ingest-worker/README.md
··· 1 - # Ingest worker 2 - 3 - This is a worker deploy to cloudflare it allow us to ingest data from around the 4 - world and send it to our main server
-21
apps/ingest-worker/package.json
··· 1 - { 2 - "name": "@openstatus/ingest-worker", 3 - "scripts": { 4 - "dev": "wrangler dev src/index.ts", 5 - "deploy": "wrangler deploy --minify src/index.ts", 6 - "deploy:prod": "wrangler deploy --minify src/index.ts --env production" 7 - }, 8 - "dependencies": { 9 - "@openstatus/tinybird": "workspace:*", 10 - "detect-browser": "5.3.0", 11 - "drizzle-orm": "0.32.1", 12 - "hono": "4.5.3", 13 - "zod": "3.23.8" 14 - }, 15 - "devDependencies": { 16 - "@biomejs/biome": "1.7.3", 17 - "@cloudflare/workers-types": "4.20240512.0", 18 - "typescript": "5.5.2", 19 - "wrangler": "3.57.0" 20 - } 21 - }
-178
apps/ingest-worker/src/index.ts
··· 1 - import { browserName, detectOS } from "detect-browser"; 2 - import { Hono } from "hono"; 3 - import { env } from "hono/adapter"; 4 - import { z } from "zod"; 5 - 6 - import { OSTinybird } from "@openstatus/tinybird"; 7 - import { tbIngestWebVitals } from "@openstatus/tinybird/src/validation"; 8 - 9 - import { getDevice } from "./utils"; 10 - 11 - type Bindings = { 12 - API_ENDPOINT: string; 13 - DATABASE_URL: string; 14 - DATABASE_AUTH_TOKEN: string; 15 - TINYBIRD_TOKEN: string; 16 - }; 17 - 18 - const app = new Hono<{ Bindings: Bindings }>(); 19 - 20 - const schema = z.object({ 21 - dsn: z.string(), 22 - name: z.string(), 23 - href: z.string(), 24 - id: z.string(), 25 - speed: z.string(), 26 - path: z.string(), 27 - rating: z.string().optional(), 28 - value: z.number(), 29 - screen: z.string(), 30 - session_id: z.string(), 31 - }); 32 - 33 - const schemaV1 = z.object({ 34 - event_type: z.literal("web-vitals"), 35 - dsn: z.string(), 36 - href: z.string(), 37 - speed: z.string(), 38 - path: z.string(), 39 - screen: z.string(), 40 - data: z.object({ 41 - name: z.string(), 42 - rating: z.string().optional(), 43 - value: z.number(), 44 - id: z.string(), 45 - }), 46 - session_id: z.string(), 47 - }); 48 - 49 - const cfSchema = schema.extend({ 50 - browser: z.string().default(""), 51 - city: z.string().default(""), 52 - country: z.string().default(""), 53 - continent: z.string().default(""), 54 - device: z.string().default(""), 55 - region_code: z.string().default(""), 56 - timezone: z.string().default(""), 57 - os: z.string(), 58 - path: z.string(), 59 - screen: z.string(), 60 - event_name: z.string(), 61 - }); 62 - 63 - app.get("/", (c) => { 64 - return c.text("Hello OpenStatus!"); 65 - }); 66 - 67 - app.post("/", async (c) => { 68 - const rawText = await c.req.text(); 69 - const data = z.array(schema).parse(JSON.parse(rawText)); 70 - const userAgent = c.req.header("user-agent") || ""; 71 - 72 - const country = c.req.header("cf-ipcountry") || ""; 73 - const city = c.req.raw.cf?.city || ""; 74 - const region_code = c.req.raw.cf?.regionCode || ""; 75 - const timezone = c.req.raw.cf?.timezone || ""; 76 - const browser = browserName(userAgent) || ""; 77 - const continent = c.req.raw.cf?.continent || ""; 78 - 79 - const os = detectOS(userAgent) || ""; 80 - const payload = data.map((d) => { 81 - return cfSchema.parse({ 82 - ...d, 83 - event_name: d.name, 84 - browser, 85 - country, 86 - city, 87 - timezone, 88 - region_code, 89 - continent, 90 - os, 91 - }); 92 - }); 93 - 94 - const insert = async () => { 95 - const res = []; 96 - for (const p of payload) { 97 - const { API_ENDPOINT } = env(c); 98 - 99 - const r = fetch(API_ENDPOINT, { 100 - method: "POST", 101 - headers: { 102 - "Content-Type": "application/json", 103 - }, 104 - body: JSON.stringify(p), 105 - }); 106 - 107 - res.push(r); 108 - } 109 - await Promise.allSettled(res); 110 - // console.log(pro); 111 - console.log("Inserted"); 112 - }; 113 - c.executionCtx.waitUntil(insert()); 114 - return c.json({ status: "ok" }, 200); 115 - }); 116 - 117 - app.post("/v1", async (c) => { 118 - const rawText = await c.req.text(); 119 - const data = z.array(schemaV1).parse(JSON.parse(rawText)); 120 - const userAgent = c.req.header("user-agent") || ""; 121 - 122 - const timestamp = Date.now(); 123 - const country = c.req.header("cf-ipcountry") || ""; 124 - const city = c.req.raw.cf?.city || ""; 125 - const region_code = c.req.raw.cf?.regionCode || ""; 126 - const timezone = c.req.raw.cf?.timezone || ""; 127 - const browser = browserName(userAgent) || ""; 128 - const continent = c.req.raw.cf?.continent || ""; 129 - const os = detectOS(userAgent) || ""; 130 - const payload = data.map((d) => { 131 - const device = getDevice(d.screen, os); 132 - return tbIngestWebVitals.parse({ 133 - ...d, 134 - timestamp, 135 - device, 136 - ...d.data, 137 - browser, 138 - country, 139 - city, 140 - timezone, 141 - region_code, 142 - continent, 143 - os, 144 - }); 145 - }); 146 - 147 - const { TINYBIRD_TOKEN } = env(c); 148 - // const client = buildLibsqlClient({ 149 - // url: DATABASE_URL, 150 - // token: DATABASE_AUTH_TOKEN, 151 - // }); 152 - 153 - // const db = createDb({ client }); 154 - const tb = new OSTinybird({ token: TINYBIRD_TOKEN }); 155 - const insert = async () => { 156 - // console.log(payload); 157 - 158 - // We only take the first payload but we should take all 159 - // // Fetch db 160 - // const r = await db 161 - // .select() 162 - // .from(application) 163 - // .where(eq(application.dsn, payload[0].dsn)) 164 - // .get(); 165 - // if (!r) { 166 - // return; 167 - // } 168 - 169 - // Ingest In TB 170 - await tb.ingestWebVitals(payload); 171 - console.log("Inserted"); 172 - }; 173 - 174 - c.executionCtx.waitUntil(insert()); 175 - return c.json({ status: "ok" }, 200); 176 - }); 177 - 178 - export default app;
-66
apps/ingest-worker/src/utils.ts
··· 1 - // This code is copy pasta from umami <3 2 - 3 - export const DESKTOP_OS = [ 4 - "BeOS", 5 - "Chrome OS", 6 - "Linux", 7 - "Mac OS", 8 - "Open BSD", 9 - "OS/2", 10 - "QNX", 11 - "Sun OS", 12 - "Windows 10", 13 - "Windows 2000", 14 - "Windows 3.11", 15 - "Windows 7", 16 - "Windows 8", 17 - "Windows 8.1", 18 - "Windows 95", 19 - "Windows 98", 20 - "Windows ME", 21 - "Windows Server 2003", 22 - "Windows Vista", 23 - "Windows XP", 24 - ]; 25 - 26 - export const MOBILE_OS = [ 27 - "Amazon OS", 28 - "Android OS", 29 - "BlackBerry OS", 30 - "iOS", 31 - "Windows Mobile", 32 - ]; 33 - 34 - export const DESKTOP_SCREEN_WIDTH = 1920; 35 - export const LAPTOP_SCREEN_WIDTH = 1024; 36 - export const MOBILE_SCREEN_WIDTH = 479; 37 - 38 - export function getDevice(screen: string, os: string) { 39 - if (!screen) return; 40 - 41 - const [width] = screen.split("x"); 42 - 43 - if (DESKTOP_OS.includes(os)) { 44 - if (os === "Chrome OS" || +width < DESKTOP_SCREEN_WIDTH) { 45 - return "laptop"; 46 - } 47 - return "desktop"; 48 - } 49 - if (MOBILE_OS.includes(os)) { 50 - if (os === "Amazon OS" || +width > MOBILE_SCREEN_WIDTH) { 51 - return "tablet"; 52 - } 53 - return "mobile"; 54 - } 55 - 56 - if (+width >= DESKTOP_SCREEN_WIDTH) { 57 - return "desktop"; 58 - } 59 - if (+width >= LAPTOP_SCREEN_WIDTH) { 60 - return "laptop"; 61 - } 62 - if (+width >= MOBILE_SCREEN_WIDTH) { 63 - return "tablet"; 64 - } 65 - return "mobile"; 66 - }
-12
apps/ingest-worker/tsconfig.json
··· 1 - { 2 - "compilerOptions": { 3 - "target": "ESNext", 4 - "module": "ESNext", 5 - "moduleResolution": "Bundler", 6 - "strict": true, 7 - "lib": ["ESNext"], 8 - "types": ["@cloudflare/workers-types"], 9 - "jsx": "react-jsx", 10 - "jsxImportSource": "hono/jsx" 11 - } 12 - }
-11
apps/ingest-worker/wrangler.toml
··· 1 - name = "ingest-workers" 2 - compatibility_date = "2024-04-03" 3 - node_compat = true 4 - 5 - 6 - [env.dev.vars] 7 - API_ENDPOINT = "http://localhost:8080/vitals" 8 - 9 - 10 - [env.production.vars] 11 - API_ENDPOINT = "https://vitals.openstatus.dev/v1/proxy/cloudflare"
+1 -1
apps/screenshot-service/package.json
··· 8 8 "dependencies": { 9 9 "@aws-sdk/client-s3": "3.550.0", 10 10 "@hono/zod-validator": "0.2.1", 11 - "@libsql/client": "0.6.2", 11 + "@libsql/client": "0.14.0", 12 12 "@openstatus/db": "workspace:*", 13 13 "@openstatus/utils": "workspace:^", 14 14 "@t3-oss/env-core": "0.7.1",
-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 --remote", 6 - "deploy": "wrangler deploy --minify src/index.ts" 7 - }, 8 - "dependencies": { 9 - "@hono/zod-validator": "0.2.1", 10 - "@libsql/client": "0.6.2", 11 - "@openstatus/db": "workspace:*", 12 - "drizzle-orm": "0.32.1", 13 - "hono": "4.5.3", 14 - "zod": "3.23.8" 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 - }
-119
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 - 57 - const sessionId = await getRandomSession(env.MYBROWSER); 58 - // biome-ignore lint/suspicious/noImplicitAnyLet: <explanation> 59 - let browser; 60 - if (sessionId) { 61 - try { 62 - browser = await puppeteer.connect(env.MYBROWSER, sessionId); 63 - } catch (e) { 64 - // another worker may have connected first 65 - console.log(`Failed to connect to ${sessionId}. Error ${e}`); 66 - } 67 - } 68 - if (!browser) { 69 - // No open sessions, launch new session 70 - browser = await puppeteer.launch(env.MYBROWSER); 71 - } 72 - 73 - const page = await browser.newPage(); 74 - await page.goto(data.url, { waitUntil: "networkidle2" }); 75 - const img = await page.screenshot(); 76 - await browser.disconnect(); 77 - const id = `${data.incidentId}-${Date.now()}.png`; 78 - const url = `https://screenshot.openstat.us/${id}`; 79 - await c.env.MY_BUCKET.put(id, img); 80 - if (data.kind === "incident") { 81 - await db 82 - .update(incidentTable) 83 - .set({ incidentScreenshotUrl: url }) 84 - .where(eq(incidentTable.id, data.incidentId)) 85 - .run(); 86 - } 87 - if (data.kind === "recovery") { 88 - await db 89 - .update(incidentTable) 90 - .set({ recoveryScreenshotUrl: url }) 91 - .where(eq(incidentTable.id, data.incidentId)) 92 - .run(); 93 - } 94 - return c.text("Screenshot saved"); 95 - }, 96 - ); 97 - const getRandomSession = async ( 98 - endpoint: puppeteer.BrowserWorker, 99 - ): Promise<string | undefined> => { 100 - const sessions: puppeteer.ActiveSession[] = 101 - await puppeteer.sessions(endpoint); 102 - console.log(`Sessions: ${JSON.stringify(sessions)}`); 103 - const sessionsIds = sessions 104 - .filter((v) => { 105 - return !v.connectionId; // remove sessions with workers connected to them 106 - }) 107 - .map((v) => { 108 - return v.sessionId; 109 - }); 110 - if (sessionsIds.length === 0) { 111 - return; 112 - } 113 - 114 - const sessionId = sessionsIds[Math.floor(Math.random() * sessionsIds.length)]; 115 - 116 - // biome-ignore lint/style/noNonNullAssertion: <explanation> 117 - return sessionId!; 118 - }; 119 - 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"
+1 -1
apps/server/log/fly.toml
··· 12 12 [http_service] 13 13 internal_port = 8686 14 14 force_https = true 15 - auto_stop_machines = true 15 + auto_stop_machines = "suspend" 16 16 auto_start_machines = true 17 17 min_machines_running = 1 18 18 processes = ["app"]
+1 -2
apps/web/package.json
··· 15 15 "@google-cloud/tasks": "5.0.0", 16 16 "@headlessui/react": "1.7.17", 17 17 "@hookform/resolvers": "3.3.1", 18 - "@libsql/client": "0.6.2", 18 + "@libsql/client": "0.14.0", 19 19 "@openstatus/analytics": "workspace:*", 20 20 "@openstatus/api": "workspace:*", 21 21 "@openstatus/assertions": "workspace:*", ··· 29 29 "@openstatus/notification-pagerduty": "workspace:*", 30 30 "@openstatus/notification-slack": "workspace:*", 31 31 "@openstatus/react": "workspace:*", 32 - "@openstatus/rum": "workspace:*", 33 32 "@openstatus/tinybird": "workspace:*", 34 33 "@openstatus/tracker": "workspace:*", 35 34 "@openstatus/ui": "workspace:*",
-114
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/category-bar.tsx
··· 1 - // TODO: move to @/components folder 2 - 3 - import React from "react"; 4 - 5 - import { 6 - Tooltip, 7 - TooltipContent, 8 - TooltipProvider, 9 - TooltipTrigger, 10 - } from "@openstatus/ui"; 11 - 12 - import { cn } from "@/lib/utils"; 13 - 14 - const MAX_VALUE_RATIO = 1.3; // avoiding Infinity as number 15 - 16 - interface CategoryBarProps { 17 - values: { 18 - color: string; 19 - min: number; 20 - max: number; 21 - }[]; 22 - marker: number; 23 - } 24 - 25 - export function CategoryBar({ values, marker }: CategoryBarProps) { 26 - const getMarkerColor = React.useCallback(() => { 27 - for (const value of values) { 28 - if (marker >= value.min && marker <= value.max) { 29 - return value.color; 30 - } 31 - } 32 - return "bg-gray-500"; 33 - }, [values, marker]); 34 - 35 - /** 36 - * Get the max value from the values array 37 - * If the max value is not finite, calculate the max value based on the ratio 38 - */ 39 - const getMaxValue = React.useCallback(() => { 40 - const maxValue = values.reduce((acc, value) => { 41 - if (Number.isFinite(value.max)) return Math.max(acc, value.max); 42 - return acc * MAX_VALUE_RATIO; 43 - }, 0); 44 - return Math.max(maxValue, marker); 45 - }, [values, marker]); 46 - 47 - const valuesWithPercentage = React.useMemo( 48 - () => 49 - values.map((value) => { 50 - const max = Number.isFinite(value.max) ? value.max : getMaxValue(); 51 - return { 52 - ...value, 53 - percentage: (max - value.min) / getMaxValue(), 54 - }; 55 - }), 56 - [values, getMaxValue], 57 - ); 58 - 59 - return ( 60 - <div className="relative w-full"> 61 - <div className="relative mb-1 flex w-full"> 62 - <div className="absolute bottom-0 left-0 flex items-center text-muted-foreground text-xs"> 63 - 0 64 - </div> 65 - {valuesWithPercentage.slice(0, values.length - 1).map((value, i) => { 66 - const width = `${(value.percentage * 100).toFixed(2)}%`; 67 - return ( 68 - <div 69 - // biome-ignore lint/suspicious/noArrayIndexKey: <explanation> 70 - key={i} 71 - className="flex items-center justify-end" 72 - style={{ width }} 73 - > 74 - <span className="left-1/2 translate-x-1/2 text-muted-foreground text-xs"> 75 - {value.max} 76 - </span> 77 - </div> 78 - ); 79 - })} 80 - {/* REMINDER: could be a thing - only display if maxValue !== Infinity */} 81 - <div className="absolute right-0 bottom-0 flex items-center text-muted-foreground text-xs"> 82 - {getMaxValue()} 83 - </div> 84 - </div> 85 - <div className="flex h-3 w-full overflow-hidden rounded-full"> 86 - {valuesWithPercentage.map((value, i) => { 87 - const width = `${(value.percentage * 100).toFixed(2)}%`; 88 - // biome-ignore lint/suspicious/noArrayIndexKey: <explanation> 89 - return <div key={i} className={cn(value.color)} style={{ width }} />; 90 - })} 91 - </div> 92 - <div 93 - className="-bottom-0.5 -translate-x-1/2 absolute right-1/2 w-5" 94 - style={{ left: `${(marker / getMaxValue()) * 100}%` }} 95 - > 96 - <TooltipProvider> 97 - <Tooltip> 98 - <TooltipTrigger asChild> 99 - <div 100 - className={cn( 101 - "mx-auto h-4 w-1 rounded-full ring-2 ring-border", 102 - getMarkerColor(), 103 - )} 104 - /> 105 - </TooltipTrigger> 106 - <TooltipContent> 107 - <p>{marker}</p> 108 - </TooltipContent> 109 - </Tooltip> 110 - </TooltipProvider> 111 - </div> 112 - </div> 113 - ); 114 - }
-12
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/data-table-wrapper.tsx
··· 1 - import { columns } from "@/components/data-table/rum/columns"; 2 - import { DataTable } from "@/components/data-table/rum/data-table"; 3 - import type { responseRumPageQuery } from "@openstatus/tinybird/src/validation"; 4 - import type { z } from "zod"; 5 - 6 - export const DataTableWrapper = ({ 7 - data, 8 - }: { 9 - data: z.infer<typeof responseRumPageQuery>[]; 10 - }) => { 11 - return <DataTable columns={columns} data={data} />; 12 - };
-18
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/request-button/action.ts
··· 1 - "use server"; 2 - 3 - import { auth } from "@/lib/auth"; 4 - import { analytics, trackAnalytics } from "@openstatus/analytics"; 5 - import { Redis } from "@upstash/redis"; 6 - const redis = Redis.fromEnv(); 7 - 8 - export const RequestAccessToRum = async () => { 9 - const session = await auth(); 10 - if (!session?.user) return; 11 - 12 - await redis.sadd("rum_access_requested", session.user.email); 13 - await analytics.identify(session.user.id, { email: session.user.email }); 14 - await trackAnalytics({ 15 - event: "User RUM Beta Requested", 16 - email: session.user.email || "", 17 - }); 18 - };
-34
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/request-button/request-button.tsx
··· 1 - "use client"; 2 - import { auth } from "@/lib/auth"; 3 - import { Button } from "@openstatus/ui/src/components/button"; 4 - import { Redis } from "@upstash/redis"; 5 - import { useState } from "react"; 6 - import { RequestAccessToRum } from "./action"; 7 - 8 - export const RequestButton = async ({ 9 - hasRequestAccess, 10 - }: { 11 - hasRequestAccess: number; 12 - }) => { 13 - const [accessRequested, setAccessRequested] = useState(hasRequestAccess); 14 - if (accessRequested) { 15 - return ( 16 - <Button> 17 - <span>Access requested</span> 18 - </Button> 19 - ); 20 - } 21 - 22 - return ( 23 - <Button 24 - onClick={async () => { 25 - // const session = await auth(); 26 - // if (!session?.user) return; 27 - await RequestAccessToRum(); 28 - setAccessRequested(1); 29 - }} 30 - > 31 - Request access 32 - </Button> 33 - ); 34 - };
-19
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/route-table.tsx
··· 1 - import { api } from "@/trpc/server"; 2 - import { DataTableWrapper } from "./data-table-wrapper"; 3 - 4 - const RouteTable = async ({ dsn }: { dsn: string }) => { 5 - const data = await api.tinybird.rumMetricsForApplicationPerPage.query({ 6 - dsn: dsn, 7 - period: "24h", 8 - }); 9 - if (!data) { 10 - return null; 11 - } 12 - return ( 13 - <div className=""> 14 - <DataTableWrapper data={data} /> 15 - </div> 16 - ); 17 - }; 18 - 19 - export { RouteTable };
-35
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/rum-card.tsx
··· 1 - import { getColorByType, webVitalsConfig } from "@openstatus/rum"; 2 - import type { WebVitalEvents, WebVitalsValues } from "@openstatus/rum"; 3 - import { Card } from "@tremor/react"; 4 - import { CategoryBar } from "./category-bar"; 5 - 6 - export function prepareWebVitalValues(values: WebVitalsValues) { 7 - return values.map((value) => ({ 8 - ...value, 9 - color: getColorByType(value.type), 10 - })); 11 - } 12 - 13 - export const RUMCard = async ({ 14 - event, 15 - value, 16 - }: { 17 - event: WebVitalEvents; 18 - value: number; 19 - }) => { 20 - const eventConfig = webVitalsConfig[event]; 21 - return ( 22 - <Card> 23 - <p className="text-muted-foreground text-sm"> 24 - {eventConfig.label} ({event}) 25 - </p> 26 - <p className="font-semibold text-3xl text-foreground"> 27 - {event !== "CLS" ? value.toFixed(0) : value.toFixed(2) || 0} 28 - </p> 29 - <CategoryBar 30 - values={prepareWebVitalValues(eventConfig.values)} 31 - marker={value || 0} 32 - /> 33 - </Card> 34 - ); 35 - };
-22
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/rum-metric-card.tsx
··· 1 - import { getColorByType } from "@openstatus/rum"; 2 - import type { WebVitalsValues } from "@openstatus/rum"; 3 - 4 - import { api } from "@/trpc/server"; 5 - import { RUMCard } from "./rum-card"; 6 - 7 - export const RUMMetricCards = async ({ dsn }: { dsn: string }) => { 8 - const data = await api.tinybird.totalRumMetricsForApplication.query({ 9 - dsn: dsn, 10 - period: "24h", 11 - }); 12 - return ( 13 - <div className="grid grid-cols-1 gap-2 md:grid-cols-2 lg:grid-cols-5"> 14 - <RUMCard event="CLS" value={data?.cls || 0} /> 15 - <RUMCard event="FCP" value={data?.fcp || 0} /> 16 - <RUMCard event="INP" value={data?.inp || 0} /> 17 - 18 - <RUMCard event="LCP" value={data?.lcp || 0} /> 19 - <RUMCard event="TTFB" value={data?.ttfb || 0} /> 20 - </div> 21 - ); 22 - };
-6
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/_components/util.ts
··· 1 - export const timeFormater = (time: number) => { 2 - if (time < 1000) { 3 - return `${new Intl.NumberFormat("us").format(time).toString()}ms`; 4 - } 5 - return `${new Intl.NumberFormat("us").format(time / 1000).toString()}s`; 6 - };
-18
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/layout.tsx
··· 1 - import { Header } from "@/components/dashboard/header"; 2 - import AppPageLayout from "@/components/layout/app-page-layout"; 3 - 4 - export default async function Layout({ 5 - children, 6 - }: { 7 - children: React.ReactNode; 8 - }) { 9 - return ( 10 - <AppPageLayout> 11 - <Header 12 - title="Real User Monitoring" 13 - description="Get speed insights for your application." 14 - /> 15 - {children} 16 - </AppPageLayout> 17 - ); 18 - }
-11
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/loading.tsx
··· 1 - import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton"; 2 - import { DataTableToolbarSkeleton } from "@/components/data-table/data-table-toolbar-skeleton"; 3 - 4 - export default function Loading() { 5 - return ( 6 - <div className="space-y-4"> 7 - <DataTableToolbarSkeleton /> 8 - <DataTableSkeleton /> 9 - </div> 10 - ); 11 - }
-12
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/overview/_components/data-table-wrapper.tsx
··· 1 - import { columns } from "@/components/data-table/session/columns"; 2 - import { DataTable } from "@/components/data-table/session/data-table"; 3 - import type { sessionRumPageQuery } from "@openstatus/tinybird/src/validation"; 4 - import type { z } from "zod"; 5 - 6 - export const DataTableWrapper = ({ 7 - data, 8 - }: { 9 - data: z.infer<typeof sessionRumPageQuery>[]; 10 - }) => { 11 - return <DataTable columns={columns} data={data} />; 12 - };
-33
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/overview/_components/path-card.tsx
··· 1 - import { api } from "@/trpc/server"; 2 - import { RUMCard } from "../../_components/rum-card"; 3 - 4 - export const PathCard = async ({ 5 - dsn, 6 - path, 7 - }: { 8 - dsn: string; 9 - path: string; 10 - }) => { 11 - if (!path) { 12 - return null; 13 - } 14 - 15 - const data = await api.tinybird.rumMetricsForPath.query({ 16 - dsn, 17 - path, 18 - period: "24h", 19 - }); 20 - if (!data) { 21 - return null; 22 - } 23 - return ( 24 - <div className="grid grid-cols-1 gap-2 md:grid-cols-2 lg:grid-cols-5"> 25 - <RUMCard event="CLS" value={data?.cls || 0} /> 26 - <RUMCard event="FCP" value={data?.fcp || 0} /> 27 - <RUMCard event="INP" value={data?.inp || 0} /> 28 - 29 - <RUMCard event="LCP" value={data?.lcp || 0} /> 30 - <RUMCard event="TTFB" value={data?.ttfb || 0} /> 31 - </div> 32 - ); 33 - };
-23
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/overview/_components/session-table.tsx
··· 1 - import { api } from "@/trpc/server"; 2 - 3 - import { DataTableWrapper } from "./data-table-wrapper"; 4 - 5 - const SessionTable = async ({ dsn, path }: { dsn: string; path: string }) => { 6 - const data = await api.tinybird.sessionRumMetricsForPath.query({ 7 - dsn: dsn, 8 - period: "24h", 9 - path: path, 10 - }); 11 - 12 - if (!data) { 13 - return null; 14 - } 15 - 16 - return ( 17 - <div> 18 - <DataTableWrapper data={data} /> 19 - </div> 20 - ); 21 - }; 22 - 23 - export { SessionTable };
-28
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/overview/page.tsx
··· 1 - import * as React from "react"; 2 - 3 - import { api } from "@/trpc/server"; 4 - import { PathCard } from "./_components/path-card"; 5 - import { SessionTable } from "./_components/session-table"; 6 - import { searchParamsCache } from "./search-params"; 7 - 8 - export default async function RUMPage({ 9 - searchParams, 10 - }: { 11 - searchParams: { [key: string]: string | string[] | undefined }; 12 - }) { 13 - const { path } = searchParamsCache.parse(searchParams); 14 - 15 - const applications = await api.workspace.getApplicationWorkspaces.query(); 16 - const dsn = applications?.[0]?.dsn; 17 - 18 - if (!path || !dsn) return null; 19 - 20 - return ( 21 - <> 22 - <PathCard dsn={dsn} path={path} /> 23 - <div> 24 - <SessionTable dsn={dsn} path={path} /> 25 - </div> 26 - </> 27 - ); 28 - }
-7
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/overview/search-params.ts
··· 1 - import { createSearchParamsCache, parseAsString } from "nuqs/server"; 2 - 3 - export const searchParamsParsers = { 4 - path: parseAsString, 5 - }; 6 - 7 - export const searchParamsCache = createSearchParamsCache(searchParamsParsers);
-51
apps/web/src/app/app/[workspaceSlug]/(dashboard)/rum/page.tsx
··· 1 - import * as React from "react"; 2 - 3 - import { EmptyState } from "@/components/dashboard/empty-state"; 4 - import { auth } from "@/lib/auth"; 5 - import { api } from "@/trpc/server"; 6 - import { Redis } from "@upstash/redis"; 7 - import { RequestButton } from "./_components/request-button/request-button"; 8 - import { RouteTable } from "./_components/route-table"; 9 - import { RUMMetricCards } from "./_components/rum-metric-card"; 10 - 11 - export const dynamic = "force-dynamic"; 12 - 13 - const redis = Redis.fromEnv(); 14 - 15 - export default async function RUMPage() { 16 - const applications = await api.workspace.getApplicationWorkspaces.query(); 17 - const session = await auth(); 18 - 19 - if (!session?.user) return null; 20 - 21 - const accessRequested = await redis.sismember( 22 - "rum_access_requested", 23 - session.user.email, 24 - ); 25 - 26 - if (applications.length === 0) { 27 - return ( 28 - <EmptyState 29 - icon="ratio" 30 - title="Real User Monitoring" 31 - description="The feature is currently in beta and will be released soon." 32 - action={<RequestButton hasRequestAccess={accessRequested} />} 33 - /> 34 - ); 35 - } 36 - // ATM We can only have access to one application 37 - return ( 38 - <> 39 - <RUMMetricCards dsn={applications[0].dsn || ""} /> 40 - {/* {webVitalEvents 41 - // Remove FID from the list of events because it's deprecated by google 42 - .filter((v) => v !== "FID") 43 - .map((event) => ( 44 - <RUMMetricCard key={event} event={event} /> 45 - ))} */} 46 - <div> 47 - <RouteTable dsn={applications[0].dsn || ""} /> 48 - </div> 49 - </> 50 - ); 51 - }
+1 -1
packages/db/package.json
··· 13 13 "dev": "turso dev --db-file ../../openstatus-dev.db" 14 14 }, 15 15 "dependencies": { 16 - "@libsql/client": "0.12.0", 16 + "@libsql/client": "0.14.0", 17 17 "@t3-oss/env-core": "0.7.0", 18 18 "drizzle-orm": "0.32.1", 19 19 "drizzle-zod": "0.5.1",
-17
packages/rum/package.json
··· 1 - { 2 - "name": "@openstatus/rum", 3 - "version": "1.0.0", 4 - "description": "", 5 - "main": "src/index.ts", 6 - "scripts": {}, 7 - "dependencies": { 8 - "zod": "3.23.8" 9 - }, 10 - "devDependencies": { 11 - "@openstatus/tsconfig": "workspace:*", 12 - "typescript": "5.5.2" 13 - }, 14 - "keywords": [], 15 - "author": "", 16 - "license": "ISC" 17 - }
-169
packages/rum/src/config.ts
··· 1 - import type { WebVitalsConfig } from "./types"; 2 - 3 - export const webVitalEvents = [ 4 - "CLS", 5 - "FCP", 6 - "FID", 7 - "INP", 8 - "LCP", 9 - "TTFB", 10 - ] as const; 11 - 12 - export const webVitalsConfig: WebVitalsConfig = { 13 - CLS: { 14 - unit: "", 15 - label: "Cumulative Layout Shift", 16 - description: 17 - "CLS measures the sum of all individual layout shift scores for every unexpected layout shift that occurs during the entire lifespan of the page.", 18 - values: [ 19 - { 20 - type: "good", 21 - label: "Good", 22 - min: 0, 23 - max: 0.1, 24 - }, 25 - { 26 - type: "needs-improvement", 27 - label: "Needs Improvement", 28 - min: 0.1, 29 - max: 0.25, 30 - }, 31 - { 32 - type: "poor", 33 - label: "Poor", 34 - min: 0.25, 35 - max: Number.POSITIVE_INFINITY, 36 - }, 37 - ], 38 - }, 39 - FCP: { 40 - unit: "ms", 41 - label: "First Contentful Paint", 42 - description: 43 - "FCP measures the time from when the page starts loading to when any part of the page's content is rendered on the screen.", 44 - values: [ 45 - { 46 - type: "good", 47 - label: "Good", 48 - min: 0, 49 - max: 1800, 50 - }, 51 - { 52 - type: "needs-improvement", 53 - label: "Needs Improvement", 54 - min: 1800, 55 - max: 3000, 56 - }, 57 - { 58 - type: "poor", 59 - label: "Poor", 60 - min: 3000, 61 - max: Number.POSITIVE_INFINITY, 62 - }, 63 - ], 64 - }, 65 - FID: { 66 - unit: "ms", 67 - label: "First Input Delay", 68 - description: 69 - "FID measures the time from when a user first interacts with a page to the time when the browser is actually able to respond to that interaction.", 70 - values: [ 71 - { 72 - type: "good", 73 - label: "Good", 74 - min: 0, 75 - max: 100, 76 - }, 77 - { 78 - type: "needs-improvement", 79 - label: "Needs Improvement", 80 - min: 100, 81 - max: 300, 82 - }, 83 - { 84 - type: "poor", 85 - label: "Poor", 86 - min: 300, 87 - max: Number.POSITIVE_INFINITY, 88 - }, 89 - ], 90 - }, 91 - INP: { 92 - unit: "ms", 93 - label: "Input Delay", 94 - description: 95 - "INP measures the time from when a user first interacts with a page to the time when the browser is actually able to respond to that interaction.", 96 - values: [ 97 - { 98 - type: "good", 99 - label: "Good", 100 - min: 0, 101 - max: 200, 102 - }, 103 - { 104 - type: "needs-improvement", 105 - label: "Needs Improvement", 106 - min: 200, 107 - max: 500, 108 - }, 109 - { 110 - type: "poor", 111 - label: "Poor", 112 - min: 500, 113 - max: Number.POSITIVE_INFINITY, 114 - }, 115 - ], 116 - }, 117 - LCP: { 118 - unit: "ms", 119 - label: "Largest Contentful Paint", 120 - description: 121 - "LCP measures the time from when the page starts loading to when the largest content element is rendered on the screen.", 122 - values: [ 123 - { 124 - type: "good", 125 - label: "Good", 126 - min: 0, 127 - max: 2500, 128 - }, 129 - { 130 - type: "needs-improvement", 131 - label: "Needs Improvement", 132 - min: 2500, 133 - max: 4000, 134 - }, 135 - { 136 - type: "poor", 137 - label: "Poor", 138 - min: 4000, 139 - max: Number.POSITIVE_INFINITY, 140 - }, 141 - ], 142 - }, 143 - TTFB: { 144 - unit: "ms", 145 - label: "Time to First Byte", 146 - description: 147 - "TTFB measures the time from when the browser starts requesting a page to when the first byte of the page is received by the browser.", 148 - values: [ 149 - { 150 - type: "good", 151 - label: "Good", 152 - min: 0, 153 - max: 800, 154 - }, 155 - { 156 - type: "needs-improvement", 157 - label: "Needs Improvement", 158 - min: 800, 159 - max: 1800, 160 - }, 161 - { 162 - type: "poor", 163 - label: "Poor", 164 - min: 1800, 165 - max: Number.POSITIVE_INFINITY, 166 - }, 167 - ], 168 - }, 169 - };
-3
packages/rum/src/index.ts
··· 1 - export * from "./config"; 2 - export * from "./utils"; 3 - export * from "./types";
-22
packages/rum/src/types.ts
··· 1 - import type { webVitalEvents } from "./config"; 2 - 3 - export type WebVitalEvents = (typeof webVitalEvents)[number]; 4 - 5 - export type WebVitalsValueTypes = "good" | "needs-improvement" | "poor"; 6 - 7 - export type WebVitalsValues = { 8 - type: WebVitalsValueTypes; 9 - label: string; 10 - min: number; 11 - max: number; 12 - }[]; 13 - 14 - export type WebVitalsConfig = Record< 15 - WebVitalEvents, 16 - { 17 - unit: string; 18 - label: string; 19 - description: string; 20 - values: WebVitalsValues; 21 - } 22 - >;
-16
packages/rum/src/utils.ts
··· 1 - import type { WebVitalsValueTypes } from "./types"; 2 - 3 - export function getColorByType(type: WebVitalsValueTypes) { 4 - switch (type) { 5 - case "good": 6 - return "bg-green-500"; 7 - case "needs-improvement": 8 - return "bg-yellow-500"; 9 - case "poor": 10 - return "bg-rose-500"; 11 - default: { 12 - const _check: never = type; 13 - return _check; 14 - } 15 - } 16 - }
-4
packages/rum/tsconfig.json
··· 1 - { 2 - "extends": "@openstatus/tsconfig/base.json", 3 - "include": ["src", "*.ts"] 4 - }
+25 -1019
pnpm-lock.yaml
··· 29 29 30 30 apps/docs: {} 31 31 32 - apps/ingest-worker: 33 - dependencies: 34 - '@openstatus/tinybird': 35 - specifier: workspace:* 36 - version: link:../../packages/tinybird 37 - detect-browser: 38 - specifier: 5.3.0 39 - version: 5.3.0 40 - drizzle-orm: 41 - specifier: 0.32.1 42 - version: 0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.12.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1) 43 - hono: 44 - specifier: 4.5.3 45 - version: 4.5.3 46 - zod: 47 - specifier: 3.23.8 48 - version: 3.23.8 49 - devDependencies: 50 - '@biomejs/biome': 51 - specifier: 1.7.3 52 - version: 1.7.3 53 - '@cloudflare/workers-types': 54 - specifier: 4.20240512.0 55 - version: 4.20240512.0 56 - typescript: 57 - specifier: 5.5.2 58 - version: 5.5.2 59 - wrangler: 60 - specifier: 3.57.0 61 - version: 3.57.0(@cloudflare/workers-types@4.20240512.0)(bufferutil@4.0.8)(utf-8-validate@6.0.4) 62 - 63 32 apps/screenshot-service: 64 33 dependencies: 65 34 '@aws-sdk/client-s3': ··· 69 38 specifier: 0.2.1 70 39 version: 0.2.1(hono@4.5.3)(zod@3.23.8) 71 40 '@libsql/client': 72 - specifier: 0.6.2 73 - version: 0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) 41 + specifier: 0.14.0 42 + version: 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) 74 43 '@openstatus/db': 75 44 specifier: workspace:* 76 45 version: link:../../packages/db ··· 85 54 version: 2.6.2 86 55 drizzle-orm: 87 56 specifier: 0.32.1 88 - version: 0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1) 57 + version: 0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1) 89 58 hono: 90 59 specifier: 4.5.3 91 60 version: 4.5.3 ··· 103 72 specifier: 5.4.4 104 73 version: 5.4.4 105 74 106 - apps/screenshot-worker: 107 - dependencies: 108 - '@hono/zod-validator': 109 - specifier: 0.2.1 110 - version: 0.2.1(hono@4.5.3)(zod@3.23.8) 111 - '@libsql/client': 112 - specifier: 0.6.2 113 - version: 0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) 114 - '@openstatus/db': 115 - specifier: workspace:* 116 - version: link:../../packages/db 117 - drizzle-orm: 118 - specifier: 0.32.1 119 - version: 0.32.1(@cloudflare/workers-types@4.20240403.0)(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1) 120 - hono: 121 - specifier: 4.5.3 122 - version: 4.5.3 123 - zod: 124 - specifier: 3.23.8 125 - version: 3.23.8 126 - devDependencies: 127 - '@cloudflare/puppeteer': 128 - specifier: 0.0.6 129 - version: 0.0.6 130 - '@cloudflare/workers-types': 131 - specifier: 4.20240403.0 132 - version: 4.20240403.0 133 - '@openstatus/tsconfig': 134 - specifier: workspace:* 135 - version: link:../../packages/tsconfig 136 - typescript: 137 - specifier: 5.4.4 138 - version: 5.4.4 139 - wrangler: 140 - specifier: 3.47.0 141 - version: 3.47.0(@cloudflare/workers-types@4.20240403.0)(bufferutil@4.0.8)(utf-8-validate@6.0.4) 142 - 143 75 apps/server: 144 76 dependencies: 145 77 '@hono/sentry': ··· 249 181 specifier: 3.3.1 250 182 version: 3.3.1(react-hook-form@7.47.0(react@18.3.1)) 251 183 '@libsql/client': 252 - specifier: 0.6.2 253 - version: 0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) 184 + specifier: 0.14.0 185 + version: 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) 254 186 '@openstatus/analytics': 255 187 specifier: workspace:* 256 188 version: link:../../packages/analytics ··· 290 222 '@openstatus/react': 291 223 specifier: workspace:* 292 224 version: link:../../packages/react 293 - '@openstatus/rum': 294 - specifier: workspace:* 295 - version: link:../../packages/rum 296 225 '@openstatus/tinybird': 297 226 specifier: workspace:* 298 227 version: link:../../packages/tinybird ··· 618 547 packages/db: 619 548 dependencies: 620 549 '@libsql/client': 621 - specifier: 0.12.0 622 - version: 0.12.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) 550 + specifier: 0.14.0 551 + version: 0.14.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) 623 552 '@t3-oss/env-core': 624 553 specifier: 0.7.0 625 554 version: 0.7.0(typescript@5.5.2)(zod@3.23.8) 626 555 drizzle-orm: 627 556 specifier: 0.32.1 628 - version: 0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.12.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1) 557 + version: 0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.14.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1) 629 558 drizzle-zod: 630 559 specifier: 0.5.1 631 - version: 0.5.1(drizzle-orm@0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.12.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1))(zod@3.23.8) 560 + version: 0.5.1(drizzle-orm@0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.14.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1))(zod@3.23.8) 632 561 zod: 633 562 specifier: 3.23.8 634 563 version: 3.23.8 ··· 920 849 tsup: 921 850 specifier: 7.2.0 922 851 version: 7.2.0(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.8.0)(typescript@5.5.2))(typescript@5.5.2) 923 - typescript: 924 - specifier: 5.5.2 925 - version: 5.5.2 926 - 927 - packages/rum: 928 - dependencies: 929 - zod: 930 - specifier: 3.23.8 931 - version: 3.23.8 932 - devDependencies: 933 - '@openstatus/tsconfig': 934 - specifier: workspace:* 935 - version: link:../tsconfig 936 852 typescript: 937 853 specifier: 5.5.2 938 854 version: 5.5.2 ··· 2174 2090 '@chronark/zod-bird@0.3.6': 2175 2091 resolution: {integrity: sha512-hE8kCGLJK5ncH8F7uPaqPiOOqo68vUI66nusg7HO5X9BcyN8lXfeQliu6Ou1kOSq95OYshf9nB2fk2+LEvF4ng==} 2176 2092 2177 - '@cloudflare/kv-asset-handler@0.3.1': 2178 - resolution: {integrity: sha512-lKN2XCfKCmpKb86a1tl4GIwsJYDy9TGuwjhDELLmpKygQhw8X2xR4dusgpC5Tg7q1pB96Eb0rBo81kxSILQMwA==} 2179 - 2180 - '@cloudflare/kv-asset-handler@0.3.2': 2181 - resolution: {integrity: sha512-EeEjMobfuJrwoctj7FA1y1KEbM0+Q1xSjobIEyie9k4haVEBB7vkDvsasw1pM3rO39mL2akxIAzLMUAtrMHZhA==} 2182 - engines: {node: '>=16.13'} 2183 - 2184 - '@cloudflare/puppeteer@0.0.6': 2185 - resolution: {integrity: sha512-HwIdiGs3ls2mKVDm3hoobEYnH4p4K5UrxeFGklDzKALR3cHBWv6zryNCVkK4i/LYCbaCZCnQx+3vtBUqynii4Q==} 2186 - engines: {node: '>=14.1.0'} 2187 - 2188 - '@cloudflare/workerd-darwin-64@1.20240403.0': 2189 - resolution: {integrity: sha512-gBsoGFHCkC3tfAmr/jr6UEKEyIIeNEvfbRSIJrrkkuJ8wqqkWGZB6pmKx5lfQDvQO8R+8PgcI4pduP0NY35s/Q==} 2190 - engines: {node: '>=16'} 2191 - cpu: [x64] 2192 - os: [darwin] 2193 - 2194 - '@cloudflare/workerd-darwin-64@1.20240512.0': 2195 - resolution: {integrity: sha512-VMp+CsSHFALQiBzPdQ5dDI4T1qwLu0mQ0aeKVNDosXjueN0f3zj/lf+mFil5/9jBbG3t4mG0y+6MMnalP9Lobw==} 2196 - engines: {node: '>=16'} 2197 - cpu: [x64] 2198 - os: [darwin] 2199 - 2200 - '@cloudflare/workerd-darwin-arm64@1.20240403.0': 2201 - resolution: {integrity: sha512-UykAt0YiFR4Y3o84QAEb6NQehwZ8CaEnZHw8doe1M03JiWxVcCdkDb3pbAs4p7Mj56/Gj0G0+SJ+JmQTn2aIQA==} 2202 - engines: {node: '>=16'} 2203 - cpu: [arm64] 2204 - os: [darwin] 2205 - 2206 - '@cloudflare/workerd-darwin-arm64@1.20240512.0': 2207 - resolution: {integrity: sha512-lZktXGmzMrB5rJqY9+PmnNfv1HKlj/YLZwMjPfF0WVKHUFdvQbAHsi7NlKv6mW9uIvlZnS+K4sIkWc0MDXcRnA==} 2208 - engines: {node: '>=16'} 2209 - cpu: [arm64] 2210 - os: [darwin] 2211 - 2212 - '@cloudflare/workerd-linux-64@1.20240403.0': 2213 - resolution: {integrity: sha512-MS+Mg7MtXEH6ZFJcrGreSqDe+vU9hRZt8AZdhIVkQKDOCS6AjmBTEz6r6tj1iGLMLei4pEZegyXwf06clSR9Og==} 2214 - engines: {node: '>=16'} 2215 - cpu: [x64] 2216 - os: [linux] 2217 - 2218 - '@cloudflare/workerd-linux-64@1.20240512.0': 2219 - resolution: {integrity: sha512-wrHvqCZZqXz6Y3MUTn/9pQNsvaoNjbJpuA6vcXsXu8iCzJi911iVW2WUEBX+MpUWD+mBIP0oXni5tTlhkokOPw==} 2220 - engines: {node: '>=16'} 2221 - cpu: [x64] 2222 - os: [linux] 2223 - 2224 - '@cloudflare/workerd-linux-arm64@1.20240403.0': 2225 - resolution: {integrity: sha512-9oMs43nctF2TYYJOzCtVOldokweSWaSqWnUjIOsKOFZue2fG4UMgIH9Sh1D4/KCdVankA2xqZ08XhoV42Q9+0A==} 2226 - engines: {node: '>=16'} 2227 - cpu: [arm64] 2228 - os: [linux] 2229 - 2230 - '@cloudflare/workerd-linux-arm64@1.20240512.0': 2231 - resolution: {integrity: sha512-YPezHMySL9J9tFdzxz390eBswQ//QJNYcZolz9Dgvb3FEfdpK345cE/bsWbMOqw5ws2f82l388epoenghtYvAg==} 2232 - engines: {node: '>=16'} 2233 - cpu: [arm64] 2234 - os: [linux] 2235 - 2236 - '@cloudflare/workerd-windows-64@1.20240403.0': 2237 - resolution: {integrity: sha512-5FGyjzDAoUaU15GhUAGXWzOOlbCLdiDHatnjl6XY0Mbiu3ik5lz592L15QkFnNVc9a3lZGGCIsfYW2sq2R01VQ==} 2238 - engines: {node: '>=16'} 2239 - cpu: [x64] 2240 - os: [win32] 2241 - 2242 - '@cloudflare/workerd-windows-64@1.20240512.0': 2243 - resolution: {integrity: sha512-SxKapDrIYSscMR7lGIp/av0l6vokjH4xQ9ACxHgXh+OdOus9azppSmjaPyw4/ePvg7yqpkaNjf9o258IxWtvKQ==} 2244 - engines: {node: '>=16'} 2245 - cpu: [x64] 2246 - os: [win32] 2247 - 2248 - '@cloudflare/workers-types@4.20240403.0': 2249 - resolution: {integrity: sha512-j2GRddQ5oMF/Y7JWn333JYyMKGla+gV9hFp0nQMm6a+BQccmslkF1keYOrE+dpvsa1pDu11rjC06t9LbJ2uwcQ==} 2250 - 2251 2093 '@cloudflare/workers-types@4.20240512.0': 2252 2094 resolution: {integrity: sha512-o2yTEWg+YK/I1t/Me+dA0oarO0aCbjibp6wSeaw52DSE9tDyKJ7S+Qdyw/XsMrKn4t8kF6f/YOba+9O4MJfW9w==} 2253 2095 ··· 2405 2247 '@esbuild-kit/esm-loader@2.6.5': 2406 2248 resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} 2407 2249 2408 - '@esbuild-plugins/node-globals-polyfill@0.2.3': 2409 - resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} 2410 - peerDependencies: 2411 - esbuild: '*' 2412 - 2413 - '@esbuild-plugins/node-modules-polyfill@0.2.2': 2414 - resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} 2415 - peerDependencies: 2416 - esbuild: '*' 2417 - 2418 2250 '@esbuild-plugins/node-resolve@0.1.4': 2419 2251 resolution: {integrity: sha512-haFQ0qhxEpqtWWY0kx1Y5oE3sMyO1PcoSiWEPrAw6tm/ZOOLXjSs6Q+v1v9eyuVF0nNt50YEvrcrvENmyoMv5g==} 2420 2252 peerDependencies: ··· 2438 2270 cpu: [arm64] 2439 2271 os: [android] 2440 2272 2441 - '@esbuild/android-arm64@0.17.19': 2442 - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} 2443 - engines: {node: '>=12'} 2444 - cpu: [arm64] 2445 - os: [android] 2446 - 2447 2273 '@esbuild/android-arm64@0.18.20': 2448 2274 resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 2449 2275 engines: {node: '>=12'} ··· 2468 2294 cpu: [arm] 2469 2295 os: [android] 2470 2296 2471 - '@esbuild/android-arm@0.17.19': 2472 - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} 2473 - engines: {node: '>=12'} 2474 - cpu: [arm] 2475 - os: [android] 2476 - 2477 2297 '@esbuild/android-arm@0.18.20': 2478 2298 resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 2479 2299 engines: {node: '>=12'} ··· 2498 2318 cpu: [x64] 2499 2319 os: [android] 2500 2320 2501 - '@esbuild/android-x64@0.17.19': 2502 - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} 2503 - engines: {node: '>=12'} 2504 - cpu: [x64] 2505 - os: [android] 2506 - 2507 2321 '@esbuild/android-x64@0.18.20': 2508 2322 resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 2509 2323 engines: {node: '>=12'} ··· 2528 2342 cpu: [arm64] 2529 2343 os: [darwin] 2530 2344 2531 - '@esbuild/darwin-arm64@0.17.19': 2532 - resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} 2533 - engines: {node: '>=12'} 2534 - cpu: [arm64] 2535 - os: [darwin] 2536 - 2537 2345 '@esbuild/darwin-arm64@0.18.20': 2538 2346 resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 2539 2347 engines: {node: '>=12'} ··· 2558 2366 cpu: [x64] 2559 2367 os: [darwin] 2560 2368 2561 - '@esbuild/darwin-x64@0.17.19': 2562 - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} 2563 - engines: {node: '>=12'} 2564 - cpu: [x64] 2565 - os: [darwin] 2566 - 2567 2369 '@esbuild/darwin-x64@0.18.20': 2568 2370 resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 2569 2371 engines: {node: '>=12'} ··· 2588 2390 cpu: [arm64] 2589 2391 os: [freebsd] 2590 2392 2591 - '@esbuild/freebsd-arm64@0.17.19': 2592 - resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} 2593 - engines: {node: '>=12'} 2594 - cpu: [arm64] 2595 - os: [freebsd] 2596 - 2597 2393 '@esbuild/freebsd-arm64@0.18.20': 2598 2394 resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 2599 2395 engines: {node: '>=12'} ··· 2614 2410 2615 2411 '@esbuild/freebsd-x64@0.16.4': 2616 2412 resolution: {integrity: sha512-vAP+eYOxlN/Bpo/TZmzEQapNS8W1njECrqkTpNgvXskkkJC2AwOXwZWai/Kc2vEFZUXQttx6UJbj9grqjD/+9Q==} 2617 - engines: {node: '>=12'} 2618 - cpu: [x64] 2619 - os: [freebsd] 2620 - 2621 - '@esbuild/freebsd-x64@0.17.19': 2622 - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} 2623 2413 engines: {node: '>=12'} 2624 2414 cpu: [x64] 2625 2415 os: [freebsd] ··· 2648 2438 cpu: [arm64] 2649 2439 os: [linux] 2650 2440 2651 - '@esbuild/linux-arm64@0.17.19': 2652 - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} 2653 - engines: {node: '>=12'} 2654 - cpu: [arm64] 2655 - os: [linux] 2656 - 2657 2441 '@esbuild/linux-arm64@0.18.20': 2658 2442 resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 2659 2443 engines: {node: '>=12'} ··· 2678 2462 cpu: [arm] 2679 2463 os: [linux] 2680 2464 2681 - '@esbuild/linux-arm@0.17.19': 2682 - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} 2683 - engines: {node: '>=12'} 2684 - cpu: [arm] 2685 - os: [linux] 2686 - 2687 2465 '@esbuild/linux-arm@0.18.20': 2688 2466 resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 2689 2467 engines: {node: '>=12'} ··· 2708 2486 cpu: [ia32] 2709 2487 os: [linux] 2710 2488 2711 - '@esbuild/linux-ia32@0.17.19': 2712 - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} 2713 - engines: {node: '>=12'} 2714 - cpu: [ia32] 2715 - os: [linux] 2716 - 2717 2489 '@esbuild/linux-ia32@0.18.20': 2718 2490 resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 2719 2491 engines: {node: '>=12'} ··· 2734 2506 2735 2507 '@esbuild/linux-loong64@0.16.4': 2736 2508 resolution: {integrity: sha512-peDrrUuxbZ9Jw+DwLCh/9xmZAk0p0K1iY5d2IcwmnN+B87xw7kujOkig6ZRcZqgrXgeRGurRHn0ENMAjjD5DEg==} 2737 - engines: {node: '>=12'} 2738 - cpu: [loong64] 2739 - os: [linux] 2740 - 2741 - '@esbuild/linux-loong64@0.17.19': 2742 - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} 2743 2509 engines: {node: '>=12'} 2744 2510 cpu: [loong64] 2745 2511 os: [linux] ··· 2768 2534 cpu: [mips64el] 2769 2535 os: [linux] 2770 2536 2771 - '@esbuild/linux-mips64el@0.17.19': 2772 - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} 2773 - engines: {node: '>=12'} 2774 - cpu: [mips64el] 2775 - os: [linux] 2776 - 2777 2537 '@esbuild/linux-mips64el@0.18.20': 2778 2538 resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 2779 2539 engines: {node: '>=12'} ··· 2798 2558 cpu: [ppc64] 2799 2559 os: [linux] 2800 2560 2801 - '@esbuild/linux-ppc64@0.17.19': 2802 - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} 2803 - engines: {node: '>=12'} 2804 - cpu: [ppc64] 2805 - os: [linux] 2806 - 2807 2561 '@esbuild/linux-ppc64@0.18.20': 2808 2562 resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 2809 2563 engines: {node: '>=12'} ··· 2828 2582 cpu: [riscv64] 2829 2583 os: [linux] 2830 2584 2831 - '@esbuild/linux-riscv64@0.17.19': 2832 - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} 2833 - engines: {node: '>=12'} 2834 - cpu: [riscv64] 2835 - os: [linux] 2836 - 2837 2585 '@esbuild/linux-riscv64@0.18.20': 2838 2586 resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 2839 2587 engines: {node: '>=12'} ··· 2858 2606 cpu: [s390x] 2859 2607 os: [linux] 2860 2608 2861 - '@esbuild/linux-s390x@0.17.19': 2862 - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} 2863 - engines: {node: '>=12'} 2864 - cpu: [s390x] 2865 - os: [linux] 2866 - 2867 2609 '@esbuild/linux-s390x@0.18.20': 2868 2610 resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 2869 2611 engines: {node: '>=12'} ··· 2884 2626 2885 2627 '@esbuild/linux-x64@0.16.4': 2886 2628 resolution: {integrity: sha512-N55Q0mJs3Sl8+utPRPBrL6NLYZKBCLLx0bme/+RbjvMforTGGzFvsRl4xLTZMUBFC1poDzBEPTEu5nxizQ9Nlw==} 2887 - engines: {node: '>=12'} 2888 - cpu: [x64] 2889 - os: [linux] 2890 - 2891 - '@esbuild/linux-x64@0.17.19': 2892 - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} 2893 2629 engines: {node: '>=12'} 2894 2630 cpu: [x64] 2895 2631 os: [linux] ··· 2918 2654 cpu: [x64] 2919 2655 os: [netbsd] 2920 2656 2921 - '@esbuild/netbsd-x64@0.17.19': 2922 - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} 2923 - engines: {node: '>=12'} 2924 - cpu: [x64] 2925 - os: [netbsd] 2926 - 2927 2657 '@esbuild/netbsd-x64@0.18.20': 2928 2658 resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 2929 2659 engines: {node: '>=12'} ··· 2948 2678 cpu: [x64] 2949 2679 os: [openbsd] 2950 2680 2951 - '@esbuild/openbsd-x64@0.17.19': 2952 - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} 2953 - engines: {node: '>=12'} 2954 - cpu: [x64] 2955 - os: [openbsd] 2956 - 2957 2681 '@esbuild/openbsd-x64@0.18.20': 2958 2682 resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 2959 2683 engines: {node: '>=12'} ··· 2978 2702 cpu: [x64] 2979 2703 os: [sunos] 2980 2704 2981 - '@esbuild/sunos-x64@0.17.19': 2982 - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} 2983 - engines: {node: '>=12'} 2984 - cpu: [x64] 2985 - os: [sunos] 2986 - 2987 2705 '@esbuild/sunos-x64@0.18.20': 2988 2706 resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 2989 2707 engines: {node: '>=12'} ··· 3008 2726 cpu: [arm64] 3009 2727 os: [win32] 3010 2728 3011 - '@esbuild/win32-arm64@0.17.19': 3012 - resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} 3013 - engines: {node: '>=12'} 3014 - cpu: [arm64] 3015 - os: [win32] 3016 - 3017 2729 '@esbuild/win32-arm64@0.18.20': 3018 2730 resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 3019 2731 engines: {node: '>=12'} ··· 3038 2750 cpu: [ia32] 3039 2751 os: [win32] 3040 2752 3041 - '@esbuild/win32-ia32@0.17.19': 3042 - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} 3043 - engines: {node: '>=12'} 3044 - cpu: [ia32] 3045 - os: [win32] 3046 - 3047 2753 '@esbuild/win32-ia32@0.18.20': 3048 2754 resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 3049 2755 engines: {node: '>=12'} ··· 3068 2774 cpu: [x64] 3069 2775 os: [win32] 3070 2776 3071 - '@esbuild/win32-x64@0.17.19': 3072 - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} 3073 - engines: {node: '>=12'} 3074 - cpu: [x64] 3075 - os: [win32] 3076 - 3077 2777 '@esbuild/win32-x64@0.18.20': 3078 2778 resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 3079 2779 engines: {node: '>=12'} ··· 3281 2981 '@lezer/yaml@1.0.3': 3282 2982 resolution: {integrity: sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==} 3283 2983 3284 - '@libsql/client@0.12.0': 3285 - resolution: {integrity: sha512-Jt9ijfzlmswZzxRRksEv8Igbw7ER9IX/RSrwzEIRyzwwQLcpeZGGrnDQP9S7UPCJ90uFDiaICFiyhvwO+60DmA==} 3286 - 3287 - '@libsql/client@0.6.2': 3288 - resolution: {integrity: sha512-xRNfRLv/dOCbV4qd+M0baQwGmvuZpMd2wG2UAPs8XmcdaPvu5ErkcaeITkxlm3hDEJVabQM1cFhMBxsugWW9fQ==} 3289 - 3290 - '@libsql/core@0.12.0': 3291 - resolution: {integrity: sha512-PZJF4qvPbDWZfXk0Tr+O5xaMhFoetA1gIVPgYLH6Bc6gAeyYxhGw268p+95SkADZDjB5CYPcVLvfQEjSVeR3Zw==} 2984 + '@libsql/client@0.14.0': 2985 + resolution: {integrity: sha512-/9HEKfn6fwXB5aTEEoMeFh4CtG0ZzbncBb1e++OCdVpgKZ/xyMsIVYXm0w7Pv4RUel803vE6LwniB3PqD72R0Q==} 3292 2986 3293 - '@libsql/core@0.6.2': 3294 - resolution: {integrity: sha512-c2P4M+4u/4b2L02A0KjggO3UW51rGkhxr/7fzJO0fEAqsqrWGxuNj2YtRkina/oxfYvAof6xjp8RucNoIV/Odw==} 3295 - 3296 - '@libsql/darwin-arm64@0.3.10': 3297 - resolution: {integrity: sha512-RaexEFfPAFogd6dJlqkpCkTxdr6K14Z0286lodIJ8Ny77mWuWyBkWKxf70OYWXXAMxMJFUW+6al1F3/Osf/pTg==} 3298 - cpu: [arm64] 3299 - os: [darwin] 2987 + '@libsql/core@0.14.0': 2988 + resolution: {integrity: sha512-nhbuXf7GP3PSZgdCY2Ecj8vz187ptHlZQ0VRc751oB2C1W8jQUXKKklvt7t1LJiUTQBVJuadF628eUk+3cRi4Q==} 3300 2989 3301 2990 '@libsql/darwin-arm64@0.4.5': 3302 2991 resolution: {integrity: sha512-xLdnn0NrgSk6OMi716FFs/27Hs33jtSd2fkKi/72Ey/qBtPWcB1BMurDQekzi0yAcfQTjGqIz7tpOibyjiEPyQ==} 3303 2992 cpu: [arm64] 3304 2993 os: [darwin] 3305 2994 3306 - '@libsql/darwin-x64@0.3.10': 3307 - resolution: {integrity: sha512-SNVN6n4qNUdMW1fJMFmx4qn4n5RnXsxjFbczpkzG/V7m/5VeTFt1chhGcrahTHCr3+K6eRJWJUEQHRGqjBwPkw==} 3308 - cpu: [x64] 3309 - os: [darwin] 3310 - 3311 2995 '@libsql/darwin-x64@0.4.5': 3312 2996 resolution: {integrity: sha512-rZsEWj0H7oCqd5Y2pe0RzKmuQXC2OB1RbnFy4CvjeAjT6MP6mFp+Vx9mTCAUuJMhuoSVMsFPUJRpAQznl9E3Tg==} 3313 2997 cpu: [x64] 3314 2998 os: [darwin] 3315 2999 3316 - '@libsql/hrana-client@0.6.0': 3317 - resolution: {integrity: sha512-k+fqzdjqg3IvWfKmVJK5StsbjeTcyNAXFelUbXbGNz3yH1gEVT9mZ6kmhsIXP30ZSyVV0AE1Gi25p82mxC9hwg==} 3318 - 3319 3000 '@libsql/hrana-client@0.7.0': 3320 3001 resolution: {integrity: sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw==} 3321 3002 3322 - '@libsql/isomorphic-fetch@0.2.1': 3323 - resolution: {integrity: sha512-Sv07QP1Aw8A5OOrmKgRUBKe2fFhF2hpGJhtHe3d1aRnTESZCGkn//0zDycMKTGamVWb3oLYRroOsCV8Ukes9GA==} 3324 - 3325 3003 '@libsql/isomorphic-fetch@0.3.1': 3326 3004 resolution: {integrity: sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw==} 3327 3005 engines: {node: '>=18.0.0'} 3328 3006 3329 3007 '@libsql/isomorphic-ws@0.1.5': 3330 3008 resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==} 3331 - 3332 - '@libsql/linux-arm64-gnu@0.3.10': 3333 - resolution: {integrity: sha512-2uXpi9d8qtyIOr7pyG4a88j6YXgemyIHEs2Wbp+PPletlCIPsFS+E7IQHbz8VwTohchOzcokGUm1Bc5QC+A7wg==} 3334 - cpu: [arm64] 3335 - os: [linux] 3336 3009 3337 3010 '@libsql/linux-arm64-gnu@0.4.5': 3338 3011 resolution: {integrity: sha512-VR09iu6KWGJ6fauCn59u/jJ9OA+/A2yQ0dr2HDN2zkRueLC6D2oGYt4gPfLZPFKf+WJpVMtIhNfd+Ru9MMaFkA==} 3339 3012 cpu: [arm64] 3340 3013 os: [linux] 3341 3014 3342 - '@libsql/linux-arm64-musl@0.3.10': 3343 - resolution: {integrity: sha512-72SN1FUavLvzHddCS861ynSpQndcW5oLGKA3U8CyMfgIZIwJAPc7+48Uj1plW00htXBx4GBpcntFp68KKIx3YQ==} 3344 - cpu: [arm64] 3345 - os: [linux] 3346 - 3347 3015 '@libsql/linux-arm64-musl@0.4.5': 3348 3016 resolution: {integrity: sha512-74hvD5ej4rBshhxFGNYU16a3m8B/NjIPvhlZ/flG1Oeydfo6AuUXSSNFi+H5+zi9/uWuzyz5TLVeQcraoUV10A==} 3349 3017 cpu: [arm64] 3350 3018 os: [linux] 3351 3019 3352 - '@libsql/linux-x64-gnu@0.3.10': 3353 - resolution: {integrity: sha512-hXyNqVRi7ONuyWZ1SX6setxL0QaQ7InyS3bHLupsi9s7NpOGD5vcpTaYicJOqmIIm+6kt8vJfmo7ZxlarIHy7Q==} 3354 - cpu: [x64] 3355 - os: [linux] 3356 - 3357 3020 '@libsql/linux-x64-gnu@0.4.5': 3358 3021 resolution: {integrity: sha512-gb5WObGO3+rbuG8h9font1N02iF+zgYAgY0wNa8BNiZ5A9UolZKFxiqGFS7eHaAYfemHJKKTT+aAt3X2p5TibA==} 3359 3022 cpu: [x64] 3360 3023 os: [linux] 3361 3024 3362 - '@libsql/linux-x64-musl@0.3.10': 3363 - resolution: {integrity: sha512-kNmIRxomVwt9S+cLyYS497F/3gXFF4r8wW12YSBQgxG75JYft07AHVd8J7HINg+oqRkLzT0s+mVX5dM6nk68EQ==} 3364 - cpu: [x64] 3365 - os: [linux] 3366 - 3367 3025 '@libsql/linux-x64-musl@0.4.5': 3368 3026 resolution: {integrity: sha512-JfyE6OVC5X4Nr4cFF77VhB1o+hBRxAqYT9YdeqnWdAQSYc/ASi5HnRALLAQEsGacFPZZ32pixfraQmPE3iJFfw==} 3369 3027 cpu: [x64] 3370 3028 os: [linux] 3371 - 3372 - '@libsql/win32-x64-msvc@0.3.10': 3373 - resolution: {integrity: sha512-c/6rjdtGULKrJkLgfLobFefObfOtxjXGmCfPxv6pr0epPCeUEssfDbDIeEH9fQUgzogIMWEHwT8so52UJ/iT1Q==} 3374 - cpu: [x64] 3375 - os: [win32] 3376 3029 3377 3030 '@libsql/win32-x64-msvc@0.4.5': 3378 3031 resolution: {integrity: sha512-57GGurNJhOhq3XIopLdGnCoQ4kQAcmbmzzFoC4tpvDE/KSbwZ/13zqJWhQA41nMGk/PKM1XKfKmbIybKx1+eqA==} ··· 5306 4959 '@types/ms@0.7.33': 5307 4960 resolution: {integrity: sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==} 5308 4961 5309 - '@types/node-forge@1.3.11': 5310 - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} 5311 - 5312 4962 '@types/node@18.19.39': 5313 4963 resolution: {integrity: sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==} 5314 4964 ··· 5535 5185 resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} 5536 5186 engines: {node: '>=0.4.0'} 5537 5187 5538 - acorn-walk@8.2.0: 5539 - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} 5540 - engines: {node: '>=0.4.0'} 5541 - 5542 5188 acorn-walk@8.3.2: 5543 5189 resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} 5544 5190 engines: {node: '>=0.4.0'} ··· 5548 5194 engines: {node: '>=0.4.0'} 5549 5195 hasBin: true 5550 5196 5551 - acorn@8.10.0: 5552 - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} 5553 - engines: {node: '>=0.4.0'} 5554 - hasBin: true 5555 - 5556 5197 acorn@8.11.3: 5557 5198 resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 5558 5199 engines: {node: '>=0.4.0'} ··· 5686 5327 arrify@1.0.1: 5687 5328 resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} 5688 5329 engines: {node: '>=0.10.0'} 5689 - 5690 - as-table@1.0.55: 5691 - resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} 5692 5330 5693 5331 assertion-error@1.1.0: 5694 5332 resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} ··· 5781 5419 bl@4.1.0: 5782 5420 resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} 5783 5421 5784 - blake3-wasm@2.1.5: 5785 - resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} 5786 - 5787 5422 bluebird@3.4.7: 5788 5423 resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} 5789 5424 ··· 5895 5530 caniuse-lite@1.0.30001641: 5896 5531 resolution: {integrity: sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==} 5897 5532 5898 - capnp-ts@0.7.0: 5899 - resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} 5900 - 5901 5533 ccount@2.0.1: 5902 5534 resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 5903 5535 ··· 6108 5740 cookie-signature@1.0.6: 6109 5741 resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} 6110 5742 6111 - cookie@0.5.0: 6112 - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 6113 - engines: {node: '>= 0.6'} 6114 - 6115 5743 cookie@0.6.0: 6116 5744 resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 6117 5745 engines: {node: '>= 0.6'} ··· 6208 5836 d3-timer@3.0.1: 6209 5837 resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} 6210 5838 engines: {node: '>=12'} 6211 - 6212 - data-uri-to-buffer@2.0.2: 6213 - resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} 6214 5839 6215 5840 data-uri-to-buffer@4.0.1: 6216 5841 resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} ··· 6322 5947 resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 6323 5948 engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 6324 5949 6325 - detect-browser@5.3.0: 6326 - resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} 6327 - 6328 5950 detect-indent@6.1.0: 6329 5951 resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 6330 5952 engines: {node: '>=8'} ··· 6347 5969 6348 5970 devlop@1.1.0: 6349 5971 resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 6350 - 6351 - devtools-protocol@0.0.1019158: 6352 - resolution: {integrity: sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ==} 6353 5972 6354 5973 didyoumean@1.2.2: 6355 5974 resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} ··· 6527 6146 electron-to-chromium@1.4.825: 6528 6147 resolution: {integrity: sha512-OCcF+LwdgFGcsYPYC5keEEFC2XT0gBhrYbeGzHCx7i9qRFbzO/AqTmc/C/1xNhJj+JA7rzlN7mpBuStshh96Cg==} 6529 6148 6530 - emitter-component@1.1.2: 6531 - resolution: {integrity: sha512-QdXO3nXOzZB4pAjM0n6ZE+R9/+kPpECA/XSELIcc54NeYVnBqIk+4DFiBgK+8QbV3mdvTG6nedl7dTYgO+5wDw==} 6532 - 6533 6149 emoji-regex@8.0.0: 6534 6150 resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 6535 6151 ··· 6565 6181 6566 6182 esbuild@0.16.4: 6567 6183 resolution: {integrity: sha512-qQrPMQpPTWf8jHugLWHoGqZjApyx3OEm76dlTXobHwh/EBbavbRdjXdYi/GWr43GyN0sfpap14GPkb05NH3ROA==} 6568 - engines: {node: '>=12'} 6569 - hasBin: true 6570 - 6571 - esbuild@0.17.19: 6572 - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} 6573 6184 engines: {node: '>=12'} 6574 6185 hasBin: true 6575 6186 ··· 6647 6258 estree-util-visit@1.2.1: 6648 6259 resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==} 6649 6260 6650 - estree-walker@0.6.1: 6651 - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} 6652 - 6653 6261 estree-walker@2.0.2: 6654 6262 resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 6655 6263 ··· 6671 6279 eventemitter3@4.0.7: 6672 6280 resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} 6673 6281 6674 - events@3.3.0: 6675 - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 6676 - engines: {node: '>=0.8.x'} 6677 - 6678 6282 execa@5.1.1: 6679 6283 resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 6680 6284 engines: {node: '>=10'} ··· 6683 6287 resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 6684 6288 engines: {node: '>=16.17'} 6685 6289 6686 - exit-hook@2.2.1: 6687 - resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} 6688 - engines: {node: '>=6'} 6689 - 6690 6290 expand-template@2.0.3: 6691 6291 resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} 6692 6292 engines: {node: '>=6'} ··· 6919 6519 get-own-enumerable-property-symbols@3.0.2: 6920 6520 resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} 6921 6521 6922 - get-source@2.0.12: 6923 - resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} 6924 - 6925 6522 get-stream@6.0.1: 6926 6523 resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 6927 6524 engines: {node: '>=10'} ··· 6954 6551 glob-parent@6.0.2: 6955 6552 resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 6956 6553 engines: {node: '>=10.13.0'} 6957 - 6958 - glob-to-regexp@0.4.1: 6959 - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 6960 6554 6961 6555 glob@10.3.4: 6962 6556 resolution: {integrity: sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==} ··· 7665 7259 engines: {node: '>=16'} 7666 7260 hasBin: true 7667 7261 7668 - libsql@0.3.10: 7669 - resolution: {integrity: sha512-/8YMTbwWFPmrDWY+YFK3kYqVPFkMgQre0DGmBaOmjogMdSe+7GHm1/q9AZ61AWkEub/vHmi+bA4tqIzVhKnqzg==} 7670 - os: [darwin, linux, win32] 7671 - 7672 7262 libsql@0.4.5: 7673 7263 resolution: {integrity: sha512-sorTJV6PNt94Wap27Sai5gtVLIea4Otb2LUiAUyr3p6BPOScGMKGt5F1b5X/XgkNtcsDKeX5qfeBDj+PdShclQ==} 7674 7264 cpu: [x64, arm64, wasm32] ··· 7796 7386 7797 7387 magic-string@0.16.0: 7798 7388 resolution: {integrity: sha512-c4BEos3y6G2qO0B9X7K0FVLOPT9uGrjYwYRLFmDqyl5YMboUviyecnXWp94fJTSMwPw2/sf+CEYt5AGpmklkkQ==} 7799 - 7800 - magic-string@0.25.9: 7801 - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 7802 7389 7803 7390 magic-string@0.27.0: 7804 7391 resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} ··· 8172 7759 engines: {node: '>=4'} 8173 7760 hasBin: true 8174 7761 8175 - mime@3.0.0: 8176 - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 8177 - engines: {node: '>=10.0.0'} 8178 - hasBin: true 8179 - 8180 7762 mimic-fn@2.1.0: 8181 7763 resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 8182 7764 engines: {node: '>=6'} ··· 8192 7774 min-indent@1.0.1: 8193 7775 resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 8194 7776 engines: {node: '>=4'} 8195 - 8196 - miniflare@3.20240403.0: 8197 - resolution: {integrity: sha512-4xoBRu60+7iCKRn6zZ/SiqP+U2FQ74LZymoZHhEcY3y62zHNRNKf8s9jsL/ooDtyQoAOKx9W5TjTGqDmOS5vfQ==} 8198 - engines: {node: '>=16.13'} 8199 - hasBin: true 8200 - 8201 - miniflare@3.20240512.0: 8202 - resolution: {integrity: sha512-X0PlKR0AROKpxFoJNmRtCMIuJxj+ngEcyTOlEokj2rAQ0TBwUhB4/1uiPvdI6ofW5NugPOD1uomAv+gLjwsLDQ==} 8203 - engines: {node: '>=16.13'} 8204 - hasBin: true 8205 7777 8206 7778 minimatch@3.1.2: 8207 7779 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} ··· 8268 7840 ms@2.1.3: 8269 7841 resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 8270 7842 8271 - mustache@4.2.0: 8272 - resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} 8273 - hasBin: true 8274 - 8275 7843 mute-stream@0.0.8: 8276 7844 resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} 8277 7845 ··· 8280 7848 8281 7849 nanoid-dictionary@5.0.0-beta.1: 8282 7850 resolution: {integrity: sha512-xBkL9zzkNjzJ/UnmWyiOUDVX/COoi05eS0oU28RYKFFQhdnzO5dTOPbVZ/fCFgIOGr1zNinDHJ68mm/KQfcgcw==} 8283 - 8284 - nanoid@3.3.6: 8285 - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 8286 - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 8287 - hasBin: true 8288 7851 8289 7852 nanoid@3.3.7: 8290 7853 resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} ··· 8434 7997 resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} 8435 7998 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 8436 7999 8437 - node-forge@1.3.1: 8438 - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} 8439 - engines: {node: '>= 6.13.0'} 8440 - 8441 8000 node-gyp-build@4.6.1: 8442 8001 resolution: {integrity: sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==} 8443 8002 hasBin: true ··· 8666 8225 path-to-regexp@0.1.7: 8667 8226 resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} 8668 8227 8669 - path-to-regexp@6.2.1: 8670 - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} 8671 - 8672 - path-to-regexp@6.2.2: 8673 - resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} 8674 - 8675 8228 path-type@4.0.0: 8676 8229 resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 8677 8230 engines: {node: '>=8'} ··· 8881 8434 resolution: {integrity: sha512-G9xUchgTEiNpormdYBl+Pha50gOUovT18IvAe7EYMZ1/f9W/WWMPRn+xI68yXNMUk3QXHDwo/1wV/4NejVNe1w==} 8882 8435 engines: {node: '>=0.10.0'} 8883 8436 8884 - printable-characters@1.0.42: 8885 - resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} 8886 - 8887 8437 process@0.11.10: 8888 8438 resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 8889 8439 engines: {node: '>= 0.6.0'} ··· 8930 8480 pump@3.0.0: 8931 8481 resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 8932 8482 8933 - punycode@1.3.2: 8934 - resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} 8935 - 8936 8483 punycode@2.3.0: 8937 8484 resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 8938 8485 engines: {node: '>=6'} ··· 8944 8491 qs@6.11.2: 8945 8492 resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} 8946 8493 engines: {node: '>=0.6'} 8947 - 8948 - querystring@0.2.0: 8949 - resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} 8950 - engines: {node: '>=0.4.x'} 8951 - deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. 8952 8494 8953 8495 queue-microtask@1.2.3: 8954 8496 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} ··· 9262 8804 resolve-pkg-maps@1.0.0: 9263 8805 resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 9264 8806 9265 - resolve.exports@2.0.2: 9266 - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} 9267 - engines: {node: '>=10'} 9268 - 9269 8807 resolve@1.22.8: 9270 8808 resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 9271 8809 hasBin: true ··· 9298 8836 resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 9299 8837 hasBin: true 9300 8838 9301 - rollup-plugin-inject@3.0.2: 9302 - resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} 9303 - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. 9304 - 9305 - rollup-plugin-node-polyfills@0.2.1: 9306 - resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} 9307 - 9308 - rollup-pluginutils@2.8.2: 9309 - resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} 9310 - 9311 8839 rollup@2.78.0: 9312 8840 resolution: {integrity: sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg==} 9313 8841 engines: {node: '>=10.0.0'} ··· 9360 8888 9361 8889 selderee@0.11.0: 9362 8890 resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} 9363 - 9364 - selfsigned@2.4.1: 9365 - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} 9366 - engines: {node: '>=10'} 9367 8891 9368 8892 semver@5.7.2: 9369 8893 resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} ··· 9494 9018 resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 9495 9019 engines: {node: '>= 8'} 9496 9020 9497 - sourcemap-codec@1.4.8: 9498 - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 9499 - deprecated: Please use @jridgewell/sourcemap-codec instead 9500 - 9501 9021 space-separated-tokens@2.0.2: 9502 9022 resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} 9503 9023 ··· 9519 9039 stacktrace-parser@0.1.10: 9520 9040 resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} 9521 9041 engines: {node: '>=6'} 9522 - 9523 - stacktracey@2.1.8: 9524 - resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} 9525 9042 9526 9043 statuses@2.0.1: 9527 9044 resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 9528 9045 engines: {node: '>= 0.8'} 9529 9046 9530 - stoppable@1.1.0: 9531 - resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} 9532 - engines: {node: '>=4', npm: '>=6'} 9533 - 9534 9047 storybook@8.2.1: 9535 9048 resolution: {integrity: sha512-YT6//jQk5vfBCRVgcq1oBDUz8kE9PELTJAZr9VeeaLay/Fl5cUeNxjP7bm06hCOyYQ2gSUe4jF6TAwzwGePMLQ==} 9536 9049 hasBin: true ··· 9540 9053 9541 9054 stream-shift@1.0.1: 9542 9055 resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} 9543 - 9544 - stream@0.0.2: 9545 - resolution: {integrity: sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==} 9546 9056 9547 9057 streamsearch@1.1.0: 9548 9058 resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} ··· 10108 9618 uri-js@4.4.1: 10109 9619 resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 10110 9620 10111 - url@0.11.0: 10112 - resolution: {integrity: sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==} 10113 - 10114 9621 use-callback-ref@1.3.0: 10115 9622 resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} 10116 9623 engines: {node: '>=10'} ··· 10297 9804 wordwrap@1.0.0: 10298 9805 resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} 10299 9806 10300 - workerd@1.20240403.0: 10301 - resolution: {integrity: sha512-OcUPNNIUn4dC3dyRc/W6sTPjgFjJQVpbqpMCx7RmAzVrEzB+nJlz25FZr5alxIG5769UmzvMB1wlK/hMddHk0w==} 10302 - engines: {node: '>=16'} 10303 - hasBin: true 10304 - 10305 - workerd@1.20240512.0: 10306 - resolution: {integrity: sha512-VUBmR1PscAPHEE0OF/G2K7/H1gnr9aDWWZzdkIgWfNKkv8dKFCT75H+GJtUHjfwqz3rYCzaNZmatSXOpLGpF8A==} 10307 - engines: {node: '>=16'} 10308 - hasBin: true 10309 - 10310 - wrangler@3.47.0: 10311 - resolution: {integrity: sha512-aptr+g+ohgJLemIEoAVejcqnfnQWk248nkIyYxGDh8ohlDjQlo1vO0/mWiyqPUsmWOxl0Yr3jdZMtfi7iukayg==} 10312 - engines: {node: '>=16.17.0'} 10313 - hasBin: true 10314 - peerDependencies: 10315 - '@cloudflare/workers-types': ^4.20240402.0 10316 - peerDependenciesMeta: 10317 - '@cloudflare/workers-types': 10318 - optional: true 10319 - 10320 - wrangler@3.57.0: 10321 - resolution: {integrity: sha512-izK3AZtlFoTq8N0EZjLOQ7hqwsjaXCc1cbNKuhsLJjDX1jB1YZBDPhIhtXL4VVzkJAcH+0Zw2gguOePFCHNaxw==} 10322 - engines: {node: '>=16.17.0'} 10323 - hasBin: true 10324 - peerDependencies: 10325 - '@cloudflare/workers-types': ^4.20240512.0 10326 - peerDependenciesMeta: 10327 - '@cloudflare/workers-types': 10328 - optional: true 10329 - 10330 9807 wrap-ansi@6.2.0: 10331 9808 resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 10332 9809 engines: {node: '>=8'} ··· 10345 9822 write-file-atomic@2.4.3: 10346 9823 resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} 10347 9824 10348 - ws@8.14.2: 10349 - resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} 10350 - engines: {node: '>=10.0.0'} 10351 - peerDependencies: 10352 - bufferutil: ^4.0.1 10353 - utf-8-validate: '>=5.0.2' 10354 - peerDependenciesMeta: 10355 - bufferutil: 10356 - optional: true 10357 - utf-8-validate: 10358 - optional: true 10359 - 10360 9825 ws@8.17.0: 10361 9826 resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} 10362 9827 engines: {node: '>=10.0.0'} ··· 10375 9840 xtend@4.0.2: 10376 9841 resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 10377 9842 engines: {node: '>=0.4'} 10378 - 10379 - xxhash-wasm@1.0.2: 10380 - resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} 10381 9843 10382 9844 y-codemirror.next@0.3.5: 10383 9845 resolution: {integrity: sha512-VluNu3e5HfEXybnypnsGwKAj+fKLd4iAnR7JuX1Sfyydmn1jCBS5wwEL/uS04Ch2ib0DnMAOF6ZRR/8kK3wyGw==} ··· 10432 9894 yocto-queue@0.1.0: 10433 9895 resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 10434 9896 engines: {node: '>=10'} 10435 - 10436 - youch@3.3.3: 10437 - resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==} 10438 9897 10439 9898 zhead@2.2.4: 10440 9899 resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==} ··· 11965 11424 dependencies: 11966 11425 zod: 3.23.8 11967 11426 11968 - '@cloudflare/kv-asset-handler@0.3.1': 11969 - dependencies: 11970 - mime: 3.0.0 11971 - 11972 - '@cloudflare/kv-asset-handler@0.3.2': 11973 - dependencies: 11974 - mime: 3.0.0 11975 - 11976 - '@cloudflare/puppeteer@0.0.6': 11977 - dependencies: 11978 - debug: 4.3.4 11979 - devtools-protocol: 0.0.1019158 11980 - events: 3.3.0 11981 - stream: 0.0.2 11982 - url: 0.11.0 11983 - util: 0.12.5 11984 - transitivePeerDependencies: 11985 - - supports-color 11986 - 11987 - '@cloudflare/workerd-darwin-64@1.20240403.0': 11988 - optional: true 11989 - 11990 - '@cloudflare/workerd-darwin-64@1.20240512.0': 11991 - optional: true 11992 - 11993 - '@cloudflare/workerd-darwin-arm64@1.20240403.0': 11994 - optional: true 11995 - 11996 - '@cloudflare/workerd-darwin-arm64@1.20240512.0': 11997 - optional: true 11998 - 11999 - '@cloudflare/workerd-linux-64@1.20240403.0': 12000 - optional: true 12001 - 12002 - '@cloudflare/workerd-linux-64@1.20240512.0': 12003 - optional: true 12004 - 12005 - '@cloudflare/workerd-linux-arm64@1.20240403.0': 12006 - optional: true 12007 - 12008 - '@cloudflare/workerd-linux-arm64@1.20240512.0': 11427 + '@cloudflare/workers-types@4.20240512.0': 12009 11428 optional: true 12010 - 12011 - '@cloudflare/workerd-windows-64@1.20240403.0': 12012 - optional: true 12013 - 12014 - '@cloudflare/workerd-windows-64@1.20240512.0': 12015 - optional: true 12016 - 12017 - '@cloudflare/workers-types@4.20240403.0': {} 12018 - 12019 - '@cloudflare/workers-types@4.20240512.0': {} 12020 11429 12021 11430 '@codemirror/autocomplete@6.17.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.28.4)(@lezer/common@1.2.1)': 12022 11431 dependencies: ··· 12314 11723 '@esbuild-kit/core-utils': 3.3.2 12315 11724 get-tsconfig: 4.7.2 12316 11725 12317 - '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': 12318 - dependencies: 12319 - esbuild: 0.17.19 12320 - 12321 - '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19)': 12322 - dependencies: 12323 - esbuild: 0.17.19 12324 - escape-string-regexp: 4.0.0 12325 - rollup-plugin-node-polyfills: 0.2.1 12326 - 12327 11726 '@esbuild-plugins/node-resolve@0.1.4(esbuild@0.21.3)': 12328 11727 dependencies: 12329 11728 '@types/resolve': 1.20.4 ··· 12341 11740 optional: true 12342 11741 12343 11742 '@esbuild/android-arm64@0.16.4': 12344 - optional: true 12345 - 12346 - '@esbuild/android-arm64@0.17.19': 12347 11743 optional: true 12348 11744 12349 11745 '@esbuild/android-arm64@0.18.20': ··· 12358 11754 '@esbuild/android-arm@0.16.4': 12359 11755 optional: true 12360 11756 12361 - '@esbuild/android-arm@0.17.19': 12362 - optional: true 12363 - 12364 11757 '@esbuild/android-arm@0.18.20': 12365 11758 optional: true 12366 11759 ··· 12373 11766 '@esbuild/android-x64@0.16.4': 12374 11767 optional: true 12375 11768 12376 - '@esbuild/android-x64@0.17.19': 12377 - optional: true 12378 - 12379 11769 '@esbuild/android-x64@0.18.20': 12380 11770 optional: true 12381 11771 ··· 12386 11776 optional: true 12387 11777 12388 11778 '@esbuild/darwin-arm64@0.16.4': 12389 - optional: true 12390 - 12391 - '@esbuild/darwin-arm64@0.17.19': 12392 11779 optional: true 12393 11780 12394 11781 '@esbuild/darwin-arm64@0.18.20': ··· 12403 11790 '@esbuild/darwin-x64@0.16.4': 12404 11791 optional: true 12405 11792 12406 - '@esbuild/darwin-x64@0.17.19': 12407 - optional: true 12408 - 12409 11793 '@esbuild/darwin-x64@0.18.20': 12410 11794 optional: true 12411 11795 ··· 12418 11802 '@esbuild/freebsd-arm64@0.16.4': 12419 11803 optional: true 12420 11804 12421 - '@esbuild/freebsd-arm64@0.17.19': 12422 - optional: true 12423 - 12424 11805 '@esbuild/freebsd-arm64@0.18.20': 12425 11806 optional: true 12426 11807 ··· 12433 11814 '@esbuild/freebsd-x64@0.16.4': 12434 11815 optional: true 12435 11816 12436 - '@esbuild/freebsd-x64@0.17.19': 12437 - optional: true 12438 - 12439 11817 '@esbuild/freebsd-x64@0.18.20': 12440 11818 optional: true 12441 11819 ··· 12446 11824 optional: true 12447 11825 12448 11826 '@esbuild/linux-arm64@0.16.4': 12449 - optional: true 12450 - 12451 - '@esbuild/linux-arm64@0.17.19': 12452 11827 optional: true 12453 11828 12454 11829 '@esbuild/linux-arm64@0.18.20': ··· 12463 11838 '@esbuild/linux-arm@0.16.4': 12464 11839 optional: true 12465 11840 12466 - '@esbuild/linux-arm@0.17.19': 12467 - optional: true 12468 - 12469 11841 '@esbuild/linux-arm@0.18.20': 12470 11842 optional: true 12471 11843 ··· 12476 11848 optional: true 12477 11849 12478 11850 '@esbuild/linux-ia32@0.16.4': 12479 - optional: true 12480 - 12481 - '@esbuild/linux-ia32@0.17.19': 12482 11851 optional: true 12483 11852 12484 11853 '@esbuild/linux-ia32@0.18.20': ··· 12493 11862 '@esbuild/linux-loong64@0.16.4': 12494 11863 optional: true 12495 11864 12496 - '@esbuild/linux-loong64@0.17.19': 12497 - optional: true 12498 - 12499 11865 '@esbuild/linux-loong64@0.18.20': 12500 11866 optional: true 12501 11867 ··· 12508 11874 '@esbuild/linux-mips64el@0.16.4': 12509 11875 optional: true 12510 11876 12511 - '@esbuild/linux-mips64el@0.17.19': 12512 - optional: true 12513 - 12514 11877 '@esbuild/linux-mips64el@0.18.20': 12515 11878 optional: true 12516 11879 ··· 12523 11886 '@esbuild/linux-ppc64@0.16.4': 12524 11887 optional: true 12525 11888 12526 - '@esbuild/linux-ppc64@0.17.19': 12527 - optional: true 12528 - 12529 11889 '@esbuild/linux-ppc64@0.18.20': 12530 11890 optional: true 12531 11891 ··· 12538 11898 '@esbuild/linux-riscv64@0.16.4': 12539 11899 optional: true 12540 11900 12541 - '@esbuild/linux-riscv64@0.17.19': 12542 - optional: true 12543 - 12544 11901 '@esbuild/linux-riscv64@0.18.20': 12545 11902 optional: true 12546 11903 ··· 12551 11908 optional: true 12552 11909 12553 11910 '@esbuild/linux-s390x@0.16.4': 12554 - optional: true 12555 - 12556 - '@esbuild/linux-s390x@0.17.19': 12557 11911 optional: true 12558 11912 12559 11913 '@esbuild/linux-s390x@0.18.20': ··· 12568 11922 '@esbuild/linux-x64@0.16.4': 12569 11923 optional: true 12570 11924 12571 - '@esbuild/linux-x64@0.17.19': 12572 - optional: true 12573 - 12574 11925 '@esbuild/linux-x64@0.18.20': 12575 11926 optional: true 12576 11927 ··· 12581 11932 optional: true 12582 11933 12583 11934 '@esbuild/netbsd-x64@0.16.4': 12584 - optional: true 12585 - 12586 - '@esbuild/netbsd-x64@0.17.19': 12587 11935 optional: true 12588 11936 12589 11937 '@esbuild/netbsd-x64@0.18.20': ··· 12598 11946 '@esbuild/openbsd-x64@0.16.4': 12599 11947 optional: true 12600 11948 12601 - '@esbuild/openbsd-x64@0.17.19': 12602 - optional: true 12603 - 12604 11949 '@esbuild/openbsd-x64@0.18.20': 12605 11950 optional: true 12606 11951 ··· 12613 11958 '@esbuild/sunos-x64@0.16.4': 12614 11959 optional: true 12615 11960 12616 - '@esbuild/sunos-x64@0.17.19': 12617 - optional: true 12618 - 12619 11961 '@esbuild/sunos-x64@0.18.20': 12620 11962 optional: true 12621 11963 ··· 12628 11970 '@esbuild/win32-arm64@0.16.4': 12629 11971 optional: true 12630 11972 12631 - '@esbuild/win32-arm64@0.17.19': 12632 - optional: true 12633 - 12634 11973 '@esbuild/win32-arm64@0.18.20': 12635 11974 optional: true 12636 11975 ··· 12643 11982 '@esbuild/win32-ia32@0.16.4': 12644 11983 optional: true 12645 11984 12646 - '@esbuild/win32-ia32@0.17.19': 12647 - optional: true 12648 - 12649 11985 '@esbuild/win32-ia32@0.18.20': 12650 11986 optional: true 12651 11987 ··· 12656 11992 optional: true 12657 11993 12658 11994 '@esbuild/win32-x64@0.16.4': 12659 - optional: true 12660 - 12661 - '@esbuild/win32-x64@0.17.19': 12662 11995 optional: true 12663 11996 12664 11997 '@esbuild/win32-x64@0.18.20': ··· 12896 12229 '@lezer/highlight': 1.2.0 12897 12230 '@lezer/lr': 1.4.1 12898 12231 12899 - '@libsql/client@0.12.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)': 12232 + '@libsql/client@0.14.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)': 12900 12233 dependencies: 12901 - '@libsql/core': 0.12.0 12234 + '@libsql/core': 0.14.0 12902 12235 '@libsql/hrana-client': 0.7.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) 12903 12236 js-base64: 3.7.5 12904 12237 libsql: 0.4.5 ··· 12907 12240 - bufferutil 12908 12241 - utf-8-validate 12909 12242 12910 - '@libsql/client@0.12.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)': 12243 + '@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)': 12911 12244 dependencies: 12912 - '@libsql/core': 0.12.0 12245 + '@libsql/core': 0.14.0 12913 12246 '@libsql/hrana-client': 0.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) 12914 12247 js-base64: 3.7.5 12915 12248 libsql: 0.4.5 ··· 12917 12250 transitivePeerDependencies: 12918 12251 - bufferutil 12919 12252 - utf-8-validate 12920 - optional: true 12921 12253 12922 - '@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)': 12254 + '@libsql/core@0.14.0': 12923 12255 dependencies: 12924 - '@libsql/core': 0.6.2 12925 - '@libsql/hrana-client': 0.6.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) 12926 12256 js-base64: 3.7.5 12927 - libsql: 0.3.10 12928 - transitivePeerDependencies: 12929 - - bufferutil 12930 - - utf-8-validate 12931 - 12932 - '@libsql/core@0.12.0': 12933 - dependencies: 12934 - js-base64: 3.7.5 12935 - 12936 - '@libsql/core@0.6.2': 12937 - dependencies: 12938 - js-base64: 3.7.5 12939 - 12940 - '@libsql/darwin-arm64@0.3.10': 12941 - optional: true 12942 12257 12943 12258 '@libsql/darwin-arm64@0.4.5': 12944 12259 optional: true 12945 12260 12946 - '@libsql/darwin-x64@0.3.10': 12947 - optional: true 12948 - 12949 12261 '@libsql/darwin-x64@0.4.5': 12950 12262 optional: true 12951 12263 12952 - '@libsql/hrana-client@0.6.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)': 12953 - dependencies: 12954 - '@libsql/isomorphic-fetch': 0.2.1 12955 - '@libsql/isomorphic-ws': 0.1.5(bufferutil@4.0.8)(utf-8-validate@6.0.4) 12956 - js-base64: 3.7.5 12957 - node-fetch: 3.3.2 12958 - transitivePeerDependencies: 12959 - - bufferutil 12960 - - utf-8-validate 12961 - 12962 12264 '@libsql/hrana-client@0.7.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)': 12963 12265 dependencies: 12964 12266 '@libsql/isomorphic-fetch': 0.3.1 ··· 12978 12280 transitivePeerDependencies: 12979 12281 - bufferutil 12980 12282 - utf-8-validate 12981 - optional: true 12982 - 12983 - '@libsql/isomorphic-fetch@0.2.1': {} 12984 12283 12985 12284 '@libsql/isomorphic-fetch@0.3.1': {} 12986 12285 ··· 12999 12298 transitivePeerDependencies: 13000 12299 - bufferutil 13001 12300 - utf-8-validate 13002 - 13003 - '@libsql/linux-arm64-gnu@0.3.10': 13004 - optional: true 13005 12301 13006 12302 '@libsql/linux-arm64-gnu@0.4.5': 13007 12303 optional: true 13008 12304 13009 - '@libsql/linux-arm64-musl@0.3.10': 13010 - optional: true 13011 - 13012 12305 '@libsql/linux-arm64-musl@0.4.5': 13013 - optional: true 13014 - 13015 - '@libsql/linux-x64-gnu@0.3.10': 13016 12306 optional: true 13017 12307 13018 12308 '@libsql/linux-x64-gnu@0.4.5': 13019 12309 optional: true 13020 12310 13021 - '@libsql/linux-x64-musl@0.3.10': 13022 - optional: true 13023 - 13024 12311 '@libsql/linux-x64-musl@0.4.5': 13025 - optional: true 13026 - 13027 - '@libsql/win32-x64-msvc@0.3.10': 13028 12312 optional: true 13029 12313 13030 12314 '@libsql/win32-x64-msvc@0.4.5': ··· 15465 14749 15466 14750 '@types/ms@0.7.33': {} 15467 14751 15468 - '@types/node-forge@1.3.11': 15469 - dependencies: 15470 - '@types/node': 20.14.8 15471 - 15472 14752 '@types/node@18.19.39': 15473 14753 dependencies: 15474 14754 undici-types: 5.26.5 ··· 15767 15047 15768 15048 acorn-walk@7.2.0: {} 15769 15049 15770 - acorn-walk@8.2.0: {} 15771 - 15772 15050 acorn-walk@8.3.2: {} 15773 15051 15774 15052 acorn@7.4.1: {} 15775 - 15776 - acorn@8.10.0: {} 15777 15053 15778 15054 acorn@8.11.3: {} 15779 15055 ··· 15891 15167 15892 15168 arrify@1.0.1: {} 15893 15169 15894 - as-table@1.0.55: 15895 - dependencies: 15896 - printable-characters: 1.0.42 15897 - 15898 15170 assertion-error@1.1.0: {} 15899 15171 15900 15172 ast-types@0.13.4: ··· 15991 15263 buffer: 5.7.1 15992 15264 inherits: 2.0.4 15993 15265 readable-stream: 3.6.2 15994 - 15995 - blake3-wasm@2.1.5: {} 15996 15266 15997 15267 bluebird@3.4.7: {} 15998 15268 ··· 16123 15393 16124 15394 caniuse-lite@1.0.30001641: {} 16125 15395 16126 - capnp-ts@0.7.0: 16127 - dependencies: 16128 - debug: 4.3.4 16129 - tslib: 2.6.2 16130 - transitivePeerDependencies: 16131 - - supports-color 16132 - 16133 15396 ccount@2.0.1: {} 16134 15397 16135 15398 chai@4.4.1: ··· 16385 15648 16386 15649 cookie-signature@1.0.6: {} 16387 15650 16388 - cookie@0.5.0: {} 16389 - 16390 15651 cookie@0.6.0: {} 16391 15652 16392 15653 copy-anything@3.0.5: ··· 16466 15727 d3-array: 3.2.4 16467 15728 16468 15729 d3-timer@3.0.1: {} 16469 - 16470 - data-uri-to-buffer@2.0.2: {} 16471 15730 16472 15731 data-uri-to-buffer@4.0.1: {} 16473 15732 ··· 16559 15818 16560 15819 destroy@1.2.0: {} 16561 15820 16562 - detect-browser@5.3.0: {} 16563 - 16564 15821 detect-indent@6.1.0: {} 16565 15822 16566 15823 detect-libc@2.0.2: {} ··· 16580 15837 devlop@1.1.0: 16581 15838 dependencies: 16582 15839 dequal: 2.0.3 16583 - 16584 - devtools-protocol@0.0.1019158: {} 16585 15840 16586 15841 didyoumean@1.2.2: {} 16587 15842 ··· 16638 15893 transitivePeerDependencies: 16639 15894 - supports-color 16640 15895 16641 - drizzle-orm@0.32.1(@cloudflare/workers-types@4.20240403.0)(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1): 16642 - optionalDependencies: 16643 - '@cloudflare/workers-types': 4.20240403.0 16644 - '@libsql/client': 0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) 16645 - '@opentelemetry/api': 1.8.0 16646 - '@types/react': 18.3.3 16647 - better-sqlite3: 11.1.2 16648 - bun-types: 1.1.8 16649 - react: 18.3.1 16650 - 16651 - drizzle-orm@0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.12.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1): 15896 + drizzle-orm@0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.14.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1): 16652 15897 optionalDependencies: 16653 15898 '@cloudflare/workers-types': 4.20240512.0 16654 - '@libsql/client': 0.12.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) 15899 + '@libsql/client': 0.14.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) 16655 15900 '@opentelemetry/api': 1.8.0 16656 15901 '@types/react': 18.3.3 16657 15902 better-sqlite3: 11.1.2 16658 15903 bun-types: 1.1.8 16659 15904 react: 18.3.1 16660 15905 16661 - drizzle-orm@0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.12.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1): 15906 + drizzle-orm@0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1): 16662 15907 optionalDependencies: 16663 15908 '@cloudflare/workers-types': 4.20240512.0 16664 - '@libsql/client': 0.12.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) 15909 + '@libsql/client': 0.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) 16665 15910 '@opentelemetry/api': 1.8.0 16666 15911 '@types/react': 18.3.3 16667 15912 better-sqlite3: 11.1.2 16668 15913 bun-types: 1.1.8 16669 15914 react: 18.3.1 16670 15915 16671 - drizzle-orm@0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1): 16672 - optionalDependencies: 16673 - '@cloudflare/workers-types': 4.20240512.0 16674 - '@libsql/client': 0.6.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) 16675 - '@opentelemetry/api': 1.8.0 16676 - '@types/react': 18.3.3 16677 - better-sqlite3: 11.1.2 16678 - bun-types: 1.1.8 16679 - react: 18.3.1 16680 - 16681 - drizzle-zod@0.5.1(drizzle-orm@0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.12.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1))(zod@3.23.8): 15916 + drizzle-zod@0.5.1(drizzle-orm@0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.14.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1))(zod@3.23.8): 16682 15917 dependencies: 16683 - drizzle-orm: 0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.12.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1) 15918 + drizzle-orm: 0.32.1(@cloudflare/workers-types@4.20240512.0)(@libsql/client@0.14.0(bufferutil@4.0.7)(utf-8-validate@6.0.3))(@opentelemetry/api@1.8.0)(@types/react@18.3.3)(better-sqlite3@11.1.2)(bun-types@1.1.8)(react@18.3.1) 16684 15919 zod: 3.23.8 16685 15920 16686 15921 duplexify@4.1.2: ··· 16715 15950 16716 15951 electron-to-chromium@1.4.825: {} 16717 15952 16718 - emitter-component@1.1.2: {} 16719 - 16720 15953 emoji-regex@8.0.0: {} 16721 15954 16722 15955 emoji-regex@9.2.2: {} ··· 16777 16010 '@esbuild/win32-arm64': 0.16.4 16778 16011 '@esbuild/win32-ia32': 0.16.4 16779 16012 '@esbuild/win32-x64': 0.16.4 16780 - 16781 - esbuild@0.17.19: 16782 - optionalDependencies: 16783 - '@esbuild/android-arm': 0.17.19 16784 - '@esbuild/android-arm64': 0.17.19 16785 - '@esbuild/android-x64': 0.17.19 16786 - '@esbuild/darwin-arm64': 0.17.19 16787 - '@esbuild/darwin-x64': 0.17.19 16788 - '@esbuild/freebsd-arm64': 0.17.19 16789 - '@esbuild/freebsd-x64': 0.17.19 16790 - '@esbuild/linux-arm': 0.17.19 16791 - '@esbuild/linux-arm64': 0.17.19 16792 - '@esbuild/linux-ia32': 0.17.19 16793 - '@esbuild/linux-loong64': 0.17.19 16794 - '@esbuild/linux-mips64el': 0.17.19 16795 - '@esbuild/linux-ppc64': 0.17.19 16796 - '@esbuild/linux-riscv64': 0.17.19 16797 - '@esbuild/linux-s390x': 0.17.19 16798 - '@esbuild/linux-x64': 0.17.19 16799 - '@esbuild/netbsd-x64': 0.17.19 16800 - '@esbuild/openbsd-x64': 0.17.19 16801 - '@esbuild/sunos-x64': 0.17.19 16802 - '@esbuild/win32-arm64': 0.17.19 16803 - '@esbuild/win32-ia32': 0.17.19 16804 - '@esbuild/win32-x64': 0.17.19 16805 16013 16806 16014 esbuild@0.18.20: 16807 16015 optionalDependencies: ··· 16933 16141 '@types/estree-jsx': 1.0.2 16934 16142 '@types/unist': 2.0.9 16935 16143 16936 - estree-walker@0.6.1: {} 16937 - 16938 16144 estree-walker@2.0.2: {} 16939 16145 16940 16146 estree-walker@3.0.3: ··· 16948 16154 event-target-shim@5.0.1: {} 16949 16155 16950 16156 eventemitter3@4.0.7: {} 16951 - 16952 - events@3.3.0: {} 16953 16157 16954 16158 execa@5.1.1: 16955 16159 dependencies: ··· 16974 16178 onetime: 6.0.0 16975 16179 signal-exit: 4.1.0 16976 16180 strip-final-newline: 3.0.0 16977 - 16978 - exit-hook@2.2.1: {} 16979 16181 16980 16182 expand-template@2.0.3: {} 16981 16183 ··· 17248 16450 17249 16451 get-own-enumerable-property-symbols@3.0.2: {} 17250 16452 17251 - get-source@2.0.12: 17252 - dependencies: 17253 - data-uri-to-buffer: 2.0.2 17254 - source-map: 0.6.1 17255 - 17256 16453 get-stream@6.0.1: {} 17257 16454 17258 16455 get-stream@8.0.1: {} ··· 17292 16489 glob-parent@6.0.2: 17293 16490 dependencies: 17294 16491 is-glob: 4.0.3 17295 - 17296 - glob-to-regexp@0.4.1: {} 17297 16492 17298 16493 glob@10.3.4: 17299 16494 dependencies: ··· 18194 17389 isomorphic.js: 0.2.5 18195 17390 optional: true 18196 17391 18197 - libsql@0.3.10: 18198 - dependencies: 18199 - '@neon-rs/load': 0.0.4 18200 - detect-libc: 2.0.2 18201 - optionalDependencies: 18202 - '@libsql/darwin-arm64': 0.3.10 18203 - '@libsql/darwin-x64': 0.3.10 18204 - '@libsql/linux-arm64-gnu': 0.3.10 18205 - '@libsql/linux-arm64-musl': 0.3.10 18206 - '@libsql/linux-x64-gnu': 0.3.10 18207 - '@libsql/linux-x64-musl': 0.3.10 18208 - '@libsql/win32-x64-msvc': 0.3.10 18209 - 18210 17392 libsql@0.4.5: 18211 17393 dependencies: 18212 17394 '@neon-rs/load': 0.0.4 ··· 18327 17509 magic-string@0.16.0: 18328 17510 dependencies: 18329 17511 vlq: 0.2.3 18330 - 18331 - magic-string@0.25.9: 18332 - dependencies: 18333 - sourcemap-codec: 1.4.8 18334 17512 18335 17513 magic-string@0.27.0: 18336 17514 dependencies: ··· 19152 18330 19153 18331 mime@1.6.0: {} 19154 18332 19155 - mime@3.0.0: {} 19156 - 19157 18333 mimic-fn@2.1.0: {} 19158 18334 19159 18335 mimic-fn@4.0.0: {} ··· 19162 18338 19163 18339 min-indent@1.0.1: {} 19164 18340 19165 - miniflare@3.20240403.0(bufferutil@4.0.8)(utf-8-validate@6.0.4): 19166 - dependencies: 19167 - '@cspotcode/source-map-support': 0.8.1 19168 - acorn: 8.10.0 19169 - acorn-walk: 8.2.0 19170 - capnp-ts: 0.7.0 19171 - exit-hook: 2.2.1 19172 - glob-to-regexp: 0.4.1 19173 - stoppable: 1.1.0 19174 - undici: 5.28.4 19175 - workerd: 1.20240403.0 19176 - ws: 8.14.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) 19177 - youch: 3.3.3 19178 - zod: 3.23.8 19179 - transitivePeerDependencies: 19180 - - bufferutil 19181 - - supports-color 19182 - - utf-8-validate 19183 - 19184 - miniflare@3.20240512.0(bufferutil@4.0.8)(utf-8-validate@6.0.4): 19185 - dependencies: 19186 - '@cspotcode/source-map-support': 0.8.1 19187 - acorn: 8.11.3 19188 - acorn-walk: 8.3.2 19189 - capnp-ts: 0.7.0 19190 - exit-hook: 2.2.1 19191 - glob-to-regexp: 0.4.1 19192 - stoppable: 1.1.0 19193 - undici: 5.28.4 19194 - workerd: 1.20240512.0 19195 - ws: 8.17.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) 19196 - youch: 3.3.3 19197 - zod: 3.23.8 19198 - transitivePeerDependencies: 19199 - - bufferutil 19200 - - supports-color 19201 - - utf-8-validate 19202 - 19203 18341 minimatch@3.1.2: 19204 18342 dependencies: 19205 18343 brace-expansion: 1.1.11 ··· 19257 18395 ms@2.1.2: {} 19258 18396 19259 18397 ms@2.1.3: {} 19260 - 19261 - mustache@4.2.0: {} 19262 18398 19263 18399 mute-stream@0.0.8: {} 19264 18400 ··· 19270 18406 19271 18407 nanoid-dictionary@5.0.0-beta.1: {} 19272 18408 19273 - nanoid@3.3.6: {} 19274 - 19275 18409 nanoid@3.3.7: {} 19276 18410 19277 18411 nanoid@5.0.7: {} ··· 19464 18598 data-uri-to-buffer: 4.0.1 19465 18599 fetch-blob: 3.2.0 19466 18600 formdata-polyfill: 4.0.10 19467 - 19468 - node-forge@1.3.1: {} 19469 18601 19470 18602 node-gyp-build@4.6.1: {} 19471 18603 ··· 19718 18850 19719 18851 path-to-regexp@0.1.7: {} 19720 18852 19721 - path-to-regexp@6.2.1: {} 19722 - 19723 - path-to-regexp@6.2.2: {} 19724 - 19725 18853 path-type@4.0.0: {} 19726 18854 19727 18855 path-type@5.0.0: {} ··· 19939 19067 extend-shallow: 2.0.1 19940 19068 js-beautify: 1.14.9 19941 19069 19942 - printable-characters@1.0.42: {} 19943 - 19944 19070 process@0.11.10: {} 19945 19071 19946 19072 progress@2.0.3: {} ··· 20006 19132 end-of-stream: 1.4.4 20007 19133 once: 1.4.0 20008 19134 20009 - punycode@1.3.2: {} 20010 - 20011 19135 punycode@2.3.0: {} 20012 19136 20013 19137 qs@6.11.0: ··· 20017 19141 qs@6.11.2: 20018 19142 dependencies: 20019 19143 side-channel: 1.0.4 20020 - 20021 - querystring@0.2.0: {} 20022 19144 20023 19145 queue-microtask@1.2.3: {} 20024 19146 ··· 20492 19614 20493 19615 resolve-pkg-maps@1.0.0: {} 20494 19616 20495 - resolve.exports@2.0.2: {} 20496 - 20497 19617 resolve@1.22.8: 20498 19618 dependencies: 20499 19619 is-core-module: 2.13.0 ··· 20529 19649 dependencies: 20530 19650 glob: 7.2.3 20531 19651 20532 - rollup-plugin-inject@3.0.2: 20533 - dependencies: 20534 - estree-walker: 0.6.1 20535 - magic-string: 0.25.9 20536 - rollup-pluginutils: 2.8.2 20537 - 20538 - rollup-plugin-node-polyfills@0.2.1: 20539 - dependencies: 20540 - rollup-plugin-inject: 3.0.2 20541 - 20542 - rollup-pluginutils@2.8.2: 20543 - dependencies: 20544 - estree-walker: 0.6.1 20545 - 20546 19652 rollup@2.78.0: 20547 19653 optionalDependencies: 20548 19654 fsevents: 2.3.3 ··· 20597 19703 dependencies: 20598 19704 parseley: 0.12.1 20599 19705 20600 - selfsigned@2.4.1: 20601 - dependencies: 20602 - '@types/node-forge': 1.3.11 20603 - node-forge: 1.3.1 20604 - 20605 19706 semver@5.7.2: {} 20606 19707 20607 19708 semver@6.3.1: {} ··· 20745 19846 dependencies: 20746 19847 whatwg-url: 7.1.0 20747 19848 20748 - sourcemap-codec@1.4.8: {} 20749 - 20750 19849 space-separated-tokens@2.0.2: {} 20751 19850 20752 19851 spdx-correct@3.2.0: ··· 20769 19868 dependencies: 20770 19869 type-fest: 0.7.1 20771 19870 20772 - stacktracey@2.1.8: 20773 - dependencies: 20774 - as-table: 1.0.55 20775 - get-source: 2.0.12 20776 - 20777 19871 statuses@2.0.1: {} 20778 - 20779 - stoppable@1.1.0: {} 20780 19872 20781 19873 storybook@8.2.1(@babel/preset-env@7.24.8(@babel/core@7.24.8))(bufferutil@4.0.8)(utf-8-validate@6.0.4): 20782 19874 dependencies: ··· 20819 19911 stubs: 3.0.0 20820 19912 20821 19913 stream-shift@1.0.1: {} 20822 - 20823 - stream@0.0.2: 20824 - dependencies: 20825 - emitter-component: 1.1.2 20826 19914 20827 19915 streamsearch@1.1.0: {} 20828 19916 ··· 21486 20574 dependencies: 21487 20575 punycode: 2.3.0 21488 20576 21489 - url@0.11.0: 21490 - dependencies: 21491 - punycode: 1.3.2 21492 - querystring: 0.2.0 21493 - 21494 20577 use-callback-ref@1.3.0(@types/react@18.3.3)(react@18.3.1): 21495 20578 dependencies: 21496 20579 react: 18.3.1 ··· 21683 20766 21684 20767 wordwrap@1.0.0: {} 21685 20768 21686 - workerd@1.20240403.0: 21687 - optionalDependencies: 21688 - '@cloudflare/workerd-darwin-64': 1.20240403.0 21689 - '@cloudflare/workerd-darwin-arm64': 1.20240403.0 21690 - '@cloudflare/workerd-linux-64': 1.20240403.0 21691 - '@cloudflare/workerd-linux-arm64': 1.20240403.0 21692 - '@cloudflare/workerd-windows-64': 1.20240403.0 21693 - 21694 - workerd@1.20240512.0: 21695 - optionalDependencies: 21696 - '@cloudflare/workerd-darwin-64': 1.20240512.0 21697 - '@cloudflare/workerd-darwin-arm64': 1.20240512.0 21698 - '@cloudflare/workerd-linux-64': 1.20240512.0 21699 - '@cloudflare/workerd-linux-arm64': 1.20240512.0 21700 - '@cloudflare/workerd-windows-64': 1.20240512.0 21701 - 21702 - wrangler@3.47.0(@cloudflare/workers-types@4.20240403.0)(bufferutil@4.0.8)(utf-8-validate@6.0.4): 21703 - dependencies: 21704 - '@cloudflare/kv-asset-handler': 0.3.1 21705 - '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) 21706 - '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) 21707 - blake3-wasm: 2.1.5 21708 - chokidar: 3.5.3 21709 - esbuild: 0.17.19 21710 - miniflare: 3.20240403.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) 21711 - nanoid: 3.3.6 21712 - path-to-regexp: 6.2.1 21713 - resolve: 1.22.8 21714 - resolve.exports: 2.0.2 21715 - selfsigned: 2.4.1 21716 - source-map: 0.6.1 21717 - xxhash-wasm: 1.0.2 21718 - optionalDependencies: 21719 - '@cloudflare/workers-types': 4.20240403.0 21720 - fsevents: 2.3.3 21721 - transitivePeerDependencies: 21722 - - bufferutil 21723 - - supports-color 21724 - - utf-8-validate 21725 - 21726 - wrangler@3.57.0(@cloudflare/workers-types@4.20240512.0)(bufferutil@4.0.8)(utf-8-validate@6.0.4): 21727 - dependencies: 21728 - '@cloudflare/kv-asset-handler': 0.3.2 21729 - '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) 21730 - '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) 21731 - blake3-wasm: 2.1.5 21732 - chokidar: 3.6.0 21733 - esbuild: 0.17.19 21734 - miniflare: 3.20240512.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) 21735 - nanoid: 3.3.7 21736 - path-to-regexp: 6.2.2 21737 - resolve: 1.22.8 21738 - resolve.exports: 2.0.2 21739 - selfsigned: 2.4.1 21740 - source-map: 0.6.1 21741 - xxhash-wasm: 1.0.2 21742 - optionalDependencies: 21743 - '@cloudflare/workers-types': 4.20240512.0 21744 - fsevents: 2.3.3 21745 - transitivePeerDependencies: 21746 - - bufferutil 21747 - - supports-color 21748 - - utf-8-validate 21749 - 21750 20769 wrap-ansi@6.2.0: 21751 20770 dependencies: 21752 20771 ansi-styles: 4.3.0 ··· 21772 20791 graceful-fs: 4.2.11 21773 20792 imurmurhash: 0.1.4 21774 20793 signal-exit: 3.0.7 21775 - 21776 - ws@8.14.2(bufferutil@4.0.8)(utf-8-validate@6.0.4): 21777 - optionalDependencies: 21778 - bufferutil: 4.0.8 21779 - utf-8-validate: 6.0.4 21780 20794 21781 20795 ws@8.17.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): 21782 20796 optionalDependencies: ··· 21792 20806 21793 20807 xtend@4.0.2: {} 21794 20808 21795 - xxhash-wasm@1.0.2: {} 21796 - 21797 20809 y-codemirror.next@0.3.5(@codemirror/state@6.4.1)(@codemirror/view@6.28.4)(yjs@13.6.18): 21798 20810 dependencies: 21799 20811 '@codemirror/state': 6.4.1 ··· 21839 20851 yn@3.1.1: {} 21840 20852 21841 20853 yocto-queue@0.1.0: {} 21842 - 21843 - youch@3.3.3: 21844 - dependencies: 21845 - cookie: 0.5.0 21846 - mustache: 4.2.0 21847 - stacktracey: 2.1.8 21848 20854 21849 20855 zhead@2.2.4: {} 21850 20856