Openstatus www.openstatus.dev

🚧 wip database schema (#6)

* 🚧 wip database schema

* 🚧 wip database schema

* 🚧 wip database schema

* 🚧 wip database schema

* πŸ—ƒοΈupdate database

authored by

Thibault Le Ouay and committed by
GitHub
c6f8e4da a9df6d40

+999 -265
-2
apps/web/.env.example
··· 17 17 UPSTASH_REDIS_REST_URL= 18 18 UPSTASH_REDIS_REST_TOKEN= 19 19 20 - DATABASE_URL=postgres://postgres:postgres@localhost:5432/nextjs-prisma 21 - 22 20 RESEND_API_KEY='api-key'
+8 -3
packages/db/drizzle.config.ts
··· 1 + import "dotenv/config"; 1 2 import type { Config } from "drizzle-kit"; 2 - import { env } from "./env.mjs"; 3 + 4 + import { env } from "./env.mjs"; 3 5 4 6 export default { 7 + driver: "mysql2", 5 8 schema: "./src/schema/index.ts", 6 9 out: "./drizzle", 7 - connectionString: env.DATABASE_URL || "", 8 - } satisfies Config; 10 + dbCredentials: { 11 + connectionString: env.DATABASE_URL, 12 + }, 13 + } satisfies Config;
-2
packages/db/drizzle/0000_cute_umar.sql
··· 1 - CREATE TABLE `user` ( 2 - `id` varchar(256) PRIMARY KEY NOT NULL);
+45
packages/db/drizzle/0000_superb_hercules.sql
··· 1 + CREATE TABLE `incident` ( 2 + `id` int AUTO_INCREMENT PRIMARY KEY NOT NULL, 3 + `status` enum('resolved','investigatin',''), 4 + `page_id` int, 5 + `created_at` timestamp NOT NULL DEFAULT (now()), 6 + `updated_at` timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP); 7 + --> statement-breakpoint 8 + CREATE TABLE `incidentUpdate` ( 9 + `id` int AUTO_INCREMENT PRIMARY KEY NOT NULL, 10 + `incident_date` datetime, 11 + `title` varchar(256), 12 + `message` text, 13 + `incident_id` int NOT NULL, 14 + `created_at` timestamp NOT NULL DEFAULT (now()), 15 + `updated_at` timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP); 16 + --> statement-breakpoint 17 + CREATE TABLE `page` ( 18 + `id` int AUTO_INCREMENT PRIMARY KEY NOT NULL, 19 + `workspace_id` int NOT NULL, 20 + `slug` varchar(256), 21 + `custom_domain` varchar(256), 22 + `created_at` timestamp NOT NULL DEFAULT (now()), 23 + `updated_at` timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP); 24 + --> statement-breakpoint 25 + CREATE TABLE `monitor` ( 26 + `id` int AUTO_INCREMENT PRIMARY KEY NOT NULL, 27 + `job_type` enum('website','cron','other') NOT NULL DEFAULT 'other', 28 + `periodicity` enum('1m','5m','10m','30m','1h','other') NOT NULL DEFAULT 'other', 29 + `status` enum('active','inactive') NOT NULL DEFAULT 'inactive', 30 + `url` varchar(512), 31 + `page_id` int NOT NULL, 32 + `created_at` timestamp NOT NULL DEFAULT (now()), 33 + `updated_at` timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP); 34 + --> statement-breakpoint 35 + CREATE TABLE `user` ( 36 + `id` int AUTO_INCREMENT PRIMARY KEY NOT NULL, 37 + `tenant_id` varchar(256), 38 + `created_at` timestamp NOT NULL DEFAULT (now()), 39 + `updated_at` timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP); 40 + --> statement-breakpoint 41 + CREATE TABLE `workspace` ( 42 + `id` int AUTO_INCREMENT PRIMARY KEY NOT NULL, 43 + `stripe_id` varchar(256), 44 + `created_at` timestamp NOT NULL DEFAULT (now()), 45 + `updated_at` timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP);
+287 -1
packages/db/drizzle/meta/0000_snapshot.json
··· 1 1 { 2 2 "version": "5", 3 3 "dialect": "mysql", 4 - "id": "17715730-c208-4b85-a6f7-4a3f0aba8c1b", 4 + "id": "b1ca2235-8b2f-4bb6-b382-484f98713c32", 5 5 "prevId": "00000000-0000-0000-0000-000000000000", 6 6 "tables": { 7 + "incident": { 8 + "name": "incident", 9 + "columns": { 10 + "id": { 11 + "name": "id", 12 + "type": "int", 13 + "primaryKey": true, 14 + "notNull": true, 15 + "autoincrement": true 16 + }, 17 + "status": { 18 + "name": "status", 19 + "type": "enum('resolved','investigatin','')", 20 + "primaryKey": false, 21 + "notNull": false, 22 + "autoincrement": false 23 + }, 24 + "page_id": { 25 + "name": "page_id", 26 + "type": "int", 27 + "primaryKey": false, 28 + "notNull": false, 29 + "autoincrement": false 30 + }, 31 + "created_at": { 32 + "name": "created_at", 33 + "type": "timestamp", 34 + "primaryKey": false, 35 + "notNull": true, 36 + "autoincrement": false, 37 + "default": "(now())" 38 + }, 39 + "updated_at": { 40 + "name": "updated_at", 41 + "type": "timestamp", 42 + "primaryKey": false, 43 + "notNull": true, 44 + "autoincrement": false, 45 + "onUpdate": true 46 + } 47 + }, 48 + "indexes": {}, 49 + "foreignKeys": {}, 50 + "compositePrimaryKeys": {} 51 + }, 52 + "incidentUpdate": { 53 + "name": "incidentUpdate", 54 + "columns": { 55 + "id": { 56 + "name": "id", 57 + "type": "int", 58 + "primaryKey": true, 59 + "notNull": true, 60 + "autoincrement": true 61 + }, 62 + "incident_date": { 63 + "name": "incident_date", 64 + "type": "datetime", 65 + "primaryKey": false, 66 + "notNull": false, 67 + "autoincrement": false 68 + }, 69 + "title": { 70 + "name": "title", 71 + "type": "varchar(256)", 72 + "primaryKey": false, 73 + "notNull": false, 74 + "autoincrement": false 75 + }, 76 + "message": { 77 + "name": "message", 78 + "type": "text", 79 + "primaryKey": false, 80 + "notNull": false, 81 + "autoincrement": false 82 + }, 83 + "incident_id": { 84 + "name": "incident_id", 85 + "type": "int", 86 + "primaryKey": false, 87 + "notNull": true, 88 + "autoincrement": false 89 + }, 90 + "created_at": { 91 + "name": "created_at", 92 + "type": "timestamp", 93 + "primaryKey": false, 94 + "notNull": true, 95 + "autoincrement": false, 96 + "default": "(now())" 97 + }, 98 + "updated_at": { 99 + "name": "updated_at", 100 + "type": "timestamp", 101 + "primaryKey": false, 102 + "notNull": true, 103 + "autoincrement": false, 104 + "onUpdate": true 105 + } 106 + }, 107 + "indexes": {}, 108 + "foreignKeys": {}, 109 + "compositePrimaryKeys": {} 110 + }, 111 + "page": { 112 + "name": "page", 113 + "columns": { 114 + "id": { 115 + "name": "id", 116 + "type": "int", 117 + "primaryKey": true, 118 + "notNull": true, 119 + "autoincrement": true 120 + }, 121 + "workspace_id": { 122 + "name": "workspace_id", 123 + "type": "int", 124 + "primaryKey": false, 125 + "notNull": true, 126 + "autoincrement": false 127 + }, 128 + "slug": { 129 + "name": "slug", 130 + "type": "varchar(256)", 131 + "primaryKey": false, 132 + "notNull": false, 133 + "autoincrement": false 134 + }, 135 + "custom_domain": { 136 + "name": "custom_domain", 137 + "type": "varchar(256)", 138 + "primaryKey": false, 139 + "notNull": false, 140 + "autoincrement": false 141 + }, 142 + "created_at": { 143 + "name": "created_at", 144 + "type": "timestamp", 145 + "primaryKey": false, 146 + "notNull": true, 147 + "autoincrement": false, 148 + "default": "(now())" 149 + }, 150 + "updated_at": { 151 + "name": "updated_at", 152 + "type": "timestamp", 153 + "primaryKey": false, 154 + "notNull": true, 155 + "autoincrement": false, 156 + "onUpdate": true 157 + } 158 + }, 159 + "indexes": {}, 160 + "foreignKeys": {}, 161 + "compositePrimaryKeys": {} 162 + }, 163 + "monitor": { 164 + "name": "monitor", 165 + "columns": { 166 + "id": { 167 + "name": "id", 168 + "type": "int", 169 + "primaryKey": true, 170 + "notNull": true, 171 + "autoincrement": true 172 + }, 173 + "job_type": { 174 + "name": "job_type", 175 + "type": "enum('website','cron','other')", 176 + "primaryKey": false, 177 + "notNull": true, 178 + "autoincrement": false, 179 + "default": "'other'" 180 + }, 181 + "periodicity": { 182 + "name": "periodicity", 183 + "type": "enum('1m','5m','10m','30m','1h','other')", 184 + "primaryKey": false, 185 + "notNull": true, 186 + "autoincrement": false, 187 + "default": "'other'" 188 + }, 189 + "status": { 190 + "name": "status", 191 + "type": "enum('active','inactive')", 192 + "primaryKey": false, 193 + "notNull": true, 194 + "autoincrement": false, 195 + "default": "'inactive'" 196 + }, 197 + "url": { 198 + "name": "url", 199 + "type": "varchar(512)", 200 + "primaryKey": false, 201 + "notNull": false, 202 + "autoincrement": false 203 + }, 204 + "page_id": { 205 + "name": "page_id", 206 + "type": "int", 207 + "primaryKey": false, 208 + "notNull": true, 209 + "autoincrement": false 210 + }, 211 + "created_at": { 212 + "name": "created_at", 213 + "type": "timestamp", 214 + "primaryKey": false, 215 + "notNull": true, 216 + "autoincrement": false, 217 + "default": "(now())" 218 + }, 219 + "updated_at": { 220 + "name": "updated_at", 221 + "type": "timestamp", 222 + "primaryKey": false, 223 + "notNull": true, 224 + "autoincrement": false, 225 + "onUpdate": true 226 + } 227 + }, 228 + "indexes": {}, 229 + "foreignKeys": {}, 230 + "compositePrimaryKeys": {} 231 + }, 7 232 "user": { 8 233 "name": "user", 9 234 "columns": { 10 235 "id": { 11 236 "name": "id", 237 + "type": "int", 238 + "primaryKey": true, 239 + "notNull": true, 240 + "autoincrement": true 241 + }, 242 + "tenant_id": { 243 + "name": "tenant_id", 12 244 "type": "varchar(256)", 245 + "primaryKey": false, 246 + "notNull": false, 247 + "autoincrement": false 248 + }, 249 + "created_at": { 250 + "name": "created_at", 251 + "type": "timestamp", 252 + "primaryKey": false, 253 + "notNull": true, 254 + "autoincrement": false, 255 + "default": "(now())" 256 + }, 257 + "updated_at": { 258 + "name": "updated_at", 259 + "type": "timestamp", 260 + "primaryKey": false, 261 + "notNull": true, 262 + "autoincrement": false, 263 + "onUpdate": true 264 + } 265 + }, 266 + "indexes": {}, 267 + "foreignKeys": {}, 268 + "compositePrimaryKeys": {} 269 + }, 270 + "workspace": { 271 + "name": "workspace", 272 + "columns": { 273 + "id": { 274 + "name": "id", 275 + "type": "int", 13 276 "primaryKey": true, 14 277 "notNull": true, 278 + "autoincrement": true 279 + }, 280 + "stripe_id": { 281 + "name": "stripe_id", 282 + "type": "varchar(256)", 283 + "primaryKey": false, 284 + "notNull": false, 15 285 "autoincrement": false 286 + }, 287 + "created_at": { 288 + "name": "created_at", 289 + "type": "timestamp", 290 + "primaryKey": false, 291 + "notNull": true, 292 + "autoincrement": false, 293 + "default": "(now())" 294 + }, 295 + "updated_at": { 296 + "name": "updated_at", 297 + "type": "timestamp", 298 + "primaryKey": false, 299 + "notNull": true, 300 + "autoincrement": false, 301 + "onUpdate": true 16 302 } 17 303 }, 18 304 "indexes": {},
+3 -3
packages/db/drizzle/meta/_journal.json
··· 5 5 { 6 6 "idx": 0, 7 7 "version": "5", 8 - "when": 1687281173158, 9 - "tag": "0000_cute_umar", 10 - "breakpoints": false 8 + "when": 1687764025255, 9 + "tag": "0000_superb_hercules", 10 + "breakpoints": true 11 11 } 12 12 ] 13 13 }
+1 -1
packages/db/env.mjs
··· 1 - import { createEnv } from "@t3-oss/env-nextjs"; 1 + import { createEnv } from "@t3-oss/env-core"; 2 2 import { z } from "zod"; 3 3 4 4 export const env = createEnv({
+4 -3
packages/db/package.json
··· 9 9 }, 10 10 "dependencies": { 11 11 "@planetscale/database": "1.7.0", 12 - "@t3-oss/env-nextjs": "0.4.1", 13 - "drizzle-orm": "0.26.5", 12 + "@t3-oss/env-core": "0.4.1", 13 + "dotenv": "16.3.1", 14 + "drizzle-orm": "0.27.0", 14 15 "zod": "3.21.4" 15 16 }, 16 17 "devDependencies": { 17 18 "@types/node": "20.3.1", 18 - "drizzle-kit": "0.18.1", 19 + "drizzle-kit": "0.19.2", 19 20 "tsconfig": "workspace:^", 20 21 "typescript": "5.1.3" 21 22 },
+2 -3
packages/db/src/db.ts
··· 2 2 import { drizzle } from "drizzle-orm/planetscale-serverless"; 3 3 4 4 import { connect } from "@planetscale/database"; 5 + import { env } from "../env.mjs"; 5 6 6 7 const config = { 7 - host: process.env.DB_HOST, 8 - username: process.env.DB_USERNAME, 9 - password: process.env.DB_PASSWORD, 8 + url: env.DATABASE_URL, 10 9 }; 11 10 12 11 const connection = connect(config);
+49
packages/db/src/schema/incident.ts
··· 1 + import { relations } from "drizzle-orm"; 2 + import { 3 + datetime, 4 + mysqlTable, 5 + varchar, 6 + text, 7 + mysqlEnum, 8 + int, 9 + timestamp, 10 + } from "drizzle-orm/mysql-core"; 11 + import { page } from "./page"; 12 + 13 + export const incident = mysqlTable("incident", { 14 + id: int("id").autoincrement().primaryKey(), 15 + 16 + status: mysqlEnum("status", ["resolved", "investigatin", ""]), 17 + 18 + pageId: int("page_id"), 19 + 20 + createdAt: timestamp("created_at").notNull().defaultNow(), 21 + updatedAt: timestamp("updated_at").notNull().onUpdateNow(), 22 + }); 23 + 24 + export const incidentUpdate = mysqlTable("incidentUpdate", { 25 + id: int("id").autoincrement().primaryKey(), 26 + 27 + date: datetime("incident_date"), 28 + title: varchar("title", { length: 256 }), // title of the incident 29 + message: text("message"), // where we can write the incident message 30 + 31 + incidentId: int("incident_id").notNull(), 32 + createdAt: timestamp("created_at").notNull().defaultNow(), 33 + updatedAt: timestamp("updated_at").notNull().onUpdateNow(), 34 + }); 35 + 36 + export const incidentRelations = relations(incident, ({ one, many }) => ({ 37 + page: one(page, { 38 + fields: [incident.pageId], 39 + references: [page.id], 40 + }), 41 + incidentUpdates: many(incidentUpdate), 42 + })); 43 + 44 + export const incidentUpdateRelations = relations(incidentUpdate, ({ one }) => ({ 45 + incident: one(incident, { 46 + fields: [incidentUpdate.incidentId], 47 + references: [incident.id], 48 + }), 49 + }));
+4
packages/db/src/schema/index.ts
··· 1 + export * from "./incident"; 2 + export * from "./page"; 3 + export * from "./monitor"; 1 4 export * from "./user"; 5 + export * from "./workspace";
+37
packages/db/src/schema/monitor.ts
··· 1 + import { 2 + datetime, 3 + mysqlEnum, 4 + mysqlTable, 5 + int, 6 + varchar, 7 + timestamp, 8 + } from "drizzle-orm/mysql-core"; 9 + import { relations } from "drizzle-orm"; 10 + import { page } from "./page"; 11 + 12 + export const monitor = mysqlTable("monitor", { 13 + id: int("id").autoincrement().primaryKey(), 14 + jobType: mysqlEnum("job_type", ["website", "cron", "other"]) 15 + .notNull() 16 + .default("other"), 17 + frequency: mysqlEnum("periodicity", ["1m", "5m", "10m", "30m", "1h", "other"]) 18 + .notNull() 19 + .default("other"), 20 + status: mysqlEnum("status", ["active", "inactive"]) 21 + .notNull() 22 + .default("inactive"), 23 + 24 + url: varchar("url", { length: 512 }), 25 + 26 + pageId: int("page_id").notNull(), 27 + 28 + createdAt: timestamp("created_at").notNull().defaultNow(), 29 + updateddAt: timestamp("updated_at").notNull().onUpdateNow(), 30 + }); 31 + 32 + export const monitorRelation = relations(monitor, ({ one }) => ({ 33 + page: one(page, { 34 + fields: [monitor.pageId], 35 + references: [page.id], 36 + }), 37 + }));
+27
packages/db/src/schema/page.ts
··· 1 + import { mysqlTable, varchar, int, timestamp } from "drizzle-orm/mysql-core"; 2 + import { relations } from "drizzle-orm"; 3 + import { incident } from "./incident"; 4 + import { monitor } from "./monitor"; 5 + 6 + export const page = mysqlTable("page", { 7 + id: int("id").autoincrement().primaryKey(), 8 + 9 + workspaceId: int("workspace_id").notNull(), 10 + 11 + slug: varchar("slug", { length: 256 }), // which is used for https://slug.openstatus.dev 12 + customDomain: varchar("custom_domain", { length: 256 }), 13 + 14 + // We should store settings of the page 15 + 16 + createdAt: timestamp("created_at").notNull().defaultNow(), 17 + updatedAt: timestamp("updated_at").notNull().onUpdateNow(), 18 + }); 19 + 20 + export const pageRelations = relations(page, ({ many, one }) => ({ 21 + incidents: many(incident), 22 + workspace: one(page, { 23 + fields: [page.workspaceId], 24 + references: [page.id], 25 + }), 26 + monitors: many(monitor), 27 + }));
+13 -3
packages/db/src/schema/user.ts
··· 1 - import { mysqlTable, varchar } from "drizzle-orm/mysql-core"; 1 + import { relations } from "drizzle-orm"; 2 + import { mysqlTable, int, varchar, timestamp } from "drizzle-orm/mysql-core"; 3 + import { workspace } from "./workspace"; 2 4 3 - export const policies = mysqlTable("user", { 4 - id: varchar("id", { length: 256 }).primaryKey(), 5 + export const user = mysqlTable("user", { 6 + id: int("id").autoincrement().primaryKey(), 7 + tenantId: varchar("tenant_id", { length: 256 }), // the clerk User Id 8 + 9 + createdAt: timestamp("created_at").notNull().defaultNow(), 10 + updatedAt: timestamp("updated_at").notNull().onUpdateNow(), 5 11 }); 12 + 13 + export const userRelations = relations(user, ({ many }) => ({ 14 + workspace: many(workspace), 15 + }));
+18
packages/db/src/schema/workspace.ts
··· 1 + import { mysqlTable, varchar, int, timestamp } from "drizzle-orm/mysql-core"; 2 + import { relations } from "drizzle-orm"; 3 + import { page } from "./page"; 4 + import { user } from "./user"; 5 + 6 + export const workspace = mysqlTable("workspace", { 7 + id: int("id").autoincrement().primaryKey(), 8 + 9 + stripeId: varchar("stripe_id", { length: 256 }), 10 + 11 + createdAt: timestamp("created_at").notNull().defaultNow(), 12 + updatedAt: timestamp("updated_at").notNull().onUpdateNow(), 13 + }); 14 + 15 + export const workspaceRelations = relations(workspace, ({ many }) => ({ 16 + page: many(page), 17 + user: many(user), 18 + }));
+1 -4
packages/db/tsconfig.json
··· 4 4 "exclude": ["dist"], 5 5 "compilerOptions": { 6 6 "outDir": "dist", 7 - "target": "es2017", 7 + "target": "es2021", 8 8 "lib": ["dom", "dom.iterable", "esnext"], 9 9 "allowJs": true, 10 10 "checkJs": true, ··· 16 16 "module": "esnext", 17 17 "moduleResolution": "node", 18 18 "resolveJsonModule": true, 19 - "isolatedModules": true, 20 - "jsx": "preserve", 21 - "incremental": true, 22 19 "noUncheckedIndexedAccess": true 23 20 }, 24 21 "include": ["src", "*.ts", "env.mjs"]
+500 -240
pnpm-lock.yaml
··· 22 22 version: 2.8.8 23 23 turbo: 24 24 specifier: latest 25 - version: 1.10.3 25 + version: 1.10.5 26 26 typescript: 27 27 specifier: 5.1.3 28 28 version: 5.1.3 ··· 151 151 '@planetscale/database': 152 152 specifier: 1.7.0 153 153 version: 1.7.0 154 - '@t3-oss/env-nextjs': 154 + '@t3-oss/env-core': 155 155 specifier: 0.4.1 156 156 version: 0.4.1(typescript@5.1.3)(zod@3.21.4) 157 + dotenv: 158 + specifier: 16.3.1 159 + version: 16.3.1 157 160 drizzle-orm: 158 - specifier: 0.26.5 159 - version: 0.26.5(@planetscale/database@1.7.0) 161 + specifier: 0.27.0 162 + version: 0.27.0(@planetscale/database@1.7.0) 160 163 zod: 161 164 specifier: 3.21.4 162 165 version: 3.21.4 ··· 165 168 specifier: 20.3.1 166 169 version: 20.3.1 167 170 drizzle-kit: 168 - specifier: 0.18.1 169 - version: 0.18.1 171 + specifier: 0.19.2 172 + version: 0.19.2 170 173 tsconfig: 171 174 specifier: workspace:^ 172 175 version: link:../tsconfig ··· 340 343 '@jridgewell/trace-mapping': 0.3.9 341 344 dev: true 342 345 343 - /@esbuild/android-arm@0.15.18: 344 - resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} 346 + /@esbuild-kit/core-utils@3.1.0: 347 + resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} 348 + dependencies: 349 + esbuild: 0.17.19 350 + source-map-support: 0.5.21 351 + dev: true 352 + 353 + /@esbuild-kit/esm-loader@2.5.5: 354 + resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} 355 + dependencies: 356 + '@esbuild-kit/core-utils': 3.1.0 357 + get-tsconfig: 4.6.0 358 + dev: true 359 + 360 + /@esbuild/android-arm64@0.17.19: 361 + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} 362 + engines: {node: '>=12'} 363 + cpu: [arm64] 364 + os: [android] 365 + requiresBuild: true 366 + dev: true 367 + optional: true 368 + 369 + /@esbuild/android-arm64@0.18.7: 370 + resolution: {integrity: sha512-o0VVztxJPkfDYbaU1tA1G1iwKiBh6Zt3bX5OdHDoITMFdRg+Mgdt3nHXMEtNlIjYA/Xn6hmlOYDHjJfQUduPuw==} 371 + engines: {node: '>=12'} 372 + cpu: [arm64] 373 + os: [android] 374 + requiresBuild: true 375 + dev: true 376 + optional: true 377 + 378 + /@esbuild/android-arm@0.17.19: 379 + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} 380 + engines: {node: '>=12'} 381 + cpu: [arm] 382 + os: [android] 383 + requiresBuild: true 384 + dev: true 385 + optional: true 386 + 387 + /@esbuild/android-arm@0.18.7: 388 + resolution: {integrity: sha512-nDQ7AC5WVKOqxaip/E5YbaRgnilBMsoGKjoGLCeCOYNePaBCBDwJsLfa2fn3FEtktiLaAF990W592avsHjJ/Vg==} 345 389 engines: {node: '>=12'} 346 390 cpu: [arm] 347 391 os: [android] ··· 349 393 dev: true 350 394 optional: true 351 395 352 - /@esbuild/linux-loong64@0.15.18: 353 - resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} 396 + /@esbuild/android-x64@0.17.19: 397 + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} 398 + engines: {node: '>=12'} 399 + cpu: [x64] 400 + os: [android] 401 + requiresBuild: true 402 + dev: true 403 + optional: true 404 + 405 + /@esbuild/android-x64@0.18.7: 406 + resolution: {integrity: sha512-ga8Dtpb01GorCi1dk3jEwDk3AK/3F+cR5P+//Tl0ERL2K2pK/J1f3t8hcJ+RRt3UYBV/uTL9GEnx7touX0KRPQ==} 407 + engines: {node: '>=12'} 408 + cpu: [x64] 409 + os: [android] 410 + requiresBuild: true 411 + dev: true 412 + optional: true 413 + 414 + /@esbuild/darwin-arm64@0.17.19: 415 + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} 416 + engines: {node: '>=12'} 417 + cpu: [arm64] 418 + os: [darwin] 419 + requiresBuild: true 420 + dev: true 421 + optional: true 422 + 423 + /@esbuild/darwin-arm64@0.18.7: 424 + resolution: {integrity: sha512-FVDOdfgyGOOISpd0b+UtA6YNbu5+RzZu7kDztjVsA/iZhGnyxbCR/vZ+B2j5yxbMZ9j3iz5uFiHIq1sl6nrZ0Q==} 425 + engines: {node: '>=12'} 426 + cpu: [arm64] 427 + os: [darwin] 428 + requiresBuild: true 429 + dev: true 430 + optional: true 431 + 432 + /@esbuild/darwin-x64@0.17.19: 433 + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} 434 + engines: {node: '>=12'} 435 + cpu: [x64] 436 + os: [darwin] 437 + requiresBuild: true 438 + dev: true 439 + optional: true 440 + 441 + /@esbuild/darwin-x64@0.18.7: 442 + resolution: {integrity: sha512-w7aeD1UjDFXqyrZQLBIPYGmLR+gJsl+7QSwmSz+nVrCZOB7cyWEkIjCF8s4inUD3ja3WtKUIqzX5S4qDnU5q7Q==} 443 + engines: {node: '>=12'} 444 + cpu: [x64] 445 + os: [darwin] 446 + requiresBuild: true 447 + dev: true 448 + optional: true 449 + 450 + /@esbuild/freebsd-arm64@0.17.19: 451 + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} 452 + engines: {node: '>=12'} 453 + cpu: [arm64] 454 + os: [freebsd] 455 + requiresBuild: true 456 + dev: true 457 + optional: true 458 + 459 + /@esbuild/freebsd-arm64@0.18.7: 460 + resolution: {integrity: sha512-wKyySDdoKVOPn9eDci/b3eP3EJVAVXC3b2CiaHphhCKfh4n5pWLwj7Ue96anK1HnpcZ0Uti8Sw9xq3Im0earHA==} 461 + engines: {node: '>=12'} 462 + cpu: [arm64] 463 + os: [freebsd] 464 + requiresBuild: true 465 + dev: true 466 + optional: true 467 + 468 + /@esbuild/freebsd-x64@0.17.19: 469 + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} 470 + engines: {node: '>=12'} 471 + cpu: [x64] 472 + os: [freebsd] 473 + requiresBuild: true 474 + dev: true 475 + optional: true 476 + 477 + /@esbuild/freebsd-x64@0.18.7: 478 + resolution: {integrity: sha512-rbfjbgSvzWRjQMKIntogK1d2oIAiA/ZVayXfK1WjcIIMQYLg74sAoT8CZBj30+bwn13YR0t6lgIxA1mJaS2Lhw==} 479 + engines: {node: '>=12'} 480 + cpu: [x64] 481 + os: [freebsd] 482 + requiresBuild: true 483 + dev: true 484 + optional: true 485 + 486 + /@esbuild/linux-arm64@0.17.19: 487 + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} 488 + engines: {node: '>=12'} 489 + cpu: [arm64] 490 + os: [linux] 491 + requiresBuild: true 492 + dev: true 493 + optional: true 494 + 495 + /@esbuild/linux-arm64@0.18.7: 496 + resolution: {integrity: sha512-cwfxKYroaD5BZ42NsfxdVU1issD2NxcuJHlCNsN5LtWq+kZMpwmIVDCJxKlgLIG7zH/4yq8lTuZJurxq058GsA==} 497 + engines: {node: '>=12'} 498 + cpu: [arm64] 499 + os: [linux] 500 + requiresBuild: true 501 + dev: true 502 + optional: true 503 + 504 + /@esbuild/linux-arm@0.17.19: 505 + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} 506 + engines: {node: '>=12'} 507 + cpu: [arm] 508 + os: [linux] 509 + requiresBuild: true 510 + dev: true 511 + optional: true 512 + 513 + /@esbuild/linux-arm@0.18.7: 514 + resolution: {integrity: sha512-GpUBqqJnQ+7qdb7NqKNVj7TgD2JnLrEdzPtatPow77Me/EQ01GE1tHKZLePqhf5thdLDb5Se2Kcf4D9WTbSjmw==} 515 + engines: {node: '>=12'} 516 + cpu: [arm] 517 + os: [linux] 518 + requiresBuild: true 519 + dev: true 520 + optional: true 521 + 522 + /@esbuild/linux-ia32@0.17.19: 523 + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} 524 + engines: {node: '>=12'} 525 + cpu: [ia32] 526 + os: [linux] 527 + requiresBuild: true 528 + dev: true 529 + optional: true 530 + 531 + /@esbuild/linux-ia32@0.18.7: 532 + resolution: {integrity: sha512-SsvsGStwbArBcB/XNh+2MvUtgOLp0CR6Hn1PBWcdApCuAaMibHCDyzHS06+u/YOD1UpeXFHJZphix61HeVMH/w==} 533 + engines: {node: '>=12'} 534 + cpu: [ia32] 535 + os: [linux] 536 + requiresBuild: true 537 + dev: true 538 + optional: true 539 + 540 + /@esbuild/linux-loong64@0.17.19: 541 + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} 354 542 engines: {node: '>=12'} 355 543 cpu: [loong64] 356 544 os: [linux] ··· 358 546 dev: true 359 547 optional: true 360 548 549 + /@esbuild/linux-loong64@0.18.7: 550 + resolution: {integrity: sha512-WOqQ0eaWGE/e9vmbxFT2exbWuXxHuG8ld0fN7oX5f0v7W6oveUIF4DLJYVae93t1+Icv5R0NBo8wv/o4hEvxBQ==} 551 + engines: {node: '>=12'} 552 + cpu: [loong64] 553 + os: [linux] 554 + requiresBuild: true 555 + dev: true 556 + optional: true 557 + 558 + /@esbuild/linux-mips64el@0.17.19: 559 + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} 560 + engines: {node: '>=12'} 561 + cpu: [mips64el] 562 + os: [linux] 563 + requiresBuild: true 564 + dev: true 565 + optional: true 566 + 567 + /@esbuild/linux-mips64el@0.18.7: 568 + resolution: {integrity: sha512-/dKQ3OLr2Tmj0kuf4ZJioD+qnADUEJSBaiuDbk8v5602HnNNBSGHPrEB6S8PSb8y8jWsX9MMnxqk5KpLTf86OQ==} 569 + engines: {node: '>=12'} 570 + cpu: [mips64el] 571 + os: [linux] 572 + requiresBuild: true 573 + dev: true 574 + optional: true 575 + 576 + /@esbuild/linux-ppc64@0.17.19: 577 + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} 578 + engines: {node: '>=12'} 579 + cpu: [ppc64] 580 + os: [linux] 581 + requiresBuild: true 582 + dev: true 583 + optional: true 584 + 585 + /@esbuild/linux-ppc64@0.18.7: 586 + resolution: {integrity: sha512-x/k1+daIqiGJt0Yhr5llFJ/zkRg1XAqcS2ntAYzS3pHogO8oIyc+LjsINgVyFCeFMFUZ9Ae9W5z2Ib05bMum3g==} 587 + engines: {node: '>=12'} 588 + cpu: [ppc64] 589 + os: [linux] 590 + requiresBuild: true 591 + dev: true 592 + optional: true 593 + 594 + /@esbuild/linux-riscv64@0.17.19: 595 + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} 596 + engines: {node: '>=12'} 597 + cpu: [riscv64] 598 + os: [linux] 599 + requiresBuild: true 600 + dev: true 601 + optional: true 602 + 603 + /@esbuild/linux-riscv64@0.18.7: 604 + resolution: {integrity: sha512-LegTDzK9gL/sTkiZUGYLigTISwppZJvQL3MRmFgXgHrj3IzdWkPgMwEtOItK3YiFzhBSSNyKA0mSKEg4UuK8JQ==} 605 + engines: {node: '>=12'} 606 + cpu: [riscv64] 607 + os: [linux] 608 + requiresBuild: true 609 + dev: true 610 + optional: true 611 + 612 + /@esbuild/linux-s390x@0.17.19: 613 + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} 614 + engines: {node: '>=12'} 615 + cpu: [s390x] 616 + os: [linux] 617 + requiresBuild: true 618 + dev: true 619 + optional: true 620 + 621 + /@esbuild/linux-s390x@0.18.7: 622 + resolution: {integrity: sha512-fjBl45O8ivc3Nl14hdGpbHoVtdHnYGsLpwnlv2rNyb5NOsgY3Y8EhVe/fqR9ndHgO4eL68knKxkrRveEJq+v1g==} 623 + engines: {node: '>=12'} 624 + cpu: [s390x] 625 + os: [linux] 626 + requiresBuild: true 627 + dev: true 628 + optional: true 629 + 630 + /@esbuild/linux-x64@0.17.19: 631 + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} 632 + engines: {node: '>=12'} 633 + cpu: [x64] 634 + os: [linux] 635 + requiresBuild: true 636 + dev: true 637 + optional: true 638 + 639 + /@esbuild/linux-x64@0.18.7: 640 + resolution: {integrity: sha512-apYLJsg3wd3hW8nEt7H++8c8rTDvwXxX7h7YeI89g1RDPCT2QSXTO/xT1BCvFa/BFFoau+yvepQg2o5556FIWQ==} 641 + engines: {node: '>=12'} 642 + cpu: [x64] 643 + os: [linux] 644 + requiresBuild: true 645 + dev: true 646 + optional: true 647 + 648 + /@esbuild/netbsd-x64@0.17.19: 649 + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} 650 + engines: {node: '>=12'} 651 + cpu: [x64] 652 + os: [netbsd] 653 + requiresBuild: true 654 + dev: true 655 + optional: true 656 + 657 + /@esbuild/netbsd-x64@0.18.7: 658 + resolution: {integrity: sha512-f82sUnrzdoW4MiiCDn1G3RSsPH8+no+okDhkHgGTGa+5F5wZCyxdXxzR6ctsiimvyPn9FIu9Zs+MesVsBRwyTw==} 659 + engines: {node: '>=12'} 660 + cpu: [x64] 661 + os: [netbsd] 662 + requiresBuild: true 663 + dev: true 664 + optional: true 665 + 666 + /@esbuild/openbsd-x64@0.17.19: 667 + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} 668 + engines: {node: '>=12'} 669 + cpu: [x64] 670 + os: [openbsd] 671 + requiresBuild: true 672 + dev: true 673 + optional: true 674 + 675 + /@esbuild/openbsd-x64@0.18.7: 676 + resolution: {integrity: sha512-1TNDfpFYhIloHeqSRbJFjHFMYtTJWgqI2+S9uCLVCWrADLl5tCe8vQKDfkM7Afz/lZyqi6qEX/Eg2KA5S7FcNQ==} 677 + engines: {node: '>=12'} 678 + cpu: [x64] 679 + os: [openbsd] 680 + requiresBuild: true 681 + dev: true 682 + optional: true 683 + 684 + /@esbuild/sunos-x64@0.17.19: 685 + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} 686 + engines: {node: '>=12'} 687 + cpu: [x64] 688 + os: [sunos] 689 + requiresBuild: true 690 + dev: true 691 + optional: true 692 + 693 + /@esbuild/sunos-x64@0.18.7: 694 + resolution: {integrity: sha512-lBhsHaM6EYCmzQCj+xeFev+dgqTgpSRqF7qXrxp5V4waFuidTBbWgqSXY5rsLRNLOyMMCh1cA+RqF8UL30oOJQ==} 695 + engines: {node: '>=12'} 696 + cpu: [x64] 697 + os: [sunos] 698 + requiresBuild: true 699 + dev: true 700 + optional: true 701 + 702 + /@esbuild/win32-arm64@0.17.19: 703 + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} 704 + engines: {node: '>=12'} 705 + cpu: [arm64] 706 + os: [win32] 707 + requiresBuild: true 708 + dev: true 709 + optional: true 710 + 711 + /@esbuild/win32-arm64@0.18.7: 712 + resolution: {integrity: sha512-p9ipv7rPKitXAAeufg5BzmyYZHZtFfrLGUX15+AxpTQqSZDAZd2wIusaOW5oONTf8RB53ujIqQw7W0QnZMuiUw==} 713 + engines: {node: '>=12'} 714 + cpu: [arm64] 715 + os: [win32] 716 + requiresBuild: true 717 + dev: true 718 + optional: true 719 + 720 + /@esbuild/win32-ia32@0.17.19: 721 + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} 722 + engines: {node: '>=12'} 723 + cpu: [ia32] 724 + os: [win32] 725 + requiresBuild: true 726 + dev: true 727 + optional: true 728 + 729 + /@esbuild/win32-ia32@0.18.7: 730 + resolution: {integrity: sha512-WmNxuE+j1wUT2rK+e1Oakx3zobS1rPpQudPytGM4nxXEGv0gpXEvnZnrykRwriNFbGVCwFJoE4txayjW76LsCw==} 731 + engines: {node: '>=12'} 732 + cpu: [ia32] 733 + os: [win32] 734 + requiresBuild: true 735 + dev: true 736 + optional: true 737 + 738 + /@esbuild/win32-x64@0.17.19: 739 + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} 740 + engines: {node: '>=12'} 741 + cpu: [x64] 742 + os: [win32] 743 + requiresBuild: true 744 + dev: true 745 + optional: true 746 + 747 + /@esbuild/win32-x64@0.18.7: 748 + resolution: {integrity: sha512-6RENfAwwL6dxQk/V1PxO/ejYRiOUVUaHi99hP3Dso/38jfNKFzU6YSSR/haJGNV/2wAHIgBMROQodna0IejAuA==} 749 + engines: {node: '>=12'} 750 + cpu: [x64] 751 + os: [win32] 752 + requiresBuild: true 753 + dev: true 754 + optional: true 755 + 361 756 /@eslint-community/eslint-utils@4.4.0(eslint@8.43.0): 362 757 resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 363 758 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} ··· 1497 1892 update-browserslist-db: 1.0.11(browserslist@4.21.9) 1498 1893 dev: true 1499 1894 1895 + /buffer-from@1.1.2: 1896 + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 1897 + dev: true 1898 + 1500 1899 /buffer@5.7.1: 1501 1900 resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 1502 1901 dependencies: ··· 1976 2375 tslib: 2.5.3 1977 2376 dev: false 1978 2377 2378 + /dotenv@16.3.1: 2379 + resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} 2380 + engines: {node: '>=12'} 2381 + dev: false 2382 + 1979 2383 /dreamopt@0.8.0: 1980 2384 resolution: {integrity: sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==} 1981 2385 engines: {node: '>=0.4.0'} ··· 1983 2387 wordwrap: 1.0.0 1984 2388 dev: true 1985 2389 1986 - /drizzle-kit@0.18.1: 1987 - resolution: {integrity: sha512-Oqie227W2Dd7FuqX4pvQWeClSvnoPCIn2cO9JueeLWZqj3tpdBhnbgt4nLHhBbOdWRlTLYwXnkTDW3hYym/gGQ==} 2390 + /drizzle-kit@0.19.2: 2391 + resolution: {integrity: sha512-o+T/+Xc6hlLj2ocvGEo3kyWgTIAFjmsVK/HdBjU7gmbolmFZHv6T3lhaAsAD4mWfOX69uC7IggCmIqLq+zcM4Q==} 1988 2392 hasBin: true 1989 2393 dependencies: 2394 + '@esbuild-kit/esm-loader': 2.5.5 1990 2395 camelcase: 7.0.1 1991 2396 chalk: 5.2.0 1992 2397 commander: 9.5.0 1993 - esbuild: 0.15.18 1994 - esbuild-register: 3.4.2(esbuild@0.15.18) 2398 + esbuild: 0.18.7 2399 + esbuild-register: 3.4.2(esbuild@0.18.7) 1995 2400 glob: 8.1.0 1996 2401 hanji: 0.0.5 1997 2402 json-diff: 0.9.0 ··· 2001 2406 - supports-color 2002 2407 dev: true 2003 2408 2004 - /drizzle-orm@0.26.5(@planetscale/database@1.7.0): 2005 - resolution: {integrity: sha512-ajjbOIoXqldWoWBn0RbVQCCT732R4Ad+gUjUrlmMpzWYwgnbG/qqPy84NhHntQ/MR//z3xfvT1Z2fD8uCAPX3g==} 2409 + /drizzle-orm@0.27.0(@planetscale/database@1.7.0): 2410 + resolution: {integrity: sha512-LGiJ0icB+wQwgbSCOvAjONY8Ec6G/EDzQQP5PmUaQYeI9OqgpVKHC2T1fFIbvk5dabWsbokJ5NOciVAxriStig==} 2006 2411 peerDependencies: 2007 2412 '@aws-sdk/client-rds-data': '>=3' 2008 2413 '@cloudflare/workers-types': '>=3' ··· 2199 2604 es6-symbol: 3.1.3 2200 2605 dev: true 2201 2606 2202 - /esbuild-android-64@0.15.18: 2203 - resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} 2204 - engines: {node: '>=12'} 2205 - cpu: [x64] 2206 - os: [android] 2207 - requiresBuild: true 2208 - dev: true 2209 - optional: true 2210 - 2211 - /esbuild-android-arm64@0.15.18: 2212 - resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} 2213 - engines: {node: '>=12'} 2214 - cpu: [arm64] 2215 - os: [android] 2216 - requiresBuild: true 2217 - dev: true 2218 - optional: true 2219 - 2220 - /esbuild-darwin-64@0.15.18: 2221 - resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} 2222 - engines: {node: '>=12'} 2223 - cpu: [x64] 2224 - os: [darwin] 2225 - requiresBuild: true 2226 - dev: true 2227 - optional: true 2228 - 2229 - /esbuild-darwin-arm64@0.15.18: 2230 - resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} 2231 - engines: {node: '>=12'} 2232 - cpu: [arm64] 2233 - os: [darwin] 2234 - requiresBuild: true 2235 - dev: true 2236 - optional: true 2237 - 2238 - /esbuild-freebsd-64@0.15.18: 2239 - resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} 2240 - engines: {node: '>=12'} 2241 - cpu: [x64] 2242 - os: [freebsd] 2243 - requiresBuild: true 2244 - dev: true 2245 - optional: true 2246 - 2247 - /esbuild-freebsd-arm64@0.15.18: 2248 - resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} 2249 - engines: {node: '>=12'} 2250 - cpu: [arm64] 2251 - os: [freebsd] 2252 - requiresBuild: true 2253 - dev: true 2254 - optional: true 2255 - 2256 - /esbuild-linux-32@0.15.18: 2257 - resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} 2258 - engines: {node: '>=12'} 2259 - cpu: [ia32] 2260 - os: [linux] 2261 - requiresBuild: true 2262 - dev: true 2263 - optional: true 2264 - 2265 - /esbuild-linux-64@0.15.18: 2266 - resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} 2267 - engines: {node: '>=12'} 2268 - cpu: [x64] 2269 - os: [linux] 2270 - requiresBuild: true 2271 - dev: true 2272 - optional: true 2273 - 2274 - /esbuild-linux-arm64@0.15.18: 2275 - resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} 2276 - engines: {node: '>=12'} 2277 - cpu: [arm64] 2278 - os: [linux] 2279 - requiresBuild: true 2280 - dev: true 2281 - optional: true 2282 - 2283 - /esbuild-linux-arm@0.15.18: 2284 - resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} 2285 - engines: {node: '>=12'} 2286 - cpu: [arm] 2287 - os: [linux] 2288 - requiresBuild: true 2289 - dev: true 2290 - optional: true 2291 - 2292 - /esbuild-linux-mips64le@0.15.18: 2293 - resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} 2294 - engines: {node: '>=12'} 2295 - cpu: [mips64el] 2296 - os: [linux] 2297 - requiresBuild: true 2298 - dev: true 2299 - optional: true 2300 - 2301 - /esbuild-linux-ppc64le@0.15.18: 2302 - resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} 2303 - engines: {node: '>=12'} 2304 - cpu: [ppc64] 2305 - os: [linux] 2306 - requiresBuild: true 2307 - dev: true 2308 - optional: true 2309 - 2310 - /esbuild-linux-riscv64@0.15.18: 2311 - resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} 2312 - engines: {node: '>=12'} 2313 - cpu: [riscv64] 2314 - os: [linux] 2315 - requiresBuild: true 2316 - dev: true 2317 - optional: true 2318 - 2319 - /esbuild-linux-s390x@0.15.18: 2320 - resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} 2321 - engines: {node: '>=12'} 2322 - cpu: [s390x] 2323 - os: [linux] 2324 - requiresBuild: true 2325 - dev: true 2326 - optional: true 2327 - 2328 - /esbuild-netbsd-64@0.15.18: 2329 - resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} 2330 - engines: {node: '>=12'} 2331 - cpu: [x64] 2332 - os: [netbsd] 2333 - requiresBuild: true 2334 - dev: true 2335 - optional: true 2336 - 2337 - /esbuild-openbsd-64@0.15.18: 2338 - resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} 2339 - engines: {node: '>=12'} 2340 - cpu: [x64] 2341 - os: [openbsd] 2342 - requiresBuild: true 2343 - dev: true 2344 - optional: true 2345 - 2346 - /esbuild-register@3.4.2(esbuild@0.15.18): 2607 + /esbuild-register@3.4.2(esbuild@0.18.7): 2347 2608 resolution: {integrity: sha512-kG/XyTDyz6+YDuyfB9ZoSIOOmgyFCH+xPRtsCa8W85HLRV5Csp+o3jWVbOSHgSLfyLc5DmP+KFDNwty4mEjC+Q==} 2348 2609 peerDependencies: 2349 2610 esbuild: '>=0.12 <1' 2350 2611 dependencies: 2351 2612 debug: 4.3.4 2352 - esbuild: 0.15.18 2613 + esbuild: 0.18.7 2353 2614 transitivePeerDependencies: 2354 2615 - supports-color 2355 2616 dev: true 2356 2617 2357 - /esbuild-sunos-64@0.15.18: 2358 - resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} 2359 - engines: {node: '>=12'} 2360 - cpu: [x64] 2361 - os: [sunos] 2362 - requiresBuild: true 2363 - dev: true 2364 - optional: true 2365 - 2366 - /esbuild-windows-32@0.15.18: 2367 - resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} 2368 - engines: {node: '>=12'} 2369 - cpu: [ia32] 2370 - os: [win32] 2371 - requiresBuild: true 2372 - dev: true 2373 - optional: true 2374 - 2375 - /esbuild-windows-64@0.15.18: 2376 - resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} 2377 - engines: {node: '>=12'} 2378 - cpu: [x64] 2379 - os: [win32] 2380 - requiresBuild: true 2381 - dev: true 2382 - optional: true 2383 - 2384 - /esbuild-windows-arm64@0.15.18: 2385 - resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} 2618 + /esbuild@0.17.19: 2619 + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} 2386 2620 engines: {node: '>=12'} 2387 - cpu: [arm64] 2388 - os: [win32] 2621 + hasBin: true 2389 2622 requiresBuild: true 2623 + optionalDependencies: 2624 + '@esbuild/android-arm': 0.17.19 2625 + '@esbuild/android-arm64': 0.17.19 2626 + '@esbuild/android-x64': 0.17.19 2627 + '@esbuild/darwin-arm64': 0.17.19 2628 + '@esbuild/darwin-x64': 0.17.19 2629 + '@esbuild/freebsd-arm64': 0.17.19 2630 + '@esbuild/freebsd-x64': 0.17.19 2631 + '@esbuild/linux-arm': 0.17.19 2632 + '@esbuild/linux-arm64': 0.17.19 2633 + '@esbuild/linux-ia32': 0.17.19 2634 + '@esbuild/linux-loong64': 0.17.19 2635 + '@esbuild/linux-mips64el': 0.17.19 2636 + '@esbuild/linux-ppc64': 0.17.19 2637 + '@esbuild/linux-riscv64': 0.17.19 2638 + '@esbuild/linux-s390x': 0.17.19 2639 + '@esbuild/linux-x64': 0.17.19 2640 + '@esbuild/netbsd-x64': 0.17.19 2641 + '@esbuild/openbsd-x64': 0.17.19 2642 + '@esbuild/sunos-x64': 0.17.19 2643 + '@esbuild/win32-arm64': 0.17.19 2644 + '@esbuild/win32-ia32': 0.17.19 2645 + '@esbuild/win32-x64': 0.17.19 2390 2646 dev: true 2391 - optional: true 2392 2647 2393 - /esbuild@0.15.18: 2394 - resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} 2648 + /esbuild@0.18.7: 2649 + resolution: {integrity: sha512-46V0EFvQ/urmruUCChD1e0SZJWM0Ulny5F+uf5QkBry97HfvgvZTnjpTrwmw0+CGRhqTh9zpFeB+W8WGIEXOAQ==} 2395 2650 engines: {node: '>=12'} 2396 2651 hasBin: true 2397 2652 requiresBuild: true 2398 2653 optionalDependencies: 2399 - '@esbuild/android-arm': 0.15.18 2400 - '@esbuild/linux-loong64': 0.15.18 2401 - esbuild-android-64: 0.15.18 2402 - esbuild-android-arm64: 0.15.18 2403 - esbuild-darwin-64: 0.15.18 2404 - esbuild-darwin-arm64: 0.15.18 2405 - esbuild-freebsd-64: 0.15.18 2406 - esbuild-freebsd-arm64: 0.15.18 2407 - esbuild-linux-32: 0.15.18 2408 - esbuild-linux-64: 0.15.18 2409 - esbuild-linux-arm: 0.15.18 2410 - esbuild-linux-arm64: 0.15.18 2411 - esbuild-linux-mips64le: 0.15.18 2412 - esbuild-linux-ppc64le: 0.15.18 2413 - esbuild-linux-riscv64: 0.15.18 2414 - esbuild-linux-s390x: 0.15.18 2415 - esbuild-netbsd-64: 0.15.18 2416 - esbuild-openbsd-64: 0.15.18 2417 - esbuild-sunos-64: 0.15.18 2418 - esbuild-windows-32: 0.15.18 2419 - esbuild-windows-64: 0.15.18 2420 - esbuild-windows-arm64: 0.15.18 2654 + '@esbuild/android-arm': 0.18.7 2655 + '@esbuild/android-arm64': 0.18.7 2656 + '@esbuild/android-x64': 0.18.7 2657 + '@esbuild/darwin-arm64': 0.18.7 2658 + '@esbuild/darwin-x64': 0.18.7 2659 + '@esbuild/freebsd-arm64': 0.18.7 2660 + '@esbuild/freebsd-x64': 0.18.7 2661 + '@esbuild/linux-arm': 0.18.7 2662 + '@esbuild/linux-arm64': 0.18.7 2663 + '@esbuild/linux-ia32': 0.18.7 2664 + '@esbuild/linux-loong64': 0.18.7 2665 + '@esbuild/linux-mips64el': 0.18.7 2666 + '@esbuild/linux-ppc64': 0.18.7 2667 + '@esbuild/linux-riscv64': 0.18.7 2668 + '@esbuild/linux-s390x': 0.18.7 2669 + '@esbuild/linux-x64': 0.18.7 2670 + '@esbuild/netbsd-x64': 0.18.7 2671 + '@esbuild/openbsd-x64': 0.18.7 2672 + '@esbuild/sunos-x64': 0.18.7 2673 + '@esbuild/win32-arm64': 0.18.7 2674 + '@esbuild/win32-ia32': 0.18.7 2675 + '@esbuild/win32-x64': 0.18.7 2421 2676 dev: true 2422 2677 2423 2678 /escalade@3.1.1: ··· 2958 3213 resolution: {integrity: sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg==} 2959 3214 dependencies: 2960 3215 resolve-pkg-maps: 1.0.0 2961 - dev: false 2962 3216 2963 3217 /glob-parent@5.1.2: 2964 3218 resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} ··· 4391 4645 4392 4646 /resolve-pkg-maps@1.0.0: 4393 4647 resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 4394 - dev: false 4395 4648 4396 4649 /resolve@1.22.2: 4397 4650 resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} ··· 4581 4834 /source-map-js@1.0.2: 4582 4835 resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 4583 4836 engines: {node: '>=0.10.0'} 4837 + 4838 + /source-map-support@0.5.21: 4839 + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 4840 + dependencies: 4841 + buffer-from: 1.1.2 4842 + source-map: 0.6.1 4843 + dev: true 4584 4844 4585 4845 /source-map@0.6.1: 4586 4846 resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} ··· 4926 5186 typescript: 5.1.3 4927 5187 dev: false 4928 5188 4929 - /turbo-darwin-64@1.10.3: 4930 - resolution: {integrity: sha512-IIB9IomJGyD3EdpSscm7Ip1xVWtYb7D0x7oH3vad3gjFcjHJzDz9xZ/iw/qItFEW+wGFcLSRPd+1BNnuLM8AsA==} 5189 + /turbo-darwin-64@1.10.5: 5190 + resolution: {integrity: sha512-fIHu+fcW7upaZEfeneoRbZjdrcsj/NxUg7IjZZmlCjgbS9Ofl8RhRid5A1L31AUK3kkqRxzagHc4WZ5x4quBgg==} 4931 5191 cpu: [x64] 4932 5192 os: [darwin] 4933 5193 requiresBuild: true 4934 5194 dev: true 4935 5195 optional: true 4936 5196 4937 - /turbo-darwin-arm64@1.10.3: 4938 - resolution: {integrity: sha512-SBNmOZU9YEB0eyNIxeeQ+Wi0Ufd+nprEVp41rgUSRXEIpXjsDjyBnKnF+sQQj3+FLb4yyi/yZQckB+55qXWEsw==} 5197 + /turbo-darwin-arm64@1.10.5: 5198 + resolution: {integrity: sha512-uv0sDWizuxVvdSjaKvWdPdX4aZ8IZeYJwTJRZwLNRxZV56/1LZD65gyQIqsSNVRHuXI199yahmB+7PMJNpZFdw==} 4939 5199 cpu: [arm64] 4940 5200 os: [darwin] 4941 5201 requiresBuild: true 4942 5202 dev: true 4943 5203 optional: true 4944 5204 4945 - /turbo-linux-64@1.10.3: 4946 - resolution: {integrity: sha512-kvAisGKE7xHJdyMxZLvg53zvHxjqPK1UVj4757PQqtx9dnjYHSc8epmivE6niPgDHon5YqImzArCjVZJYpIGHQ==} 5205 + /turbo-linux-64@1.10.5: 5206 + resolution: {integrity: sha512-hI0rErgwxNmuBCNGldhJkjSbb+mT+vjfmBVKcMI/bnBmu/KU7irCrKMe5Vas280teqBrC33GgVfXndJo2cJ1DA==} 4947 5207 cpu: [x64] 4948 5208 os: [linux] 4949 5209 requiresBuild: true 4950 5210 dev: true 4951 5211 optional: true 4952 5212 4953 - /turbo-linux-arm64@1.10.3: 4954 - resolution: {integrity: sha512-Qgaqln0IYRgyL0SowJOi+PNxejv1I2xhzXOI+D+z4YHbgSx87ox1IsALYBlK8VRVYY8VCXl+PN12r1ioV09j7A==} 5213 + /turbo-linux-arm64@1.10.5: 5214 + resolution: {integrity: sha512-JAygWZjTuD6e7w0KSGzy7UxYqeLIpGfZDne+4MGRc8I5VeWZ6i0HWTqhhIu2/A8AuklYcoj8LkOZxCnMOF3odQ==} 4955 5215 cpu: [arm64] 4956 5216 os: [linux] 4957 5217 requiresBuild: true 4958 5218 dev: true 4959 5219 optional: true 4960 5220 4961 - /turbo-windows-64@1.10.3: 4962 - resolution: {integrity: sha512-rbH9wManURNN8mBnN/ZdkpUuTvyVVEMiUwFUX4GVE5qmV15iHtZfDLUSGGCP2UFBazHcpNHG1OJzgc55GFFrUw==} 5221 + /turbo-windows-64@1.10.5: 5222 + resolution: {integrity: sha512-6w2GOKmlWEAl6QkC4c2j2ZLTwB+RK6oIDRT2KqF1m07KkY6pebEzbPZLHuP08QV+SE0t+prAn+kn7hkHYkwM+Q==} 4963 5223 cpu: [x64] 4964 5224 os: [win32] 4965 5225 requiresBuild: true 4966 5226 dev: true 4967 5227 optional: true 4968 5228 4969 - /turbo-windows-arm64@1.10.3: 4970 - resolution: {integrity: sha512-ThlkqxhcGZX39CaTjsHqJnqVe+WImjX13pmjnpChz6q5HHbeRxaJSFzgrHIOt0sUUVx90W/WrNRyoIt/aafniw==} 5229 + /turbo-windows-arm64@1.10.5: 5230 + resolution: {integrity: sha512-3eeHRJPU+5zWa/iiikoBoPlNd74Y+L9lrG6ZsDZdzUYxNRTMrZbto1Bu1UF77t10TXeT9BsZRXjquKqrA7R7tg==} 4971 5231 cpu: [arm64] 4972 5232 os: [win32] 4973 5233 requiresBuild: true 4974 5234 dev: true 4975 5235 optional: true 4976 5236 4977 - /turbo@1.10.3: 4978 - resolution: {integrity: sha512-U4gKCWcKgLcCjQd4Pl8KJdfEKumpyWbzRu75A6FCj6Ctea1PIm58W6Ltw1QXKqHrl2pF9e1raAskf/h6dlrPCA==} 5237 + /turbo@1.10.5: 5238 + resolution: {integrity: sha512-4yxHTrlugJhef4eXuyrPJtrgUZWlbcwmSb8iZL/5UzNjCmx+anOm1nfW2XFrZFKy4v0+/fUlqw8LkTgGVsOKaQ==} 4979 5239 hasBin: true 4980 5240 requiresBuild: true 4981 5241 optionalDependencies: 4982 - turbo-darwin-64: 1.10.3 4983 - turbo-darwin-arm64: 1.10.3 4984 - turbo-linux-64: 1.10.3 4985 - turbo-linux-arm64: 1.10.3 4986 - turbo-windows-64: 1.10.3 4987 - turbo-windows-arm64: 1.10.3 5242 + turbo-darwin-64: 1.10.5 5243 + turbo-darwin-arm64: 1.10.5 5244 + turbo-linux-64: 1.10.5 5245 + turbo-linux-arm64: 1.10.5 5246 + turbo-windows-64: 1.10.5 5247 + turbo-windows-arm64: 1.10.5 4988 5248 dev: true 4989 5249 4990 5250 /type-check@0.4.0: