the universal sandbox runtime for agents and humans. pocketenv.io
sandbox openclaw agent claude-code vercel-sandbox deno-sandbox cloudflare-sandbox atproto sprites daytona
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add E2B sandbox provider and auth

+2834 -2581
+10 -1
apps/api/lexicons/sandbox/createSandbox.json
··· 35 35 "cloudflare", 36 36 "deno", 37 37 "sprites", 38 - "modal" 38 + "modal", 39 + "e2b" 39 40 ] 40 41 }, 41 42 "topics": { ··· 143 144 "redactedModalTokenSecret": { 144 145 "type": "string", 145 146 "description": "A redacted token for accessing Modal resources" 147 + }, 148 + "e2bAccessToken": { 149 + "type": "string", 150 + "description": "A token (encrypted) for accessing E2B resources" 151 + }, 152 + "redactedE2bAccessToken": { 153 + "type": "string", 154 + "description": "A redacted token for accessing E2B resources" 146 155 } 147 156 } 148 157 }
+8
apps/api/lexicons/sandbox/defs.json
··· 346 346 "redactedModalTokenSecret": { 347 347 "type": "string", 348 348 "description": "The redacted token secret for Modal, returned in API responses when the sandbox provider is Modal. This can be used to identify which Modal token secret is being used without exposing the actual token secret." 349 + }, 350 + "e2bAccessToken": { 351 + "type": "string", 352 + "description": "The access token for E2B, if the sandbox provider is E2B. This is used to determine which E2B token to use when creating the sandbox." 353 + }, 354 + "redactedE2bAccessToken": { 355 + "type": "string", 356 + "description": "The redacted access token for E2B, returned in API responses when the sandbox provider is E2B. This can be used to identify which E2B token is being used without exposing the actual access token." 349 357 } 350 358 } 351 359 },
+3 -3
apps/api/package.json
··· 4 4 "type": "module", 5 5 "scripts": { 6 6 "dev": "tsx --watch src/index.ts", 7 - "start": "tsx src/index.ts", 8 - "start:prod": "node dist/index.js", 7 + "start": "npm run build && node dist/index.js", 8 + "start:prod": "npm run build && node dist/index.js", 9 9 "pkl:eval": "pkl eval -f json", 10 10 "pkl:gen": "tsx ./scripts/pkl.ts", 11 11 "lexgen": "lex gen-server ./src/lexicon ./lexicons/**/* ./lexicons/*", ··· 13 13 "lint": "biome lint src", 14 14 "sandbox": "tsx ./scripts/sandbox.ts", 15 15 "seed": "tsx ./scripts/seed.ts", 16 - "build": "pkgroll", 16 + "build": "bun build src/index.ts --outdir ./dist --target node --external better-sqlite3", 17 17 "test": "vitest", 18 18 "test:run": "vitest run" 19 19 },
+9 -1
apps/api/pkl/defs/sandbox/createSandbox.pkl
··· 28 28 } 29 29 ["provider"] = new StringType { 30 30 type = "string" 31 - enum = List("daytona", "vercel", "cloudflare", "deno", "sprites", "modal") 31 + enum = List("daytona", "vercel", "cloudflare", "deno", "sprites", "modal", "e2b") 32 32 description = 33 33 "The provider to create the sandbox on, e.g. 'daytona', 'vercel', 'cloudflare', etc." 34 34 } ··· 139 139 ["redactedModalTokenSecret"] = new StringType { 140 140 type = "string" 141 141 description = "A redacted token for accessing Modal resources" 142 + } 143 + ["e2bAccessToken"] = new StringType { 144 + type = "string" 145 + description = "A token (encrypted) for accessing E2B resources" 146 + } 147 + ["redactedE2bAccessToken"] = new StringType { 148 + type = "string" 149 + description = "A redacted token for accessing E2B resources" 142 150 } 143 151 } 144 152 }
+10
apps/api/pkl/defs/sandbox/defs.pkl
··· 355 355 description = 356 356 "The redacted token secret for Modal, returned in API responses when the sandbox provider is Modal. This can be used to identify which Modal token secret is being used without exposing the actual token secret." 357 357 } 358 + ["e2bAccessToken"] = new StringType { 359 + type = "string" 360 + description = 361 + "The access token for E2B, if the sandbox provider is E2B. This is used to determine which E2B token to use when creating the sandbox." 362 + } 363 + ["redactedE2bAccessToken"] = new StringType { 364 + type = "string" 365 + description = 366 + "The redacted access token for E2B, returned in API responses when the sandbox provider is E2B. This can be used to identify which E2B token is being used without exposing the actual access token." 367 + } 358 368 } 359 369 } 360 370 ["preferences"] = new Array {
+3 -2
apps/api/src/__tests__/consts.test.ts
··· 15 15 expect(Providers.CLOUDFLARE).toBe("cloudflare"); 16 16 expect(Providers.SPRITE).toBe("sprite"); 17 17 expect(Providers.MODAL).toBe("modal"); 18 + expect(Providers.E2B).toBe("e2b"); 18 19 }); 19 20 20 - it("has exactly 6 providers", () => { 21 + it("has exactly 7 providers", () => { 21 22 const values = Object.values(Providers); 22 - expect(values).toHaveLength(6); 23 + expect(values).toHaveLength(7); 23 24 }); 24 25 }); 25 26
+6
apps/api/src/consts.ts
··· 7 7 CLOUDFLARE = "cloudflare", 8 8 SPRITE = "sprite", 9 9 MODAL = "modal", 10 + E2B = "e2b", 10 11 } 11 12 12 13 export type Resources = { ··· 42 43 disk: 100, 43 44 }, 44 45 modal: { 46 + vcpus: 2, 47 + memory: 8, 48 + disk: 16, 49 + }, 50 + e2b: { 45 51 vcpus: 2, 46 52 memory: 8, 47 53 disk: 16,
+3 -4
apps/api/src/context.ts
··· 41 41 kv: new Map<string, string>(), 42 42 sandbox: (provider?: string) => 43 43 axios.create({ 44 - baseURL: 45 - provider === Providers.MODAL 46 - ? env.MODAL_SANDBOX_API_URL 47 - : env.SANDBOX_API_URL, 44 + baseURL: [Providers.MODAL, Providers.E2B].includes(provider as Providers) 45 + ? env.MODAL_SANDBOX_API_URL 46 + : env.SANDBOX_API_URL, 48 47 }), 49 48 cfsandbox: (base: string) => 50 49 axios.create({
+19
apps/api/src/lexicon/lexicons.ts
··· 584 584 "deno", 585 585 "sprites", 586 586 "modal", 587 + "e2b", 587 588 ], 588 589 }, 589 590 topics: { ··· 705 706 redactedModalTokenSecret: { 706 707 type: "string", 707 708 description: "A redacted token for accessing Modal resources", 709 + }, 710 + e2bAccessToken: { 711 + type: "string", 712 + description: "A token (encrypted) for accessing E2B resources", 713 + }, 714 + redactedE2bAccessToken: { 715 + type: "string", 716 + description: "A redacted token for accessing E2B resources", 708 717 }, 709 718 }, 710 719 }, ··· 1087 1096 type: "string", 1088 1097 description: 1089 1098 "The redacted token secret for Modal, returned in API responses when the sandbox provider is Modal. This can be used to identify which Modal token secret is being used without exposing the actual token secret.", 1099 + }, 1100 + e2bAccessToken: { 1101 + type: "string", 1102 + description: 1103 + "The access token for E2B, if the sandbox provider is E2B. This is used to determine which E2B token to use when creating the sandbox.", 1104 + }, 1105 + redactedE2bAccessToken: { 1106 + type: "string", 1107 + description: 1108 + "The redacted access token for E2B, returned in API responses when the sandbox provider is E2B. This can be used to identify which E2B token is being used without exposing the actual access token.", 1090 1109 }, 1091 1110 }, 1092 1111 },
+12 -1
apps/api/src/lexicon/types/io/pocketenv/sandbox/createSandbox.ts
··· 19 19 /** A description for the sandbox */ 20 20 description?: string; 21 21 /** The provider to create the sandbox on, e.g. 'daytona', 'vercel', 'cloudflare', etc. */ 22 - provider?: "daytona" | "vercel" | "cloudflare" | "deno" | "sprites" | "modal"; 22 + provider?: 23 + | "daytona" 24 + | "vercel" 25 + | "cloudflare" 26 + | "deno" 27 + | "sprites" 28 + | "modal" 29 + | "e2b"; 23 30 /** A list of topics/tags to associate with the sandbox */ 24 31 topics?: string[]; 25 32 /** A git repository URL to clone into the sandbox, e.g. a GitHub/Tangled repo. */ ··· 66 73 modalTokenSecret?: string; 67 74 /** A redacted token for accessing Modal resources */ 68 75 redactedModalTokenSecret?: string; 76 + /** A token (encrypted) for accessing E2B resources */ 77 + e2bAccessToken?: string; 78 + /** A redacted token for accessing E2B resources */ 79 + redactedE2bAccessToken?: string; 69 80 [k: string]: unknown; 70 81 } 71 82
+4
apps/api/src/lexicon/types/io/pocketenv/sandbox/defs.ts
··· 237 237 redactedModalTokenId?: string; 238 238 /** The redacted token secret for Modal, returned in API responses when the sandbox provider is Modal. This can be used to identify which Modal token secret is being used without exposing the actual token secret. */ 239 239 redactedModalTokenSecret?: string; 240 + /** The access token for E2B, if the sandbox provider is E2B. This is used to determine which E2B token to use when creating the sandbox. */ 241 + e2bAccessToken?: string; 242 + /** The redacted access token for E2B, returned in API responses when the sandbox provider is E2B. This can be used to identify which E2B token is being used without exposing the actual access token. */ 243 + redactedE2bAccessToken?: string; 240 244 [k: string]: unknown; 241 245 } 242 246
+28
apps/api/src/schema/e2b-auth.ts
··· 1 + import { type InferInsertModel, type InferSelectModel, sql } from "drizzle-orm"; 2 + import { pgTable, text, timestamp, uniqueIndex } from "drizzle-orm/pg-core"; 3 + import sandboxes from "./sandboxes"; 4 + import users from "./users"; 5 + 6 + const e2bAuth = pgTable( 7 + "e2b_auth", 8 + { 9 + id: text("id") 10 + .primaryKey() 11 + .default(sql`xata_id()`), 12 + sandboxId: text("sandbox_id") 13 + .notNull() 14 + .references(() => sandboxes.id, { onDelete: "cascade" }), 15 + userId: text("user_id") 16 + .notNull() 17 + .references(() => users.id), 18 + accessToken: text("access_token").notNull(), 19 + redactedAccessToken: text("redacted_access_token").notNull(), 20 + createdAt: timestamp("created_at").defaultNow().notNull(), 21 + }, 22 + (t) => [uniqueIndex("unique_e2b_auth").on(t.sandboxId, t.userId)], 23 + ); 24 + 25 + export type SelectE2BAuth = InferSelectModel<typeof e2bAuth>; 26 + export type InsertE2BAuth = InferInsertModel<typeof e2bAuth>; 27 + 28 + export default e2bAuth;
+2
apps/api/src/schema/index.ts
··· 20 20 import sandboxCp from "./sandbox-cp"; 21 21 import backups from "./backups"; 22 22 import modalAuth from "./modal-auth"; 23 + import e2bAuth from "./e2b-auth"; 23 24 24 25 export default { 25 26 sandboxes, ··· 44 45 sandboxCp, 45 46 backups, 46 47 modalAuth, 48 + e2bAuth, 47 49 };
+2
apps/api/src/xrpc/io/pocketenv/sandbox/createSandbox.ts
··· 124 124 redactedModalTokenId: input.redactedModalTokenId, 125 125 modalTokenSecret: input.modalTokenSecret, 126 126 redactedModalTokenSecret: input.redactedModalTokenSecret, 127 + e2bAccessToken: input.e2bAccessToken, 128 + redactedE2bAccessToken: input.redactedE2bAccessToken, 127 129 }, 128 130 { 129 131 headers: {
+15 -4
apps/api/src/xrpc/io/pocketenv/sandbox/getPreferences.ts
··· 9 9 } from "lexicon/types/io/pocketenv/sandbox/getPreferences"; 10 10 import daytonaAuth from "schema/daytona-auth"; 11 11 import denoAuth from "schema/deno-auth"; 12 + import e2bAuth from "schema/e2b-auth"; 12 13 import modalAuth from "schema/modal-auth"; 13 14 import sandboxes from "schema/sandboxes"; 14 15 import spriteAuth from "schema/sprite-auth"; ··· 37 38 eq(sandboxes.name, params.id), 38 39 ); 39 40 40 - const [daytona, deno, sprite, vercel, modal] = await Promise.all([ 41 + const [daytona, deno, sprite, vercel, modal, e2b] = await Promise.all([ 41 42 ctx.db 42 43 .select() 43 44 .from(daytonaAuth) ··· 73 74 .where(and(eq(modalAuth.userId, user.id), sandboxFilter)) 74 75 .execute() 75 76 .then(([row]) => row?.modal_auth), 77 + ctx.db 78 + .select() 79 + .from(e2bAuth) 80 + .leftJoin(sandboxes, eq(e2bAuth.sandboxId, sandboxes.id)) 81 + .where(and(eq(e2bAuth.userId, user.id), sandboxFilter)) 82 + .execute() 83 + .then(([row]) => row?.e2b_auth), 76 84 ]); 77 85 78 - if (!daytona && !deno && !sprite && !vercel && !modal) { 86 + if (!daytona && !deno && !sprite && !vercel && !modal && !e2b) { 79 87 return []; 80 88 } 81 89 ··· 106 114 $type: "io.pocketenv.sandbox.defs#sandboxProviderPref" as const, 107 115 name: "modal" as const, 108 116 redactedModalTokenId: modal.redactedTokenId, 109 - modalTokenId: modal.tokenId, 110 - modalTokenSecret: modal.tokenSecret, 111 117 redactedModalTokenSecret: modal.redactedTokenSecret, 118 + }) || 119 + (e2b && { 120 + $type: "io.pocketenv.sandbox.defs#sandboxProviderPref" as const, 121 + name: "e2b" as const, 122 + redactedE2bAccessToken: e2b.redactedAccessToken, 112 123 }))!; 113 124 114 125 return [provider satisfies SandboxProviderPref];
+19
apps/api/src/xrpc/io/pocketenv/sandbox/putPreferences.ts
··· 20 20 import type { PgTransaction } from "drizzle-orm/pg-core"; 21 21 import type { NodePgQueryResultHKT } from "drizzle-orm/node-postgres"; 22 22 import modalAuth, { type InsertModalAuth } from "schema/modal-auth"; 23 + import e2bAuth, { type InsertE2BAuth } from "schema/e2b-auth"; 23 24 24 25 export default function (server: Server, ctx: Context) { 25 26 const putPreferences = async (input: HandlerInput, auth: HandlerAuth) => { ··· 235 236 redactedTokenId: pref.redactedModalTokenId!, 236 237 tokenSecret: pref.modalTokenSecret!, 237 238 redactedTokenSecret: pref.redactedModalTokenSecret!, 239 + }, 240 + }) 241 + .execute(); 242 + break; 243 + case "e2b": 244 + await tx 245 + .insert(e2bAuth) 246 + .values({ 247 + userId: user.id, 248 + sandboxId: input.body.sandboxId, 249 + accessToken: pref.e2bAccessToken!, 250 + redactedAccessToken: pref.redactedE2bAccessToken!, 251 + } satisfies InsertE2BAuth) 252 + .onConflictDoUpdate({ 253 + target: [modalAuth.sandboxId, e2bAuth.userId], 254 + set: { 255 + accessToken: pref.e2bAccessToken!, 256 + redactedAccessToken: pref.redactedE2bAccessToken!, 238 257 }, 239 258 }) 240 259 .execute();
+12
apps/cf-sandbox/drizzle/0044_organic_scalphunter.sql
··· 1 + CREATE TABLE "e2b_auth" ( 2 + "id" text PRIMARY KEY DEFAULT xata_id() NOT NULL, 3 + "sandbox_id" text NOT NULL, 4 + "user_id" text NOT NULL, 5 + "access_token" text NOT NULL, 6 + "redacted_access_token" text NOT NULL, 7 + "created_at" timestamp DEFAULT now() NOT NULL 8 + ); 9 + --> statement-breakpoint 10 + ALTER TABLE "e2b_auth" ADD CONSTRAINT "e2b_auth_sandbox_id_sandboxes_id_fk" FOREIGN KEY ("sandbox_id") REFERENCES "public"."sandboxes"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint 11 + ALTER TABLE "e2b_auth" ADD CONSTRAINT "e2b_auth_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint 12 + CREATE UNIQUE INDEX "unique_e2b_auth" ON "e2b_auth" USING btree ("sandbox_id","user_id");
+2193
apps/cf-sandbox/drizzle/meta/0044_snapshot.json
··· 1 + { 2 + "id": "948aa757-749a-4da1-b0f9-8d2a7d58e3d5", 3 + "prevId": "5d279e2e-881b-45fe-9032-279340ddab81", 4 + "version": "7", 5 + "dialect": "postgresql", 6 + "tables": { 7 + "public.authorized_keys": { 8 + "name": "authorized_keys", 9 + "schema": "", 10 + "columns": { 11 + "id": { 12 + "name": "id", 13 + "type": "text", 14 + "primaryKey": true, 15 + "notNull": true, 16 + "default": "xata_id()" 17 + }, 18 + "sandbox_id": { 19 + "name": "sandbox_id", 20 + "type": "text", 21 + "primaryKey": false, 22 + "notNull": false 23 + }, 24 + "public_key": { 25 + "name": "public_key", 26 + "type": "text", 27 + "primaryKey": false, 28 + "notNull": true 29 + }, 30 + "created_at": { 31 + "name": "created_at", 32 + "type": "timestamp", 33 + "primaryKey": false, 34 + "notNull": true, 35 + "default": "now()" 36 + } 37 + }, 38 + "indexes": {}, 39 + "foreignKeys": { 40 + "authorized_keys_sandbox_id_sandboxes_id_fk": { 41 + "name": "authorized_keys_sandbox_id_sandboxes_id_fk", 42 + "tableFrom": "authorized_keys", 43 + "tableTo": "sandboxes", 44 + "columnsFrom": [ 45 + "sandbox_id" 46 + ], 47 + "columnsTo": [ 48 + "id" 49 + ], 50 + "onDelete": "no action", 51 + "onUpdate": "no action" 52 + } 53 + }, 54 + "compositePrimaryKeys": {}, 55 + "uniqueConstraints": {}, 56 + "policies": {}, 57 + "checkConstraints": {}, 58 + "isRLSEnabled": false 59 + }, 60 + "public.backups": { 61 + "name": "backups", 62 + "schema": "", 63 + "columns": { 64 + "id": { 65 + "name": "id", 66 + "type": "text", 67 + "primaryKey": true, 68 + "notNull": true, 69 + "default": "xata_id()" 70 + }, 71 + "sandbox_id": { 72 + "name": "sandbox_id", 73 + "type": "text", 74 + "primaryKey": false, 75 + "notNull": true 76 + }, 77 + "backup_id": { 78 + "name": "backup_id", 79 + "type": "text", 80 + "primaryKey": false, 81 + "notNull": true 82 + }, 83 + "directory": { 84 + "name": "directory", 85 + "type": "text", 86 + "primaryKey": false, 87 + "notNull": true 88 + }, 89 + "description": { 90 + "name": "description", 91 + "type": "text", 92 + "primaryKey": false, 93 + "notNull": false 94 + }, 95 + "expires_at": { 96 + "name": "expires_at", 97 + "type": "timestamp", 98 + "primaryKey": false, 99 + "notNull": false 100 + }, 101 + "created_at": { 102 + "name": "created_at", 103 + "type": "timestamp", 104 + "primaryKey": false, 105 + "notNull": true, 106 + "default": "now()" 107 + } 108 + }, 109 + "indexes": {}, 110 + "foreignKeys": { 111 + "backups_sandbox_id_sandboxes_id_fk": { 112 + "name": "backups_sandbox_id_sandboxes_id_fk", 113 + "tableFrom": "backups", 114 + "tableTo": "sandboxes", 115 + "columnsFrom": [ 116 + "sandbox_id" 117 + ], 118 + "columnsTo": [ 119 + "id" 120 + ], 121 + "onDelete": "cascade", 122 + "onUpdate": "no action" 123 + } 124 + }, 125 + "compositePrimaryKeys": {}, 126 + "uniqueConstraints": {}, 127 + "policies": {}, 128 + "checkConstraints": {}, 129 + "isRLSEnabled": false 130 + }, 131 + "public.daytona_auth": { 132 + "name": "daytona_auth", 133 + "schema": "", 134 + "columns": { 135 + "id": { 136 + "name": "id", 137 + "type": "text", 138 + "primaryKey": true, 139 + "notNull": true, 140 + "default": "xata_id()" 141 + }, 142 + "sandbox_id": { 143 + "name": "sandbox_id", 144 + "type": "text", 145 + "primaryKey": false, 146 + "notNull": true 147 + }, 148 + "user_id": { 149 + "name": "user_id", 150 + "type": "text", 151 + "primaryKey": false, 152 + "notNull": true 153 + }, 154 + "api_key": { 155 + "name": "api_key", 156 + "type": "text", 157 + "primaryKey": false, 158 + "notNull": true 159 + }, 160 + "organization_id": { 161 + "name": "organization_id", 162 + "type": "text", 163 + "primaryKey": false, 164 + "notNull": true 165 + }, 166 + "redacted_api_key": { 167 + "name": "redacted_api_key", 168 + "type": "text", 169 + "primaryKey": false, 170 + "notNull": true 171 + }, 172 + "created_at": { 173 + "name": "created_at", 174 + "type": "timestamp", 175 + "primaryKey": false, 176 + "notNull": true, 177 + "default": "now()" 178 + } 179 + }, 180 + "indexes": { 181 + "unique_daytona_auth": { 182 + "name": "unique_daytona_auth", 183 + "columns": [ 184 + { 185 + "expression": "sandbox_id", 186 + "isExpression": false, 187 + "asc": true, 188 + "nulls": "last" 189 + }, 190 + { 191 + "expression": "user_id", 192 + "isExpression": false, 193 + "asc": true, 194 + "nulls": "last" 195 + } 196 + ], 197 + "isUnique": true, 198 + "concurrently": false, 199 + "method": "btree", 200 + "with": {} 201 + } 202 + }, 203 + "foreignKeys": { 204 + "daytona_auth_sandbox_id_sandboxes_id_fk": { 205 + "name": "daytona_auth_sandbox_id_sandboxes_id_fk", 206 + "tableFrom": "daytona_auth", 207 + "tableTo": "sandboxes", 208 + "columnsFrom": [ 209 + "sandbox_id" 210 + ], 211 + "columnsTo": [ 212 + "id" 213 + ], 214 + "onDelete": "cascade", 215 + "onUpdate": "no action" 216 + }, 217 + "daytona_auth_user_id_users_id_fk": { 218 + "name": "daytona_auth_user_id_users_id_fk", 219 + "tableFrom": "daytona_auth", 220 + "tableTo": "users", 221 + "columnsFrom": [ 222 + "user_id" 223 + ], 224 + "columnsTo": [ 225 + "id" 226 + ], 227 + "onDelete": "no action", 228 + "onUpdate": "no action" 229 + } 230 + }, 231 + "compositePrimaryKeys": {}, 232 + "uniqueConstraints": {}, 233 + "policies": {}, 234 + "checkConstraints": {}, 235 + "isRLSEnabled": false 236 + }, 237 + "public.deno_auth": { 238 + "name": "deno_auth", 239 + "schema": "", 240 + "columns": { 241 + "id": { 242 + "name": "id", 243 + "type": "text", 244 + "primaryKey": true, 245 + "notNull": true, 246 + "default": "xata_id()" 247 + }, 248 + "sandbox_id": { 249 + "name": "sandbox_id", 250 + "type": "text", 251 + "primaryKey": false, 252 + "notNull": true 253 + }, 254 + "deploy_token": { 255 + "name": "deploy_token", 256 + "type": "text", 257 + "primaryKey": false, 258 + "notNull": true 259 + }, 260 + "user_id": { 261 + "name": "user_id", 262 + "type": "text", 263 + "primaryKey": false, 264 + "notNull": true 265 + }, 266 + "redacted_deno_token": { 267 + "name": "redacted_deno_token", 268 + "type": "text", 269 + "primaryKey": false, 270 + "notNull": true 271 + }, 272 + "created_at": { 273 + "name": "created_at", 274 + "type": "timestamp", 275 + "primaryKey": false, 276 + "notNull": true, 277 + "default": "now()" 278 + } 279 + }, 280 + "indexes": { 281 + "unique_deno_auth": { 282 + "name": "unique_deno_auth", 283 + "columns": [ 284 + { 285 + "expression": "sandbox_id", 286 + "isExpression": false, 287 + "asc": true, 288 + "nulls": "last" 289 + }, 290 + { 291 + "expression": "user_id", 292 + "isExpression": false, 293 + "asc": true, 294 + "nulls": "last" 295 + } 296 + ], 297 + "isUnique": true, 298 + "concurrently": false, 299 + "method": "btree", 300 + "with": {} 301 + } 302 + }, 303 + "foreignKeys": { 304 + "deno_auth_sandbox_id_sandboxes_id_fk": { 305 + "name": "deno_auth_sandbox_id_sandboxes_id_fk", 306 + "tableFrom": "deno_auth", 307 + "tableTo": "sandboxes", 308 + "columnsFrom": [ 309 + "sandbox_id" 310 + ], 311 + "columnsTo": [ 312 + "id" 313 + ], 314 + "onDelete": "cascade", 315 + "onUpdate": "no action" 316 + }, 317 + "deno_auth_user_id_users_id_fk": { 318 + "name": "deno_auth_user_id_users_id_fk", 319 + "tableFrom": "deno_auth", 320 + "tableTo": "users", 321 + "columnsFrom": [ 322 + "user_id" 323 + ], 324 + "columnsTo": [ 325 + "id" 326 + ], 327 + "onDelete": "no action", 328 + "onUpdate": "no action" 329 + } 330 + }, 331 + "compositePrimaryKeys": {}, 332 + "uniqueConstraints": {}, 333 + "policies": {}, 334 + "checkConstraints": {}, 335 + "isRLSEnabled": false 336 + }, 337 + "public.e2b_auth": { 338 + "name": "e2b_auth", 339 + "schema": "", 340 + "columns": { 341 + "id": { 342 + "name": "id", 343 + "type": "text", 344 + "primaryKey": true, 345 + "notNull": true, 346 + "default": "xata_id()" 347 + }, 348 + "sandbox_id": { 349 + "name": "sandbox_id", 350 + "type": "text", 351 + "primaryKey": false, 352 + "notNull": true 353 + }, 354 + "user_id": { 355 + "name": "user_id", 356 + "type": "text", 357 + "primaryKey": false, 358 + "notNull": true 359 + }, 360 + "access_token": { 361 + "name": "access_token", 362 + "type": "text", 363 + "primaryKey": false, 364 + "notNull": true 365 + }, 366 + "redacted_access_token": { 367 + "name": "redacted_access_token", 368 + "type": "text", 369 + "primaryKey": false, 370 + "notNull": true 371 + }, 372 + "created_at": { 373 + "name": "created_at", 374 + "type": "timestamp", 375 + "primaryKey": false, 376 + "notNull": true, 377 + "default": "now()" 378 + } 379 + }, 380 + "indexes": { 381 + "unique_e2b_auth": { 382 + "name": "unique_e2b_auth", 383 + "columns": [ 384 + { 385 + "expression": "sandbox_id", 386 + "isExpression": false, 387 + "asc": true, 388 + "nulls": "last" 389 + }, 390 + { 391 + "expression": "user_id", 392 + "isExpression": false, 393 + "asc": true, 394 + "nulls": "last" 395 + } 396 + ], 397 + "isUnique": true, 398 + "concurrently": false, 399 + "method": "btree", 400 + "with": {} 401 + } 402 + }, 403 + "foreignKeys": { 404 + "e2b_auth_sandbox_id_sandboxes_id_fk": { 405 + "name": "e2b_auth_sandbox_id_sandboxes_id_fk", 406 + "tableFrom": "e2b_auth", 407 + "tableTo": "sandboxes", 408 + "columnsFrom": [ 409 + "sandbox_id" 410 + ], 411 + "columnsTo": [ 412 + "id" 413 + ], 414 + "onDelete": "cascade", 415 + "onUpdate": "no action" 416 + }, 417 + "e2b_auth_user_id_users_id_fk": { 418 + "name": "e2b_auth_user_id_users_id_fk", 419 + "tableFrom": "e2b_auth", 420 + "tableTo": "users", 421 + "columnsFrom": [ 422 + "user_id" 423 + ], 424 + "columnsTo": [ 425 + "id" 426 + ], 427 + "onDelete": "no action", 428 + "onUpdate": "no action" 429 + } 430 + }, 431 + "compositePrimaryKeys": {}, 432 + "uniqueConstraints": {}, 433 + "policies": {}, 434 + "checkConstraints": {}, 435 + "isRLSEnabled": false 436 + }, 437 + "public.files": { 438 + "name": "files", 439 + "schema": "", 440 + "columns": { 441 + "id": { 442 + "name": "id", 443 + "type": "text", 444 + "primaryKey": true, 445 + "notNull": true, 446 + "default": "xata_id()" 447 + }, 448 + "content": { 449 + "name": "content", 450 + "type": "text", 451 + "primaryKey": false, 452 + "notNull": true 453 + }, 454 + "created_at": { 455 + "name": "created_at", 456 + "type": "timestamp", 457 + "primaryKey": false, 458 + "notNull": true, 459 + "default": "now()" 460 + }, 461 + "updated_at": { 462 + "name": "updated_at", 463 + "type": "timestamp", 464 + "primaryKey": false, 465 + "notNull": true, 466 + "default": "now()" 467 + } 468 + }, 469 + "indexes": {}, 470 + "foreignKeys": {}, 471 + "compositePrimaryKeys": {}, 472 + "uniqueConstraints": {}, 473 + "policies": {}, 474 + "checkConstraints": {}, 475 + "isRLSEnabled": false 476 + }, 477 + "public.modal_auth": { 478 + "name": "modal_auth", 479 + "schema": "", 480 + "columns": { 481 + "id": { 482 + "name": "id", 483 + "type": "text", 484 + "primaryKey": true, 485 + "notNull": true, 486 + "default": "xata_id()" 487 + }, 488 + "sandbox_id": { 489 + "name": "sandbox_id", 490 + "type": "text", 491 + "primaryKey": false, 492 + "notNull": true 493 + }, 494 + "user_id": { 495 + "name": "user_id", 496 + "type": "text", 497 + "primaryKey": false, 498 + "notNull": true 499 + }, 500 + "token_id": { 501 + "name": "token_id", 502 + "type": "text", 503 + "primaryKey": false, 504 + "notNull": true 505 + }, 506 + "redacted_token_id": { 507 + "name": "redacted_token_id", 508 + "type": "text", 509 + "primaryKey": false, 510 + "notNull": true 511 + }, 512 + "token_secret": { 513 + "name": "token_secret", 514 + "type": "text", 515 + "primaryKey": false, 516 + "notNull": true 517 + }, 518 + "redacted_token_secret": { 519 + "name": "redacted_token_secret", 520 + "type": "text", 521 + "primaryKey": false, 522 + "notNull": true 523 + }, 524 + "created_at": { 525 + "name": "created_at", 526 + "type": "timestamp", 527 + "primaryKey": false, 528 + "notNull": true, 529 + "default": "now()" 530 + } 531 + }, 532 + "indexes": { 533 + "unique_modal_auth": { 534 + "name": "unique_modal_auth", 535 + "columns": [ 536 + { 537 + "expression": "sandbox_id", 538 + "isExpression": false, 539 + "asc": true, 540 + "nulls": "last" 541 + }, 542 + { 543 + "expression": "user_id", 544 + "isExpression": false, 545 + "asc": true, 546 + "nulls": "last" 547 + } 548 + ], 549 + "isUnique": true, 550 + "concurrently": false, 551 + "method": "btree", 552 + "with": {} 553 + } 554 + }, 555 + "foreignKeys": { 556 + "modal_auth_sandbox_id_sandboxes_id_fk": { 557 + "name": "modal_auth_sandbox_id_sandboxes_id_fk", 558 + "tableFrom": "modal_auth", 559 + "tableTo": "sandboxes", 560 + "columnsFrom": [ 561 + "sandbox_id" 562 + ], 563 + "columnsTo": [ 564 + "id" 565 + ], 566 + "onDelete": "cascade", 567 + "onUpdate": "no action" 568 + }, 569 + "modal_auth_user_id_users_id_fk": { 570 + "name": "modal_auth_user_id_users_id_fk", 571 + "tableFrom": "modal_auth", 572 + "tableTo": "users", 573 + "columnsFrom": [ 574 + "user_id" 575 + ], 576 + "columnsTo": [ 577 + "id" 578 + ], 579 + "onDelete": "no action", 580 + "onUpdate": "no action" 581 + } 582 + }, 583 + "compositePrimaryKeys": {}, 584 + "uniqueConstraints": {}, 585 + "policies": {}, 586 + "checkConstraints": {}, 587 + "isRLSEnabled": false 588 + }, 589 + "public.sandbox_cp": { 590 + "name": "sandbox_cp", 591 + "schema": "", 592 + "columns": { 593 + "id": { 594 + "name": "id", 595 + "type": "text", 596 + "primaryKey": true, 597 + "notNull": true, 598 + "default": "xata_id()" 599 + }, 600 + "copy_uuid": { 601 + "name": "copy_uuid", 602 + "type": "text", 603 + "primaryKey": false, 604 + "notNull": true 605 + }, 606 + "created_at": { 607 + "name": "created_at", 608 + "type": "timestamp", 609 + "primaryKey": false, 610 + "notNull": true, 611 + "default": "now()" 612 + } 613 + }, 614 + "indexes": {}, 615 + "foreignKeys": {}, 616 + "compositePrimaryKeys": {}, 617 + "uniqueConstraints": { 618 + "sandbox_cp_copy_uuid_unique": { 619 + "name": "sandbox_cp_copy_uuid_unique", 620 + "nullsNotDistinct": false, 621 + "columns": [ 622 + "copy_uuid" 623 + ] 624 + } 625 + }, 626 + "policies": {}, 627 + "checkConstraints": {}, 628 + "isRLSEnabled": false 629 + }, 630 + "public.sandbox_files": { 631 + "name": "sandbox_files", 632 + "schema": "", 633 + "columns": { 634 + "id": { 635 + "name": "id", 636 + "type": "text", 637 + "primaryKey": true, 638 + "notNull": true, 639 + "default": "file_id()" 640 + }, 641 + "sandbox_id": { 642 + "name": "sandbox_id", 643 + "type": "text", 644 + "primaryKey": false, 645 + "notNull": true 646 + }, 647 + "file_id": { 648 + "name": "file_id", 649 + "type": "text", 650 + "primaryKey": false, 651 + "notNull": true 652 + }, 653 + "path": { 654 + "name": "path", 655 + "type": "text", 656 + "primaryKey": false, 657 + "notNull": true 658 + }, 659 + "created_at": { 660 + "name": "created_at", 661 + "type": "timestamp", 662 + "primaryKey": false, 663 + "notNull": true, 664 + "default": "now()" 665 + }, 666 + "updated_at": { 667 + "name": "updated_at", 668 + "type": "timestamp", 669 + "primaryKey": false, 670 + "notNull": true, 671 + "default": "now()" 672 + } 673 + }, 674 + "indexes": { 675 + "unique_sandbox_file_path": { 676 + "name": "unique_sandbox_file_path", 677 + "columns": [ 678 + { 679 + "expression": "sandbox_id", 680 + "isExpression": false, 681 + "asc": true, 682 + "nulls": "last" 683 + }, 684 + { 685 + "expression": "path", 686 + "isExpression": false, 687 + "asc": true, 688 + "nulls": "last" 689 + } 690 + ], 691 + "isUnique": true, 692 + "concurrently": false, 693 + "method": "btree", 694 + "with": {} 695 + } 696 + }, 697 + "foreignKeys": { 698 + "sandbox_files_sandbox_id_sandboxes_id_fk": { 699 + "name": "sandbox_files_sandbox_id_sandboxes_id_fk", 700 + "tableFrom": "sandbox_files", 701 + "tableTo": "sandboxes", 702 + "columnsFrom": [ 703 + "sandbox_id" 704 + ], 705 + "columnsTo": [ 706 + "id" 707 + ], 708 + "onDelete": "cascade", 709 + "onUpdate": "no action" 710 + }, 711 + "sandbox_files_file_id_files_id_fk": { 712 + "name": "sandbox_files_file_id_files_id_fk", 713 + "tableFrom": "sandbox_files", 714 + "tableTo": "files", 715 + "columnsFrom": [ 716 + "file_id" 717 + ], 718 + "columnsTo": [ 719 + "id" 720 + ], 721 + "onDelete": "no action", 722 + "onUpdate": "no action" 723 + } 724 + }, 725 + "compositePrimaryKeys": {}, 726 + "uniqueConstraints": {}, 727 + "policies": {}, 728 + "checkConstraints": {}, 729 + "isRLSEnabled": false 730 + }, 731 + "public.sandbox_ports": { 732 + "name": "sandbox_ports", 733 + "schema": "", 734 + "columns": { 735 + "id": { 736 + "name": "id", 737 + "type": "text", 738 + "primaryKey": true, 739 + "notNull": true, 740 + "default": "xata_id()" 741 + }, 742 + "sandbox_id": { 743 + "name": "sandbox_id", 744 + "type": "text", 745 + "primaryKey": false, 746 + "notNull": true 747 + }, 748 + "exposed_port": { 749 + "name": "exposed_port", 750 + "type": "integer", 751 + "primaryKey": false, 752 + "notNull": true 753 + }, 754 + "preview_url": { 755 + "name": "preview_url", 756 + "type": "text", 757 + "primaryKey": false, 758 + "notNull": false 759 + }, 760 + "description": { 761 + "name": "description", 762 + "type": "text", 763 + "primaryKey": false, 764 + "notNull": false 765 + }, 766 + "service_id": { 767 + "name": "service_id", 768 + "type": "text", 769 + "primaryKey": false, 770 + "notNull": false 771 + }, 772 + "created_at": { 773 + "name": "created_at", 774 + "type": "timestamp", 775 + "primaryKey": false, 776 + "notNull": true, 777 + "default": "now()" 778 + }, 779 + "updated_at": { 780 + "name": "updated_at", 781 + "type": "timestamp", 782 + "primaryKey": false, 783 + "notNull": true, 784 + "default": "now()" 785 + } 786 + }, 787 + "indexes": { 788 + "unique_sandbox_port": { 789 + "name": "unique_sandbox_port", 790 + "columns": [ 791 + { 792 + "expression": "sandbox_id", 793 + "isExpression": false, 794 + "asc": true, 795 + "nulls": "last" 796 + }, 797 + { 798 + "expression": "exposed_port", 799 + "isExpression": false, 800 + "asc": true, 801 + "nulls": "last" 802 + } 803 + ], 804 + "isUnique": true, 805 + "concurrently": false, 806 + "method": "btree", 807 + "with": {} 808 + } 809 + }, 810 + "foreignKeys": { 811 + "sandbox_ports_sandbox_id_sandboxes_id_fk": { 812 + "name": "sandbox_ports_sandbox_id_sandboxes_id_fk", 813 + "tableFrom": "sandbox_ports", 814 + "tableTo": "sandboxes", 815 + "columnsFrom": [ 816 + "sandbox_id" 817 + ], 818 + "columnsTo": [ 819 + "id" 820 + ], 821 + "onDelete": "cascade", 822 + "onUpdate": "no action" 823 + }, 824 + "sandbox_ports_service_id_services_id_fk": { 825 + "name": "sandbox_ports_service_id_services_id_fk", 826 + "tableFrom": "sandbox_ports", 827 + "tableTo": "services", 828 + "columnsFrom": [ 829 + "service_id" 830 + ], 831 + "columnsTo": [ 832 + "id" 833 + ], 834 + "onDelete": "no action", 835 + "onUpdate": "no action" 836 + } 837 + }, 838 + "compositePrimaryKeys": {}, 839 + "uniqueConstraints": {}, 840 + "policies": {}, 841 + "checkConstraints": {}, 842 + "isRLSEnabled": false 843 + }, 844 + "public.sandbox_secrets": { 845 + "name": "sandbox_secrets", 846 + "schema": "", 847 + "columns": { 848 + "id": { 849 + "name": "id", 850 + "type": "text", 851 + "primaryKey": true, 852 + "notNull": true, 853 + "default": "xata_id()" 854 + }, 855 + "sandbox_id": { 856 + "name": "sandbox_id", 857 + "type": "text", 858 + "primaryKey": false, 859 + "notNull": true 860 + }, 861 + "secret_id": { 862 + "name": "secret_id", 863 + "type": "text", 864 + "primaryKey": false, 865 + "notNull": true 866 + }, 867 + "name": { 868 + "name": "name", 869 + "type": "text", 870 + "primaryKey": false, 871 + "notNull": false 872 + }, 873 + "created_at": { 874 + "name": "created_at", 875 + "type": "timestamp", 876 + "primaryKey": false, 877 + "notNull": true, 878 + "default": "now()" 879 + }, 880 + "updated_at": { 881 + "name": "updated_at", 882 + "type": "timestamp", 883 + "primaryKey": false, 884 + "notNull": true, 885 + "default": "now()" 886 + } 887 + }, 888 + "indexes": { 889 + "unique_sandbox_secret_by_name": { 890 + "name": "unique_sandbox_secret_by_name", 891 + "columns": [ 892 + { 893 + "expression": "sandbox_id", 894 + "isExpression": false, 895 + "asc": true, 896 + "nulls": "last" 897 + }, 898 + { 899 + "expression": "name", 900 + "isExpression": false, 901 + "asc": true, 902 + "nulls": "last" 903 + } 904 + ], 905 + "isUnique": true, 906 + "concurrently": false, 907 + "method": "btree", 908 + "with": {} 909 + } 910 + }, 911 + "foreignKeys": { 912 + "sandbox_secrets_sandbox_id_sandboxes_id_fk": { 913 + "name": "sandbox_secrets_sandbox_id_sandboxes_id_fk", 914 + "tableFrom": "sandbox_secrets", 915 + "tableTo": "sandboxes", 916 + "columnsFrom": [ 917 + "sandbox_id" 918 + ], 919 + "columnsTo": [ 920 + "id" 921 + ], 922 + "onDelete": "cascade", 923 + "onUpdate": "no action" 924 + }, 925 + "sandbox_secrets_secret_id_secrets_id_fk": { 926 + "name": "sandbox_secrets_secret_id_secrets_id_fk", 927 + "tableFrom": "sandbox_secrets", 928 + "tableTo": "secrets", 929 + "columnsFrom": [ 930 + "secret_id" 931 + ], 932 + "columnsTo": [ 933 + "id" 934 + ], 935 + "onDelete": "no action", 936 + "onUpdate": "no action" 937 + } 938 + }, 939 + "compositePrimaryKeys": {}, 940 + "uniqueConstraints": {}, 941 + "policies": {}, 942 + "checkConstraints": {}, 943 + "isRLSEnabled": false 944 + }, 945 + "public.sandbox_variables": { 946 + "name": "sandbox_variables", 947 + "schema": "", 948 + "columns": { 949 + "id": { 950 + "name": "id", 951 + "type": "text", 952 + "primaryKey": true, 953 + "notNull": true, 954 + "default": "xata_id()" 955 + }, 956 + "sandbox_id": { 957 + "name": "sandbox_id", 958 + "type": "text", 959 + "primaryKey": false, 960 + "notNull": true 961 + }, 962 + "variable_id": { 963 + "name": "variable_id", 964 + "type": "text", 965 + "primaryKey": false, 966 + "notNull": true 967 + }, 968 + "name": { 969 + "name": "name", 970 + "type": "text", 971 + "primaryKey": false, 972 + "notNull": true 973 + }, 974 + "created_at": { 975 + "name": "created_at", 976 + "type": "timestamp", 977 + "primaryKey": false, 978 + "notNull": true, 979 + "default": "now()" 980 + }, 981 + "updated_at": { 982 + "name": "updated_at", 983 + "type": "timestamp", 984 + "primaryKey": false, 985 + "notNull": true, 986 + "default": "now()" 987 + } 988 + }, 989 + "indexes": { 990 + "unique_sandbox_variables_by_name": { 991 + "name": "unique_sandbox_variables_by_name", 992 + "columns": [ 993 + { 994 + "expression": "sandbox_id", 995 + "isExpression": false, 996 + "asc": true, 997 + "nulls": "last" 998 + }, 999 + { 1000 + "expression": "name", 1001 + "isExpression": false, 1002 + "asc": true, 1003 + "nulls": "last" 1004 + } 1005 + ], 1006 + "isUnique": true, 1007 + "concurrently": false, 1008 + "method": "btree", 1009 + "with": {} 1010 + } 1011 + }, 1012 + "foreignKeys": { 1013 + "sandbox_variables_sandbox_id_sandboxes_id_fk": { 1014 + "name": "sandbox_variables_sandbox_id_sandboxes_id_fk", 1015 + "tableFrom": "sandbox_variables", 1016 + "tableTo": "sandboxes", 1017 + "columnsFrom": [ 1018 + "sandbox_id" 1019 + ], 1020 + "columnsTo": [ 1021 + "id" 1022 + ], 1023 + "onDelete": "cascade", 1024 + "onUpdate": "no action" 1025 + }, 1026 + "sandbox_variables_variable_id_variables_id_fk": { 1027 + "name": "sandbox_variables_variable_id_variables_id_fk", 1028 + "tableFrom": "sandbox_variables", 1029 + "tableTo": "variables", 1030 + "columnsFrom": [ 1031 + "variable_id" 1032 + ], 1033 + "columnsTo": [ 1034 + "id" 1035 + ], 1036 + "onDelete": "no action", 1037 + "onUpdate": "no action" 1038 + } 1039 + }, 1040 + "compositePrimaryKeys": {}, 1041 + "uniqueConstraints": {}, 1042 + "policies": {}, 1043 + "checkConstraints": {}, 1044 + "isRLSEnabled": false 1045 + }, 1046 + "public.sandbox_volumes": { 1047 + "name": "sandbox_volumes", 1048 + "schema": "", 1049 + "columns": { 1050 + "id": { 1051 + "name": "id", 1052 + "type": "text", 1053 + "primaryKey": true, 1054 + "notNull": true, 1055 + "default": "volume_id()" 1056 + }, 1057 + "sandbox_id": { 1058 + "name": "sandbox_id", 1059 + "type": "text", 1060 + "primaryKey": false, 1061 + "notNull": true 1062 + }, 1063 + "volume_id": { 1064 + "name": "volume_id", 1065 + "type": "text", 1066 + "primaryKey": false, 1067 + "notNull": true 1068 + }, 1069 + "name": { 1070 + "name": "name", 1071 + "type": "text", 1072 + "primaryKey": false, 1073 + "notNull": false 1074 + }, 1075 + "path": { 1076 + "name": "path", 1077 + "type": "text", 1078 + "primaryKey": false, 1079 + "notNull": true 1080 + }, 1081 + "created_at": { 1082 + "name": "created_at", 1083 + "type": "timestamp", 1084 + "primaryKey": false, 1085 + "notNull": true, 1086 + "default": "now()" 1087 + }, 1088 + "updated_at": { 1089 + "name": "updated_at", 1090 + "type": "timestamp", 1091 + "primaryKey": false, 1092 + "notNull": true, 1093 + "default": "now()" 1094 + } 1095 + }, 1096 + "indexes": { 1097 + "unique_sandbox_volume_path": { 1098 + "name": "unique_sandbox_volume_path", 1099 + "columns": [ 1100 + { 1101 + "expression": "sandbox_id", 1102 + "isExpression": false, 1103 + "asc": true, 1104 + "nulls": "last" 1105 + }, 1106 + { 1107 + "expression": "path", 1108 + "isExpression": false, 1109 + "asc": true, 1110 + "nulls": "last" 1111 + } 1112 + ], 1113 + "isUnique": true, 1114 + "concurrently": false, 1115 + "method": "btree", 1116 + "with": {} 1117 + } 1118 + }, 1119 + "foreignKeys": { 1120 + "sandbox_volumes_sandbox_id_sandboxes_id_fk": { 1121 + "name": "sandbox_volumes_sandbox_id_sandboxes_id_fk", 1122 + "tableFrom": "sandbox_volumes", 1123 + "tableTo": "sandboxes", 1124 + "columnsFrom": [ 1125 + "sandbox_id" 1126 + ], 1127 + "columnsTo": [ 1128 + "id" 1129 + ], 1130 + "onDelete": "cascade", 1131 + "onUpdate": "no action" 1132 + }, 1133 + "sandbox_volumes_volume_id_volumes_id_fk": { 1134 + "name": "sandbox_volumes_volume_id_volumes_id_fk", 1135 + "tableFrom": "sandbox_volumes", 1136 + "tableTo": "volumes", 1137 + "columnsFrom": [ 1138 + "volume_id" 1139 + ], 1140 + "columnsTo": [ 1141 + "id" 1142 + ], 1143 + "onDelete": "no action", 1144 + "onUpdate": "no action" 1145 + } 1146 + }, 1147 + "compositePrimaryKeys": {}, 1148 + "uniqueConstraints": {}, 1149 + "policies": {}, 1150 + "checkConstraints": {}, 1151 + "isRLSEnabled": false 1152 + }, 1153 + "public.sandboxes": { 1154 + "name": "sandboxes", 1155 + "schema": "", 1156 + "columns": { 1157 + "id": { 1158 + "name": "id", 1159 + "type": "text", 1160 + "primaryKey": true, 1161 + "notNull": true, 1162 + "default": "sandbox_id()" 1163 + }, 1164 + "base": { 1165 + "name": "base", 1166 + "type": "text", 1167 + "primaryKey": false, 1168 + "notNull": false 1169 + }, 1170 + "name": { 1171 + "name": "name", 1172 + "type": "text", 1173 + "primaryKey": false, 1174 + "notNull": true 1175 + }, 1176 + "display_name": { 1177 + "name": "display_name", 1178 + "type": "text", 1179 + "primaryKey": false, 1180 + "notNull": false 1181 + }, 1182 + "uri": { 1183 + "name": "uri", 1184 + "type": "text", 1185 + "primaryKey": false, 1186 + "notNull": false 1187 + }, 1188 + "cid": { 1189 + "name": "cid", 1190 + "type": "text", 1191 + "primaryKey": false, 1192 + "notNull": false 1193 + }, 1194 + "repo": { 1195 + "name": "repo", 1196 + "type": "text", 1197 + "primaryKey": false, 1198 + "notNull": false 1199 + }, 1200 + "provider": { 1201 + "name": "provider", 1202 + "type": "text", 1203 + "primaryKey": false, 1204 + "notNull": true, 1205 + "default": "'cloudflare'" 1206 + }, 1207 + "description": { 1208 + "name": "description", 1209 + "type": "text", 1210 + "primaryKey": false, 1211 + "notNull": false 1212 + }, 1213 + "topics": { 1214 + "name": "topics", 1215 + "type": "text[]", 1216 + "primaryKey": false, 1217 + "notNull": false 1218 + }, 1219 + "logo": { 1220 + "name": "logo", 1221 + "type": "text", 1222 + "primaryKey": false, 1223 + "notNull": false 1224 + }, 1225 + "readme": { 1226 + "name": "readme", 1227 + "type": "text", 1228 + "primaryKey": false, 1229 + "notNull": false 1230 + }, 1231 + "public_key": { 1232 + "name": "public_key", 1233 + "type": "text", 1234 + "primaryKey": false, 1235 + "notNull": true 1236 + }, 1237 + "user_id": { 1238 + "name": "user_id", 1239 + "type": "text", 1240 + "primaryKey": false, 1241 + "notNull": false 1242 + }, 1243 + "instance_type": { 1244 + "name": "instance_type", 1245 + "type": "text", 1246 + "primaryKey": false, 1247 + "notNull": false 1248 + }, 1249 + "vcpus": { 1250 + "name": "vcpus", 1251 + "type": "integer", 1252 + "primaryKey": false, 1253 + "notNull": false 1254 + }, 1255 + "memory": { 1256 + "name": "memory", 1257 + "type": "integer", 1258 + "primaryKey": false, 1259 + "notNull": false 1260 + }, 1261 + "disk": { 1262 + "name": "disk", 1263 + "type": "integer", 1264 + "primaryKey": false, 1265 + "notNull": false 1266 + }, 1267 + "status": { 1268 + "name": "status", 1269 + "type": "text", 1270 + "primaryKey": false, 1271 + "notNull": true 1272 + }, 1273 + "keep_alive": { 1274 + "name": "keep_alive", 1275 + "type": "boolean", 1276 + "primaryKey": false, 1277 + "notNull": true, 1278 + "default": false 1279 + }, 1280 + "sleep_after": { 1281 + "name": "sleep_after", 1282 + "type": "text", 1283 + "primaryKey": false, 1284 + "notNull": false 1285 + }, 1286 + "sandbox_id": { 1287 + "name": "sandbox_id", 1288 + "type": "text", 1289 + "primaryKey": false, 1290 + "notNull": false 1291 + }, 1292 + "installs": { 1293 + "name": "installs", 1294 + "type": "integer", 1295 + "primaryKey": false, 1296 + "notNull": true, 1297 + "default": 0 1298 + }, 1299 + "started_at": { 1300 + "name": "started_at", 1301 + "type": "timestamp", 1302 + "primaryKey": false, 1303 + "notNull": false 1304 + }, 1305 + "created_at": { 1306 + "name": "created_at", 1307 + "type": "timestamp", 1308 + "primaryKey": false, 1309 + "notNull": true, 1310 + "default": "now()" 1311 + }, 1312 + "updated_at": { 1313 + "name": "updated_at", 1314 + "type": "timestamp", 1315 + "primaryKey": false, 1316 + "notNull": true, 1317 + "default": "now()" 1318 + } 1319 + }, 1320 + "indexes": {}, 1321 + "foreignKeys": { 1322 + "sandboxes_user_id_users_id_fk": { 1323 + "name": "sandboxes_user_id_users_id_fk", 1324 + "tableFrom": "sandboxes", 1325 + "tableTo": "users", 1326 + "columnsFrom": [ 1327 + "user_id" 1328 + ], 1329 + "columnsTo": [ 1330 + "id" 1331 + ], 1332 + "onDelete": "no action", 1333 + "onUpdate": "no action" 1334 + } 1335 + }, 1336 + "compositePrimaryKeys": {}, 1337 + "uniqueConstraints": { 1338 + "sandboxes_name_unique": { 1339 + "name": "sandboxes_name_unique", 1340 + "nullsNotDistinct": false, 1341 + "columns": [ 1342 + "name" 1343 + ] 1344 + }, 1345 + "sandboxes_uri_unique": { 1346 + "name": "sandboxes_uri_unique", 1347 + "nullsNotDistinct": false, 1348 + "columns": [ 1349 + "uri" 1350 + ] 1351 + }, 1352 + "sandboxes_cid_unique": { 1353 + "name": "sandboxes_cid_unique", 1354 + "nullsNotDistinct": false, 1355 + "columns": [ 1356 + "cid" 1357 + ] 1358 + } 1359 + }, 1360 + "policies": {}, 1361 + "checkConstraints": {}, 1362 + "isRLSEnabled": false 1363 + }, 1364 + "public.secrets": { 1365 + "name": "secrets", 1366 + "schema": "", 1367 + "columns": { 1368 + "id": { 1369 + "name": "id", 1370 + "type": "text", 1371 + "primaryKey": true, 1372 + "notNull": true, 1373 + "default": "secret_id()" 1374 + }, 1375 + "name": { 1376 + "name": "name", 1377 + "type": "text", 1378 + "primaryKey": false, 1379 + "notNull": true 1380 + }, 1381 + "value": { 1382 + "name": "value", 1383 + "type": "text", 1384 + "primaryKey": false, 1385 + "notNull": true 1386 + }, 1387 + "redacted": { 1388 + "name": "redacted", 1389 + "type": "text", 1390 + "primaryKey": false, 1391 + "notNull": false 1392 + }, 1393 + "created_at": { 1394 + "name": "created_at", 1395 + "type": "timestamp", 1396 + "primaryKey": false, 1397 + "notNull": true, 1398 + "default": "now()" 1399 + } 1400 + }, 1401 + "indexes": {}, 1402 + "foreignKeys": {}, 1403 + "compositePrimaryKeys": {}, 1404 + "uniqueConstraints": {}, 1405 + "policies": {}, 1406 + "checkConstraints": {}, 1407 + "isRLSEnabled": false 1408 + }, 1409 + "public.services": { 1410 + "name": "services", 1411 + "schema": "", 1412 + "columns": { 1413 + "id": { 1414 + "name": "id", 1415 + "type": "text", 1416 + "primaryKey": true, 1417 + "notNull": true, 1418 + "default": "xata_id()" 1419 + }, 1420 + "sandbox_id": { 1421 + "name": "sandbox_id", 1422 + "type": "text", 1423 + "primaryKey": false, 1424 + "notNull": true 1425 + }, 1426 + "name": { 1427 + "name": "name", 1428 + "type": "text", 1429 + "primaryKey": false, 1430 + "notNull": true 1431 + }, 1432 + "command": { 1433 + "name": "command", 1434 + "type": "text", 1435 + "primaryKey": false, 1436 + "notNull": true 1437 + }, 1438 + "description": { 1439 + "name": "description", 1440 + "type": "text", 1441 + "primaryKey": false, 1442 + "notNull": false 1443 + }, 1444 + "service_id": { 1445 + "name": "service_id", 1446 + "type": "text", 1447 + "primaryKey": false, 1448 + "notNull": false 1449 + }, 1450 + "status": { 1451 + "name": "status", 1452 + "type": "text", 1453 + "primaryKey": false, 1454 + "notNull": true, 1455 + "default": "'STOPPED'" 1456 + }, 1457 + "created_at": { 1458 + "name": "created_at", 1459 + "type": "timestamp", 1460 + "primaryKey": false, 1461 + "notNull": true, 1462 + "default": "now()" 1463 + }, 1464 + "updated_at": { 1465 + "name": "updated_at", 1466 + "type": "timestamp", 1467 + "primaryKey": false, 1468 + "notNull": true, 1469 + "default": "now()" 1470 + } 1471 + }, 1472 + "indexes": { 1473 + "unique_sandbox_service": { 1474 + "name": "unique_sandbox_service", 1475 + "columns": [ 1476 + { 1477 + "expression": "name", 1478 + "isExpression": false, 1479 + "asc": true, 1480 + "nulls": "last" 1481 + }, 1482 + { 1483 + "expression": "sandbox_id", 1484 + "isExpression": false, 1485 + "asc": true, 1486 + "nulls": "last" 1487 + } 1488 + ], 1489 + "isUnique": true, 1490 + "concurrently": false, 1491 + "method": "btree", 1492 + "with": {} 1493 + } 1494 + }, 1495 + "foreignKeys": { 1496 + "services_sandbox_id_sandboxes_id_fk": { 1497 + "name": "services_sandbox_id_sandboxes_id_fk", 1498 + "tableFrom": "services", 1499 + "tableTo": "sandboxes", 1500 + "columnsFrom": [ 1501 + "sandbox_id" 1502 + ], 1503 + "columnsTo": [ 1504 + "id" 1505 + ], 1506 + "onDelete": "cascade", 1507 + "onUpdate": "no action" 1508 + } 1509 + }, 1510 + "compositePrimaryKeys": {}, 1511 + "uniqueConstraints": {}, 1512 + "policies": {}, 1513 + "checkConstraints": {}, 1514 + "isRLSEnabled": false 1515 + }, 1516 + "public.snapshots": { 1517 + "name": "snapshots", 1518 + "schema": "", 1519 + "columns": { 1520 + "id": { 1521 + "name": "id", 1522 + "type": "text", 1523 + "primaryKey": true, 1524 + "notNull": true, 1525 + "default": "snapshot_id()" 1526 + }, 1527 + "slug": { 1528 + "name": "slug", 1529 + "type": "text", 1530 + "primaryKey": false, 1531 + "notNull": true 1532 + }, 1533 + "created_at": { 1534 + "name": "created_at", 1535 + "type": "timestamp", 1536 + "primaryKey": false, 1537 + "notNull": true, 1538 + "default": "now()" 1539 + } 1540 + }, 1541 + "indexes": {}, 1542 + "foreignKeys": {}, 1543 + "compositePrimaryKeys": {}, 1544 + "uniqueConstraints": { 1545 + "snapshots_slug_unique": { 1546 + "name": "snapshots_slug_unique", 1547 + "nullsNotDistinct": false, 1548 + "columns": [ 1549 + "slug" 1550 + ] 1551 + } 1552 + }, 1553 + "policies": {}, 1554 + "checkConstraints": {}, 1555 + "isRLSEnabled": false 1556 + }, 1557 + "public.sprite_auth": { 1558 + "name": "sprite_auth", 1559 + "schema": "", 1560 + "columns": { 1561 + "id": { 1562 + "name": "id", 1563 + "type": "text", 1564 + "primaryKey": true, 1565 + "notNull": true, 1566 + "default": "xata_id()" 1567 + }, 1568 + "sandbox_id": { 1569 + "name": "sandbox_id", 1570 + "type": "text", 1571 + "primaryKey": false, 1572 + "notNull": true 1573 + }, 1574 + "user_id": { 1575 + "name": "user_id", 1576 + "type": "text", 1577 + "primaryKey": false, 1578 + "notNull": true 1579 + }, 1580 + "sprite_token": { 1581 + "name": "sprite_token", 1582 + "type": "text", 1583 + "primaryKey": false, 1584 + "notNull": true 1585 + }, 1586 + "redacted_sprite_token": { 1587 + "name": "redacted_sprite_token", 1588 + "type": "text", 1589 + "primaryKey": false, 1590 + "notNull": true 1591 + }, 1592 + "created_at": { 1593 + "name": "created_at", 1594 + "type": "timestamp", 1595 + "primaryKey": false, 1596 + "notNull": true, 1597 + "default": "now()" 1598 + } 1599 + }, 1600 + "indexes": { 1601 + "unique_sprite_auth": { 1602 + "name": "unique_sprite_auth", 1603 + "columns": [ 1604 + { 1605 + "expression": "sandbox_id", 1606 + "isExpression": false, 1607 + "asc": true, 1608 + "nulls": "last" 1609 + }, 1610 + { 1611 + "expression": "user_id", 1612 + "isExpression": false, 1613 + "asc": true, 1614 + "nulls": "last" 1615 + } 1616 + ], 1617 + "isUnique": true, 1618 + "concurrently": false, 1619 + "method": "btree", 1620 + "with": {} 1621 + } 1622 + }, 1623 + "foreignKeys": { 1624 + "sprite_auth_sandbox_id_sandboxes_id_fk": { 1625 + "name": "sprite_auth_sandbox_id_sandboxes_id_fk", 1626 + "tableFrom": "sprite_auth", 1627 + "tableTo": "sandboxes", 1628 + "columnsFrom": [ 1629 + "sandbox_id" 1630 + ], 1631 + "columnsTo": [ 1632 + "id" 1633 + ], 1634 + "onDelete": "cascade", 1635 + "onUpdate": "no action" 1636 + }, 1637 + "sprite_auth_user_id_users_id_fk": { 1638 + "name": "sprite_auth_user_id_users_id_fk", 1639 + "tableFrom": "sprite_auth", 1640 + "tableTo": "users", 1641 + "columnsFrom": [ 1642 + "user_id" 1643 + ], 1644 + "columnsTo": [ 1645 + "id" 1646 + ], 1647 + "onDelete": "no action", 1648 + "onUpdate": "no action" 1649 + } 1650 + }, 1651 + "compositePrimaryKeys": {}, 1652 + "uniqueConstraints": {}, 1653 + "policies": {}, 1654 + "checkConstraints": {}, 1655 + "isRLSEnabled": false 1656 + }, 1657 + "public.ssh_keys": { 1658 + "name": "ssh_keys", 1659 + "schema": "", 1660 + "columns": { 1661 + "id": { 1662 + "name": "id", 1663 + "type": "text", 1664 + "primaryKey": true, 1665 + "notNull": true, 1666 + "default": "xata_id()" 1667 + }, 1668 + "sandbox_id": { 1669 + "name": "sandbox_id", 1670 + "type": "text", 1671 + "primaryKey": false, 1672 + "notNull": true 1673 + }, 1674 + "public_key": { 1675 + "name": "public_key", 1676 + "type": "text", 1677 + "primaryKey": false, 1678 + "notNull": true 1679 + }, 1680 + "private_key": { 1681 + "name": "private_key", 1682 + "type": "text", 1683 + "primaryKey": false, 1684 + "notNull": true 1685 + }, 1686 + "redacted": { 1687 + "name": "redacted", 1688 + "type": "text", 1689 + "primaryKey": false, 1690 + "notNull": false 1691 + }, 1692 + "created_at": { 1693 + "name": "created_at", 1694 + "type": "timestamp", 1695 + "primaryKey": false, 1696 + "notNull": true, 1697 + "default": "now()" 1698 + } 1699 + }, 1700 + "indexes": { 1701 + "unique_sandbox_ssh_key": { 1702 + "name": "unique_sandbox_ssh_key", 1703 + "columns": [ 1704 + { 1705 + "expression": "public_key", 1706 + "isExpression": false, 1707 + "asc": true, 1708 + "nulls": "last" 1709 + }, 1710 + { 1711 + "expression": "sandbox_id", 1712 + "isExpression": false, 1713 + "asc": true, 1714 + "nulls": "last" 1715 + } 1716 + ], 1717 + "isUnique": true, 1718 + "concurrently": false, 1719 + "method": "btree", 1720 + "with": {} 1721 + } 1722 + }, 1723 + "foreignKeys": { 1724 + "ssh_keys_sandbox_id_sandboxes_id_fk": { 1725 + "name": "ssh_keys_sandbox_id_sandboxes_id_fk", 1726 + "tableFrom": "ssh_keys", 1727 + "tableTo": "sandboxes", 1728 + "columnsFrom": [ 1729 + "sandbox_id" 1730 + ], 1731 + "columnsTo": [ 1732 + "id" 1733 + ], 1734 + "onDelete": "cascade", 1735 + "onUpdate": "no action" 1736 + } 1737 + }, 1738 + "compositePrimaryKeys": {}, 1739 + "uniqueConstraints": {}, 1740 + "policies": {}, 1741 + "checkConstraints": {}, 1742 + "isRLSEnabled": false 1743 + }, 1744 + "public.tailscale_auth_keys": { 1745 + "name": "tailscale_auth_keys", 1746 + "schema": "", 1747 + "columns": { 1748 + "id": { 1749 + "name": "id", 1750 + "type": "text", 1751 + "primaryKey": true, 1752 + "notNull": true, 1753 + "default": "xata_id()" 1754 + }, 1755 + "sandbox_id": { 1756 + "name": "sandbox_id", 1757 + "type": "text", 1758 + "primaryKey": false, 1759 + "notNull": true 1760 + }, 1761 + "auth_key": { 1762 + "name": "auth_key", 1763 + "type": "text", 1764 + "primaryKey": false, 1765 + "notNull": true 1766 + }, 1767 + "redacted": { 1768 + "name": "redacted", 1769 + "type": "text", 1770 + "primaryKey": false, 1771 + "notNull": true 1772 + }, 1773 + "created_at": { 1774 + "name": "created_at", 1775 + "type": "timestamp", 1776 + "primaryKey": false, 1777 + "notNull": true, 1778 + "default": "now()" 1779 + } 1780 + }, 1781 + "indexes": {}, 1782 + "foreignKeys": { 1783 + "tailscale_auth_keys_sandbox_id_sandboxes_id_fk": { 1784 + "name": "tailscale_auth_keys_sandbox_id_sandboxes_id_fk", 1785 + "tableFrom": "tailscale_auth_keys", 1786 + "tableTo": "sandboxes", 1787 + "columnsFrom": [ 1788 + "sandbox_id" 1789 + ], 1790 + "columnsTo": [ 1791 + "id" 1792 + ], 1793 + "onDelete": "cascade", 1794 + "onUpdate": "no action" 1795 + } 1796 + }, 1797 + "compositePrimaryKeys": {}, 1798 + "uniqueConstraints": {}, 1799 + "policies": {}, 1800 + "checkConstraints": {}, 1801 + "isRLSEnabled": false 1802 + }, 1803 + "public.users": { 1804 + "name": "users", 1805 + "schema": "", 1806 + "columns": { 1807 + "id": { 1808 + "name": "id", 1809 + "type": "text", 1810 + "primaryKey": true, 1811 + "notNull": true, 1812 + "default": "xata_id()" 1813 + }, 1814 + "did": { 1815 + "name": "did", 1816 + "type": "text", 1817 + "primaryKey": false, 1818 + "notNull": true 1819 + }, 1820 + "display_name": { 1821 + "name": "display_name", 1822 + "type": "text", 1823 + "primaryKey": false, 1824 + "notNull": false 1825 + }, 1826 + "handle": { 1827 + "name": "handle", 1828 + "type": "text", 1829 + "primaryKey": false, 1830 + "notNull": true 1831 + }, 1832 + "avatar": { 1833 + "name": "avatar", 1834 + "type": "text", 1835 + "primaryKey": false, 1836 + "notNull": false 1837 + }, 1838 + "created_at": { 1839 + "name": "created_at", 1840 + "type": "timestamp", 1841 + "primaryKey": false, 1842 + "notNull": true, 1843 + "default": "now()" 1844 + }, 1845 + "updated_at": { 1846 + "name": "updated_at", 1847 + "type": "timestamp", 1848 + "primaryKey": false, 1849 + "notNull": true, 1850 + "default": "now()" 1851 + } 1852 + }, 1853 + "indexes": {}, 1854 + "foreignKeys": {}, 1855 + "compositePrimaryKeys": {}, 1856 + "uniqueConstraints": { 1857 + "users_did_unique": { 1858 + "name": "users_did_unique", 1859 + "nullsNotDistinct": false, 1860 + "columns": [ 1861 + "did" 1862 + ] 1863 + }, 1864 + "users_handle_unique": { 1865 + "name": "users_handle_unique", 1866 + "nullsNotDistinct": false, 1867 + "columns": [ 1868 + "handle" 1869 + ] 1870 + } 1871 + }, 1872 + "policies": {}, 1873 + "checkConstraints": {}, 1874 + "isRLSEnabled": false 1875 + }, 1876 + "public.variables": { 1877 + "name": "variables", 1878 + "schema": "", 1879 + "columns": { 1880 + "id": { 1881 + "name": "id", 1882 + "type": "text", 1883 + "primaryKey": true, 1884 + "notNull": true, 1885 + "default": "variable_id()" 1886 + }, 1887 + "name": { 1888 + "name": "name", 1889 + "type": "text", 1890 + "primaryKey": false, 1891 + "notNull": true 1892 + }, 1893 + "value": { 1894 + "name": "value", 1895 + "type": "text", 1896 + "primaryKey": false, 1897 + "notNull": true 1898 + }, 1899 + "created_at": { 1900 + "name": "created_at", 1901 + "type": "timestamp", 1902 + "primaryKey": false, 1903 + "notNull": true, 1904 + "default": "now()" 1905 + }, 1906 + "updated_at": { 1907 + "name": "updated_at", 1908 + "type": "timestamp", 1909 + "primaryKey": false, 1910 + "notNull": true, 1911 + "default": "now()" 1912 + } 1913 + }, 1914 + "indexes": {}, 1915 + "foreignKeys": {}, 1916 + "compositePrimaryKeys": {}, 1917 + "uniqueConstraints": {}, 1918 + "policies": {}, 1919 + "checkConstraints": {}, 1920 + "isRLSEnabled": false 1921 + }, 1922 + "public.vercel_auth": { 1923 + "name": "vercel_auth", 1924 + "schema": "", 1925 + "columns": { 1926 + "id": { 1927 + "name": "id", 1928 + "type": "text", 1929 + "primaryKey": true, 1930 + "notNull": true, 1931 + "default": "xata_id()" 1932 + }, 1933 + "sandbox_id": { 1934 + "name": "sandbox_id", 1935 + "type": "text", 1936 + "primaryKey": false, 1937 + "notNull": true 1938 + }, 1939 + "user_id": { 1940 + "name": "user_id", 1941 + "type": "text", 1942 + "primaryKey": false, 1943 + "notNull": true 1944 + }, 1945 + "vercel_token": { 1946 + "name": "vercel_token", 1947 + "type": "text", 1948 + "primaryKey": false, 1949 + "notNull": true 1950 + }, 1951 + "redacted_vercel_token": { 1952 + "name": "redacted_vercel_token", 1953 + "type": "text", 1954 + "primaryKey": false, 1955 + "notNull": true 1956 + }, 1957 + "project_id": { 1958 + "name": "project_id", 1959 + "type": "text", 1960 + "primaryKey": false, 1961 + "notNull": true 1962 + }, 1963 + "team_id": { 1964 + "name": "team_id", 1965 + "type": "text", 1966 + "primaryKey": false, 1967 + "notNull": true 1968 + }, 1969 + "created_at": { 1970 + "name": "created_at", 1971 + "type": "timestamp", 1972 + "primaryKey": false, 1973 + "notNull": true, 1974 + "default": "now()" 1975 + } 1976 + }, 1977 + "indexes": { 1978 + "unique_vercel_auth": { 1979 + "name": "unique_vercel_auth", 1980 + "columns": [ 1981 + { 1982 + "expression": "sandbox_id", 1983 + "isExpression": false, 1984 + "asc": true, 1985 + "nulls": "last" 1986 + }, 1987 + { 1988 + "expression": "user_id", 1989 + "isExpression": false, 1990 + "asc": true, 1991 + "nulls": "last" 1992 + } 1993 + ], 1994 + "isUnique": true, 1995 + "concurrently": false, 1996 + "method": "btree", 1997 + "with": {} 1998 + } 1999 + }, 2000 + "foreignKeys": { 2001 + "vercel_auth_sandbox_id_sandboxes_id_fk": { 2002 + "name": "vercel_auth_sandbox_id_sandboxes_id_fk", 2003 + "tableFrom": "vercel_auth", 2004 + "tableTo": "sandboxes", 2005 + "columnsFrom": [ 2006 + "sandbox_id" 2007 + ], 2008 + "columnsTo": [ 2009 + "id" 2010 + ], 2011 + "onDelete": "cascade", 2012 + "onUpdate": "no action" 2013 + }, 2014 + "vercel_auth_user_id_users_id_fk": { 2015 + "name": "vercel_auth_user_id_users_id_fk", 2016 + "tableFrom": "vercel_auth", 2017 + "tableTo": "users", 2018 + "columnsFrom": [ 2019 + "user_id" 2020 + ], 2021 + "columnsTo": [ 2022 + "id" 2023 + ], 2024 + "onDelete": "no action", 2025 + "onUpdate": "no action" 2026 + } 2027 + }, 2028 + "compositePrimaryKeys": {}, 2029 + "uniqueConstraints": {}, 2030 + "policies": {}, 2031 + "checkConstraints": {}, 2032 + "isRLSEnabled": false 2033 + }, 2034 + "public.volumes": { 2035 + "name": "volumes", 2036 + "schema": "", 2037 + "columns": { 2038 + "id": { 2039 + "name": "id", 2040 + "type": "text", 2041 + "primaryKey": true, 2042 + "notNull": true, 2043 + "default": "volume_id()" 2044 + }, 2045 + "slug": { 2046 + "name": "slug", 2047 + "type": "text", 2048 + "primaryKey": false, 2049 + "notNull": true 2050 + }, 2051 + "size": { 2052 + "name": "size", 2053 + "type": "integer", 2054 + "primaryKey": false, 2055 + "notNull": true 2056 + }, 2057 + "size_unit": { 2058 + "name": "size_unit", 2059 + "type": "text", 2060 + "primaryKey": false, 2061 + "notNull": true 2062 + }, 2063 + "created_at": { 2064 + "name": "created_at", 2065 + "type": "timestamp", 2066 + "primaryKey": false, 2067 + "notNull": true, 2068 + "default": "now()" 2069 + }, 2070 + "updated_at": { 2071 + "name": "updated_at", 2072 + "type": "timestamp", 2073 + "primaryKey": false, 2074 + "notNull": true, 2075 + "default": "now()" 2076 + } 2077 + }, 2078 + "indexes": {}, 2079 + "foreignKeys": {}, 2080 + "compositePrimaryKeys": {}, 2081 + "uniqueConstraints": { 2082 + "volumes_slug_unique": { 2083 + "name": "volumes_slug_unique", 2084 + "nullsNotDistinct": false, 2085 + "columns": [ 2086 + "slug" 2087 + ] 2088 + } 2089 + }, 2090 + "policies": {}, 2091 + "checkConstraints": {}, 2092 + "isRLSEnabled": false 2093 + }, 2094 + "public.integrations": { 2095 + "name": "integrations", 2096 + "schema": "", 2097 + "columns": { 2098 + "id": { 2099 + "name": "id", 2100 + "type": "text", 2101 + "primaryKey": true, 2102 + "notNull": true, 2103 + "default": "xata_id()" 2104 + }, 2105 + "sandbox_id": { 2106 + "name": "sandbox_id", 2107 + "type": "text", 2108 + "primaryKey": false, 2109 + "notNull": true 2110 + }, 2111 + "name": { 2112 + "name": "name", 2113 + "type": "text", 2114 + "primaryKey": false, 2115 + "notNull": true 2116 + }, 2117 + "description": { 2118 + "name": "description", 2119 + "type": "text", 2120 + "primaryKey": false, 2121 + "notNull": false 2122 + }, 2123 + "webhook_url": { 2124 + "name": "webhook_url", 2125 + "type": "text", 2126 + "primaryKey": false, 2127 + "notNull": true 2128 + }, 2129 + "created_at": { 2130 + "name": "created_at", 2131 + "type": "timestamp", 2132 + "primaryKey": false, 2133 + "notNull": true, 2134 + "default": "now()" 2135 + } 2136 + }, 2137 + "indexes": { 2138 + "unique_sandbox_integration": { 2139 + "name": "unique_sandbox_integration", 2140 + "columns": [ 2141 + { 2142 + "expression": "sandbox_id", 2143 + "isExpression": false, 2144 + "asc": true, 2145 + "nulls": "last" 2146 + }, 2147 + { 2148 + "expression": "name", 2149 + "isExpression": false, 2150 + "asc": true, 2151 + "nulls": "last" 2152 + } 2153 + ], 2154 + "isUnique": true, 2155 + "concurrently": false, 2156 + "method": "btree", 2157 + "with": {} 2158 + } 2159 + }, 2160 + "foreignKeys": { 2161 + "integrations_sandbox_id_sandboxes_id_fk": { 2162 + "name": "integrations_sandbox_id_sandboxes_id_fk", 2163 + "tableFrom": "integrations", 2164 + "tableTo": "sandboxes", 2165 + "columnsFrom": [ 2166 + "sandbox_id" 2167 + ], 2168 + "columnsTo": [ 2169 + "id" 2170 + ], 2171 + "onDelete": "cascade", 2172 + "onUpdate": "no action" 2173 + } 2174 + }, 2175 + "compositePrimaryKeys": {}, 2176 + "uniqueConstraints": {}, 2177 + "policies": {}, 2178 + "checkConstraints": {}, 2179 + "isRLSEnabled": false 2180 + } 2181 + }, 2182 + "enums": {}, 2183 + "schemas": {}, 2184 + "sequences": {}, 2185 + "roles": {}, 2186 + "policies": {}, 2187 + "views": {}, 2188 + "_meta": { 2189 + "columns": {}, 2190 + "schemas": {}, 2191 + "tables": {} 2192 + } 2193 + }
+7
apps/cf-sandbox/drizzle/meta/_journal.json
··· 309 309 "when": 1775713354864, 310 310 "tag": "0043_supreme_ezekiel", 311 311 "breakpoints": true 312 + }, 313 + { 314 + "idx": 44, 315 + "version": "7", 316 + "when": 1775922491213, 317 + "tag": "0044_organic_scalphunter", 318 + "breakpoints": true 312 319 } 313 320 ] 314 321 }
+28
apps/cf-sandbox/src/schema/e2b-auth.ts
··· 1 + import { type InferInsertModel, type InferSelectModel, sql } from "drizzle-orm"; 2 + import { pgTable, text, timestamp, uniqueIndex } from "drizzle-orm/pg-core"; 3 + import sandboxes from "./sandboxes"; 4 + import users from "./users"; 5 + 6 + const e2bAuth = pgTable( 7 + "e2b_auth", 8 + { 9 + id: text("id") 10 + .primaryKey() 11 + .default(sql`xata_id()`), 12 + sandboxId: text("sandbox_id") 13 + .notNull() 14 + .references(() => sandboxes.id, { onDelete: "cascade" }), 15 + userId: text("user_id") 16 + .notNull() 17 + .references(() => users.id), 18 + accessToken: text("access_token").notNull(), 19 + redactedAccessToken: text("redacted_access_token").notNull(), 20 + createdAt: timestamp("created_at").defaultNow().notNull(), 21 + }, 22 + (t) => [uniqueIndex("unique_e2b_auth").on(t.sandboxId, t.userId)], 23 + ); 24 + 25 + export type SelectE2BAuth = InferSelectModel<typeof e2bAuth>; 26 + export type InsertE2BAuth = InferInsertModel<typeof e2bAuth>; 27 + 28 + export default e2bAuth;
+2
apps/cf-sandbox/src/schema/index.ts
··· 20 20 import sandboxCp from "./sandbox-cp"; 21 21 import backups from "./backups"; 22 22 import modalAuth from "./modal-auth"; 23 + import e2bAuth from "./e2b-auth"; 23 24 24 25 export { 25 26 sandboxes, ··· 44 45 sandboxCp, 45 46 backups, 46 47 modalAuth, 48 + e2bAuth, 47 49 };
+20
apps/cli/build.ts
··· 1 + #!/usr/bin/env bun 2 + import { build } from "bun"; 3 + import fs from "fs"; 4 + 5 + const outfile = "dist/index.js"; 6 + 7 + await build({ 8 + entrypoints: ["./src/index.ts"], 9 + outdir: "dist", 10 + target: "node", 11 + format: "esm", 12 + minify: true, 13 + }); 14 + 15 + const shebang = "#!/usr/bin/env node\n"; 16 + 17 + const content = fs.readFileSync(outfile, "utf-8"); 18 + fs.writeFileSync(outfile, shebang + content); 19 + 20 + console.log(`✅ Built ${outfile} with shebang`);
+34 -216
apps/cli/bun.lock
··· 6 6 "name": "cli", 7 7 "dependencies": { 8 8 "@inquirer/prompts": "^8.3.0", 9 - "@pocketenv/sdk": "^0.2.7", 9 + "@pocketenv/sdk": "^0.2.10", 10 10 "axios": "^1.13.6", 11 11 "chalk": "^5.6.2", 12 12 "cli-table3": "^0.6.5", ··· 27 27 "zod": "^4.3.6", 28 28 }, 29 29 "devDependencies": { 30 + "@types/bun": "^1.3.12", 30 31 "@types/cors": "^2.8.19", 31 32 "@types/eventsource": "^1.1.15", 32 33 "@types/express": "^5.0.6", 33 34 "@types/ws": "^8.18.1", 34 - "pkgroll": "^2.27.0", 35 35 "tsx": "^4.21.0", 36 36 "vitest": "^4.1.2", 37 37 }, ··· 49 49 50 50 "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="], 51 51 52 - "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.26.0", "", { "os": "aix", "cpu": "ppc64" }, "sha512-hj0sKNCQOOo2fgyII3clmJXP28VhgDfU5iy3GNHlWO76KG6N7x4D9ezH5lJtQTG+1J6MFDAJXC1qsI+W+LvZoA=="], 52 + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.4", "", { "os": "aix", "cpu": "ppc64" }, "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q=="], 53 53 54 - "@esbuild/android-arm": ["@esbuild/android-arm@0.26.0", "", { "os": "android", "cpu": "arm" }, "sha512-C0hkDsYNHZkBtPxxDx177JN90/1MiCpvBNjz1f5yWJo1+5+c5zr8apjastpEG+wtPjo9FFtGG7owSsAxyKiHxA=="], 54 + "@esbuild/android-arm": ["@esbuild/android-arm@0.27.4", "", { "os": "android", "cpu": "arm" }, "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ=="], 55 55 56 - "@esbuild/android-arm64": ["@esbuild/android-arm64@0.26.0", "", { "os": "android", "cpu": "arm64" }, "sha512-DDnoJ5eoa13L8zPh87PUlRd/IyFaIKOlRbxiwcSbeumcJ7UZKdtuMCHa1Q27LWQggug6W4m28i4/O2qiQQ5NZQ=="], 56 + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.4", "", { "os": "android", "cpu": "arm64" }, "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw=="], 57 57 58 - "@esbuild/android-x64": ["@esbuild/android-x64@0.26.0", "", { "os": "android", "cpu": "x64" }, "sha512-bKDkGXGZnj0T70cRpgmv549x38Vr2O3UWLbjT2qmIkdIWcmlg8yebcFWoT9Dku7b5OV3UqPEuNKRzlNhjwUJ9A=="], 58 + "@esbuild/android-x64": ["@esbuild/android-x64@0.27.4", "", { "os": "android", "cpu": "x64" }, "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw=="], 59 59 60 - "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.26.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-6Z3naJgOuAIB0RLlJkYc81An3rTlQ/IeRdrU3dOea8h/PvZSgitZV+thNuIccw0MuK1GmIAnAmd5TrMZad8FTQ=="], 60 + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ=="], 61 61 62 - "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.26.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-OPnYj0zpYW0tHusMefyaMvNYQX5pNQuSsHFTHUBNp3vVXupwqpxofcjVsUx11CQhGVkGeXjC3WLjh91hgBG2xw=="], 62 + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw=="], 63 63 64 - "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.26.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-jix2fa6GQeZhO1sCKNaNMjfj5hbOvoL2F5t+w6gEPxALumkpOV/wq7oUBMHBn2hY2dOm+mEV/K+xfZy3mrsxNQ=="], 64 + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.4", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw=="], 65 65 66 - "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.26.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tccJaH5xHJD/239LjbVvJwf6T4kSzbk6wPFerF0uwWlkw/u7HL+wnAzAH5GB2irGhYemDgiNTp8wJzhAHQ64oA=="], 66 + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ=="], 67 67 68 - "@esbuild/linux-arm": ["@esbuild/linux-arm@0.26.0", "", { "os": "linux", "cpu": "arm" }, "sha512-JY8NyU31SyRmRpuc5W8PQarAx4TvuYbyxbPIpHAZdr/0g4iBr8KwQBS4kiiamGl2f42BBecHusYCsyxi7Kn8UQ=="], 68 + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.4", "", { "os": "linux", "cpu": "arm" }, "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg=="], 69 69 70 - "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.26.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-IMJYN7FSkLttYyTbsbme0Ra14cBO5z47kpamo16IwggzzATFY2lcZAwkbcNkWiAduKrTgFJP7fW5cBI7FzcuNQ=="], 70 + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA=="], 71 71 72 - "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.26.0", "", { "os": "linux", "cpu": "ia32" }, "sha512-XITaGqGVLgk8WOHw8We9Z1L0lbLFip8LyQzKYFKO4zFo1PFaaSKsbNjvkb7O8kEXytmSGRkYpE8LLVpPJpsSlw=="], 72 + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.4", "", { "os": "linux", "cpu": "ia32" }, "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA=="], 73 73 74 - "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.26.0", "", { "os": "linux", "cpu": "none" }, "sha512-MkggfbDIczStUJwq9wU7gQ7kO33d8j9lWuOCDifN9t47+PeI+9m2QVh51EI/zZQ1spZtFMC1nzBJ+qNGCjJnsg=="], 74 + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.4", "", { "os": "linux", "cpu": "none" }, "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA=="], 75 75 76 - "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.26.0", "", { "os": "linux", "cpu": "none" }, "sha512-fUYup12HZWAeccNLhQ5HwNBPr4zXCPgUWzEq2Rfw7UwqwfQrFZ0SR/JljaURR8xIh9t+o1lNUFTECUTmaP7yKA=="], 76 + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.4", "", { "os": "linux", "cpu": "none" }, "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw=="], 77 77 78 - "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.26.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-MzRKhM0Ip+//VYwC8tialCiwUQ4G65WfALtJEFyU0GKJzfTYoPBw5XNWf0SLbCUYQbxTKamlVwPmcw4DgZzFxg=="], 78 + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA=="], 79 79 80 - "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.26.0", "", { "os": "linux", "cpu": "none" }, "sha512-QhCc32CwI1I4Jrg1enCv292sm3YJprW8WHHlyxJhae/dVs+KRWkbvz2Nynl5HmZDW/m9ZxrXayHzjzVNvQMGQA=="], 80 + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.4", "", { "os": "linux", "cpu": "none" }, "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw=="], 81 81 82 - "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.26.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-1D6vi6lfI18aNT1aTf2HV+RIlm6fxtlAp8eOJ4mmnbYmZ4boz8zYDar86sIYNh0wmiLJEbW/EocaKAX6Yso2fw=="], 82 + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA=="], 83 83 84 - "@esbuild/linux-x64": ["@esbuild/linux-x64@0.26.0", "", { "os": "linux", "cpu": "x64" }, "sha512-rnDcepj7LjrKFvZkx+WrBv6wECeYACcFjdNPvVPojCPJD8nHpb3pv3AuR9CXgdnjH1O23btICj0rsp0L9wAnHA=="], 84 + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.4", "", { "os": "linux", "cpu": "x64" }, "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA=="], 85 85 86 - "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.26.0", "", { "os": "none", "cpu": "arm64" }, "sha512-FSWmgGp0mDNjEXXFcsf12BmVrb+sZBBBlyh3LwB/B9ac3Kkc8x5D2WimYW9N7SUkolui8JzVnVlWh7ZmjCpnxw=="], 86 + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.4", "", { "os": "none", "cpu": "arm64" }, "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q=="], 87 87 88 - "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.26.0", "", { "os": "none", "cpu": "x64" }, "sha512-0QfciUDFryD39QoSPUDshj4uNEjQhp73+3pbSAaxjV2qGOEDsM67P7KbJq7LzHoVl46oqhIhJ1S+skKGR7lMXA=="], 88 + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.4", "", { "os": "none", "cpu": "x64" }, "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg=="], 89 89 90 - "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.26.0", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-vmAK+nHhIZWImwJ3RNw9hX3fU4UGN/OqbSE0imqljNbUQC3GvVJ1jpwYoTfD6mmXmQaxdJY6Hn4jQbLGJKg5Yw=="], 90 + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.4", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow=="], 91 91 92 - "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.26.0", "", { "os": "openbsd", "cpu": "x64" }, "sha512-GPXF7RMkJ7o9bTyUsnyNtrFMqgM3X+uM/LWw4CeHIjqc32fm0Ir6jKDnWHpj8xHFstgWDUYseSABK9KCkHGnpg=="], 92 + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.4", "", { "os": "openbsd", "cpu": "x64" }, "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ=="], 93 93 94 - "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.26.0", "", { "os": "none", "cpu": "arm64" }, "sha512-nUHZ5jEYqbBthbiBksbmHTlbb5eElyVfs/s1iHQ8rLBq1eWsd5maOnDpCocw1OM8kFK747d1Xms8dXJHtduxSw=="], 94 + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.4", "", { "os": "none", "cpu": "arm64" }, "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg=="], 95 95 96 - "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.26.0", "", { "os": "sunos", "cpu": "x64" }, "sha512-TMg3KCTCYYaVO+R6P5mSORhcNDDlemUVnUbb8QkboUtOhb5JWKAzd5uMIMECJQOxHZ/R+N8HHtDF5ylzLfMiLw=="], 96 + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.4", "", { "os": "sunos", "cpu": "x64" }, "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g=="], 97 97 98 - "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.26.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-apqYgoAUd6ZCb9Phcs8zN32q6l0ZQzQBdVXOofa6WvHDlSOhwCWgSfVQabGViThS40Y1NA4SCvQickgZMFZRlA=="], 98 + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg=="], 99 99 100 - "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.26.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-FGJAcImbJNZzLWu7U6WB0iKHl4RuY4TsXEwxJPl9UZLS47agIZuILZEX3Pagfw7I4J3ddflomt9f0apfaJSbaw=="], 100 + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw=="], 101 101 102 - "@esbuild/win32-x64": ["@esbuild/win32-x64@0.26.0", "", { "os": "win32", "cpu": "x64" }, "sha512-WAckBKaVnmFqbEhbymrPK7M086DQMpL1XoRbpmN0iW8k5JSXjDRQBhcZNa0VweItknLq9eAeCL34jK7/CDcw7A=="], 102 + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.4", "", { "os": "win32", "cpu": "x64" }, "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg=="], 103 103 104 104 "@inquirer/ansi": ["@inquirer/ansi@2.0.3", "", {}, "sha512-g44zhR3NIKVs0zUesa4iMzExmZpLUdTLRMCStqX3GE5NT6VkPcxQGJ+uC8tDgBUC/vB1rUhUd55cOf++4NZcmw=="], 105 105 ··· 139 139 140 140 "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.2", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw=="], 141 141 142 - "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], 143 - 144 - "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], 145 - 146 - "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], 147 - 148 142 "@oxc-project/types": ["@oxc-project/types@0.122.0", "", {}, "sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA=="], 149 143 150 - "@pocketenv/sdk": ["@pocketenv/sdk@0.2.7", "", { "dependencies": { "ignore": "^7.0.5", "libsodium-wrappers": "^0.8.2", "tar": "^7.5.13", "zod": "^4.3.6" } }, "sha512-jwqhTNGzNPcRwGpUjzh/EG9CKRsASxJlcw/b7P5MMxqyM2qx9Dr35SnDDpAgPUEKYUzvUohljuzPcBePo9F/gw=="], 144 + "@pocketenv/sdk": ["@pocketenv/sdk@0.2.10", "", { "dependencies": { "ignore": "^7.0.5", "libsodium-wrappers": "^0.8.2", "tar": "^7.5.13", "zod": "^4.3.6" } }, "sha512-t6/8cbifJS5AZMZT+l2kHf6Dx8t77LAk+sQxtZa4KmZrdnNszGLLcS0QK0EKILKW2Yg4z80XVRomtSdvMItEPw=="], 151 145 152 146 "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.0.0-rc.12", "", { "os": "android", "cpu": "arm64" }, "sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA=="], 153 147 ··· 181 175 182 176 "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-rc.12", "", {}, "sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw=="], 183 177 184 - "@rollup/plugin-alias": ["@rollup/plugin-alias@6.0.0", "", { "peerDependencies": { "rollup": ">=4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g=="], 185 - 186 - "@rollup/plugin-commonjs": ["@rollup/plugin-commonjs@29.0.2", "", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", "estree-walker": "^2.0.2", "fdir": "^6.2.0", "is-reference": "1.2.1", "magic-string": "^0.30.3", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^2.68.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-S/ggWH1LU7jTyi9DxZOKyxpVd4hF/OZ0JrEbeLjXk/DFXwRny0tjD2c992zOUYQobLrVkRVMDdmHP16HKP7GRg=="], 187 - 188 - "@rollup/plugin-dynamic-import-vars": ["@rollup/plugin-dynamic-import-vars@2.1.5", "", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "astring": "^1.8.5", "estree-walker": "^2.0.2", "fast-glob": "^3.2.12", "magic-string": "^0.30.3" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-Mymi24fd9hlRifdZV/jYIFj1dn99F34imiYu3KzlAcgBcRi3i9SucgW/VRo5SQ9K4NuQ7dCep6pFWgNyhRdFHQ=="], 189 - 190 - "@rollup/plugin-json": ["@rollup/plugin-json@6.1.0", "", { "dependencies": { "@rollup/pluginutils": "^5.1.0" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA=="], 191 - 192 - "@rollup/plugin-node-resolve": ["@rollup/plugin-node-resolve@16.0.3", "", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", "deepmerge": "^4.2.2", "is-module": "^1.0.0", "resolve": "^1.22.1" }, "peerDependencies": { "rollup": "^2.78.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg=="], 193 - 194 - "@rollup/pluginutils": ["@rollup/pluginutils@5.3.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q=="], 195 - 196 - "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.59.0", "", { "os": "android", "cpu": "arm" }, "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg=="], 197 - 198 - "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.59.0", "", { "os": "android", "cpu": "arm64" }, "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q=="], 199 - 200 - "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.59.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg=="], 201 - 202 - "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.59.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w=="], 203 - 204 - "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.59.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA=="], 205 - 206 - "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.59.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg=="], 207 - 208 - "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.59.0", "", { "os": "linux", "cpu": "arm" }, "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw=="], 209 - 210 - "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.59.0", "", { "os": "linux", "cpu": "arm" }, "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA=="], 211 - 212 - "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.59.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA=="], 213 - 214 - "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.59.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA=="], 215 - 216 - "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg=="], 217 - 218 - "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q=="], 219 - 220 - "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.59.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA=="], 221 - 222 - "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.59.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA=="], 223 - 224 - "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg=="], 225 - 226 - "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.59.0", "", { "os": "linux", "cpu": "none" }, "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg=="], 227 - 228 - "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.59.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w=="], 229 - 230 - "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.59.0", "", { "os": "linux", "cpu": "x64" }, "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg=="], 231 - 232 - "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.59.0", "", { "os": "linux", "cpu": "x64" }, "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg=="], 233 - 234 - "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.59.0", "", { "os": "openbsd", "cpu": "x64" }, "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ=="], 235 - 236 - "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.59.0", "", { "os": "none", "cpu": "arm64" }, "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA=="], 237 - 238 - "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.59.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A=="], 239 - 240 - "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.59.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA=="], 241 - 242 - "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.59.0", "", { "os": "win32", "cpu": "x64" }, "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA=="], 243 - 244 - "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.59.0", "", { "os": "win32", "cpu": "x64" }, "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA=="], 245 - 246 178 "@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], 247 179 248 180 "@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], 249 181 250 182 "@types/body-parser": ["@types/body-parser@1.19.6", "", { "dependencies": { "@types/connect": "*", "@types/node": "*" } }, "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g=="], 183 + 184 + "@types/bun": ["@types/bun@1.3.12", "", { "dependencies": { "bun-types": "1.3.12" } }, "sha512-DBv81elK+/VSwXHDlnH3Qduw+KxkTIWi7TXkAeh24zpi5l0B2kUg9Ga3tb4nJaPcOFswflgi/yAvMVBPrxMB+A=="], 251 185 252 186 "@types/chai": ["@types/chai@5.2.3", "", { "dependencies": { "@types/deep-eql": "*", "assertion-error": "^2.0.1" } }, "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA=="], 253 187 ··· 273 207 274 208 "@types/range-parser": ["@types/range-parser@1.2.7", "", {}, "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="], 275 209 276 - "@types/resolve": ["@types/resolve@1.20.2", "", {}, "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q=="], 277 - 278 210 "@types/send": ["@types/send@1.2.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ=="], 279 211 280 212 "@types/serve-static": ["@types/serve-static@2.2.0", "", { "dependencies": { "@types/http-errors": "*", "@types/node": "*" } }, "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ=="], ··· 301 233 302 234 "assertion-error": ["assertion-error@2.0.1", "", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="], 303 235 304 - "astring": ["astring@1.9.0", "", { "bin": { "astring": "bin/astring" } }, "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg=="], 305 - 306 236 "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], 307 237 308 238 "axios": ["axios@1.13.6", "", { "dependencies": { "follow-redirects": "^1.15.11", "form-data": "^4.0.5", "proxy-from-env": "^1.1.0" } }, "sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ=="], 309 239 310 240 "body-parser": ["body-parser@2.2.2", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^1.0.5", "debug": "^4.4.3", "http-errors": "^2.0.0", "iconv-lite": "^0.7.0", "on-finished": "^2.4.1", "qs": "^6.14.1", "raw-body": "^3.0.1", "type-is": "^2.0.1" } }, "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA=="], 311 241 312 - "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], 242 + "bun-types": ["bun-types@1.3.12", "", { "dependencies": { "@types/node": "*" } }, "sha512-HqOLj5PoFajAQciOMRiIZGNoKxDJSr6qigAttOX40vJuSp6DN/CxWp9s3C1Xwm4oH7ybueITwiaOcWXoYVoRkA=="], 313 243 314 244 "bundle-name": ["bundle-name@4.1.0", "", { "dependencies": { "run-applescript": "^7.0.0" } }, "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q=="], 315 245 ··· 327 257 328 258 "chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], 329 259 330 - "cjs-module-lexer": ["cjs-module-lexer@2.2.0", "", {}, "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ=="], 331 - 332 260 "cli-cursor": ["cli-cursor@5.0.0", "", { "dependencies": { "restore-cursor": "^5.0.0" } }, "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw=="], 333 261 334 262 "cli-spinners": ["cli-spinners@3.4.0", "", {}, "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw=="], ··· 341 269 342 270 "commander": ["commander@14.0.3", "", {}, "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw=="], 343 271 344 - "commondir": ["commondir@1.0.1", "", {}, "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="], 345 - 346 272 "consola": ["consola@3.4.2", "", {}, "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA=="], 347 273 348 274 "content-disposition": ["content-disposition@1.0.1", "", {}, "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q=="], ··· 360 286 "dayjs": ["dayjs@1.11.20", "", {}, "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ=="], 361 287 362 288 "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], 363 - 364 - "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], 365 289 366 290 "default-browser": ["default-browser@5.5.0", "", { "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" } }, "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw=="], 367 291 ··· 397 321 398 322 "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], 399 323 400 - "esbuild": ["esbuild@0.26.0", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.26.0", "@esbuild/android-arm": "0.26.0", "@esbuild/android-arm64": "0.26.0", "@esbuild/android-x64": "0.26.0", "@esbuild/darwin-arm64": "0.26.0", "@esbuild/darwin-x64": "0.26.0", "@esbuild/freebsd-arm64": "0.26.0", "@esbuild/freebsd-x64": "0.26.0", "@esbuild/linux-arm": "0.26.0", "@esbuild/linux-arm64": "0.26.0", "@esbuild/linux-ia32": "0.26.0", "@esbuild/linux-loong64": "0.26.0", "@esbuild/linux-mips64el": "0.26.0", "@esbuild/linux-ppc64": "0.26.0", "@esbuild/linux-riscv64": "0.26.0", "@esbuild/linux-s390x": "0.26.0", "@esbuild/linux-x64": "0.26.0", "@esbuild/netbsd-arm64": "0.26.0", "@esbuild/netbsd-x64": "0.26.0", "@esbuild/openbsd-arm64": "0.26.0", "@esbuild/openbsd-x64": "0.26.0", "@esbuild/openharmony-arm64": "0.26.0", "@esbuild/sunos-x64": "0.26.0", "@esbuild/win32-arm64": "0.26.0", "@esbuild/win32-ia32": "0.26.0", "@esbuild/win32-x64": "0.26.0" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-3Hq7jri+tRrVWha+ZeIVhl4qJRha/XjRNSopvTsOaCvfPHrflTYTcUFcEjMKdxofsXXsdc4zjg5NOTnL4Gl57Q=="], 324 + "esbuild": ["esbuild@0.27.4", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.4", "@esbuild/android-arm": "0.27.4", "@esbuild/android-arm64": "0.27.4", "@esbuild/android-x64": "0.27.4", "@esbuild/darwin-arm64": "0.27.4", "@esbuild/darwin-x64": "0.27.4", "@esbuild/freebsd-arm64": "0.27.4", "@esbuild/freebsd-x64": "0.27.4", "@esbuild/linux-arm": "0.27.4", "@esbuild/linux-arm64": "0.27.4", "@esbuild/linux-ia32": "0.27.4", "@esbuild/linux-loong64": "0.27.4", "@esbuild/linux-mips64el": "0.27.4", "@esbuild/linux-ppc64": "0.27.4", "@esbuild/linux-riscv64": "0.27.4", "@esbuild/linux-s390x": "0.27.4", "@esbuild/linux-x64": "0.27.4", "@esbuild/netbsd-arm64": "0.27.4", "@esbuild/netbsd-x64": "0.27.4", "@esbuild/openbsd-arm64": "0.27.4", "@esbuild/openbsd-x64": "0.27.4", "@esbuild/openharmony-arm64": "0.27.4", "@esbuild/sunos-x64": "0.27.4", "@esbuild/win32-arm64": "0.27.4", "@esbuild/win32-ia32": "0.27.4", "@esbuild/win32-x64": "0.27.4" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ=="], 401 325 402 326 "escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], 403 327 404 - "estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], 328 + "estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], 405 329 406 330 "etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="], 407 331 ··· 415 339 416 340 "fast-check": ["fast-check@3.23.2", "", { "dependencies": { "pure-rand": "^6.1.0" } }, "sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A=="], 417 341 418 - "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], 419 - 420 342 "fast-string-truncated-width": ["fast-string-truncated-width@3.0.3", "", {}, "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g=="], 421 343 422 344 "fast-string-width": ["fast-string-width@3.0.2", "", { "dependencies": { "fast-string-truncated-width": "^3.0.2" } }, "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg=="], 423 345 424 346 "fast-wrap-ansi": ["fast-wrap-ansi@0.2.0", "", { "dependencies": { "fast-string-width": "^3.0.2" } }, "sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w=="], 425 347 426 - "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], 427 - 428 348 "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], 429 349 430 - "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], 431 - 432 350 "finalhandler": ["finalhandler@2.1.1", "", { "dependencies": { "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "on-finished": "^2.4.1", "parseurl": "^1.3.3", "statuses": "^2.0.1" } }, "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA=="], 433 351 434 352 "follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="], ··· 451 369 452 370 "get-tsconfig": ["get-tsconfig@4.13.6", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw=="], 453 371 454 - "glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], 455 - 456 372 "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], 457 373 458 374 "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], ··· 471 387 472 388 "ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="], 473 389 474 - "is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="], 475 - 476 390 "is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], 477 391 478 - "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], 479 - 480 392 "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], 481 393 482 - "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], 483 - 484 394 "is-in-ssh": ["is-in-ssh@1.0.0", "", {}, "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw=="], 485 395 486 396 "is-inside-container": ["is-inside-container@1.0.0", "", { "dependencies": { "is-docker": "^3.0.0" }, "bin": { "is-inside-container": "cli.js" } }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="], 487 397 488 398 "is-interactive": ["is-interactive@2.0.0", "", {}, "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ=="], 489 399 490 - "is-module": ["is-module@1.0.0", "", {}, "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="], 491 - 492 - "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], 493 - 494 400 "is-promise": ["is-promise@4.0.0", "", {}, "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="], 495 - 496 - "is-reference": ["is-reference@1.2.1", "", { "dependencies": { "@types/estree": "*" } }, "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ=="], 497 401 498 402 "is-unicode-supported": ["is-unicode-supported@2.1.0", "", {}, "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ=="], 499 403 ··· 537 441 538 442 "merge-descriptors": ["merge-descriptors@2.0.0", "", {}, "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g=="], 539 443 540 - "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], 541 - 542 - "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], 543 - 544 444 "mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], 545 445 546 446 "mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], ··· 577 477 578 478 "parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], 579 479 580 - "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], 581 - 582 480 "path-to-regexp": ["path-to-regexp@8.3.0", "", {}, "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA=="], 583 481 584 482 "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], ··· 586 484 "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], 587 485 588 486 "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], 589 - 590 - "pkgroll": ["pkgroll@2.27.0", "", { "dependencies": { "@rollup/plugin-alias": "^6.0.0", "@rollup/plugin-commonjs": "^29.0.0", "@rollup/plugin-dynamic-import-vars": "^2.1.5", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.3", "cjs-module-lexer": "^2.2.0", "esbuild": "^0.26.0", "magic-string": "^0.30.21", "rollup": "^4.53.5", "rollup-plugin-import-trace": "^1.0.1", "rollup-pluginutils": "^2.8.2", "yaml": "^2.8.2" }, "peerDependencies": { "typescript": "^4.1 || ^5.0" }, "optionalPeers": ["typescript"], "bin": { "pkgroll": "dist/cli.mjs" } }, "sha512-Huw5ZRxWTWeQ0PbNNKdbkAl52bPMy009RXdB4u3qjb47AMEBLG5VVF0V6oOD+YYiZaHaFxvjEeX+A2T9ckaClQ=="], 591 487 592 488 "postcss": ["postcss@8.5.8", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg=="], 593 489 ··· 601 497 602 498 "qs": ["qs@6.15.0", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ=="], 603 499 604 - "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], 605 - 606 500 "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], 607 501 608 502 "raw-body": ["raw-body@3.0.2", "", { "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", "iconv-lite": "~0.7.0", "unpipe": "~1.0.0" } }, "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="], 609 503 610 - "resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], 611 - 612 504 "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], 613 505 614 506 "restore-cursor": ["restore-cursor@5.1.0", "", { "dependencies": { "onetime": "^7.0.0", "signal-exit": "^4.1.0" } }, "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA=="], 615 507 616 - "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], 617 - 618 508 "rolldown": ["rolldown@1.0.0-rc.12", "", { "dependencies": { "@oxc-project/types": "=0.122.0", "@rolldown/pluginutils": "1.0.0-rc.12" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.0-rc.12", "@rolldown/binding-darwin-arm64": "1.0.0-rc.12", "@rolldown/binding-darwin-x64": "1.0.0-rc.12", "@rolldown/binding-freebsd-x64": "1.0.0-rc.12", "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.12", "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.12", "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.12", "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.12", "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.12", "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.12", "@rolldown/binding-linux-x64-musl": "1.0.0-rc.12", "@rolldown/binding-openharmony-arm64": "1.0.0-rc.12", "@rolldown/binding-wasm32-wasi": "1.0.0-rc.12", "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.12", "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.12" }, "bin": { "rolldown": "bin/cli.mjs" } }, "sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A=="], 619 509 620 - "rollup": ["rollup@4.59.0", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.59.0", "@rollup/rollup-android-arm64": "4.59.0", "@rollup/rollup-darwin-arm64": "4.59.0", "@rollup/rollup-darwin-x64": "4.59.0", "@rollup/rollup-freebsd-arm64": "4.59.0", "@rollup/rollup-freebsd-x64": "4.59.0", "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", "@rollup/rollup-linux-arm-musleabihf": "4.59.0", "@rollup/rollup-linux-arm64-gnu": "4.59.0", "@rollup/rollup-linux-arm64-musl": "4.59.0", "@rollup/rollup-linux-loong64-gnu": "4.59.0", "@rollup/rollup-linux-loong64-musl": "4.59.0", "@rollup/rollup-linux-ppc64-gnu": "4.59.0", "@rollup/rollup-linux-ppc64-musl": "4.59.0", "@rollup/rollup-linux-riscv64-gnu": "4.59.0", "@rollup/rollup-linux-riscv64-musl": "4.59.0", "@rollup/rollup-linux-s390x-gnu": "4.59.0", "@rollup/rollup-linux-x64-gnu": "4.59.0", "@rollup/rollup-linux-x64-musl": "4.59.0", "@rollup/rollup-openbsd-x64": "4.59.0", "@rollup/rollup-openharmony-arm64": "4.59.0", "@rollup/rollup-win32-arm64-msvc": "4.59.0", "@rollup/rollup-win32-ia32-msvc": "4.59.0", "@rollup/rollup-win32-x64-gnu": "4.59.0", "@rollup/rollup-win32-x64-msvc": "4.59.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg=="], 621 - 622 - "rollup-plugin-import-trace": ["rollup-plugin-import-trace@1.0.1", "", { "peerDependencies": { "rollup": "^3.0.0 || ^4.0.0", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "optionalPeers": ["rollup", "vite"] }, "sha512-dWOKrdYba2BXDJh82kkuM4pAR3M6r7WFp6vbVxAgvLfug2WniMFAg2uZ5sNQ/8CoQWo5l2N5EXDG8+QClKk1YQ=="], 623 - 624 - "rollup-pluginutils": ["rollup-pluginutils@2.8.2", "", { "dependencies": { "estree-walker": "^0.6.1" } }, "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ=="], 625 - 626 510 "router": ["router@2.2.0", "", { "dependencies": { "debug": "^4.4.0", "depd": "^2.0.0", "is-promise": "^4.0.0", "parseurl": "^1.3.3", "path-to-regexp": "^8.0.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="], 627 511 628 512 "run-applescript": ["run-applescript@7.1.0", "", {}, "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q=="], 629 - 630 - "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], 631 513 632 514 "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], 633 515 ··· 662 544 "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], 663 545 664 546 "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], 665 - 666 - "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], 667 547 668 548 "tar": ["tar@7.5.13", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng=="], 669 549 ··· 675 555 676 556 "tinyrainbow": ["tinyrainbow@3.1.0", "", {}, "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw=="], 677 557 678 - "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], 679 - 680 558 "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], 681 559 682 560 "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], ··· 713 591 714 592 "zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="], 715 593 716 - "@vitest/mocker/estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], 717 - 718 594 "form-data/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], 719 - 720 - "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], 721 595 722 596 "ora/string-width": ["string-width@8.2.0", "", { "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" } }, "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw=="], 723 597 724 - "rollup-pluginutils/estree-walker": ["estree-walker@0.6.1", "", {}, "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w=="], 725 - 726 - "tsx/esbuild": ["esbuild@0.27.4", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.4", "@esbuild/android-arm": "0.27.4", "@esbuild/android-arm64": "0.27.4", "@esbuild/android-x64": "0.27.4", "@esbuild/darwin-arm64": "0.27.4", "@esbuild/darwin-x64": "0.27.4", "@esbuild/freebsd-arm64": "0.27.4", "@esbuild/freebsd-x64": "0.27.4", "@esbuild/linux-arm": "0.27.4", "@esbuild/linux-arm64": "0.27.4", "@esbuild/linux-ia32": "0.27.4", "@esbuild/linux-loong64": "0.27.4", "@esbuild/linux-mips64el": "0.27.4", "@esbuild/linux-ppc64": "0.27.4", "@esbuild/linux-riscv64": "0.27.4", "@esbuild/linux-s390x": "0.27.4", "@esbuild/linux-x64": "0.27.4", "@esbuild/netbsd-arm64": "0.27.4", "@esbuild/netbsd-x64": "0.27.4", "@esbuild/openbsd-arm64": "0.27.4", "@esbuild/openbsd-x64": "0.27.4", "@esbuild/openharmony-arm64": "0.27.4", "@esbuild/sunos-x64": "0.27.4", "@esbuild/win32-arm64": "0.27.4", "@esbuild/win32-ia32": "0.27.4", "@esbuild/win32-x64": "0.27.4" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ=="], 727 - 728 598 "vite/picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="], 729 599 730 600 "form-data/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], 731 601 732 602 "ora/string-width/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], 733 - 734 - "tsx/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.4", "", { "os": "aix", "cpu": "ppc64" }, "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q=="], 735 - 736 - "tsx/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.27.4", "", { "os": "android", "cpu": "arm" }, "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ=="], 737 - 738 - "tsx/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.4", "", { "os": "android", "cpu": "arm64" }, "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw=="], 739 - 740 - "tsx/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.27.4", "", { "os": "android", "cpu": "x64" }, "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw=="], 741 - 742 - "tsx/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ=="], 743 - 744 - "tsx/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw=="], 745 - 746 - "tsx/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.4", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw=="], 747 - 748 - "tsx/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ=="], 749 - 750 - "tsx/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.4", "", { "os": "linux", "cpu": "arm" }, "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg=="], 751 - 752 - "tsx/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA=="], 753 - 754 - "tsx/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.4", "", { "os": "linux", "cpu": "ia32" }, "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA=="], 755 - 756 - "tsx/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.4", "", { "os": "linux", "cpu": "none" }, "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA=="], 757 - 758 - "tsx/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.4", "", { "os": "linux", "cpu": "none" }, "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw=="], 759 - 760 - "tsx/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA=="], 761 - 762 - "tsx/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.4", "", { "os": "linux", "cpu": "none" }, "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw=="], 763 - 764 - "tsx/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA=="], 765 - 766 - "tsx/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.4", "", { "os": "linux", "cpu": "x64" }, "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA=="], 767 - 768 - "tsx/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.4", "", { "os": "none", "cpu": "arm64" }, "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q=="], 769 - 770 - "tsx/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.4", "", { "os": "none", "cpu": "x64" }, "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg=="], 771 - 772 - "tsx/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.4", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow=="], 773 - 774 - "tsx/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.4", "", { "os": "openbsd", "cpu": "x64" }, "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ=="], 775 - 776 - "tsx/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.4", "", { "os": "none", "cpu": "arm64" }, "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg=="], 777 - 778 - "tsx/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.4", "", { "os": "sunos", "cpu": "x64" }, "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g=="], 779 - 780 - "tsx/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg=="], 781 - 782 - "tsx/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw=="], 783 - 784 - "tsx/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.4", "", { "os": "win32", "cpu": "x64" }, "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg=="], 785 603 786 604 "ora/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], 787 605 }
+19 -1920
apps/cli/package-lock.json
··· 1 1 { 2 2 "name": "@pocketenv/cli", 3 - "version": "0.6.8", 3 + "version": "0.6.10", 4 4 "lockfileVersion": 3, 5 5 "requires": true, 6 6 "packages": { 7 7 "": { 8 8 "name": "@pocketenv/cli", 9 - "version": "0.6.8", 9 + "version": "0.6.10", 10 10 "license": "MPL-2.0", 11 11 "dependencies": { 12 12 "@inquirer/prompts": "^8.3.0", ··· 34 34 "pocketenv": "dist/index.js" 35 35 }, 36 36 "devDependencies": { 37 + "@types/bun": "^1.3.12", 37 38 "@types/cors": "^2.8.19", 38 39 "@types/eventsource": "^1.1.15", 39 40 "@types/express": "^5.0.6", 40 41 "@types/ws": "^8.18.1", 41 - "pkgroll": "^2.27.0", 42 42 "tsx": "^4.21.0", 43 43 "vitest": "^4.1.2" 44 44 }, ··· 67 67 "tslib": "^2.4.0" 68 68 } 69 69 }, 70 - "node_modules/@esbuild/aix-ppc64": { 71 - "version": "0.26.0", 72 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.26.0.tgz", 73 - "integrity": "sha512-hj0sKNCQOOo2fgyII3clmJXP28VhgDfU5iy3GNHlWO76KG6N7x4D9ezH5lJtQTG+1J6MFDAJXC1qsI+W+LvZoA==", 74 - "cpu": [ 75 - "ppc64" 76 - ], 77 - "dev": true, 78 - "license": "MIT", 79 - "optional": true, 80 - "os": [ 81 - "aix" 82 - ], 83 - "engines": { 84 - "node": ">=18" 85 - } 86 - }, 87 - "node_modules/@esbuild/android-arm": { 88 - "version": "0.26.0", 89 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.26.0.tgz", 90 - "integrity": "sha512-C0hkDsYNHZkBtPxxDx177JN90/1MiCpvBNjz1f5yWJo1+5+c5zr8apjastpEG+wtPjo9FFtGG7owSsAxyKiHxA==", 91 - "cpu": [ 92 - "arm" 93 - ], 94 - "dev": true, 95 - "license": "MIT", 96 - "optional": true, 97 - "os": [ 98 - "android" 99 - ], 100 - "engines": { 101 - "node": ">=18" 102 - } 103 - }, 104 - "node_modules/@esbuild/android-arm64": { 105 - "version": "0.26.0", 106 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.26.0.tgz", 107 - "integrity": "sha512-DDnoJ5eoa13L8zPh87PUlRd/IyFaIKOlRbxiwcSbeumcJ7UZKdtuMCHa1Q27LWQggug6W4m28i4/O2qiQQ5NZQ==", 108 - "cpu": [ 109 - "arm64" 110 - ], 111 - "dev": true, 112 - "license": "MIT", 113 - "optional": true, 114 - "os": [ 115 - "android" 116 - ], 117 - "engines": { 118 - "node": ">=18" 119 - } 120 - }, 121 - "node_modules/@esbuild/android-x64": { 122 - "version": "0.26.0", 123 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.26.0.tgz", 124 - "integrity": "sha512-bKDkGXGZnj0T70cRpgmv549x38Vr2O3UWLbjT2qmIkdIWcmlg8yebcFWoT9Dku7b5OV3UqPEuNKRzlNhjwUJ9A==", 125 - "cpu": [ 126 - "x64" 127 - ], 128 - "dev": true, 129 - "license": "MIT", 130 - "optional": true, 131 - "os": [ 132 - "android" 133 - ], 134 - "engines": { 135 - "node": ">=18" 136 - } 137 - }, 138 - "node_modules/@esbuild/darwin-arm64": { 139 - "version": "0.26.0", 140 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.26.0.tgz", 141 - "integrity": "sha512-6Z3naJgOuAIB0RLlJkYc81An3rTlQ/IeRdrU3dOea8h/PvZSgitZV+thNuIccw0MuK1GmIAnAmd5TrMZad8FTQ==", 142 - "cpu": [ 143 - "arm64" 144 - ], 145 - "dev": true, 146 - "license": "MIT", 147 - "optional": true, 148 - "os": [ 149 - "darwin" 150 - ], 151 - "engines": { 152 - "node": ">=18" 153 - } 154 - }, 155 - "node_modules/@esbuild/darwin-x64": { 156 - "version": "0.26.0", 157 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.26.0.tgz", 158 - "integrity": "sha512-OPnYj0zpYW0tHusMefyaMvNYQX5pNQuSsHFTHUBNp3vVXupwqpxofcjVsUx11CQhGVkGeXjC3WLjh91hgBG2xw==", 159 - "cpu": [ 160 - "x64" 161 - ], 162 - "dev": true, 163 - "license": "MIT", 164 - "optional": true, 165 - "os": [ 166 - "darwin" 167 - ], 168 - "engines": { 169 - "node": ">=18" 170 - } 171 - }, 172 - "node_modules/@esbuild/freebsd-arm64": { 173 - "version": "0.26.0", 174 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.26.0.tgz", 175 - "integrity": "sha512-jix2fa6GQeZhO1sCKNaNMjfj5hbOvoL2F5t+w6gEPxALumkpOV/wq7oUBMHBn2hY2dOm+mEV/K+xfZy3mrsxNQ==", 176 - "cpu": [ 177 - "arm64" 178 - ], 179 - "dev": true, 180 - "license": "MIT", 181 - "optional": true, 182 - "os": [ 183 - "freebsd" 184 - ], 185 - "engines": { 186 - "node": ">=18" 187 - } 188 - }, 189 - "node_modules/@esbuild/freebsd-x64": { 190 - "version": "0.26.0", 191 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.26.0.tgz", 192 - "integrity": "sha512-tccJaH5xHJD/239LjbVvJwf6T4kSzbk6wPFerF0uwWlkw/u7HL+wnAzAH5GB2irGhYemDgiNTp8wJzhAHQ64oA==", 193 - "cpu": [ 194 - "x64" 195 - ], 196 - "dev": true, 197 - "license": "MIT", 198 - "optional": true, 199 - "os": [ 200 - "freebsd" 201 - ], 202 - "engines": { 203 - "node": ">=18" 204 - } 205 - }, 206 - "node_modules/@esbuild/linux-arm": { 207 - "version": "0.26.0", 208 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.26.0.tgz", 209 - "integrity": "sha512-JY8NyU31SyRmRpuc5W8PQarAx4TvuYbyxbPIpHAZdr/0g4iBr8KwQBS4kiiamGl2f42BBecHusYCsyxi7Kn8UQ==", 210 - "cpu": [ 211 - "arm" 212 - ], 213 - "dev": true, 214 - "license": "MIT", 215 - "optional": true, 216 - "os": [ 217 - "linux" 218 - ], 219 - "engines": { 220 - "node": ">=18" 221 - } 222 - }, 223 - "node_modules/@esbuild/linux-arm64": { 224 - "version": "0.26.0", 225 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.26.0.tgz", 226 - "integrity": "sha512-IMJYN7FSkLttYyTbsbme0Ra14cBO5z47kpamo16IwggzzATFY2lcZAwkbcNkWiAduKrTgFJP7fW5cBI7FzcuNQ==", 227 - "cpu": [ 228 - "arm64" 229 - ], 230 - "dev": true, 231 - "license": "MIT", 232 - "optional": true, 233 - "os": [ 234 - "linux" 235 - ], 236 - "engines": { 237 - "node": ">=18" 238 - } 239 - }, 240 - "node_modules/@esbuild/linux-ia32": { 241 - "version": "0.26.0", 242 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.26.0.tgz", 243 - "integrity": "sha512-XITaGqGVLgk8WOHw8We9Z1L0lbLFip8LyQzKYFKO4zFo1PFaaSKsbNjvkb7O8kEXytmSGRkYpE8LLVpPJpsSlw==", 244 - "cpu": [ 245 - "ia32" 246 - ], 247 - "dev": true, 248 - "license": "MIT", 249 - "optional": true, 250 - "os": [ 251 - "linux" 252 - ], 253 - "engines": { 254 - "node": ">=18" 255 - } 256 - }, 257 - "node_modules/@esbuild/linux-loong64": { 258 - "version": "0.26.0", 259 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.26.0.tgz", 260 - "integrity": "sha512-MkggfbDIczStUJwq9wU7gQ7kO33d8j9lWuOCDifN9t47+PeI+9m2QVh51EI/zZQ1spZtFMC1nzBJ+qNGCjJnsg==", 261 - "cpu": [ 262 - "loong64" 263 - ], 264 - "dev": true, 265 - "license": "MIT", 266 - "optional": true, 267 - "os": [ 268 - "linux" 269 - ], 270 - "engines": { 271 - "node": ">=18" 272 - } 273 - }, 274 - "node_modules/@esbuild/linux-mips64el": { 275 - "version": "0.26.0", 276 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.26.0.tgz", 277 - "integrity": "sha512-fUYup12HZWAeccNLhQ5HwNBPr4zXCPgUWzEq2Rfw7UwqwfQrFZ0SR/JljaURR8xIh9t+o1lNUFTECUTmaP7yKA==", 278 - "cpu": [ 279 - "mips64el" 280 - ], 281 - "dev": true, 282 - "license": "MIT", 283 - "optional": true, 284 - "os": [ 285 - "linux" 286 - ], 287 - "engines": { 288 - "node": ">=18" 289 - } 290 - }, 291 - "node_modules/@esbuild/linux-ppc64": { 292 - "version": "0.26.0", 293 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.26.0.tgz", 294 - "integrity": "sha512-MzRKhM0Ip+//VYwC8tialCiwUQ4G65WfALtJEFyU0GKJzfTYoPBw5XNWf0SLbCUYQbxTKamlVwPmcw4DgZzFxg==", 295 - "cpu": [ 296 - "ppc64" 297 - ], 298 - "dev": true, 299 - "license": "MIT", 300 - "optional": true, 301 - "os": [ 302 - "linux" 303 - ], 304 - "engines": { 305 - "node": ">=18" 306 - } 307 - }, 308 - "node_modules/@esbuild/linux-riscv64": { 309 - "version": "0.26.0", 310 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.26.0.tgz", 311 - "integrity": "sha512-QhCc32CwI1I4Jrg1enCv292sm3YJprW8WHHlyxJhae/dVs+KRWkbvz2Nynl5HmZDW/m9ZxrXayHzjzVNvQMGQA==", 312 - "cpu": [ 313 - "riscv64" 314 - ], 315 - "dev": true, 316 - "license": "MIT", 317 - "optional": true, 318 - "os": [ 319 - "linux" 320 - ], 321 - "engines": { 322 - "node": ">=18" 323 - } 324 - }, 325 - "node_modules/@esbuild/linux-s390x": { 326 - "version": "0.26.0", 327 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.26.0.tgz", 328 - "integrity": "sha512-1D6vi6lfI18aNT1aTf2HV+RIlm6fxtlAp8eOJ4mmnbYmZ4boz8zYDar86sIYNh0wmiLJEbW/EocaKAX6Yso2fw==", 329 - "cpu": [ 330 - "s390x" 331 - ], 332 - "dev": true, 333 - "license": "MIT", 334 - "optional": true, 335 - "os": [ 336 - "linux" 337 - ], 338 - "engines": { 339 - "node": ">=18" 340 - } 341 - }, 342 - "node_modules/@esbuild/linux-x64": { 343 - "version": "0.26.0", 344 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.26.0.tgz", 345 - "integrity": "sha512-rnDcepj7LjrKFvZkx+WrBv6wECeYACcFjdNPvVPojCPJD8nHpb3pv3AuR9CXgdnjH1O23btICj0rsp0L9wAnHA==", 346 - "cpu": [ 347 - "x64" 348 - ], 349 - "dev": true, 350 - "license": "MIT", 351 - "optional": true, 352 - "os": [ 353 - "linux" 354 - ], 355 - "engines": { 356 - "node": ">=18" 357 - } 358 - }, 359 - "node_modules/@esbuild/netbsd-arm64": { 360 - "version": "0.26.0", 361 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.26.0.tgz", 362 - "integrity": "sha512-FSWmgGp0mDNjEXXFcsf12BmVrb+sZBBBlyh3LwB/B9ac3Kkc8x5D2WimYW9N7SUkolui8JzVnVlWh7ZmjCpnxw==", 363 - "cpu": [ 364 - "arm64" 365 - ], 366 - "dev": true, 367 - "license": "MIT", 368 - "optional": true, 369 - "os": [ 370 - "netbsd" 371 - ], 372 - "engines": { 373 - "node": ">=18" 374 - } 375 - }, 376 - "node_modules/@esbuild/netbsd-x64": { 377 - "version": "0.26.0", 378 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.26.0.tgz", 379 - "integrity": "sha512-0QfciUDFryD39QoSPUDshj4uNEjQhp73+3pbSAaxjV2qGOEDsM67P7KbJq7LzHoVl46oqhIhJ1S+skKGR7lMXA==", 380 - "cpu": [ 381 - "x64" 382 - ], 383 - "dev": true, 384 - "license": "MIT", 385 - "optional": true, 386 - "os": [ 387 - "netbsd" 388 - ], 389 - "engines": { 390 - "node": ">=18" 391 - } 392 - }, 393 - "node_modules/@esbuild/openbsd-arm64": { 394 - "version": "0.26.0", 395 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.26.0.tgz", 396 - "integrity": "sha512-vmAK+nHhIZWImwJ3RNw9hX3fU4UGN/OqbSE0imqljNbUQC3GvVJ1jpwYoTfD6mmXmQaxdJY6Hn4jQbLGJKg5Yw==", 397 - "cpu": [ 398 - "arm64" 399 - ], 400 - "dev": true, 401 - "license": "MIT", 402 - "optional": true, 403 - "os": [ 404 - "openbsd" 405 - ], 406 - "engines": { 407 - "node": ">=18" 408 - } 409 - }, 410 - "node_modules/@esbuild/openbsd-x64": { 411 - "version": "0.26.0", 412 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.26.0.tgz", 413 - "integrity": "sha512-GPXF7RMkJ7o9bTyUsnyNtrFMqgM3X+uM/LWw4CeHIjqc32fm0Ir6jKDnWHpj8xHFstgWDUYseSABK9KCkHGnpg==", 414 - "cpu": [ 415 - "x64" 416 - ], 417 - "dev": true, 418 - "license": "MIT", 419 - "optional": true, 420 - "os": [ 421 - "openbsd" 422 - ], 423 - "engines": { 424 - "node": ">=18" 425 - } 426 - }, 427 - "node_modules/@esbuild/openharmony-arm64": { 428 - "version": "0.26.0", 429 - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.26.0.tgz", 430 - "integrity": "sha512-nUHZ5jEYqbBthbiBksbmHTlbb5eElyVfs/s1iHQ8rLBq1eWsd5maOnDpCocw1OM8kFK747d1Xms8dXJHtduxSw==", 431 - "cpu": [ 432 - "arm64" 433 - ], 434 - "dev": true, 435 - "license": "MIT", 436 - "optional": true, 437 - "os": [ 438 - "openharmony" 439 - ], 440 - "engines": { 441 - "node": ">=18" 442 - } 443 - }, 444 - "node_modules/@esbuild/sunos-x64": { 445 - "version": "0.26.0", 446 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.26.0.tgz", 447 - "integrity": "sha512-TMg3KCTCYYaVO+R6P5mSORhcNDDlemUVnUbb8QkboUtOhb5JWKAzd5uMIMECJQOxHZ/R+N8HHtDF5ylzLfMiLw==", 448 - "cpu": [ 449 - "x64" 450 - ], 451 - "dev": true, 452 - "license": "MIT", 453 - "optional": true, 454 - "os": [ 455 - "sunos" 456 - ], 457 - "engines": { 458 - "node": ">=18" 459 - } 460 - }, 461 - "node_modules/@esbuild/win32-arm64": { 462 - "version": "0.26.0", 463 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.26.0.tgz", 464 - "integrity": "sha512-apqYgoAUd6ZCb9Phcs8zN32q6l0ZQzQBdVXOofa6WvHDlSOhwCWgSfVQabGViThS40Y1NA4SCvQickgZMFZRlA==", 465 - "cpu": [ 466 - "arm64" 467 - ], 468 - "dev": true, 469 - "license": "MIT", 470 - "optional": true, 471 - "os": [ 472 - "win32" 473 - ], 474 - "engines": { 475 - "node": ">=18" 476 - } 477 - }, 478 - "node_modules/@esbuild/win32-ia32": { 479 - "version": "0.26.0", 480 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.26.0.tgz", 481 - "integrity": "sha512-FGJAcImbJNZzLWu7U6WB0iKHl4RuY4TsXEwxJPl9UZLS47agIZuILZEX3Pagfw7I4J3ddflomt9f0apfaJSbaw==", 482 - "cpu": [ 483 - "ia32" 484 - ], 485 - "dev": true, 486 - "license": "MIT", 487 - "optional": true, 488 - "os": [ 489 - "win32" 490 - ], 491 - "engines": { 492 - "node": ">=18" 493 - } 494 - }, 495 - "node_modules/@esbuild/win32-x64": { 496 - "version": "0.26.0", 497 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.26.0.tgz", 498 - "integrity": "sha512-WAckBKaVnmFqbEhbymrPK7M086DQMpL1XoRbpmN0iW8k5JSXjDRQBhcZNa0VweItknLq9eAeCL34jK7/CDcw7A==", 499 - "cpu": [ 500 - "x64" 501 - ], 502 - "dev": true, 503 - "license": "MIT", 504 - "optional": true, 505 - "os": [ 506 - "win32" 507 - ], 508 - "engines": { 509 - "node": ">=18" 510 - } 511 - }, 512 70 "node_modules/@inquirer/ansi": { 513 71 "version": "2.0.4", 514 72 "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.4.tgz", ··· 875 433 "@emnapi/runtime": "^1.7.1" 876 434 } 877 435 }, 878 - "node_modules/@nodelib/fs.scandir": { 879 - "version": "2.1.5", 880 - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 881 - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 882 - "dev": true, 883 - "license": "MIT", 884 - "dependencies": { 885 - "@nodelib/fs.stat": "2.0.5", 886 - "run-parallel": "^1.1.9" 887 - }, 888 - "engines": { 889 - "node": ">= 8" 890 - } 891 - }, 892 - "node_modules/@nodelib/fs.stat": { 893 - "version": "2.0.5", 894 - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 895 - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 896 - "dev": true, 897 - "license": "MIT", 898 - "engines": { 899 - "node": ">= 8" 900 - } 901 - }, 902 - "node_modules/@nodelib/fs.walk": { 903 - "version": "1.2.8", 904 - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 905 - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 906 - "dev": true, 907 - "license": "MIT", 908 - "dependencies": { 909 - "@nodelib/fs.scandir": "2.1.5", 910 - "fastq": "^1.6.0" 911 - }, 912 - "engines": { 913 - "node": ">= 8" 914 - } 915 - }, 916 436 "node_modules/@oxc-project/types": { 917 437 "version": "0.122.0", 918 438 "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.122.0.tgz", ··· 1200 720 "dev": true, 1201 721 "license": "MIT" 1202 722 }, 1203 - "node_modules/@rollup/plugin-alias": { 1204 - "version": "6.0.0", 1205 - "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-6.0.0.tgz", 1206 - "integrity": "sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==", 1207 - "dev": true, 1208 - "license": "MIT", 1209 - "engines": { 1210 - "node": ">=20.19.0" 1211 - }, 1212 - "peerDependencies": { 1213 - "rollup": ">=4.0.0" 1214 - }, 1215 - "peerDependenciesMeta": { 1216 - "rollup": { 1217 - "optional": true 1218 - } 1219 - } 1220 - }, 1221 - "node_modules/@rollup/plugin-commonjs": { 1222 - "version": "29.0.2", 1223 - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.2.tgz", 1224 - "integrity": "sha512-S/ggWH1LU7jTyi9DxZOKyxpVd4hF/OZ0JrEbeLjXk/DFXwRny0tjD2c992zOUYQobLrVkRVMDdmHP16HKP7GRg==", 1225 - "dev": true, 1226 - "license": "MIT", 1227 - "dependencies": { 1228 - "@rollup/pluginutils": "^5.0.1", 1229 - "commondir": "^1.0.1", 1230 - "estree-walker": "^2.0.2", 1231 - "fdir": "^6.2.0", 1232 - "is-reference": "1.2.1", 1233 - "magic-string": "^0.30.3", 1234 - "picomatch": "^4.0.2" 1235 - }, 1236 - "engines": { 1237 - "node": ">=16.0.0 || 14 >= 14.17" 1238 - }, 1239 - "peerDependencies": { 1240 - "rollup": "^2.68.0||^3.0.0||^4.0.0" 1241 - }, 1242 - "peerDependenciesMeta": { 1243 - "rollup": { 1244 - "optional": true 1245 - } 1246 - } 1247 - }, 1248 - "node_modules/@rollup/plugin-dynamic-import-vars": { 1249 - "version": "2.1.5", 1250 - "resolved": "https://registry.npmjs.org/@rollup/plugin-dynamic-import-vars/-/plugin-dynamic-import-vars-2.1.5.tgz", 1251 - "integrity": "sha512-Mymi24fd9hlRifdZV/jYIFj1dn99F34imiYu3KzlAcgBcRi3i9SucgW/VRo5SQ9K4NuQ7dCep6pFWgNyhRdFHQ==", 1252 - "dev": true, 1253 - "license": "MIT", 1254 - "dependencies": { 1255 - "@rollup/pluginutils": "^5.0.1", 1256 - "astring": "^1.8.5", 1257 - "estree-walker": "^2.0.2", 1258 - "fast-glob": "^3.2.12", 1259 - "magic-string": "^0.30.3" 1260 - }, 1261 - "engines": { 1262 - "node": ">=14.0.0" 1263 - }, 1264 - "peerDependencies": { 1265 - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" 1266 - }, 1267 - "peerDependenciesMeta": { 1268 - "rollup": { 1269 - "optional": true 1270 - } 1271 - } 1272 - }, 1273 - "node_modules/@rollup/plugin-json": { 1274 - "version": "6.1.0", 1275 - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", 1276 - "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", 1277 - "dev": true, 1278 - "license": "MIT", 1279 - "dependencies": { 1280 - "@rollup/pluginutils": "^5.1.0" 1281 - }, 1282 - "engines": { 1283 - "node": ">=14.0.0" 1284 - }, 1285 - "peerDependencies": { 1286 - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" 1287 - }, 1288 - "peerDependenciesMeta": { 1289 - "rollup": { 1290 - "optional": true 1291 - } 1292 - } 1293 - }, 1294 - "node_modules/@rollup/plugin-node-resolve": { 1295 - "version": "16.0.3", 1296 - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", 1297 - "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", 1298 - "dev": true, 1299 - "license": "MIT", 1300 - "dependencies": { 1301 - "@rollup/pluginutils": "^5.0.1", 1302 - "@types/resolve": "1.20.2", 1303 - "deepmerge": "^4.2.2", 1304 - "is-module": "^1.0.0", 1305 - "resolve": "^1.22.1" 1306 - }, 1307 - "engines": { 1308 - "node": ">=14.0.0" 1309 - }, 1310 - "peerDependencies": { 1311 - "rollup": "^2.78.0||^3.0.0||^4.0.0" 1312 - }, 1313 - "peerDependenciesMeta": { 1314 - "rollup": { 1315 - "optional": true 1316 - } 1317 - } 1318 - }, 1319 - "node_modules/@rollup/pluginutils": { 1320 - "version": "5.3.0", 1321 - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", 1322 - "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", 1323 - "dev": true, 1324 - "license": "MIT", 1325 - "dependencies": { 1326 - "@types/estree": "^1.0.0", 1327 - "estree-walker": "^2.0.2", 1328 - "picomatch": "^4.0.2" 1329 - }, 1330 - "engines": { 1331 - "node": ">=14.0.0" 1332 - }, 1333 - "peerDependencies": { 1334 - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" 1335 - }, 1336 - "peerDependenciesMeta": { 1337 - "rollup": { 1338 - "optional": true 1339 - } 1340 - } 1341 - }, 1342 - "node_modules/@rollup/rollup-android-arm-eabi": { 1343 - "version": "4.60.1", 1344 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz", 1345 - "integrity": "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==", 1346 - "cpu": [ 1347 - "arm" 1348 - ], 1349 - "dev": true, 1350 - "license": "MIT", 1351 - "optional": true, 1352 - "os": [ 1353 - "android" 1354 - ] 1355 - }, 1356 - "node_modules/@rollup/rollup-android-arm64": { 1357 - "version": "4.60.1", 1358 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz", 1359 - "integrity": "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==", 1360 - "cpu": [ 1361 - "arm64" 1362 - ], 1363 - "dev": true, 1364 - "license": "MIT", 1365 - "optional": true, 1366 - "os": [ 1367 - "android" 1368 - ] 1369 - }, 1370 - "node_modules/@rollup/rollup-darwin-arm64": { 1371 - "version": "4.60.1", 1372 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz", 1373 - "integrity": "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==", 1374 - "cpu": [ 1375 - "arm64" 1376 - ], 1377 - "dev": true, 1378 - "license": "MIT", 1379 - "optional": true, 1380 - "os": [ 1381 - "darwin" 1382 - ] 1383 - }, 1384 - "node_modules/@rollup/rollup-darwin-x64": { 1385 - "version": "4.60.1", 1386 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz", 1387 - "integrity": "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==", 1388 - "cpu": [ 1389 - "x64" 1390 - ], 1391 - "dev": true, 1392 - "license": "MIT", 1393 - "optional": true, 1394 - "os": [ 1395 - "darwin" 1396 - ] 1397 - }, 1398 - "node_modules/@rollup/rollup-freebsd-arm64": { 1399 - "version": "4.60.1", 1400 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz", 1401 - "integrity": "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==", 1402 - "cpu": [ 1403 - "arm64" 1404 - ], 1405 - "dev": true, 1406 - "license": "MIT", 1407 - "optional": true, 1408 - "os": [ 1409 - "freebsd" 1410 - ] 1411 - }, 1412 - "node_modules/@rollup/rollup-freebsd-x64": { 1413 - "version": "4.60.1", 1414 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz", 1415 - "integrity": "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==", 1416 - "cpu": [ 1417 - "x64" 1418 - ], 1419 - "dev": true, 1420 - "license": "MIT", 1421 - "optional": true, 1422 - "os": [ 1423 - "freebsd" 1424 - ] 1425 - }, 1426 - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 1427 - "version": "4.60.1", 1428 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz", 1429 - "integrity": "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==", 1430 - "cpu": [ 1431 - "arm" 1432 - ], 1433 - "dev": true, 1434 - "license": "MIT", 1435 - "optional": true, 1436 - "os": [ 1437 - "linux" 1438 - ] 1439 - }, 1440 - "node_modules/@rollup/rollup-linux-arm-musleabihf": { 1441 - "version": "4.60.1", 1442 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz", 1443 - "integrity": "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==", 1444 - "cpu": [ 1445 - "arm" 1446 - ], 1447 - "dev": true, 1448 - "license": "MIT", 1449 - "optional": true, 1450 - "os": [ 1451 - "linux" 1452 - ] 1453 - }, 1454 - "node_modules/@rollup/rollup-linux-arm64-gnu": { 1455 - "version": "4.60.1", 1456 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz", 1457 - "integrity": "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==", 1458 - "cpu": [ 1459 - "arm64" 1460 - ], 1461 - "dev": true, 1462 - "license": "MIT", 1463 - "optional": true, 1464 - "os": [ 1465 - "linux" 1466 - ] 1467 - }, 1468 - "node_modules/@rollup/rollup-linux-arm64-musl": { 1469 - "version": "4.60.1", 1470 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz", 1471 - "integrity": "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==", 1472 - "cpu": [ 1473 - "arm64" 1474 - ], 1475 - "dev": true, 1476 - "license": "MIT", 1477 - "optional": true, 1478 - "os": [ 1479 - "linux" 1480 - ] 1481 - }, 1482 - "node_modules/@rollup/rollup-linux-loong64-gnu": { 1483 - "version": "4.60.1", 1484 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz", 1485 - "integrity": "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==", 1486 - "cpu": [ 1487 - "loong64" 1488 - ], 1489 - "dev": true, 1490 - "license": "MIT", 1491 - "optional": true, 1492 - "os": [ 1493 - "linux" 1494 - ] 1495 - }, 1496 - "node_modules/@rollup/rollup-linux-loong64-musl": { 1497 - "version": "4.60.1", 1498 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz", 1499 - "integrity": "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==", 1500 - "cpu": [ 1501 - "loong64" 1502 - ], 1503 - "dev": true, 1504 - "license": "MIT", 1505 - "optional": true, 1506 - "os": [ 1507 - "linux" 1508 - ] 1509 - }, 1510 - "node_modules/@rollup/rollup-linux-ppc64-gnu": { 1511 - "version": "4.60.1", 1512 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz", 1513 - "integrity": "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==", 1514 - "cpu": [ 1515 - "ppc64" 1516 - ], 1517 - "dev": true, 1518 - "license": "MIT", 1519 - "optional": true, 1520 - "os": [ 1521 - "linux" 1522 - ] 1523 - }, 1524 - "node_modules/@rollup/rollup-linux-ppc64-musl": { 1525 - "version": "4.60.1", 1526 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz", 1527 - "integrity": "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==", 1528 - "cpu": [ 1529 - "ppc64" 1530 - ], 1531 - "dev": true, 1532 - "license": "MIT", 1533 - "optional": true, 1534 - "os": [ 1535 - "linux" 1536 - ] 1537 - }, 1538 - "node_modules/@rollup/rollup-linux-riscv64-gnu": { 1539 - "version": "4.60.1", 1540 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz", 1541 - "integrity": "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==", 1542 - "cpu": [ 1543 - "riscv64" 1544 - ], 1545 - "dev": true, 1546 - "license": "MIT", 1547 - "optional": true, 1548 - "os": [ 1549 - "linux" 1550 - ] 1551 - }, 1552 - "node_modules/@rollup/rollup-linux-riscv64-musl": { 1553 - "version": "4.60.1", 1554 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz", 1555 - "integrity": "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==", 1556 - "cpu": [ 1557 - "riscv64" 1558 - ], 1559 - "dev": true, 1560 - "license": "MIT", 1561 - "optional": true, 1562 - "os": [ 1563 - "linux" 1564 - ] 1565 - }, 1566 - "node_modules/@rollup/rollup-linux-s390x-gnu": { 1567 - "version": "4.60.1", 1568 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz", 1569 - "integrity": "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==", 1570 - "cpu": [ 1571 - "s390x" 1572 - ], 1573 - "dev": true, 1574 - "license": "MIT", 1575 - "optional": true, 1576 - "os": [ 1577 - "linux" 1578 - ] 1579 - }, 1580 - "node_modules/@rollup/rollup-linux-x64-gnu": { 1581 - "version": "4.60.1", 1582 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.1.tgz", 1583 - "integrity": "sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==", 1584 - "cpu": [ 1585 - "x64" 1586 - ], 1587 - "dev": true, 1588 - "license": "MIT", 1589 - "optional": true, 1590 - "os": [ 1591 - "linux" 1592 - ] 1593 - }, 1594 - "node_modules/@rollup/rollup-linux-x64-musl": { 1595 - "version": "4.60.1", 1596 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.1.tgz", 1597 - "integrity": "sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==", 1598 - "cpu": [ 1599 - "x64" 1600 - ], 1601 - "dev": true, 1602 - "license": "MIT", 1603 - "optional": true, 1604 - "os": [ 1605 - "linux" 1606 - ] 1607 - }, 1608 - "node_modules/@rollup/rollup-openbsd-x64": { 1609 - "version": "4.60.1", 1610 - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz", 1611 - "integrity": "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==", 1612 - "cpu": [ 1613 - "x64" 1614 - ], 1615 - "dev": true, 1616 - "license": "MIT", 1617 - "optional": true, 1618 - "os": [ 1619 - "openbsd" 1620 - ] 1621 - }, 1622 - "node_modules/@rollup/rollup-openharmony-arm64": { 1623 - "version": "4.60.1", 1624 - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz", 1625 - "integrity": "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==", 1626 - "cpu": [ 1627 - "arm64" 1628 - ], 1629 - "dev": true, 1630 - "license": "MIT", 1631 - "optional": true, 1632 - "os": [ 1633 - "openharmony" 1634 - ] 1635 - }, 1636 - "node_modules/@rollup/rollup-win32-arm64-msvc": { 1637 - "version": "4.60.1", 1638 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz", 1639 - "integrity": "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==", 1640 - "cpu": [ 1641 - "arm64" 1642 - ], 1643 - "dev": true, 1644 - "license": "MIT", 1645 - "optional": true, 1646 - "os": [ 1647 - "win32" 1648 - ] 1649 - }, 1650 - "node_modules/@rollup/rollup-win32-ia32-msvc": { 1651 - "version": "4.60.1", 1652 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz", 1653 - "integrity": "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==", 1654 - "cpu": [ 1655 - "ia32" 1656 - ], 1657 - "dev": true, 1658 - "license": "MIT", 1659 - "optional": true, 1660 - "os": [ 1661 - "win32" 1662 - ] 1663 - }, 1664 - "node_modules/@rollup/rollup-win32-x64-gnu": { 1665 - "version": "4.60.1", 1666 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz", 1667 - "integrity": "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==", 1668 - "cpu": [ 1669 - "x64" 1670 - ], 1671 - "dev": true, 1672 - "license": "MIT", 1673 - "optional": true, 1674 - "os": [ 1675 - "win32" 1676 - ] 1677 - }, 1678 - "node_modules/@rollup/rollup-win32-x64-msvc": { 1679 - "version": "4.60.1", 1680 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz", 1681 - "integrity": "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==", 1682 - "cpu": [ 1683 - "x64" 1684 - ], 1685 - "dev": true, 1686 - "license": "MIT", 1687 - "optional": true, 1688 - "os": [ 1689 - "win32" 1690 - ] 1691 - }, 1692 723 "node_modules/@standard-schema/spec": { 1693 724 "version": "1.1.0", 1694 725 "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", ··· 1715 746 "dependencies": { 1716 747 "@types/connect": "*", 1717 748 "@types/node": "*" 749 + } 750 + }, 751 + "node_modules/@types/bun": { 752 + "version": "1.3.12", 753 + "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.3.12.tgz", 754 + "integrity": "sha512-DBv81elK+/VSwXHDlnH3Qduw+KxkTIWi7TXkAeh24zpi5l0B2kUg9Ga3tb4nJaPcOFswflgi/yAvMVBPrxMB+A==", 755 + "dev": true, 756 + "license": "MIT", 757 + "dependencies": { 758 + "bun-types": "1.3.12" 1718 759 } 1719 760 }, 1720 761 "node_modules/@types/chai": { ··· 1826 867 "dev": true, 1827 868 "license": "MIT" 1828 869 }, 1829 - "node_modules/@types/resolve": { 1830 - "version": "1.20.2", 1831 - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", 1832 - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", 1833 - "dev": true, 1834 - "license": "MIT" 1835 - }, 1836 870 "node_modules/@types/send": { 1837 871 "version": "1.2.1", 1838 872 "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", ··· 1982 1016 "node": ">=12" 1983 1017 } 1984 1018 }, 1985 - "node_modules/astring": { 1986 - "version": "1.9.0", 1987 - "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", 1988 - "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", 1989 - "dev": true, 1990 - "license": "MIT", 1991 - "bin": { 1992 - "astring": "bin/astring" 1993 - } 1994 - }, 1995 1019 "node_modules/asynckit": { 1996 1020 "version": "0.4.0", 1997 1021 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", ··· 2033 1057 "url": "https://opencollective.com/express" 2034 1058 } 2035 1059 }, 2036 - "node_modules/braces": { 2037 - "version": "3.0.3", 2038 - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 2039 - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 1060 + "node_modules/bun-types": { 1061 + "version": "1.3.12", 1062 + "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.3.12.tgz", 1063 + "integrity": "sha512-HqOLj5PoFajAQciOMRiIZGNoKxDJSr6qigAttOX40vJuSp6DN/CxWp9s3C1Xwm4oH7ybueITwiaOcWXoYVoRkA==", 2040 1064 "dev": true, 2041 1065 "license": "MIT", 2042 1066 "dependencies": { 2043 - "fill-range": "^7.1.1" 2044 - }, 2045 - "engines": { 2046 - "node": ">=8" 1067 + "@types/node": "*" 2047 1068 } 2048 1069 }, 2049 1070 "node_modules/bundle-name": { ··· 2136 1157 "node": ">=18" 2137 1158 } 2138 1159 }, 2139 - "node_modules/cjs-module-lexer": { 2140 - "version": "2.2.0", 2141 - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz", 2142 - "integrity": "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==", 2143 - "dev": true, 2144 - "license": "MIT" 2145 - }, 2146 1160 "node_modules/cli-cursor": { 2147 1161 "version": "5.0.0", 2148 1162 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", ··· 2214 1228 "engines": { 2215 1229 "node": ">=20" 2216 1230 } 2217 - }, 2218 - "node_modules/commondir": { 2219 - "version": "1.0.1", 2220 - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 2221 - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", 2222 - "dev": true, 2223 - "license": "MIT" 2224 1231 }, 2225 1232 "node_modules/consola": { 2226 1233 "version": "3.4.2", ··· 2318 1325 } 2319 1326 } 2320 1327 }, 2321 - "node_modules/deepmerge": { 2322 - "version": "4.3.1", 2323 - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", 2324 - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", 2325 - "dev": true, 2326 - "license": "MIT", 2327 - "engines": { 2328 - "node": ">=0.10.0" 2329 - } 2330 - }, 2331 1328 "node_modules/default-browser": { 2332 1329 "version": "5.5.0", 2333 1330 "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", ··· 2505 1502 "node": ">= 0.4" 2506 1503 } 2507 1504 }, 2508 - "node_modules/esbuild": { 2509 - "version": "0.26.0", 2510 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.26.0.tgz", 2511 - "integrity": "sha512-3Hq7jri+tRrVWha+ZeIVhl4qJRha/XjRNSopvTsOaCvfPHrflTYTcUFcEjMKdxofsXXsdc4zjg5NOTnL4Gl57Q==", 2512 - "dev": true, 2513 - "hasInstallScript": true, 2514 - "license": "MIT", 2515 - "bin": { 2516 - "esbuild": "bin/esbuild" 2517 - }, 2518 - "engines": { 2519 - "node": ">=18" 2520 - }, 2521 - "optionalDependencies": { 2522 - "@esbuild/aix-ppc64": "0.26.0", 2523 - "@esbuild/android-arm": "0.26.0", 2524 - "@esbuild/android-arm64": "0.26.0", 2525 - "@esbuild/android-x64": "0.26.0", 2526 - "@esbuild/darwin-arm64": "0.26.0", 2527 - "@esbuild/darwin-x64": "0.26.0", 2528 - "@esbuild/freebsd-arm64": "0.26.0", 2529 - "@esbuild/freebsd-x64": "0.26.0", 2530 - "@esbuild/linux-arm": "0.26.0", 2531 - "@esbuild/linux-arm64": "0.26.0", 2532 - "@esbuild/linux-ia32": "0.26.0", 2533 - "@esbuild/linux-loong64": "0.26.0", 2534 - "@esbuild/linux-mips64el": "0.26.0", 2535 - "@esbuild/linux-ppc64": "0.26.0", 2536 - "@esbuild/linux-riscv64": "0.26.0", 2537 - "@esbuild/linux-s390x": "0.26.0", 2538 - "@esbuild/linux-x64": "0.26.0", 2539 - "@esbuild/netbsd-arm64": "0.26.0", 2540 - "@esbuild/netbsd-x64": "0.26.0", 2541 - "@esbuild/openbsd-arm64": "0.26.0", 2542 - "@esbuild/openbsd-x64": "0.26.0", 2543 - "@esbuild/openharmony-arm64": "0.26.0", 2544 - "@esbuild/sunos-x64": "0.26.0", 2545 - "@esbuild/win32-arm64": "0.26.0", 2546 - "@esbuild/win32-ia32": "0.26.0", 2547 - "@esbuild/win32-x64": "0.26.0" 2548 - } 2549 - }, 2550 1505 "node_modules/escape-html": { 2551 1506 "version": "1.0.3", 2552 1507 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 2553 1508 "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", 2554 - "license": "MIT" 2555 - }, 2556 - "node_modules/estree-walker": { 2557 - "version": "2.0.2", 2558 - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 2559 - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 2560 - "dev": true, 2561 1509 "license": "MIT" 2562 1510 }, 2563 1511 "node_modules/etag": { ··· 2665 1613 "node": ">=8.0.0" 2666 1614 } 2667 1615 }, 2668 - "node_modules/fast-glob": { 2669 - "version": "3.3.3", 2670 - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 2671 - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 2672 - "dev": true, 2673 - "license": "MIT", 2674 - "dependencies": { 2675 - "@nodelib/fs.stat": "^2.0.2", 2676 - "@nodelib/fs.walk": "^1.2.3", 2677 - "glob-parent": "^5.1.2", 2678 - "merge2": "^1.3.0", 2679 - "micromatch": "^4.0.8" 2680 - }, 2681 - "engines": { 2682 - "node": ">=8.6.0" 2683 - } 2684 - }, 2685 1616 "node_modules/fast-string-truncated-width": { 2686 1617 "version": "3.0.3", 2687 1618 "resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz", ··· 2706 1637 "fast-string-width": "^3.0.2" 2707 1638 } 2708 1639 }, 2709 - "node_modules/fastq": { 2710 - "version": "1.20.1", 2711 - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", 2712 - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", 2713 - "dev": true, 2714 - "license": "ISC", 2715 - "dependencies": { 2716 - "reusify": "^1.0.4" 2717 - } 2718 - }, 2719 1640 "node_modules/fdir": { 2720 1641 "version": "6.5.0", 2721 1642 "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", ··· 2734 1655 } 2735 1656 } 2736 1657 }, 2737 - "node_modules/fill-range": { 2738 - "version": "7.1.1", 2739 - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 2740 - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 2741 - "dev": true, 2742 - "license": "MIT", 2743 - "dependencies": { 2744 - "to-regex-range": "^5.0.1" 2745 - }, 2746 - "engines": { 2747 - "node": ">=8" 2748 - } 2749 - }, 2750 1658 "node_modules/finalhandler": { 2751 1659 "version": "2.1.1", 2752 1660 "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", ··· 2929 1837 "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" 2930 1838 } 2931 1839 }, 2932 - "node_modules/glob-parent": { 2933 - "version": "5.1.2", 2934 - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2935 - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2936 - "dev": true, 2937 - "license": "ISC", 2938 - "dependencies": { 2939 - "is-glob": "^4.0.1" 2940 - }, 2941 - "engines": { 2942 - "node": ">= 6" 2943 - } 2944 - }, 2945 1840 "node_modules/gopd": { 2946 1841 "version": "1.2.0", 2947 1842 "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", ··· 3053 1948 "node": ">= 0.10" 3054 1949 } 3055 1950 }, 3056 - "node_modules/is-core-module": { 3057 - "version": "2.16.1", 3058 - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", 3059 - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", 3060 - "dev": true, 3061 - "license": "MIT", 3062 - "dependencies": { 3063 - "hasown": "^2.0.2" 3064 - }, 3065 - "engines": { 3066 - "node": ">= 0.4" 3067 - }, 3068 - "funding": { 3069 - "url": "https://github.com/sponsors/ljharb" 3070 - } 3071 - }, 3072 1951 "node_modules/is-docker": { 3073 1952 "version": "3.0.0", 3074 1953 "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", ··· 3082 1961 }, 3083 1962 "funding": { 3084 1963 "url": "https://github.com/sponsors/sindresorhus" 3085 - } 3086 - }, 3087 - "node_modules/is-extglob": { 3088 - "version": "2.1.1", 3089 - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 3090 - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 3091 - "dev": true, 3092 - "license": "MIT", 3093 - "engines": { 3094 - "node": ">=0.10.0" 3095 1964 } 3096 1965 }, 3097 1966 "node_modules/is-fullwidth-code-point": { ··· 3101 1970 "license": "MIT", 3102 1971 "engines": { 3103 1972 "node": ">=8" 3104 - } 3105 - }, 3106 - "node_modules/is-glob": { 3107 - "version": "4.0.3", 3108 - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 3109 - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 3110 - "dev": true, 3111 - "license": "MIT", 3112 - "dependencies": { 3113 - "is-extglob": "^2.1.1" 3114 - }, 3115 - "engines": { 3116 - "node": ">=0.10.0" 3117 1973 } 3118 1974 }, 3119 1975 "node_modules/is-in-ssh": { ··· 3158 2014 "url": "https://github.com/sponsors/sindresorhus" 3159 2015 } 3160 2016 }, 3161 - "node_modules/is-module": { 3162 - "version": "1.0.0", 3163 - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", 3164 - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", 3165 - "dev": true, 3166 - "license": "MIT" 3167 - }, 3168 - "node_modules/is-number": { 3169 - "version": "7.0.0", 3170 - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 3171 - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 3172 - "dev": true, 3173 - "license": "MIT", 3174 - "engines": { 3175 - "node": ">=0.12.0" 3176 - } 3177 - }, 3178 2017 "node_modules/is-promise": { 3179 2018 "version": "4.0.0", 3180 2019 "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", 3181 2020 "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", 3182 2021 "license": "MIT" 3183 - }, 3184 - "node_modules/is-reference": { 3185 - "version": "1.2.1", 3186 - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", 3187 - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", 3188 - "dev": true, 3189 - "license": "MIT", 3190 - "dependencies": { 3191 - "@types/estree": "*" 3192 - } 3193 2022 }, 3194 2023 "node_modules/is-unicode-supported": { 3195 2024 "version": "2.1.0", ··· 3550 2379 "url": "https://github.com/sponsors/sindresorhus" 3551 2380 } 3552 2381 }, 3553 - "node_modules/merge2": { 3554 - "version": "1.4.1", 3555 - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 3556 - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 3557 - "dev": true, 3558 - "license": "MIT", 3559 - "engines": { 3560 - "node": ">= 8" 3561 - } 3562 - }, 3563 - "node_modules/micromatch": { 3564 - "version": "4.0.8", 3565 - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 3566 - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 3567 - "dev": true, 3568 - "license": "MIT", 3569 - "dependencies": { 3570 - "braces": "^3.0.3", 3571 - "picomatch": "^2.3.1" 3572 - }, 3573 - "engines": { 3574 - "node": ">=8.6" 3575 - } 3576 - }, 3577 - "node_modules/micromatch/node_modules/picomatch": { 3578 - "version": "2.3.2", 3579 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", 3580 - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", 3581 - "dev": true, 3582 - "license": "MIT", 3583 - "engines": { 3584 - "node": ">=8.6" 3585 - }, 3586 - "funding": { 3587 - "url": "https://github.com/sponsors/jonschlinkert" 3588 - } 3589 - }, 3590 2382 "node_modules/mime-db": { 3591 2383 "version": "1.54.0", 3592 2384 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", ··· 3850 2642 "node": ">= 0.8" 3851 2643 } 3852 2644 }, 3853 - "node_modules/path-parse": { 3854 - "version": "1.0.7", 3855 - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 3856 - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 3857 - "dev": true, 3858 - "license": "MIT" 3859 - }, 3860 2645 "node_modules/path-to-regexp": { 3861 2646 "version": "8.4.2", 3862 2647 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", ··· 3887 2672 "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", 3888 2673 "dev": true, 3889 2674 "license": "MIT", 2675 + "peer": true, 3890 2676 "engines": { 3891 2677 "node": ">=12" 3892 2678 }, ··· 3894 2680 "url": "https://github.com/sponsors/jonschlinkert" 3895 2681 } 3896 2682 }, 3897 - "node_modules/pkgroll": { 3898 - "version": "2.27.0", 3899 - "resolved": "https://registry.npmjs.org/pkgroll/-/pkgroll-2.27.0.tgz", 3900 - "integrity": "sha512-Huw5ZRxWTWeQ0PbNNKdbkAl52bPMy009RXdB4u3qjb47AMEBLG5VVF0V6oOD+YYiZaHaFxvjEeX+A2T9ckaClQ==", 3901 - "dev": true, 3902 - "license": "MIT", 3903 - "dependencies": { 3904 - "@rollup/plugin-alias": "^6.0.0", 3905 - "@rollup/plugin-commonjs": "^29.0.0", 3906 - "@rollup/plugin-dynamic-import-vars": "^2.1.5", 3907 - "@rollup/plugin-json": "^6.1.0", 3908 - "@rollup/plugin-node-resolve": "^16.0.3", 3909 - "cjs-module-lexer": "^2.2.0", 3910 - "esbuild": "^0.26.0", 3911 - "magic-string": "^0.30.21", 3912 - "rollup": "^4.53.5", 3913 - "rollup-plugin-import-trace": "^1.0.1", 3914 - "rollup-pluginutils": "^2.8.2", 3915 - "yaml": "^2.8.2" 3916 - }, 3917 - "bin": { 3918 - "pkgroll": "dist/cli.mjs" 3919 - }, 3920 - "engines": { 3921 - "node": ">=18" 3922 - }, 3923 - "funding": { 3924 - "url": "https://github.com/privatenumber/pkgroll?sponsor=1" 3925 - }, 3926 - "peerDependencies": { 3927 - "typescript": "^4.1 || ^5.0" 3928 - }, 3929 - "peerDependenciesMeta": { 3930 - "typescript": { 3931 - "optional": true 3932 - } 3933 - } 3934 - }, 3935 2683 "node_modules/postcss": { 3936 2684 "version": "8.5.8", 3937 2685 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", ··· 4026 2774 "url": "https://github.com/sponsors/ljharb" 4027 2775 } 4028 2776 }, 4029 - "node_modules/queue-microtask": { 4030 - "version": "1.2.3", 4031 - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 4032 - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 4033 - "dev": true, 4034 - "funding": [ 4035 - { 4036 - "type": "github", 4037 - "url": "https://github.com/sponsors/feross" 4038 - }, 4039 - { 4040 - "type": "patreon", 4041 - "url": "https://www.patreon.com/feross" 4042 - }, 4043 - { 4044 - "type": "consulting", 4045 - "url": "https://feross.org/support" 4046 - } 4047 - ], 4048 - "license": "MIT" 4049 - }, 4050 2777 "node_modules/range-parser": { 4051 2778 "version": "1.2.1", 4052 2779 "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", ··· 4071 2798 "node": ">= 0.10" 4072 2799 } 4073 2800 }, 4074 - "node_modules/resolve": { 4075 - "version": "1.22.11", 4076 - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", 4077 - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", 4078 - "dev": true, 4079 - "license": "MIT", 4080 - "dependencies": { 4081 - "is-core-module": "^2.16.1", 4082 - "path-parse": "^1.0.7", 4083 - "supports-preserve-symlinks-flag": "^1.0.0" 4084 - }, 4085 - "bin": { 4086 - "resolve": "bin/resolve" 4087 - }, 4088 - "engines": { 4089 - "node": ">= 0.4" 4090 - }, 4091 - "funding": { 4092 - "url": "https://github.com/sponsors/ljharb" 4093 - } 4094 - }, 4095 2801 "node_modules/resolve-pkg-maps": { 4096 2802 "version": "1.0.0", 4097 2803 "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", ··· 4118 2824 "url": "https://github.com/sponsors/sindresorhus" 4119 2825 } 4120 2826 }, 4121 - "node_modules/reusify": { 4122 - "version": "1.1.0", 4123 - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", 4124 - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", 4125 - "dev": true, 4126 - "license": "MIT", 4127 - "engines": { 4128 - "iojs": ">=1.0.0", 4129 - "node": ">=0.10.0" 4130 - } 4131 - }, 4132 2827 "node_modules/rolldown": { 4133 2828 "version": "1.0.0-rc.12", 4134 2829 "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.12.tgz", ··· 4163 2858 "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.12" 4164 2859 } 4165 2860 }, 4166 - "node_modules/rollup": { 4167 - "version": "4.60.1", 4168 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.1.tgz", 4169 - "integrity": "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==", 4170 - "dev": true, 4171 - "license": "MIT", 4172 - "peer": true, 4173 - "dependencies": { 4174 - "@types/estree": "1.0.8" 4175 - }, 4176 - "bin": { 4177 - "rollup": "dist/bin/rollup" 4178 - }, 4179 - "engines": { 4180 - "node": ">=18.0.0", 4181 - "npm": ">=8.0.0" 4182 - }, 4183 - "optionalDependencies": { 4184 - "@rollup/rollup-android-arm-eabi": "4.60.1", 4185 - "@rollup/rollup-android-arm64": "4.60.1", 4186 - "@rollup/rollup-darwin-arm64": "4.60.1", 4187 - "@rollup/rollup-darwin-x64": "4.60.1", 4188 - "@rollup/rollup-freebsd-arm64": "4.60.1", 4189 - "@rollup/rollup-freebsd-x64": "4.60.1", 4190 - "@rollup/rollup-linux-arm-gnueabihf": "4.60.1", 4191 - "@rollup/rollup-linux-arm-musleabihf": "4.60.1", 4192 - "@rollup/rollup-linux-arm64-gnu": "4.60.1", 4193 - "@rollup/rollup-linux-arm64-musl": "4.60.1", 4194 - "@rollup/rollup-linux-loong64-gnu": "4.60.1", 4195 - "@rollup/rollup-linux-loong64-musl": "4.60.1", 4196 - "@rollup/rollup-linux-ppc64-gnu": "4.60.1", 4197 - "@rollup/rollup-linux-ppc64-musl": "4.60.1", 4198 - "@rollup/rollup-linux-riscv64-gnu": "4.60.1", 4199 - "@rollup/rollup-linux-riscv64-musl": "4.60.1", 4200 - "@rollup/rollup-linux-s390x-gnu": "4.60.1", 4201 - "@rollup/rollup-linux-x64-gnu": "4.60.1", 4202 - "@rollup/rollup-linux-x64-musl": "4.60.1", 4203 - "@rollup/rollup-openbsd-x64": "4.60.1", 4204 - "@rollup/rollup-openharmony-arm64": "4.60.1", 4205 - "@rollup/rollup-win32-arm64-msvc": "4.60.1", 4206 - "@rollup/rollup-win32-ia32-msvc": "4.60.1", 4207 - "@rollup/rollup-win32-x64-gnu": "4.60.1", 4208 - "@rollup/rollup-win32-x64-msvc": "4.60.1", 4209 - "fsevents": "~2.3.2" 4210 - } 4211 - }, 4212 - "node_modules/rollup-plugin-import-trace": { 4213 - "version": "1.0.1", 4214 - "resolved": "https://registry.npmjs.org/rollup-plugin-import-trace/-/rollup-plugin-import-trace-1.0.1.tgz", 4215 - "integrity": "sha512-dWOKrdYba2BXDJh82kkuM4pAR3M6r7WFp6vbVxAgvLfug2WniMFAg2uZ5sNQ/8CoQWo5l2N5EXDG8+QClKk1YQ==", 4216 - "dev": true, 4217 - "license": "MIT", 4218 - "engines": { 4219 - "node": ">=20.20.0" 4220 - }, 4221 - "funding": { 4222 - "url": "https://github.com/privatenumber/rollup-plugin-import-trace?sponsor=1" 4223 - }, 4224 - "peerDependencies": { 4225 - "rollup": "^3.0.0 || ^4.0.0", 4226 - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" 4227 - }, 4228 - "peerDependenciesMeta": { 4229 - "rollup": { 4230 - "optional": true 4231 - }, 4232 - "vite": { 4233 - "optional": true 4234 - } 4235 - } 4236 - }, 4237 - "node_modules/rollup-pluginutils": { 4238 - "version": "2.8.2", 4239 - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 4240 - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 4241 - "dev": true, 4242 - "license": "MIT", 4243 - "dependencies": { 4244 - "estree-walker": "^0.6.1" 4245 - } 4246 - }, 4247 - "node_modules/rollup-pluginutils/node_modules/estree-walker": { 4248 - "version": "0.6.1", 4249 - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 4250 - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 4251 - "dev": true, 4252 - "license": "MIT" 4253 - }, 4254 2861 "node_modules/router": { 4255 2862 "version": "2.2.0", 4256 2863 "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", ··· 4277 2884 }, 4278 2885 "funding": { 4279 2886 "url": "https://github.com/sponsors/sindresorhus" 4280 - } 4281 - }, 4282 - "node_modules/run-parallel": { 4283 - "version": "1.2.0", 4284 - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 4285 - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 4286 - "dev": true, 4287 - "funding": [ 4288 - { 4289 - "type": "github", 4290 - "url": "https://github.com/sponsors/feross" 4291 - }, 4292 - { 4293 - "type": "patreon", 4294 - "url": "https://www.patreon.com/feross" 4295 - }, 4296 - { 4297 - "type": "consulting", 4298 - "url": "https://feross.org/support" 4299 - } 4300 - ], 4301 - "license": "MIT", 4302 - "dependencies": { 4303 - "queue-microtask": "^1.2.2" 4304 2887 } 4305 2888 }, 4306 2889 "node_modules/safer-buffer": { ··· 4522 3105 "node": ">=8" 4523 3106 } 4524 3107 }, 4525 - "node_modules/supports-preserve-symlinks-flag": { 4526 - "version": "1.0.0", 4527 - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 4528 - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 4529 - "dev": true, 4530 - "license": "MIT", 4531 - "engines": { 4532 - "node": ">= 0.4" 4533 - }, 4534 - "funding": { 4535 - "url": "https://github.com/sponsors/ljharb" 4536 - } 4537 - }, 4538 3108 "node_modules/tar": { 4539 3109 "version": "7.5.13", 4540 3110 "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.13.tgz", ··· 4593 3163 "license": "MIT", 4594 3164 "engines": { 4595 3165 "node": ">=14.0.0" 4596 - } 4597 - }, 4598 - "node_modules/to-regex-range": { 4599 - "version": "5.0.1", 4600 - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 4601 - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 4602 - "dev": true, 4603 - "license": "MIT", 4604 - "dependencies": { 4605 - "is-number": "^7.0.0" 4606 - }, 4607 - "engines": { 4608 - "node": ">=8.0" 4609 3166 } 4610 3167 }, 4611 3168 "node_modules/toidentifier": { ··· 5262 3819 } 5263 3820 } 5264 3821 }, 5265 - "node_modules/vitest/node_modules/@esbuild/aix-ppc64": { 5266 - "version": "0.28.0", 5267 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", 5268 - "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", 5269 - "cpu": [ 5270 - "ppc64" 5271 - ], 5272 - "dev": true, 5273 - "license": "MIT", 5274 - "optional": true, 5275 - "os": [ 5276 - "aix" 5277 - ], 5278 - "engines": { 5279 - "node": ">=18" 5280 - } 5281 - }, 5282 - "node_modules/vitest/node_modules/@esbuild/android-arm": { 5283 - "version": "0.28.0", 5284 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", 5285 - "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", 5286 - "cpu": [ 5287 - "arm" 5288 - ], 5289 - "dev": true, 5290 - "license": "MIT", 5291 - "optional": true, 5292 - "os": [ 5293 - "android" 5294 - ], 5295 - "engines": { 5296 - "node": ">=18" 5297 - } 5298 - }, 5299 - "node_modules/vitest/node_modules/@esbuild/android-arm64": { 5300 - "version": "0.28.0", 5301 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", 5302 - "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", 5303 - "cpu": [ 5304 - "arm64" 5305 - ], 5306 - "dev": true, 5307 - "license": "MIT", 5308 - "optional": true, 5309 - "os": [ 5310 - "android" 5311 - ], 5312 - "engines": { 5313 - "node": ">=18" 5314 - } 5315 - }, 5316 - "node_modules/vitest/node_modules/@esbuild/android-x64": { 5317 - "version": "0.28.0", 5318 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", 5319 - "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", 5320 - "cpu": [ 5321 - "x64" 5322 - ], 5323 - "dev": true, 5324 - "license": "MIT", 5325 - "optional": true, 5326 - "os": [ 5327 - "android" 5328 - ], 5329 - "engines": { 5330 - "node": ">=18" 5331 - } 5332 - }, 5333 - "node_modules/vitest/node_modules/@esbuild/darwin-arm64": { 5334 - "version": "0.28.0", 5335 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", 5336 - "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", 5337 - "cpu": [ 5338 - "arm64" 5339 - ], 5340 - "dev": true, 5341 - "license": "MIT", 5342 - "optional": true, 5343 - "os": [ 5344 - "darwin" 5345 - ], 5346 - "engines": { 5347 - "node": ">=18" 5348 - } 5349 - }, 5350 - "node_modules/vitest/node_modules/@esbuild/darwin-x64": { 5351 - "version": "0.28.0", 5352 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", 5353 - "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", 5354 - "cpu": [ 5355 - "x64" 5356 - ], 5357 - "dev": true, 5358 - "license": "MIT", 5359 - "optional": true, 5360 - "os": [ 5361 - "darwin" 5362 - ], 5363 - "engines": { 5364 - "node": ">=18" 5365 - } 5366 - }, 5367 - "node_modules/vitest/node_modules/@esbuild/freebsd-arm64": { 5368 - "version": "0.28.0", 5369 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", 5370 - "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", 5371 - "cpu": [ 5372 - "arm64" 5373 - ], 5374 - "dev": true, 5375 - "license": "MIT", 5376 - "optional": true, 5377 - "os": [ 5378 - "freebsd" 5379 - ], 5380 - "engines": { 5381 - "node": ">=18" 5382 - } 5383 - }, 5384 - "node_modules/vitest/node_modules/@esbuild/freebsd-x64": { 5385 - "version": "0.28.0", 5386 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", 5387 - "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", 5388 - "cpu": [ 5389 - "x64" 5390 - ], 5391 - "dev": true, 5392 - "license": "MIT", 5393 - "optional": true, 5394 - "os": [ 5395 - "freebsd" 5396 - ], 5397 - "engines": { 5398 - "node": ">=18" 5399 - } 5400 - }, 5401 - "node_modules/vitest/node_modules/@esbuild/linux-arm": { 5402 - "version": "0.28.0", 5403 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", 5404 - "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", 5405 - "cpu": [ 5406 - "arm" 5407 - ], 5408 - "dev": true, 5409 - "license": "MIT", 5410 - "optional": true, 5411 - "os": [ 5412 - "linux" 5413 - ], 5414 - "engines": { 5415 - "node": ">=18" 5416 - } 5417 - }, 5418 - "node_modules/vitest/node_modules/@esbuild/linux-arm64": { 5419 - "version": "0.28.0", 5420 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", 5421 - "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", 5422 - "cpu": [ 5423 - "arm64" 5424 - ], 5425 - "dev": true, 5426 - "license": "MIT", 5427 - "optional": true, 5428 - "os": [ 5429 - "linux" 5430 - ], 5431 - "engines": { 5432 - "node": ">=18" 5433 - } 5434 - }, 5435 - "node_modules/vitest/node_modules/@esbuild/linux-ia32": { 5436 - "version": "0.28.0", 5437 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", 5438 - "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", 5439 - "cpu": [ 5440 - "ia32" 5441 - ], 5442 - "dev": true, 5443 - "license": "MIT", 5444 - "optional": true, 5445 - "os": [ 5446 - "linux" 5447 - ], 5448 - "engines": { 5449 - "node": ">=18" 5450 - } 5451 - }, 5452 - "node_modules/vitest/node_modules/@esbuild/linux-loong64": { 5453 - "version": "0.28.0", 5454 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", 5455 - "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", 5456 - "cpu": [ 5457 - "loong64" 5458 - ], 5459 - "dev": true, 5460 - "license": "MIT", 5461 - "optional": true, 5462 - "os": [ 5463 - "linux" 5464 - ], 5465 - "engines": { 5466 - "node": ">=18" 5467 - } 5468 - }, 5469 - "node_modules/vitest/node_modules/@esbuild/linux-mips64el": { 5470 - "version": "0.28.0", 5471 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", 5472 - "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", 5473 - "cpu": [ 5474 - "mips64el" 5475 - ], 5476 - "dev": true, 5477 - "license": "MIT", 5478 - "optional": true, 5479 - "os": [ 5480 - "linux" 5481 - ], 5482 - "engines": { 5483 - "node": ">=18" 5484 - } 5485 - }, 5486 - "node_modules/vitest/node_modules/@esbuild/linux-ppc64": { 5487 - "version": "0.28.0", 5488 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", 5489 - "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", 5490 - "cpu": [ 5491 - "ppc64" 5492 - ], 5493 - "dev": true, 5494 - "license": "MIT", 5495 - "optional": true, 5496 - "os": [ 5497 - "linux" 5498 - ], 5499 - "engines": { 5500 - "node": ">=18" 5501 - } 5502 - }, 5503 - "node_modules/vitest/node_modules/@esbuild/linux-riscv64": { 5504 - "version": "0.28.0", 5505 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", 5506 - "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", 5507 - "cpu": [ 5508 - "riscv64" 5509 - ], 5510 - "dev": true, 5511 - "license": "MIT", 5512 - "optional": true, 5513 - "os": [ 5514 - "linux" 5515 - ], 5516 - "engines": { 5517 - "node": ">=18" 5518 - } 5519 - }, 5520 - "node_modules/vitest/node_modules/@esbuild/linux-s390x": { 5521 - "version": "0.28.0", 5522 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", 5523 - "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", 5524 - "cpu": [ 5525 - "s390x" 5526 - ], 5527 - "dev": true, 5528 - "license": "MIT", 5529 - "optional": true, 5530 - "os": [ 5531 - "linux" 5532 - ], 5533 - "engines": { 5534 - "node": ">=18" 5535 - } 5536 - }, 5537 - "node_modules/vitest/node_modules/@esbuild/linux-x64": { 5538 - "version": "0.28.0", 5539 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", 5540 - "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", 5541 - "cpu": [ 5542 - "x64" 5543 - ], 5544 - "dev": true, 5545 - "license": "MIT", 5546 - "optional": true, 5547 - "os": [ 5548 - "linux" 5549 - ], 5550 - "engines": { 5551 - "node": ">=18" 5552 - } 5553 - }, 5554 - "node_modules/vitest/node_modules/@esbuild/netbsd-arm64": { 5555 - "version": "0.28.0", 5556 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", 5557 - "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", 5558 - "cpu": [ 5559 - "arm64" 5560 - ], 5561 - "dev": true, 5562 - "license": "MIT", 5563 - "optional": true, 5564 - "os": [ 5565 - "netbsd" 5566 - ], 5567 - "engines": { 5568 - "node": ">=18" 5569 - } 5570 - }, 5571 - "node_modules/vitest/node_modules/@esbuild/netbsd-x64": { 5572 - "version": "0.28.0", 5573 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", 5574 - "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", 5575 - "cpu": [ 5576 - "x64" 5577 - ], 5578 - "dev": true, 5579 - "license": "MIT", 5580 - "optional": true, 5581 - "os": [ 5582 - "netbsd" 5583 - ], 5584 - "engines": { 5585 - "node": ">=18" 5586 - } 5587 - }, 5588 - "node_modules/vitest/node_modules/@esbuild/openbsd-arm64": { 5589 - "version": "0.28.0", 5590 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", 5591 - "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", 5592 - "cpu": [ 5593 - "arm64" 5594 - ], 5595 - "dev": true, 5596 - "license": "MIT", 5597 - "optional": true, 5598 - "os": [ 5599 - "openbsd" 5600 - ], 5601 - "engines": { 5602 - "node": ">=18" 5603 - } 5604 - }, 5605 - "node_modules/vitest/node_modules/@esbuild/openbsd-x64": { 5606 - "version": "0.28.0", 5607 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", 5608 - "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", 5609 - "cpu": [ 5610 - "x64" 5611 - ], 5612 - "dev": true, 5613 - "license": "MIT", 5614 - "optional": true, 5615 - "os": [ 5616 - "openbsd" 5617 - ], 5618 - "engines": { 5619 - "node": ">=18" 5620 - } 5621 - }, 5622 - "node_modules/vitest/node_modules/@esbuild/openharmony-arm64": { 5623 - "version": "0.28.0", 5624 - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", 5625 - "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", 5626 - "cpu": [ 5627 - "arm64" 5628 - ], 5629 - "dev": true, 5630 - "license": "MIT", 5631 - "optional": true, 5632 - "os": [ 5633 - "openharmony" 5634 - ], 5635 - "engines": { 5636 - "node": ">=18" 5637 - } 5638 - }, 5639 - "node_modules/vitest/node_modules/@esbuild/sunos-x64": { 5640 - "version": "0.28.0", 5641 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", 5642 - "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", 5643 - "cpu": [ 5644 - "x64" 5645 - ], 5646 - "dev": true, 5647 - "license": "MIT", 5648 - "optional": true, 5649 - "os": [ 5650 - "sunos" 5651 - ], 5652 - "engines": { 5653 - "node": ">=18" 5654 - } 5655 - }, 5656 - "node_modules/vitest/node_modules/@esbuild/win32-arm64": { 5657 - "version": "0.28.0", 5658 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", 5659 - "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", 5660 - "cpu": [ 5661 - "arm64" 5662 - ], 5663 - "dev": true, 5664 - "license": "MIT", 5665 - "optional": true, 5666 - "os": [ 5667 - "win32" 5668 - ], 5669 - "engines": { 5670 - "node": ">=18" 5671 - } 5672 - }, 5673 - "node_modules/vitest/node_modules/@esbuild/win32-ia32": { 5674 - "version": "0.28.0", 5675 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", 5676 - "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", 5677 - "cpu": [ 5678 - "ia32" 5679 - ], 5680 - "dev": true, 5681 - "license": "MIT", 5682 - "optional": true, 5683 - "os": [ 5684 - "win32" 5685 - ], 5686 - "engines": { 5687 - "node": ">=18" 5688 - } 5689 - }, 5690 - "node_modules/vitest/node_modules/@esbuild/win32-x64": { 5691 - "version": "0.28.0", 5692 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", 5693 - "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", 5694 - "cpu": [ 5695 - "x64" 5696 - ], 5697 - "dev": true, 5698 - "license": "MIT", 5699 - "optional": true, 5700 - "os": [ 5701 - "win32" 5702 - ], 5703 - "engines": { 5704 - "node": ">=18" 5705 - } 5706 - }, 5707 3822 "node_modules/vitest/node_modules/@vitest/mocker": { 5708 3823 "version": "4.1.2", 5709 3824 "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.2.tgz", ··· 5887 4002 "license": "BlueOak-1.0.0", 5888 4003 "engines": { 5889 4004 "node": ">=18" 5890 - } 5891 - }, 5892 - "node_modules/yaml": { 5893 - "version": "2.8.3", 5894 - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", 5895 - "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", 5896 - "dev": true, 5897 - "license": "ISC", 5898 - "bin": { 5899 - "yaml": "bin.mjs" 5900 - }, 5901 - "engines": { 5902 - "node": ">= 14.6" 5903 - }, 5904 - "funding": { 5905 - "url": "https://github.com/sponsors/eemeli" 5906 4005 } 5907 4006 }, 5908 4007 "node_modules/yoctocolors": {
+3 -3
apps/cli/package.json
··· 4 4 "bin": { 5 5 "pocketenv": "dist/index.js" 6 6 }, 7 - "version": "0.6.9", 7 + "version": "0.6.10", 8 8 "type": "module", 9 9 "keywords": [ 10 10 "sandbox", ··· 24 24 }, 25 25 "scripts": { 26 26 "dev": "tsx ./src/index.ts", 27 - "build": "pkgroll && chmod +x ./dist/index.js", 27 + "build": "./build.ts && chmod +x ./dist/index.js", 28 28 "test": "vitest run", 29 29 "test:watch": "vitest" 30 30 }, ··· 32 32 "typescript": "^5" 33 33 }, 34 34 "devDependencies": { 35 + "@types/bun": "^1.3.12", 35 36 "@types/cors": "^2.8.19", 36 37 "@types/eventsource": "^1.1.15", 37 38 "@types/express": "^5.0.6", 38 39 "@types/ws": "^8.18.1", 39 - "pkgroll": "^2.27.0", 40 40 "tsx": "^4.21.0", 41 41 "vitest": "^4.1.2" 42 42 },
+57
apps/modal-sandbox/bun.lock
··· 14 14 "chalk": "^5.6.2", 15 15 "consola": "^3.4.2", 16 16 "drizzle-orm": "^0.45.2", 17 + "e2b": "^2.19.0", 17 18 "effect": "^3.21.0", 18 19 "envalid": "^8.1.1", 19 20 "hono": "^4.12.12", ··· 116 117 117 118 "@aws/lambda-invoke-store": ["@aws/lambda-invoke-store@0.2.4", "", {}, "sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ=="], 118 119 120 + "@bufbuild/protobuf": ["@bufbuild/protobuf@2.11.0", "", {}, "sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ=="], 121 + 119 122 "@cbor-extract/cbor-extract-darwin-arm64": ["@cbor-extract/cbor-extract-darwin-arm64@2.2.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ZKZ/F8US7JR92J4DMct6cLW/Y66o2K576+zjlEN/MevH70bFIsB10wkZEQPLzl2oNh2SMGy55xpJ9JoBRl5DOA=="], 120 123 121 124 "@cbor-extract/cbor-extract-darwin-x64": ["@cbor-extract/cbor-extract-darwin-x64@2.2.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-32b1mgc+P61Js+KW9VZv/c+xRw5EfmOcPx990JbCBSkYJFY0l25VinvyyWfl+3KjibQmAcYwmyzKF9J4DyKP/Q=="], ··· 128 131 129 132 "@cbor-extract/cbor-extract-win32-x64": ["@cbor-extract/cbor-extract-win32-x64@2.2.2", "", { "os": "win32", "cpu": "x64" }, "sha512-dI+9P7cfWxkTQ+oE+7Aa6onEn92PHgfWXZivjNheCRmTBDBf2fx6RyTi0cmgpYLnD1KLZK9ZYrMxaPZ4oiXhGA=="], 130 133 134 + "@connectrpc/connect": ["@connectrpc/connect@2.0.0-rc.3", "", { "peerDependencies": { "@bufbuild/protobuf": "^2.2.0" } }, "sha512-ARBt64yEyKbanyRETTjcjJuHr2YXorzQo0etyS5+P6oSeW8xEuzajA9g+zDnMcj1hlX2dQE93foIWQGfpru7gQ=="], 135 + 136 + "@connectrpc/connect-web": ["@connectrpc/connect-web@2.0.0-rc.3", "", { "peerDependencies": { "@bufbuild/protobuf": "^2.2.0", "@connectrpc/connect": "2.0.0-rc.3" } }, "sha512-w88P8Lsn5CCsA7MFRl2e6oLY4J/5toiNtJns/YJrlyQaWOy3RO8pDgkz+iIkG98RPMhj2thuBvsd3Cn4DKKCkw=="], 137 + 131 138 "@daytona/api-client": ["@daytona/api-client@0.162.0", "", { "dependencies": { "axios": "^1.6.1" } }, "sha512-cKhncpTZgTFHsrQB7AuayBwmGaNcQCY/Qcycb2VMlYUlobWEEXlqPZaVdvgeZakRwJA6DfVtMF87kek9cTRubg=="], 132 139 133 140 "@daytona/toolbox-api-client": ["@daytona/toolbox-api-client@0.162.0", "", { "dependencies": { "axios": "^1.6.1" } }, "sha512-kj4qCzynGQYF5/718YVs3T3wqRhFh9NGDjHTRpUDnGXX/PyLI6O8zD6GlftJFMdgJjp8d8DFOTVvPgAO9/mXAw=="], ··· 213 220 "@hono/node-server": ["@hono/node-server@1.19.13", "", { "peerDependencies": { "hono": "^4" } }, "sha512-TsQLe4i2gvoTtrHje625ngThGBySOgSK3Xo2XRYOdqGN1teR8+I7vchQC46uLJi8OF62YTYA3AhSpumtkhsaKQ=="], 214 221 215 222 "@iarna/toml": ["@iarna/toml@2.2.5", "", {}, "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="], 223 + 224 + "@isaacs/cliui": ["@isaacs/cliui@9.0.0", "", {}, "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg=="], 216 225 217 226 "@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="], 218 227 ··· 562 571 563 572 "b4a": ["b4a@1.8.0", "", { "peerDependencies": { "react-native-b4a": "*" }, "optionalPeers": ["react-native-b4a"] }, "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg=="], 564 573 574 + "balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], 575 + 565 576 "bare-events": ["bare-events@2.8.2", "", { "peerDependencies": { "bare-abort-controller": "*" }, "optionalPeers": ["bare-abort-controller"] }, "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ=="], 566 577 567 578 "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], 568 579 569 580 "bowser": ["bowser@2.14.1", "", {}, "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg=="], 581 + 582 + "brace-expansion": ["brace-expansion@5.0.5", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ=="], 570 583 571 584 "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], 572 585 ··· 599 612 "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], 600 613 601 614 "commondir": ["commondir@1.0.1", "", {}, "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="], 615 + 616 + "compare-versions": ["compare-versions@6.1.1", "", {}, "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg=="], 602 617 603 618 "consola": ["consola@3.4.2", "", {}, "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA=="], 604 619 605 620 "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], 606 621 622 + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], 623 + 607 624 "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], 608 625 609 626 "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], ··· 612 629 613 630 "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], 614 631 632 + "dockerfile-ast": ["dockerfile-ast@0.7.1", "", { "dependencies": { "vscode-languageserver-textdocument": "^1.0.8", "vscode-languageserver-types": "^3.17.3" } }, "sha512-oX/A4I0EhSkGqrFv0YuvPkBUSYp1XiY8O8zAKc8Djglx8ocz+JfOr8gP0ryRMC2myqvDLagmnZaU9ot1vG2ijw=="], 633 + 615 634 "dotenv": ["dotenv@17.4.1", "", {}, "sha512-k8DaKGP6r1G30Lx8V4+pCsLzKr8vLmV2paqEj1Y55GdAgJuIqpRp5FfajGF8KtwMxCz9qJc6wUIJnm053d/WCw=="], 616 635 617 636 "drizzle-kit": ["drizzle-kit@0.31.10", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.25.4", "tsx": "^4.21.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-7OZcmQUrdGI+DUNNsKBn1aW8qSoKuTH7d0mYgSP8bAzdFzKoovxEFnoGQp2dVs82EOJeYycqRtciopszwUf8bw=="], ··· 619 638 "drizzle-orm": ["drizzle-orm@0.45.2", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1.13", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@upstash/redis": ">=1.34.7", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "gel": ">=2", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@upstash/redis", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "gel", "knex", "kysely", "mysql2", "pg", "postgres", "sql.js", "sqlite3"] }, "sha512-kY0BSaTNYWnoDMVoyY8uxmyHjpJW1geOmBMdSSicKo9CIIWkSxMIj2rkeSR51b8KAPB7m+qysjuHme5nKP+E5Q=="], 620 639 621 640 "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], 641 + 642 + "e2b": ["e2b@2.19.0", "", { "dependencies": { "@bufbuild/protobuf": "^2.6.2", "@connectrpc/connect": "2.0.0-rc.3", "@connectrpc/connect-web": "2.0.0-rc.3", "chalk": "^5.3.0", "compare-versions": "^6.1.0", "dockerfile-ast": "^0.7.1", "glob": "^11.1.0", "openapi-fetch": "^0.14.1", "platform": "^1.3.6", "tar": "^7.5.11" } }, "sha512-Tpm5F6BJAkRoSXqBA1/VLHn/OP4mCsDTX0FWP6UMxC2MU26nJ2fXgPZNdYOyTvi4gyNd1GeEQzUCbAmODh/GuQ=="], 622 643 623 644 "effect": ["effect@3.21.0", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "fast-check": "^3.23.1" } }, "sha512-PPN80qRokCd1f015IANNhrwOnLO7GrrMQfk4/lnZRE/8j7UPWrNNjPV0uBrZutI/nHzernbW+J0hdqQysHiSnQ=="], 624 645 ··· 668 689 669 690 "follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="], 670 691 692 + "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], 693 + 671 694 "form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="], 672 695 673 696 "forwarded-parse": ["forwarded-parse@2.1.2", "", {}, "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw=="], ··· 683 706 "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], 684 707 685 708 "get-tsconfig": ["get-tsconfig@4.13.7", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q=="], 709 + 710 + "glob": ["glob@11.1.0", "", { "dependencies": { "foreground-child": "^3.3.1", "jackspeak": "^4.1.1", "minimatch": "^10.1.1", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw=="], 686 711 687 712 "glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], 688 713 ··· 722 747 723 748 "isomorphic-ws": ["isomorphic-ws@5.0.0", "", { "peerDependencies": { "ws": "*" } }, "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw=="], 724 749 750 + "jackspeak": ["jackspeak@4.2.3", "", { "dependencies": { "@isaacs/cliui": "^9.0.0" } }, "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg=="], 751 + 725 752 "jsonlines": ["jsonlines@0.1.1", "", {}, "sha512-ekDrAGso79Cvf+dtm+mL8OBI2bmAOt3gssYs833De/C9NmIpWDWyUO4zPgB5x2/OhY366dkhgfPMYfwZF7yOZA=="], 726 753 727 754 "libsodium": ["libsodium@0.8.2", "", {}, "sha512-TsnGYMoZtpweT+kR+lOv5TVsnJ/9U0FZOsLFzFOMWmxqOAYXjX3fsrPAW+i1LthgDKXJnI9A8dWEanT1tnJKIw=="], ··· 755 782 "lodash.camelcase": ["lodash.camelcase@4.3.0", "", {}, "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="], 756 783 757 784 "long": ["long@5.3.2", "", {}, "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA=="], 785 + 786 + "lru-cache": ["lru-cache@11.3.3", "", {}, "sha512-JvNw9Y81y33E+BEYPr0U7omo+U9AySnsMsEiXgwT6yqd31VQWTLNQqmT4ou5eqPFUrTfIDFta2wKhB1hyohtAQ=="], 758 787 759 788 "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], 760 789 ··· 768 797 769 798 "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], 770 799 800 + "minimatch": ["minimatch@10.2.5", "", { "dependencies": { "brace-expansion": "^5.0.5" } }, "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg=="], 801 + 771 802 "minipass": ["minipass@7.1.3", "", {}, "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A=="], 772 803 773 804 "minizlib": ["minizlib@3.1.0", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="], ··· 788 819 789 820 "obug": ["obug@2.1.1", "", {}, "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ=="], 790 821 822 + "openapi-fetch": ["openapi-fetch@0.14.1", "", { "dependencies": { "openapi-typescript-helpers": "^0.0.15" } }, "sha512-l7RarRHxlEZYjMLd/PR0slfMVse2/vvIAGm75/F7J6MlQ8/b9uUQmUF2kCPrQhJqMXSxmYWObVgeYXbFYzZR+A=="], 823 + 824 + "openapi-typescript-helpers": ["openapi-typescript-helpers@0.0.15", "", {}, "sha512-opyTPaunsklCBpTK8JGef6mfPhLSnyy5a0IN9vKtx3+4aExf+KxEqYwIy3hqkedXIB97u357uLMJsOnm3GVjsw=="], 825 + 791 826 "os-paths": ["os-paths@4.4.0", "", {}, "sha512-wrAwOeXp1RRMFfQY8Sy7VaGVmPocaLwSFOYCGKSyo8qmJ+/yaafCl5BCA1IQZWqFSRBrKDYFeR9d/VyQzfH/jg=="], 792 827 828 + "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], 829 + 793 830 "parse-passwd": ["parse-passwd@1.0.0", "", {}, "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q=="], 794 831 795 832 "path-expression-matcher": ["path-expression-matcher@1.4.0", "", {}, "sha512-s4DQMxIdhj3jLFWd9LxHOplj4p9yQ4ffMGowFf3cpEgrrJjEhN0V5nxw4Ye1EViAGDoL4/1AeO6qHpqYPOzE4Q=="], 833 + 834 + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], 796 835 797 836 "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], 837 + 838 + "path-scurry": ["path-scurry@2.0.2", "", { "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" } }, "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg=="], 798 839 799 840 "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], 800 841 ··· 819 860 "picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="], 820 861 821 862 "pkgroll": ["pkgroll@2.27.0", "", { "dependencies": { "@rollup/plugin-alias": "^6.0.0", "@rollup/plugin-commonjs": "^29.0.0", "@rollup/plugin-dynamic-import-vars": "^2.1.5", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.3", "cjs-module-lexer": "^2.2.0", "esbuild": "^0.26.0", "magic-string": "^0.30.21", "rollup": "^4.53.5", "rollup-plugin-import-trace": "^1.0.1", "rollup-pluginutils": "^2.8.2", "yaml": "^2.8.2" }, "peerDependencies": { "typescript": "^4.1 || ^5.0" }, "optionalPeers": ["typescript"], "bin": { "pkgroll": "dist/cli.mjs" } }, "sha512-Huw5ZRxWTWeQ0PbNNKdbkAl52bPMy009RXdB4u3qjb47AMEBLG5VVF0V6oOD+YYiZaHaFxvjEeX+A2T9ckaClQ=="], 863 + 864 + "platform": ["platform@1.3.6", "", {}, "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg=="], 822 865 823 866 "postcss": ["postcss@8.5.9", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw=="], 824 867 ··· 866 909 867 910 "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], 868 911 912 + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], 913 + 914 + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], 915 + 869 916 "shell-quote": ["shell-quote@1.8.3", "", {}, "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw=="], 870 917 871 918 "siginfo": ["siginfo@2.0.0", "", {}, "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g=="], 919 + 920 + "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], 872 921 873 922 "smol-toml": ["smol-toml@1.6.1", "", {}, "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg=="], 874 923 ··· 936 985 937 986 "vitest": ["vitest@4.1.4", "", { "dependencies": { "@vitest/expect": "4.1.4", "@vitest/mocker": "4.1.4", "@vitest/pretty-format": "4.1.4", "@vitest/runner": "4.1.4", "@vitest/snapshot": "4.1.4", "@vitest/spy": "4.1.4", "@vitest/utils": "4.1.4", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", "obug": "^2.1.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", "std-env": "^4.0.0-rc.1", "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tinyrainbow": "^3.1.0", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", "@vitest/browser-playwright": "4.1.4", "@vitest/browser-preview": "4.1.4", "@vitest/browser-webdriverio": "4.1.4", "@vitest/coverage-istanbul": "4.1.4", "@vitest/coverage-v8": "4.1.4", "@vitest/ui": "4.1.4", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@opentelemetry/api", "@types/node", "@vitest/browser-playwright", "@vitest/browser-preview", "@vitest/browser-webdriverio", "@vitest/coverage-istanbul", "@vitest/coverage-v8", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg=="], 938 987 988 + "vscode-languageserver-textdocument": ["vscode-languageserver-textdocument@1.0.12", "", {}, "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA=="], 989 + 990 + "vscode-languageserver-types": ["vscode-languageserver-types@3.17.5", "", {}, "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="], 991 + 939 992 "which": ["which@4.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg=="], 940 993 941 994 "why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": { "why-is-node-running": "cli.js" } }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="], ··· 994 1047 995 1048 "@vitest/mocker/estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], 996 1049 1050 + "cross-spawn/which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], 1051 + 997 1052 "micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], 998 1053 999 1054 "pkgroll/esbuild": ["esbuild@0.26.0", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.26.0", "@esbuild/android-arm": "0.26.0", "@esbuild/android-arm64": "0.26.0", "@esbuild/android-x64": "0.26.0", "@esbuild/darwin-arm64": "0.26.0", "@esbuild/darwin-x64": "0.26.0", "@esbuild/freebsd-arm64": "0.26.0", "@esbuild/freebsd-x64": "0.26.0", "@esbuild/linux-arm": "0.26.0", "@esbuild/linux-arm64": "0.26.0", "@esbuild/linux-ia32": "0.26.0", "@esbuild/linux-loong64": "0.26.0", "@esbuild/linux-mips64el": "0.26.0", "@esbuild/linux-ppc64": "0.26.0", "@esbuild/linux-riscv64": "0.26.0", "@esbuild/linux-s390x": "0.26.0", "@esbuild/linux-x64": "0.26.0", "@esbuild/netbsd-arm64": "0.26.0", "@esbuild/netbsd-x64": "0.26.0", "@esbuild/openbsd-arm64": "0.26.0", "@esbuild/openbsd-x64": "0.26.0", "@esbuild/openharmony-arm64": "0.26.0", "@esbuild/sunos-x64": "0.26.0", "@esbuild/win32-arm64": "0.26.0", "@esbuild/win32-ia32": "0.26.0", "@esbuild/win32-x64": "0.26.0" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-3Hq7jri+tRrVWha+ZeIVhl4qJRha/XjRNSopvTsOaCvfPHrflTYTcUFcEjMKdxofsXXsdc4zjg5NOTnL4Gl57Q=="], ··· 1053 1108 "@esbuild-kit/core-utils/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.18.20", "", { "os": "win32", "cpu": "ia32" }, "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g=="], 1054 1109 1055 1110 "@esbuild-kit/core-utils/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.18.20", "", { "os": "win32", "cpu": "x64" }, "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ=="], 1111 + 1112 + "cross-spawn/which/isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], 1056 1113 1057 1114 "pkgroll/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.26.0", "", { "os": "aix", "cpu": "ppc64" }, "sha512-hj0sKNCQOOo2fgyII3clmJXP28VhgDfU5iy3GNHlWO76KG6N7x4D9ezH5lJtQTG+1J6MFDAJXC1qsI+W+LvZoA=="], 1058 1115
+4 -3
apps/modal-sandbox/package.json
··· 4 4 "type": "module", 5 5 "scripts": { 6 6 "dev": "tsx --watch src/index.ts", 7 - "start": "tsx src/index.ts", 8 - "start:prod": "node dist/index.js", 9 - "build": "pkgroll" 7 + "start": "npm run build && node dist/index.js", 8 + "start:prod": "npm run build && node dist/index.js", 9 + "build": "bun build src/index.ts --outdir ./dist --target node" 10 10 }, 11 11 "dependencies": { 12 12 "@daytonaio/sdk": "^0.162.0", ··· 19 19 "chalk": "^5.6.2", 20 20 "consola": "^3.4.2", 21 21 "drizzle-orm": "^0.45.2", 22 + "e2b": "^2.19.0", 22 23 "effect": "^3.21.0", 23 24 "envalid": "^8.1.1", 24 25 "hono": "^4.12.12",
+1
apps/modal-sandbox/presets
··· 1 + src/presets
+23
apps/modal-sandbox/src/lib/parseImageRef.ts
··· 1 + export default function parseImageRef(ref: string): { 2 + registry?: string; 3 + name: string; 4 + tag: string; 5 + } { 6 + const tagSeparatorIndex = ref.lastIndexOf(":"); 7 + const slashBeforeTag = ref.lastIndexOf("/"); 8 + 9 + const hasTag = tagSeparatorIndex > slashBeforeTag; 10 + 11 + const imageWithoutTag = hasTag ? ref.slice(0, tagSeparatorIndex) : ref; 12 + const tag = hasTag ? ref.slice(tagSeparatorIndex + 1) : "latest"; 13 + 14 + const parts = imageWithoutTag.split("/"); 15 + 16 + const isRegistry = (s: string) => s.includes(".") || s.includes(":"); 17 + const registry = isRegistry(parts[0]!) ? parts[0] : ""; 18 + const name = isRegistry(parts[0]!) 19 + ? parts.slice(1).join("/") 20 + : parts.join("/"); 21 + 22 + return { registry, name, tag }; 23 + }
+155
apps/modal-sandbox/src/providers/e2b/index.ts
··· 1 + import { Sandbox, Template } from "e2b"; 2 + import BaseProvider, { BaseSandbox, type SandboxOptions } from ".."; 3 + import { consola } from "consola"; 4 + import path from "node:path"; 5 + import { env } from "node:process"; 6 + import parseImageRef from "lib/parseImageRef"; 7 + 8 + export class E2bSandbox implements BaseSandbox { 9 + constructor(private sandbox: Sandbox) {} 10 + 11 + async start(): Promise<void> { 12 + // Modal's sandbox starts immediately upon creation, so we can just return here. 13 + } 14 + 15 + async stop(): Promise<void> { 16 + try { 17 + await this.sandbox.kill(); 18 + } catch (error) { 19 + consola.error("Error stopping e2b sandbox:", error); 20 + } 21 + } 22 + 23 + async delete(): Promise<void> { 24 + try { 25 + await this.stop(); 26 + } catch (error) { 27 + consola.error("Error deleting e2b sandbox:", error); 28 + } 29 + } 30 + 31 + async sh( 32 + strings: TemplateStringsArray, 33 + ...values: any[] 34 + ): Promise<{ 35 + stdout?: string | Buffer<ArrayBufferLike>; 36 + stderr?: string | Buffer<ArrayBufferLike>; 37 + exitCode: number; 38 + }> { 39 + const command = strings.reduce((acc, str, i) => { 40 + return acc + str + (values[i] || ""); 41 + }, ""); 42 + const result = await this.sandbox.commands.run(`bash -c ${command}`); 43 + 44 + return { 45 + stdout: result.stdout, 46 + stderr: result.stderr, 47 + exitCode: result.exitCode, 48 + }; 49 + } 50 + 51 + async id(): Promise<string | null> { 52 + return this.sandbox.sandboxId; 53 + } 54 + 55 + async ssh(): Promise<any> {} 56 + 57 + async mkdir(dir: string): Promise<void> { 58 + await this.sh`mkdir -p ${dir}`; 59 + } 60 + 61 + async writeFile(absolutePath: string, content: string): Promise<void> { 62 + const basePath = path.dirname(absolutePath); 63 + if (basePath !== "/" && basePath != ".") { 64 + await this.mkdir(basePath); 65 + } 66 + await this.sh`echo '${content}' > ${absolutePath}`; 67 + } 68 + 69 + async setupSshKeys(privateKey: string, publicKey: string): Promise<void> { 70 + await this.writeFile("~/.ssh/id_ed25519", privateKey); 71 + await this.writeFile("~/.ssh/id_ed25519.pub", publicKey); 72 + await this.sh`chmod 600 ~/.ssh/id_ed25519`; 73 + await this.sh`chmod 644 ~/.ssh/id_ed25519.pub`; 74 + await this.sh`ssh-keyscan -t rsa tangled.org >> $HOME/.ssh/known_hosts`; 75 + await this.sh`ssh-keyscan -t rsa github.com >> $HOME/.ssh/known_hosts`; 76 + } 77 + 78 + async setupDefaultSshKeys(): Promise<void> { 79 + await this 80 + .sh`[ -f ~/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N "" || true`; 81 + } 82 + 83 + async setupTailscale(authKey: string): Promise<void> { 84 + await this 85 + .sh`type tailscaled || curl -fsSL https://tailscale.com/install.sh | sh || true`; 86 + await this.sh`pm2 start tailscaled || true`; 87 + await this.sh`tailscale up --auth-key=${authKey} || true`; 88 + } 89 + clone(repoUrl: string): Promise<any> { 90 + return this.sh`git clone ${repoUrl}`; 91 + } 92 + async mount(path: string, prefix?: string): Promise<void> { 93 + const VERSION = "v1.2.1"; 94 + const ARCH = "amd64"; 95 + await this.sh`mkdir -p $HOME/.local/bin`; 96 + await this 97 + .sh`command -v tigrisfs || ARCH=amd64 && curl -L "https://github.com/tigrisdata/tigrisfs/releases/download/${VERSION}/tigrisfs_${VERSION.replace("v", "")}_linux_${ARCH}.tar.gz" -o /tmp/tigrisfs.tar.gz`; 98 + await this 99 + .sh`command -v tigrisfs || tar -xzf /tmp/tigrisfs.tar.gz -C ~/.local/bin`; 100 + await this.sh`command -v tigrisfs || rm -rf /tmp/tigrisfs.tar.gz`; 101 + await this.sh`command -v tigrisfs || chmod +x ~/.local/bin/tigrisfs`; 102 + await this 103 + .sh`cp ~/.local/bin/tigrisfs /usr/bin || sudo cp ~/.local/bin/tigrisfs /usr/bin || true`; 104 + await this.sh`mkdir -p ${path} || sudo mkdir -p ${path}`; 105 + // install fuse ? 106 + 107 + await this.mkdir(path); 108 + 109 + const bucketPath = prefix 110 + ? `${env.VOLUME_BUCKET}:${prefix}` 111 + : env.VOLUME_BUCKET; 112 + 113 + await this 114 + .sh`AWS_ACCESS_KEY_ID=${env.R2_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY=${env.R2_SECRET_ACCESS_KEY} nohup tigrisfs --endpoint "https://${env.ACCOUNT_ID}.r2.cloudflarestorage.com" -o allow_other,default_permissions ${bucketPath} ${path} > /dev/null 2>&1 &`; 115 + } 116 + 117 + async unmount(path: string): Promise<void> { 118 + await this 119 + .sh`fusermount -u ${path} || sudo fusermount -u ${path} || umount ${path}`; 120 + } 121 + } 122 + 123 + class E2bProvider implements BaseProvider { 124 + async create(options: SandboxOptions): Promise<BaseSandbox> { 125 + if (!options.e2bAccessToken) { 126 + throw new Error("E2B access token is required to create a sandbox"); 127 + } 128 + const image = options.image || "ghcr.io/pocketenv-io/modal-openclaw:0.1.0"; 129 + const template = Template().fromImage(image); 130 + const { name, tag } = parseImageRef(image); 131 + await Template.build(template, name, { 132 + tags: [tag], 133 + }); 134 + const sandbox = await Sandbox.create(`${name}:${tag}`, { 135 + accessToken: options.e2bAccessToken, 136 + }); 137 + return new E2bSandbox(sandbox); 138 + } 139 + 140 + async get(id: string, options?: SandboxOptions): Promise<BaseSandbox> { 141 + try { 142 + if (!options?.e2bAccessToken) { 143 + throw new Error("E2B access token is required to get a sandbox"); 144 + } 145 + const sandbox = await Sandbox.connect(id, { 146 + accessToken: options?.e2bAccessToken, 147 + }); 148 + return new E2bSandbox(sandbox); 149 + } catch { 150 + return this.create(options!); 151 + } 152 + } 153 + } 154 + 155 + export default E2bProvider;
+8 -1
apps/modal-sandbox/src/providers/index.ts
··· 29 29 abstract create(options: SandboxOptions): Promise<BaseSandbox>; 30 30 } 31 31 32 - export type Provider = "daytona" | "deno" | "vercel" | "sprites" | "modal"; 32 + export type Provider = 33 + | "daytona" 34 + | "deno" 35 + | "vercel" 36 + | "sprites" 37 + | "modal" 38 + | "e2b"; 33 39 34 40 export interface SandboxOptions { 35 41 id?: string; ··· 54 60 modalTokenSecret?: string; 55 61 modalAppName?: string; 56 62 image?: string; 63 + e2bAccessToken?: string; 57 64 [key: string]: any; 58 65 } 59 66
+66 -32
apps/modal-sandbox/src/routes/sandboxes.ts
··· 20 20 denoAuth, 21 21 vercelAuth, 22 22 modalAuth, 23 + e2bAuth, 23 24 } from "../schema"; 24 25 import { 25 26 type SandboxConfig, ··· 44 45 import process from "node:process"; 45 46 import prepareSandbox from "../lib/prepare-sandbox"; 46 47 import { images } from "../images"; 48 + import type { InsertSandbox } from "schema/sandboxes"; 47 49 48 - const SUPPORTED_PROVIDERS = ["daytona", "vercel", "deno", "sprites", "modal"]; 50 + const SUPPORTED_PROVIDERS = [ 51 + "daytona", 52 + "vercel", 53 + "deno", 54 + "sprites", 55 + "modal", 56 + "e2b", 57 + ]; 49 58 50 59 const sandboxRouter = new Hono<{ Variables: Context }>(); 51 60 ··· 181 190 .execute(); 182 191 } 183 192 193 + if (params.e2bAccessToken && user?.id) { 194 + await tx 195 + .insert(e2bAuth) 196 + .values({ 197 + sandboxId: record!.id, 198 + accessToken: params.e2bAccessToken!, 199 + redactedAccessToken: params.redactedE2bAccessToken ?? "", 200 + userId: user.id, 201 + }) 202 + .execute(); 203 + } 204 + 184 205 return { record, user }; 185 206 }, 186 207 ); 187 208 188 - const sandbox = await createSandbox(params.provider, { 189 - id: initialRecord?.id, 190 - keepAlive: params.keepAlive, 191 - sleepAfter: params.sleepAfter, 192 - snapshotRoot: process.env.DENO_SNAPSHOT_ROOT, 193 - spriteToken: decrypt(params.spriteToken), 194 - spriteName, 195 - daytonaApiKey: decrypt(params.daytonaApiKey), 196 - organizationId: params.daytonaOrganizationId, 197 - denoDeployToken: decrypt(params.denoDeployToken), 198 - vercelApiToken: decrypt(params.vercelApiToken), 199 - vercelProjectId: params.vercelProjectId, 200 - vercelTeamId: params.vercelTeamId, 201 - modalTokenId: decrypt(params.modalTokenId), 202 - modalTokenSecret: decrypt(params.modalTokenSecret), 203 - image: images[params.base] || images["openclaw"], 204 - }); 205 - const sandboxId = await sandbox.id(); 209 + new Promise<InsertSandbox>(async (resolve) => { 210 + const sandbox = await createSandbox(params.provider, { 211 + id: initialRecord?.id, 212 + keepAlive: params.keepAlive, 213 + sleepAfter: params.sleepAfter, 214 + snapshotRoot: process.env.DENO_SNAPSHOT_ROOT, 215 + spriteToken: decrypt(params.spriteToken), 216 + spriteName, 217 + daytonaApiKey: decrypt(params.daytonaApiKey), 218 + organizationId: params.daytonaOrganizationId, 219 + denoDeployToken: decrypt(params.denoDeployToken), 220 + vercelApiToken: decrypt(params.vercelApiToken), 221 + vercelProjectId: params.vercelProjectId, 222 + vercelTeamId: params.vercelTeamId, 223 + modalTokenId: decrypt(params.modalTokenId), 224 + modalTokenSecret: decrypt(params.modalTokenSecret), 225 + image: images[params.base] || images["openclaw"], 226 + e2bAccessToken: decrypt(params.e2bAccessToken), 227 + }); 228 + const sandboxId = await sandbox.id(); 229 + 230 + const [record] = await c.var.db 231 + .update(sandboxes) 232 + .set({ 233 + status: "RUNNING", 234 + sandboxId: sandboxId, 235 + startedAt: new Date(), 236 + vcpus: params.vcpus, 237 + memory: params.memory, 238 + disk: params.disk, 239 + }) 240 + .where(eq(sandboxes.id, initialRecord!.id)) 241 + .returning() 242 + .execute(); 206 243 207 - const [record] = await c.var.db 208 - .update(sandboxes) 209 - .set({ 210 - status: "RUNNING", 211 - sandboxId: sandboxId, 212 - startedAt: new Date(), 213 - vcpus: params.vcpus, 214 - memory: params.memory, 215 - disk: params.disk, 244 + resolve(record!); 245 + }) 246 + .then((record) => { 247 + consola.success( 248 + `Sandbox ${record.id} is running with ID ${record.sandboxId}`, 249 + ); 216 250 }) 217 - .where(eq(sandboxes.id, initialRecord!.id)) 218 - .returning() 219 - .execute(); 251 + .catch((e) => { 252 + consola.error(`Failed to start sandbox ${initialRecord?.id}: ${e}`); 253 + }); 220 254 221 - return c.json(record); 255 + return c.json(initialRecord); 222 256 } catch (err) { 223 257 console.log(err); 224 258 return c.json(
+28
apps/modal-sandbox/src/schema/e2b-auth.ts
··· 1 + import { type InferInsertModel, type InferSelectModel, sql } from "drizzle-orm"; 2 + import { pgTable, text, timestamp, uniqueIndex } from "drizzle-orm/pg-core"; 3 + import sandboxes from "./sandboxes"; 4 + import users from "./users"; 5 + 6 + const e2bAuth = pgTable( 7 + "e2b_auth", 8 + { 9 + id: text("id") 10 + .primaryKey() 11 + .default(sql`xata_id()`), 12 + sandboxId: text("sandbox_id") 13 + .notNull() 14 + .references(() => sandboxes.id, { onDelete: "cascade" }), 15 + userId: text("user_id") 16 + .notNull() 17 + .references(() => users.id), 18 + accessToken: text("access_token").notNull(), 19 + redactedAccessToken: text("redacted_access_token").notNull(), 20 + createdAt: timestamp("created_at").defaultNow().notNull(), 21 + }, 22 + (t) => [uniqueIndex("unique_e2b_auth").on(t.sandboxId, t.userId)], 23 + ); 24 + 25 + export type SelectE2BAuth = InferSelectModel<typeof e2bAuth>; 26 + export type InsertE2BAuth = InferInsertModel<typeof e2bAuth>; 27 + 28 + export default e2bAuth;
+2
apps/modal-sandbox/src/schema/index.ts
··· 20 20 import sandboxCp from "./sandbox-cp"; 21 21 import backups from "./backups"; 22 22 import modalAuth from "./modal-auth"; 23 + import e2bAuth from "./e2b-auth"; 23 24 24 25 export { 25 26 sandboxes, ··· 44 45 sandboxCp, 45 46 backups, 46 47 modalAuth, 48 + e2bAuth, 47 49 };
+13 -1
apps/modal-sandbox/src/types/sandbox.ts
··· 32 32 name: z.string().optional(), 33 33 description: z.string().optional(), 34 34 provider: z 35 - .enum(["daytona", "vercel", "deno", "sprites", "modal"]) 35 + .enum(["daytona", "vercel", "deno", "sprites", "modal", "e2b"]) 36 36 .optional() 37 37 .default("deno"), 38 38 base: z.enum(["openclaw"]).optional().default("openclaw"), ··· 52 52 redactedModalTokenId: z.string().optional(), 53 53 modalTokenSecret: z.string().optional(), 54 54 redactedModalTokenSecret: z.string().optional(), 55 + e2bAccessToken: z.string().optional(), 56 + redactedE2bAccessToken: z.string().optional(), 55 57 vcpus: z.number().optional().default(2), 56 58 memory: z.number().optional().default(4), 57 59 disk: z.number().optional().default(3), ··· 199 201 message: 200 202 "redactedModalTokenSecret is required when provider is 'modal'", 201 203 path: ["redactedModalTokenSecret"], 204 + }); 205 + } 206 + } 207 + 208 + if (data.provider === "e2b") { 209 + if (!data.e2bAccessToken) { 210 + ctx.addIssue({ 211 + code: z.ZodIssueCode.custom, 212 + message: "e2bAccessToken is required when provider is 'e2b'", 213 + path: ["e2bAccessToken"], 202 214 }); 203 215 } 204 216 }
+1 -103
apps/sandbox/deno.lock
··· 22 22 "npm:envalid@^8.1.1": "8.1.1", 23 23 "npm:hono@^4.11.9": "4.11.9", 24 24 "npm:libsodium-wrappers@~0.8.2": "0.8.2", 25 - "npm:modal@~0.7.4": "0.7.4", 26 25 "npm:pg@^8.18.0": "8.18.0", 27 26 "npm:ramda@0.32": "0.32.0", 28 27 "npm:unique-username-generator@^1.5.1": "1.5.1", ··· 586 585 }, 587 586 "@aws/lambda-invoke-store@0.2.3": { 588 587 "integrity": "sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw==" 589 - }, 590 - "@cbor-extract/cbor-extract-darwin-arm64@2.2.0": { 591 - "integrity": "sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==", 592 - "os": ["darwin"], 593 - "cpu": ["arm64"] 594 - }, 595 - "@cbor-extract/cbor-extract-darwin-x64@2.2.0": { 596 - "integrity": "sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==", 597 - "os": ["darwin"], 598 - "cpu": ["x64"] 599 - }, 600 - "@cbor-extract/cbor-extract-linux-arm64@2.2.0": { 601 - "integrity": "sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==", 602 - "os": ["linux"], 603 - "cpu": ["arm64"] 604 - }, 605 - "@cbor-extract/cbor-extract-linux-arm@2.2.0": { 606 - "integrity": "sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==", 607 - "os": ["linux"], 608 - "cpu": ["arm"] 609 - }, 610 - "@cbor-extract/cbor-extract-linux-x64@2.2.0": { 611 - "integrity": "sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==", 612 - "os": ["linux"], 613 - "cpu": ["x64"] 614 - }, 615 - "@cbor-extract/cbor-extract-win32-x64@2.2.0": { 616 - "integrity": "sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==", 617 - "os": ["win32"], 618 - "cpu": ["x64"] 619 588 }, 620 589 "@daytonaio/api-client@0.141.0": { 621 590 "integrity": "sha512-DSPCurIEjfFyXCd07jkDgfsoFppVhTLyIJdvfb0LgG1EgV75BPqqzk2WM4ragBFJUuK2URF5CK7qkaHW0AXKMA==", ··· 1774 1743 "zod@3.24.4" 1775 1744 ] 1776 1745 }, 1777 - "abort-controller-x@0.4.3": { 1778 - "integrity": "sha512-VtUwTNU8fpMwvWGn4xE93ywbogTYsuT+AUxAXOeelbXuQVIwNmC5YLeho9sH4vZ4ITW8414TTAOG1nW6uIVHCA==" 1779 - }, 1780 1746 "acorn-import-attributes@1.9.5_acorn@8.15.0": { 1781 1747 "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", 1782 1748 "dependencies": [ ··· 1854 1820 "function-bind" 1855 1821 ] 1856 1822 }, 1857 - "cbor-extract@2.2.0": { 1858 - "integrity": "sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==", 1859 - "dependencies": [ 1860 - "node-gyp-build-optional-packages" 1861 - ], 1862 - "optionalDependencies": [ 1863 - "@cbor-extract/cbor-extract-darwin-arm64", 1864 - "@cbor-extract/cbor-extract-darwin-x64", 1865 - "@cbor-extract/cbor-extract-linux-arm", 1866 - "@cbor-extract/cbor-extract-linux-arm64", 1867 - "@cbor-extract/cbor-extract-linux-x64", 1868 - "@cbor-extract/cbor-extract-win32-x64" 1869 - ], 1870 - "scripts": true, 1871 - "bin": true 1872 - }, 1873 - "cbor-x@1.6.0": { 1874 - "integrity": "sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==", 1875 - "optionalDependencies": [ 1876 - "cbor-extract" 1877 - ] 1878 - }, 1879 1823 "chalk@5.6.2": { 1880 1824 "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==" 1881 1825 }, ··· 1919 1863 }, 1920 1864 "delayed-stream@1.0.0": { 1921 1865 "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" 1922 - }, 1923 - "detect-libc@2.1.2": { 1924 - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==" 1925 1866 }, 1926 1867 "dotenv@17.2.4": { 1927 1868 "integrity": "sha512-mudtfb4zRB4bVvdj0xRo+e6duH1csJRM8IukBqfTRvHotn9+LBXB8ynAidP9zHqoRC/fsllXgk4kCKlR21fIhw==" ··· 2293 2234 "minipass" 2294 2235 ] 2295 2236 }, 2296 - "modal@0.7.4": { 2297 - "integrity": "sha512-md/+L67tM1RazAt2xvLO+gUqRz6zllyYoNNiM8h+Eb1wLy7JzliH7vnx9f9Sq4zE3qQHENpX0Tjy/LSkIyrANA==", 2298 - "dependencies": [ 2299 - "cbor-x", 2300 - "long", 2301 - "nice-grpc", 2302 - "protobufjs", 2303 - "smol-toml", 2304 - "uuid" 2305 - ] 2306 - }, 2307 2237 "module-details-from-path@1.0.4": { 2308 2238 "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==" 2309 2239 }, 2310 2240 "ms@2.1.3": { 2311 2241 "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 2312 2242 }, 2313 - "nice-grpc-common@2.0.2": { 2314 - "integrity": "sha512-7RNWbls5kAL1QVUOXvBsv1uO0wPQK3lHv+cY1gwkTzirnG1Nop4cBJZubpgziNbaVc/bl9QJcyvsf/NQxa3rjQ==", 2315 - "dependencies": [ 2316 - "ts-error" 2317 - ] 2318 - }, 2319 - "nice-grpc@2.1.14": { 2320 - "integrity": "sha512-GK9pKNxlvnU5FAdaw7i2FFuR9CqBspcE+if2tqnKXBcE0R8525wj4BZvfcwj7FjvqbssqKxRHt2nwedalbJlww==", 2321 - "dependencies": [ 2322 - "@grpc/grpc-js", 2323 - "abort-controller-x", 2324 - "nice-grpc-common" 2325 - ] 2326 - }, 2327 - "node-gyp-build-optional-packages@5.1.1": { 2328 - "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==", 2329 - "dependencies": [ 2330 - "detect-libc" 2331 - ], 2332 - "bin": true 2333 - }, 2334 2243 "os-paths@4.4.0": { 2335 2244 "integrity": "sha512-wrAwOeXp1RRMFfQY8Sy7VaGVmPocaLwSFOYCGKSyo8qmJ+/yaafCl5BCA1IQZWqFSRBrKDYFeR9d/VyQzfH/jg==" 2336 2245 }, ··· 2480 2389 "shell-quote@1.8.3": { 2481 2390 "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==" 2482 2391 }, 2483 - "smol-toml@1.6.1": { 2484 - "integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==" 2485 - }, 2486 2392 "source-map-support@0.5.21": { 2487 2393 "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 2488 2394 "dependencies": [ ··· 2568 2474 "is-number" 2569 2475 ] 2570 2476 }, 2571 - "ts-error@1.0.6": { 2572 - "integrity": "sha512-tLJxacIQUM82IR7JO1UUkKlYuUTmoY9HBJAmNWFzheSlDS5SPMcNIepejHJa4BpPQLAcbRhRf3GDJzyj6rbKvA==" 2573 - }, 2574 2477 "tslib@2.8.1": { 2575 2478 "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" 2576 2479 }, ··· 2587 2490 "util-deprecate@1.0.2": { 2588 2491 "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 2589 2492 }, 2590 - "uuid@11.1.0": { 2591 - "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", 2592 - "bin": true 2593 - }, 2594 2493 "wrap-ansi@7.0.0": { 2595 2494 "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 2596 2495 "dependencies": [ ··· 2669 2568 "packageJson": { 2670 2569 "dependencies": [ 2671 2570 "npm:@aws-sdk/client-s3@^3.1024.0", 2672 - "npm:@fly/sprites@^0.0.1", 2673 - "npm:modal@~0.7.4" 2571 + "npm:@fly/sprites@^0.0.1" 2674 2572 ] 2675 2573 } 2676 2574 }
+2 -3
apps/sandbox/package.json
··· 1 1 { 2 2 "dependencies": { 3 3 "@aws-sdk/client-s3": "^3.1024.0", 4 - "@fly/sprites": "^0.0.1", 5 - "modal": "^0.7.4" 4 + "@fly/sprites": "^0.0.1" 6 5 } 7 - } 6 + }
-21
apps/sandbox/src/images.ts
··· 1 - export const images: Record<string, string> = { 2 - openclaw: "ghcr.io/pocketenv-io/modal-openclaw:0.1.0", 3 - amp: "ghcr.io/pocketenv-io/modal-amp:0.1.0", 4 - claude: "ghcr.io/pocketenv-io/modal-claude:0.1.0", 5 - codex: "ghcr.io/pocketenv-io/modal-codex:0.1.0", 6 - copilot: "ghcr.io/pocketenv-io/modal-copilot:0.1.0", 7 - crush: "ghcr.io/pocketenv-io/modal-crush:0.1.0", 8 - cursor: "ghcr.io/pocketenv-io/modal-cursor:0.1.0", 9 - gemini: "ghcr.io/pocketenv-io/modal-gemini:0.1.0", 10 - kilo: "ghcr.io/pocketenv-io/modal-kilo:0.1.0", 11 - kiro: "ghcr.io/pocketenv-io/modal-kiro:0.1.0", 12 - mise: "ghcr.io/pocketenv-io/modal-mise:0.1.0", 13 - nix: "ghcr.io/pocketenv-io/modal-nix:0.1.0", 14 - nullclaw: "ghcr.io/pocketenv-io/modal-nullclaw:0.1.0", 15 - opencode: "ghcr.io/pocketenv-io/modal-opencode:0.1.0", 16 - opencrust: "ghcr.io/pocketenv-io/modal-opencrust:0.1.0", 17 - picoclaw: "ghcr.io/pocketenv-io/modal-picoclaw:0.1.0", 18 - pkgx: "ghcr.io/pocketenv-io/modal-pkgx:0.1.0", 19 - wasmer: "ghcr.io/pocketenv-io/modal-wasmer:0.1.0", 20 - zeroclaw: "ghcr.io/pocketenv-io/modal-zeroclaw:0.1.0", 21 - };
-15
apps/sandbox/src/lib/sandbox-helpers.ts
··· 6 6 daytonaAuth, 7 7 denoAuth, 8 8 vercelAuth, 9 - modalAuth, 10 9 } from "../schema/mod.ts"; 11 10 import { 12 11 BaseSandbox, ··· 27 26 projectId?: string; 28 27 teamId?: string; 29 28 } | null; 30 - modalAuthParams?: { 31 - tokenId?: string; 32 - tokenSecret?: string; 33 - } | null; 34 29 } 35 30 36 31 export async function getAuthParams( ··· 42 37 [daytonaAuthParams], 43 38 [denoAuthParams], 44 39 [vercelAuthParams], 45 - [modalAuthParams], 46 40 ] = await Promise.all([ 47 41 db 48 42 .select() ··· 64 58 .from(vercelAuth) 65 59 .where(eq(vercelAuth.sandboxId, sandboxDbId)) 66 60 .execute(), 67 - db 68 - .select() 69 - .from(modalAuth) 70 - .where(eq(modalAuth.sandboxId, sandboxDbId)) 71 - .execute(), 72 61 ]); 73 62 return { 74 63 spriteAuthParams, 75 64 daytonaAuthParams, 76 65 denoAuthParams, 77 66 vercelAuthParams, 78 - modalAuthParams, 79 67 }; 80 68 } 81 69 ··· 88 76 vercelApiToken: decrypt(auth.vercelAuthParams?.vercelToken), 89 77 vercelProjectId: auth.vercelAuthParams?.projectId, 90 78 vercelTeamId: auth.vercelAuthParams?.teamId, 91 - modalTokenId: decrypt(auth.modalAuthParams?.tokenId), 92 - modalTokenSecret: decrypt(auth.modalAuthParams?.tokenSecret), 93 79 }; 94 80 } 95 81 ··· 101 87 if (!record.sandboxId) { 102 88 const sandbox = await createSandbox(record.provider as Provider, { 103 89 id: record.id, 104 - modalAppName: record.name, 105 90 ...credentials, 106 91 }); 107 92 const sandboxId = await sandbox.id();
+1 -12
apps/sandbox/src/providers/mod.ts
··· 30 30 abstract create(options: SandboxOptions): Promise<BaseSandbox>; 31 31 } 32 32 33 - export type Provider = "daytona" | "deno" | "vercel" | "sprites" | "modal"; 33 + export type Provider = "daytona" | "deno" | "vercel" | "sprites"; 34 34 35 35 export interface SandboxOptions { 36 36 id?: string; ··· 51 51 vercelApiToken?: string; 52 52 vercelProjectId?: string; 53 53 vercelTeamId?: string; 54 - modalTokenId?: string; 55 - modalTokenSecret?: string; 56 - modalAppName?: string; 57 54 image?: string; 58 55 [key: string]: any; 59 56 } ··· 79 76 return import("./sprites/mod.ts").then((module) => 80 77 new module.default().create(options), 81 78 ); 82 - case "modal": 83 - return import("./modal/mod.ts").then((module) => 84 - new module.default().create(options), 85 - ); 86 79 default: 87 80 console.log(`Provider ${provider} is not supported yet.`); 88 81 throw new Error(`Unsupported provider: ${provider}`); ··· 132 125 case "sprites": 133 126 return import("./sprites/mod.ts").then((module) => 134 127 new module.default().get(id, options?.spriteToken), 135 - ); 136 - case "modal": 137 - return import("./modal/mod.ts").then((module) => 138 - new module.default().get(id, options), 139 128 ); 140 129 default: 141 130 consola.error(`Provider ${provider} is not supported yet.`);
-178
apps/sandbox/src/providers/modal/mod.ts
··· 1 - import BaseProvider, { BaseSandbox, SandboxOptions } from "../mod.ts"; 2 - import { ModalClient, Sandbox } from "modal"; 3 - import consola from "consola"; 4 - import path from "node:path"; 5 - import { env } from "node:process"; 6 - import { Buffer } from "node:buffer"; 7 - import { 8 - adjectives, 9 - generateUniqueAsync, 10 - nouns, 11 - } from "unique-username-generator"; 12 - 13 - export class ModalSandbox implements BaseSandbox { 14 - constructor(private sandbox: Sandbox) {} 15 - 16 - async start(): Promise<void> { 17 - // Modal's sandbox starts immediately upon creation, so we can just return here. 18 - } 19 - 20 - async stop(): Promise<void> { 21 - try { 22 - consola.info("Stopping Modal sandbox with ID:", await this.id()); 23 - await this.sandbox.terminate(); 24 - } catch (error) { 25 - consola.error("Error stopping Modal sandbox:", error); 26 - } 27 - } 28 - 29 - async delete(): Promise<void> { 30 - // Modal's sandbox does not have a separate delete method, so we just stop it. 31 - try { 32 - consola.info("Deleting Modal sandbox with ID:", await this.id()); 33 - await this.stop(); 34 - } catch (error) { 35 - consola.error("Error deleting Modal sandbox:", error); 36 - } 37 - } 38 - 39 - async sh( 40 - strings: TemplateStringsArray, 41 - ...values: any[] 42 - ): Promise<{ 43 - stdout?: string | Buffer<ArrayBufferLike>; 44 - stderr?: string | Buffer<ArrayBufferLike>; 45 - exitCode: number; 46 - }> { 47 - const command = strings.reduce((acc, str, i) => { 48 - return acc + str + (values[i] || ""); 49 - }, ""); 50 - const result = await this.sandbox.exec(["bash", "-c", command]); 51 - 52 - consola.info(`exec command: ${command}`); 53 - const [stdout, stderr, exitCode] = await Promise.all([ 54 - result.stdout.readText(), 55 - result.stderr.readText(), 56 - result.wait(), 57 - ]); 58 - consola.info(`exitCode=${exitCode}`); 59 - 60 - return { ...result, stdout, stderr, exitCode }; 61 - } 62 - 63 - async id(): Promise<string | null> { 64 - return this.sandbox.sandboxId; 65 - } 66 - 67 - async ssh(): Promise<any> {} 68 - 69 - async mkdir(dir: string): Promise<void> { 70 - await this.sh`mkdir -p ${dir}`; 71 - } 72 - 73 - async writeFile(absolutePath: string, content: string): Promise<void> { 74 - const basePath = path.dirname(absolutePath); 75 - if (basePath !== "/" && basePath != ".") { 76 - await this.mkdir(basePath); 77 - } 78 - await this.sh`echo '${content}' > ${absolutePath}`; 79 - } 80 - 81 - async setupSshKeys(privateKey: string, publicKey: string): Promise<void> { 82 - await this.writeFile("~/.ssh/id_ed25519", privateKey); 83 - await this.writeFile("~/.ssh/id_ed25519.pub", publicKey); 84 - await this.sh`chmod 600 ~/.ssh/id_ed25519`; 85 - await this.sh`chmod 644 ~/.ssh/id_ed25519.pub`; 86 - await this.sh`ssh-keyscan -t rsa tangled.org >> $HOME/.ssh/known_hosts`; 87 - await this.sh`ssh-keyscan -t rsa github.com >> $HOME/.ssh/known_hosts`; 88 - } 89 - 90 - async setupDefaultSshKeys(): Promise<void> { 91 - await this 92 - .sh`[ -f ~/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -q -N "" || true`; 93 - } 94 - 95 - async setupTailscale(authKey: string): Promise<void> { 96 - await this 97 - .sh`type tailscaled || curl -fsSL https://tailscale.com/install.sh | sh || true`; 98 - await this.sh`pm2 start tailscaled || true`; 99 - await this.sh`tailscale up --auth-key=${authKey} || true`; 100 - } 101 - clone(repoUrl: string): Promise<any> { 102 - return this.sh`git clone ${repoUrl}`; 103 - } 104 - async mount(path: string, prefix?: string): Promise<void> { 105 - const VERSION = "v1.2.1"; 106 - const ARCH = "amd64"; 107 - await this.sh`mkdir -p $HOME/.local/bin`; 108 - await this 109 - .sh`command -v tigrisfs || ARCH=amd64 && curl -L "https://github.com/tigrisdata/tigrisfs/releases/download/${VERSION}/tigrisfs_${VERSION.replace("v", "")}_linux_${ARCH}.tar.gz" -o /tmp/tigrisfs.tar.gz`; 110 - await this 111 - .sh`command -v tigrisfs || tar -xzf /tmp/tigrisfs.tar.gz -C ~/.local/bin`; 112 - await this.sh`command -v tigrisfs || rm -rf /tmp/tigrisfs.tar.gz`; 113 - await this.sh`command -v tigrisfs || chmod +x ~/.local/bin/tigrisfs`; 114 - await this 115 - .sh`cp ~/.local/bin/tigrisfs /usr/bin || sudo cp ~/.local/bin/tigrisfs /usr/bin || true`; 116 - await this.sh`mkdir -p ${path} || sudo mkdir -p ${path}`; 117 - // install fuse ? 118 - 119 - await this.mkdir(path); 120 - 121 - const bucketPath = prefix 122 - ? `${env.VOLUME_BUCKET}:${prefix}` 123 - : env.VOLUME_BUCKET; 124 - 125 - await this 126 - .sh`AWS_ACCESS_KEY_ID=${env.R2_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY=${env.R2_SECRET_ACCESS_KEY} nohup tigrisfs --endpoint "https://${env.ACCOUNT_ID}.r2.cloudflarestorage.com" -o allow_other,default_permissions ${bucketPath} ${path} > /dev/null 2>&1 &`; 127 - } 128 - 129 - async unmount(path: string): Promise<void> { 130 - await this 131 - .sh`fusermount -u ${path} || sudo fusermount -u ${path} || umount ${path}`; 132 - } 133 - } 134 - 135 - class ModalProvider implements BaseProvider { 136 - async create(options: SandboxOptions): Promise<BaseSandbox> { 137 - const suffix = Math.random().toString(36).substring(2, 6); 138 - let modalAppName = await generateUniqueAsync( 139 - { dictionaries: [adjectives, nouns], separator: "-" }, 140 - () => false, 141 - ); 142 - modalAppName = `${modalAppName}-${suffix}`; 143 - consola.info("Connecting to Modal with app name:", modalAppName); 144 - const modal = new ModalClient({ 145 - tokenId: options.modalTokenId || env.MODAL_TOKEN_ID!, 146 - tokenSecret: options.modalTokenSecret || env.MODAL_TOKEN_SECRET!, 147 - }); 148 - consola.info("Creating Modal sandbox with app name:", modalAppName); 149 - const app = await modal.apps.fromName( 150 - options.modalAppName || modalAppName, 151 - { 152 - createIfMissing: true, 153 - }, 154 - ); 155 - consola.info("Setup image for Modal sandbox with app name:", modalAppName); 156 - const image = modal.images.fromRegistry( 157 - options.image || "ghcr.io/pocketenv-io/daytona-openclaw:0.1.0", 158 - ); 159 - consola.info("Creating Modal sandbox with app name:", modalAppName); 160 - const sandbox = await modal.sandboxes.create(app, image); 161 - consola.info("Created Modal sandbox with ID:", sandbox.sandboxId); 162 - 163 - return new ModalSandbox(sandbox); 164 - } 165 - 166 - async get(id: string, options?: SandboxOptions): Promise<BaseSandbox> { 167 - const modal = new ModalClient({ 168 - tokenId: options?.modalTokenId || env.MODAL_TOKEN_ID!, 169 - tokenSecret: options?.modalTokenSecret || env.MODAL_TOKEN_SECRET!, 170 - }); 171 - consola.log("Getting Modal sandbox with ID:", id); 172 - const sandbox = await modal.sandboxes.fromId(id); 173 - consola.log("Got Modal sandbox with ID:", id, sandbox); 174 - return new ModalSandbox(sandbox); 175 - } 176 - } 177 - 178 - export default ModalProvider;
+1 -20
apps/sandbox/src/routes/sandboxes.ts
··· 19 19 spriteAuth, 20 20 denoAuth, 21 21 vercelAuth, 22 - modalAuth, 23 22 } from "../schema/mod.ts"; 24 23 import { 25 24 SandboxConfig, ··· 43 42 import crypto from "node:crypto"; 44 43 import process from "node:process"; 45 44 import prepareSandbox from "../lib/prepare-sandbox.ts"; 46 - import { images } from "../images.ts"; 47 45 48 - const SUPPORTED_PROVIDERS = ["daytona", "vercel", "deno", "sprites", "modal"]; 46 + const SUPPORTED_PROVIDERS = ["daytona", "vercel", "deno", "sprites"]; 49 47 50 48 const sandboxRouter = new Hono<{ Variables: Context }>(); 51 49 ··· 167 165 .execute(); 168 166 } 169 167 170 - if (params.modalTokenId && user?.id) { 171 - await tx 172 - .insert(modalAuth) 173 - .values({ 174 - sandboxId: record.id, 175 - tokenId: params.modalTokenId!, 176 - redactedTokenId: params.redactedModalTokenId!, 177 - tokenSecret: params.modalTokenSecret!, 178 - redactedTokenSecret: params.redactedModalTokenSecret!, 179 - userId: user.id, 180 - }) 181 - .execute(); 182 - } 183 - 184 168 return { record, user }; 185 169 }, 186 170 ); ··· 198 182 vercelApiToken: decrypt(params.vercelApiToken), 199 183 vercelProjectId: params.vercelProjectId, 200 184 vercelTeamId: params.vercelTeamId, 201 - modalTokenId: decrypt(params.modalTokenId), 202 - modalTokenSecret: decrypt(params.modalTokenSecret), 203 - image: images[params.base] || images["openclaw"], 204 185 }); 205 186 const sandboxId = await sandbox.id(); 206 187
+1 -37
apps/sandbox/src/types/sandbox.ts
··· 32 32 name: z.string().optional(), 33 33 description: z.string().optional(), 34 34 provider: z 35 - .enum(["daytona", "vercel", "deno", "sprites", "modal"]) 35 + .enum(["daytona", "vercel", "deno", "sprites"]) 36 36 .optional() 37 37 .default("deno"), 38 38 base: z.enum(["openclaw"]).optional().default("openclaw"), ··· 48 48 redactedVercelApiToken: z.string().optional(), 49 49 vercelProjectId: z.string().optional(), 50 50 vercelTeamId: z.string().optional(), 51 - modalTokenId: z.string().optional(), 52 - redactedModalTokenId: z.string().optional(), 53 - modalTokenSecret: z.string().optional(), 54 - redactedModalTokenSecret: z.string().optional(), 55 51 vcpus: z.number().optional().default(2), 56 52 memory: z.number().optional().default(4), 57 53 disk: z.number().optional().default(3), ··· 167 163 code: z.ZodIssueCode.custom, 168 164 message: "vercelProjectId is required when provider is 'vercel'", 169 165 path: ["vercelProjectId"], 170 - }); 171 - } 172 - } 173 - 174 - if (data.provider === "modal") { 175 - if (!data.modalTokenId) { 176 - ctx.addIssue({ 177 - code: z.ZodIssueCode.custom, 178 - message: "modalTokenId is required when provider is 'modal'", 179 - path: ["modalTokenId"], 180 - }); 181 - } 182 - if (!data.redactedModalTokenId) { 183 - ctx.addIssue({ 184 - code: z.ZodIssueCode.custom, 185 - message: "redactedModalTokenId is required when provider is 'modal'", 186 - path: ["redactedModalTokenId"], 187 - }); 188 - } 189 - if (!data.modalTokenSecret) { 190 - ctx.addIssue({ 191 - code: z.ZodIssueCode.custom, 192 - message: "modalTokenSecret is required when provider is 'modal'", 193 - path: ["modalTokenSecret"], 194 - }); 195 - } 196 - if (!data.redactedModalTokenSecret) { 197 - ctx.addIssue({ 198 - code: z.ZodIssueCode.custom, 199 - message: 200 - "redactedModalTokenSecret is required when provider is 'modal'", 201 - path: ["redactedModalTokenSecret"], 202 166 }); 203 167 } 204 168 }