mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-06 08:18:39 +00:00
Move the server to the cli app
This commit is contained in:
parent
879cb7d058
commit
44f26a8a07
12 changed files with 225 additions and 471 deletions
|
|
@ -10,6 +10,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@benchmark/db": "workspace:^",
|
||||
"@benchmark/ipc": "workspace:^",
|
||||
"@benchmark/types": "workspace:^",
|
||||
"@vscode/test-electron": "^2.4.0",
|
||||
"execa": "^9.5.2",
|
||||
|
|
|
|||
|
|
@ -7,14 +7,13 @@ import { build, filesystem, GluegunPrompt, GluegunToolbox } from "gluegun"
|
|||
import { runTests } from "@vscode/test-electron"
|
||||
import { execa, parseCommandString } from "execa"
|
||||
|
||||
import { type Language, languages } from "@benchmark/types"
|
||||
import { type Language, languages, TaskEventName } from "@benchmark/types"
|
||||
import { type Run, findRun, createRun, finishRun, createTask, Task, getTasks, updateTask } from "@benchmark/db"
|
||||
import { IpcServer, IpcMessageType, IpcOrigin } from "@benchmark/ipc"
|
||||
|
||||
import { __dirname, extensionDevelopmentPath, extensionTestsPath, exercisesPath } from "./paths.js"
|
||||
import { getExercises } from "./exercises.js"
|
||||
|
||||
export const isLanguage = (language: string): language is Language => languages.includes(language as Language)
|
||||
|
||||
const testCommands: Record<Language, { commands: string[]; timeout?: number; cwd?: string }> = {
|
||||
cpp: { commands: ["cmake -G 'Unix\\ Makefiles' -DEXERCISM_RUN_ALL_TESTS=1 ..", "make"], cwd: "build" }, // timeout 15s bash -c "cd '$dir' && mkdir -p build && cd build && cmake -G 'Unix Makefiles' -DEXERCISM_RUN_ALL_TESTS=1 .. >/dev/null 2>&1 && make >/dev/null 2>&1"
|
||||
go: { commands: ["go test"] }, // timeout 15s bash -c "cd '$dir' && go test > /dev/null 2>&1"
|
||||
|
|
@ -69,7 +68,26 @@ const run = async (toolbox: GluegunToolbox) => {
|
|||
|
||||
const tasks = await getTasks(run.id)
|
||||
|
||||
if (tasks.length === 0) {
|
||||
throw new Error("No tasks found.")
|
||||
}
|
||||
|
||||
const server = new IpcServer(run.socketPath, () => {})
|
||||
server.listen()
|
||||
|
||||
let currentTask = tasks[0]
|
||||
|
||||
server.on("connect", (clientId) => {
|
||||
server.send(clientId, {
|
||||
type: IpcMessageType.TaskEvent,
|
||||
origin: IpcOrigin.Server,
|
||||
data: { eventName: TaskEventName.Connect, data: { task: currentTask } },
|
||||
})
|
||||
})
|
||||
|
||||
for (const task of tasks) {
|
||||
currentTask = task
|
||||
|
||||
await runExercise({ run, task })
|
||||
|
||||
const cmd = testCommands[task.language]
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
"@tanstack/react-query": "^5.69.0",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"cmdk": "1.0.0",
|
||||
"cmdk": "^1.1.0",
|
||||
"fuzzysort": "^3.1.0",
|
||||
"lucide-react": "^0.479.0",
|
||||
"next": "15.2.2",
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ export async function GET(request: NextRequest, { params }: { params: Promise<{
|
|||
console.log(`[stream#${requestId}] connect`)
|
||||
client.on("connect", () => write("connect"))
|
||||
client.on("disconnect", () => write("disconnect"))
|
||||
client.on("message", write)
|
||||
client.on("taskEvent", write)
|
||||
|
||||
request.signal.addEventListener("abort", () => {
|
||||
console.log(`[stream#${requestId}] abort`)
|
||||
|
|
|
|||
|
|
@ -1,37 +0,0 @@
|
|||
import type { NextRequest } from "next/server"
|
||||
|
||||
import { findRun } from "@benchmark/db"
|
||||
import { IpcClient } from "@benchmark/ipc"
|
||||
|
||||
import { SSEStream } from "@/lib/server/sse-stream"
|
||||
|
||||
export const dynamic = "force-dynamic"
|
||||
|
||||
export async function GET(request: NextRequest, { params }: { params: Promise<{ id: string }> }) {
|
||||
const { id } = await params
|
||||
const requestId = crypto.randomUUID()
|
||||
const stream = new SSEStream()
|
||||
const run = await findRun(Number(id))
|
||||
const client = new IpcClient(run.socketPath, () => {})
|
||||
|
||||
const write = async (data: string | object) => {
|
||||
const success = await stream.write(data)
|
||||
|
||||
if (!success) {
|
||||
client.disconnect()
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`[stream#${requestId}] connect`)
|
||||
client.on("connect", () => write("connect"))
|
||||
client.on("disconnect", () => write("disconnect"))
|
||||
client.on("message", write)
|
||||
|
||||
request.signal.addEventListener("abort", () => {
|
||||
console.log(`[stream#${requestId}] abort`)
|
||||
client.disconnect()
|
||||
stream.close().catch(() => {})
|
||||
})
|
||||
|
||||
return stream.getResponse()
|
||||
}
|
||||
|
|
@ -22,6 +22,7 @@
|
|||
"build": "tsup"
|
||||
},
|
||||
"dependencies": {
|
||||
"@benchmark/types": "workspace:^",
|
||||
"node-ipc": "^12.0.0",
|
||||
"zod": "^3.24.2"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,21 +1,28 @@
|
|||
import { IpcClientMessageType, IpcClient } from "../src/index.js"
|
||||
import { TaskCommandName } from "@benchmark/types"
|
||||
|
||||
import { IpcMessageType, IpcClient, IpcOrigin } from "../src/index.js"
|
||||
|
||||
async function main(socketPath: string, prompt: string) {
|
||||
try {
|
||||
const startTime = Date.now()
|
||||
const client = new IpcClient(socketPath)
|
||||
const clientStartedAt = Date.now()
|
||||
|
||||
client.on("message", (data) => console.log(data))
|
||||
|
||||
while (!client.isConnected) {
|
||||
if (Date.now() - startTime > 5000) {
|
||||
throw new Error("Failed to connect to server.")
|
||||
}
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, 1000))
|
||||
while (!client.isConnected && Date.now() - clientStartedAt < 10_000) {
|
||||
await new Promise((resolve) => setTimeout(resolve, 250))
|
||||
}
|
||||
|
||||
client.sendMessage({ type: IpcClientMessageType.StartNewTask, data: { text: prompt } })
|
||||
if (!client.isConnected) {
|
||||
throw new Error("Failed to connect to server.")
|
||||
}
|
||||
|
||||
client.on("taskEvent", (data) => console.log(data))
|
||||
|
||||
client.sendMessage({
|
||||
type: IpcMessageType.TaskCommand,
|
||||
origin: IpcOrigin.Client,
|
||||
clientId: client.clientId!,
|
||||
data: { commandName: TaskCommandName.StartNewTask, data: { text: prompt } },
|
||||
})
|
||||
|
||||
while (client.isConnected) {
|
||||
await new Promise((resolve) => setTimeout(resolve, 1000))
|
||||
|
|
|
|||
|
|
@ -5,33 +5,56 @@ import * as crypto from "node:crypto"
|
|||
import ipc from "node-ipc"
|
||||
import { z } from "zod"
|
||||
|
||||
import { TaskCommand, taskCommandSchema, TaskEvent, taskEventSchema } from "@benchmark/types"
|
||||
|
||||
/**
|
||||
* IpcMessage
|
||||
*/
|
||||
|
||||
export enum IpcMessageType {
|
||||
Ack = "Ack",
|
||||
TaskCommand = "TaskCommand",
|
||||
TaskEvent = "TaskEvent",
|
||||
}
|
||||
|
||||
export enum IpcOrigin {
|
||||
Client = "client",
|
||||
Server = "server",
|
||||
Relay = "relay",
|
||||
}
|
||||
|
||||
export const ipcMessageSchema = z.discriminatedUnion("type", [
|
||||
z.object({
|
||||
type: z.literal(IpcMessageType.Ack),
|
||||
origin: z.literal(IpcOrigin.Server),
|
||||
data: z.object({ clientId: z.string() }),
|
||||
}),
|
||||
z.object({
|
||||
type: z.literal(IpcMessageType.TaskCommand),
|
||||
origin: z.literal(IpcOrigin.Client),
|
||||
clientId: z.string(),
|
||||
data: taskCommandSchema,
|
||||
}),
|
||||
z.object({
|
||||
type: z.literal(IpcMessageType.TaskEvent),
|
||||
origin: z.union([z.literal(IpcOrigin.Server), z.literal(IpcOrigin.Relay)]),
|
||||
relayClientId: z.string().optional(),
|
||||
data: taskEventSchema,
|
||||
}),
|
||||
])
|
||||
|
||||
export type IpcMessage = z.infer<typeof ipcMessageSchema>
|
||||
|
||||
/**
|
||||
* IpcClient
|
||||
*/
|
||||
|
||||
export type IpcClientId = string
|
||||
|
||||
export enum IpcClientMessageType {
|
||||
Message = "Message",
|
||||
StartNewTask = "StartNewTask",
|
||||
}
|
||||
|
||||
export const ipcClientMessageSchema = z.discriminatedUnion("type", [
|
||||
z.object({
|
||||
type: z.literal(IpcClientMessageType.StartNewTask),
|
||||
data: z.object({
|
||||
text: z.string(),
|
||||
images: z.array(z.string()).optional(),
|
||||
}),
|
||||
}),
|
||||
])
|
||||
|
||||
export type IpcClientMessage = z.infer<typeof ipcClientMessageSchema>
|
||||
|
||||
export interface IpcClientEvents {
|
||||
type IpcClientEvents = {
|
||||
connect: []
|
||||
disconnect: []
|
||||
message: [data: IpcServerMessage]
|
||||
ack: [clientId: string]
|
||||
taskCommand: [data: TaskCommand]
|
||||
taskEvent: [data: TaskEvent]
|
||||
}
|
||||
|
||||
export class IpcClient extends EventEmitter<IpcClientEvents> {
|
||||
|
|
@ -39,7 +62,7 @@ export class IpcClient extends EventEmitter<IpcClientEvents> {
|
|||
private readonly _log: (...args: unknown[]) => void
|
||||
|
||||
private _isConnected = false
|
||||
private _clientId?: IpcClientId
|
||||
private _clientId?: string
|
||||
|
||||
constructor(socketPath: string, log = console.log) {
|
||||
super()
|
||||
|
|
@ -82,21 +105,33 @@ export class IpcClient extends EventEmitter<IpcClientEvents> {
|
|||
return
|
||||
}
|
||||
|
||||
const result = ipcServerMessageSchema.safeParse(data)
|
||||
const result = ipcMessageSchema.safeParse(data)
|
||||
|
||||
if (!result.success) {
|
||||
this.log("[client#onMessage] invalid payload", result.error)
|
||||
return
|
||||
}
|
||||
|
||||
this.emit("message", result.data)
|
||||
const payload = result.data
|
||||
|
||||
if (payload.origin === IpcOrigin.Server) {
|
||||
switch (payload.type) {
|
||||
case IpcMessageType.Ack:
|
||||
this._clientId = payload.data.clientId
|
||||
this.emit("ack", payload.data.clientId)
|
||||
break
|
||||
case IpcMessageType.TaskEvent:
|
||||
this.emit("taskEvent", payload.data)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private log(...args: unknown[]) {
|
||||
this._log(...args)
|
||||
}
|
||||
|
||||
public sendMessage(message: IpcClientMessage) {
|
||||
public sendMessage(message: IpcMessage) {
|
||||
ipc.of.benchmarkServer?.emit("message", message)
|
||||
}
|
||||
|
||||
|
|
@ -130,31 +165,11 @@ export class IpcClient extends EventEmitter<IpcClientEvents> {
|
|||
* IpcServer
|
||||
*/
|
||||
|
||||
export enum IpcServerMessageType {
|
||||
Ack = "Ack",
|
||||
TaskEvent = "TaskEvent",
|
||||
}
|
||||
|
||||
export const ipcServerMessageSchema = z.discriminatedUnion("type", [
|
||||
z.object({
|
||||
type: z.literal(IpcServerMessageType.Ack),
|
||||
data: z.object({ clientId: z.string() }),
|
||||
}),
|
||||
z.object({
|
||||
type: z.literal(IpcServerMessageType.TaskEvent),
|
||||
data: z.object({
|
||||
eventName: z.enum(["connect", "taskStarted", "message", "taskTokenUsageUpdated", "taskFinished"]),
|
||||
data: z.unknown(),
|
||||
}),
|
||||
}),
|
||||
])
|
||||
|
||||
export type IpcServerMessage = z.infer<typeof ipcServerMessageSchema>
|
||||
|
||||
type IpcServerEvents = {
|
||||
connect: [id: IpcClientId]
|
||||
disconnect: [id: IpcClientId]
|
||||
message: [data: IpcClientMessage]
|
||||
connect: [clientId: string]
|
||||
disconnect: [clientId: string]
|
||||
taskCommand: [clientId: string, data: TaskCommand]
|
||||
taskEvent: [relayClientId: string | undefined, data: TaskEvent]
|
||||
}
|
||||
|
||||
export class IpcServer extends EventEmitter<IpcServerEvents> {
|
||||
|
|
@ -190,12 +205,12 @@ export class IpcServer extends EventEmitter<IpcServerEvents> {
|
|||
const clientId = crypto.randomBytes(6).toString("hex")
|
||||
this._clients.set(clientId, socket)
|
||||
this.log(`[server#onConnect] clientId = ${clientId}, # clients = ${this._clients.size}`)
|
||||
this.send(socket, { type: IpcServerMessageType.Ack, data: { clientId } })
|
||||
this.send(socket, { type: IpcMessageType.Ack, origin: IpcOrigin.Server, data: { clientId } })
|
||||
this.emit("connect", clientId)
|
||||
}
|
||||
|
||||
private onDisconnect(destroyedSocket: Socket) {
|
||||
let disconnectedClientId: IpcClientId | undefined
|
||||
let disconnectedClientId: string | undefined
|
||||
|
||||
for (const [clientId, socket] of this._clients.entries()) {
|
||||
if (socket === destroyedSocket) {
|
||||
|
|
@ -218,7 +233,7 @@ export class IpcServer extends EventEmitter<IpcServerEvents> {
|
|||
return
|
||||
}
|
||||
|
||||
const result = ipcClientMessageSchema.safeParse(data)
|
||||
const result = ipcMessageSchema.safeParse(data)
|
||||
|
||||
if (!result.success) {
|
||||
this.log("[server#onMessage] invalid payload", result.error)
|
||||
|
|
@ -226,19 +241,32 @@ export class IpcServer extends EventEmitter<IpcServerEvents> {
|
|||
}
|
||||
|
||||
const payload = result.data
|
||||
this.emit("message", payload)
|
||||
|
||||
if (payload.origin === IpcOrigin.Client) {
|
||||
switch (payload.type) {
|
||||
case IpcMessageType.TaskCommand:
|
||||
this.emit("taskCommand", payload.clientId, payload.data)
|
||||
break
|
||||
}
|
||||
} else if (payload.origin === IpcOrigin.Relay) {
|
||||
switch (payload.type) {
|
||||
case IpcMessageType.TaskEvent:
|
||||
this.emit("taskEvent", payload.relayClientId, payload.data)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private log(...args: unknown[]) {
|
||||
this._log(...args)
|
||||
}
|
||||
|
||||
public broadcast(message: IpcServerMessage) {
|
||||
public broadcast(message: IpcMessage) {
|
||||
this.log("[server#broadcast] message =", message)
|
||||
ipc.server.broadcast("message", message)
|
||||
}
|
||||
|
||||
public send(client: IpcClientId | Socket, message: IpcServerMessage) {
|
||||
public send(client: string | Socket, message: IpcMessage) {
|
||||
this.log("[server#send] message =", message)
|
||||
|
||||
if (typeof client === "string") {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@benchmark/db": "workspace:^",
|
||||
"@benchmark/ipc": "workspace:^"
|
||||
"@benchmark/ipc": "workspace:^",
|
||||
"@benchmark/types": "workspace:^"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@benchmark/eslint-config": "workspace:^",
|
||||
|
|
|
|||
|
|
@ -5,7 +5,8 @@ import * as vscode from "vscode"
|
|||
|
||||
import { RooCodeAPI } from "../../../../src/exports/roo-code.js"
|
||||
|
||||
import { IpcServer, IpcServerMessageType } from "@benchmark/ipc"
|
||||
import { TaskEventName } from "@benchmark/types"
|
||||
import { IpcMessageType, IpcOrigin, IpcClient } from "@benchmark/ipc"
|
||||
import { findTask, findRun, createTaskMetrics, updateTask } from "@benchmark/db"
|
||||
|
||||
import { waitUntilReady, waitUntilCompleted, sleep } from "./utils.js"
|
||||
|
|
@ -87,31 +88,44 @@ export async function run() {
|
|||
await sleep(1_000)
|
||||
|
||||
/**
|
||||
* Start the IPC server.
|
||||
* Start the IPC client.
|
||||
*/
|
||||
|
||||
const server = new IpcServer(run.socketPath, () => {})
|
||||
server.listen()
|
||||
const client = new IpcClient(run.socketPath, () => {})
|
||||
const clientStartedAt = Date.now()
|
||||
|
||||
server.on("connect", (id) =>
|
||||
server.send(id, { type: IpcServerMessageType.TaskEvent, data: { eventName: "connect", data: { task } } }),
|
||||
)
|
||||
while (!client.clientId && Date.now() - clientStartedAt < 10_000) {
|
||||
await sleep(250)
|
||||
}
|
||||
|
||||
if (!client.clientId) {
|
||||
throw new Error("No client ID received.")
|
||||
}
|
||||
|
||||
api.on("taskStarted", () =>
|
||||
server.broadcast({ type: IpcServerMessageType.TaskEvent, data: { eventName: "taskStarted", data: { task } } }),
|
||||
client.sendMessage({
|
||||
type: IpcMessageType.TaskEvent,
|
||||
relayClientId: client.clientId,
|
||||
origin: IpcOrigin.Relay,
|
||||
data: { eventName: TaskEventName.TaskStarted, data: { task } },
|
||||
}),
|
||||
)
|
||||
|
||||
api.on("message", (message) =>
|
||||
server.broadcast({
|
||||
type: IpcServerMessageType.TaskEvent,
|
||||
data: { eventName: "message", data: { task, message } },
|
||||
client.sendMessage({
|
||||
type: IpcMessageType.TaskEvent,
|
||||
relayClientId: client.clientId,
|
||||
origin: IpcOrigin.Relay,
|
||||
data: { eventName: TaskEventName.Message, data: { task, message } },
|
||||
}),
|
||||
)
|
||||
|
||||
api.on("taskTokenUsageUpdated", (_, usage) =>
|
||||
server.broadcast({
|
||||
type: IpcServerMessageType.TaskEvent,
|
||||
data: { eventName: "taskTokenUsageUpdated", data: { task, usage } },
|
||||
client.sendMessage({
|
||||
type: IpcMessageType.TaskEvent,
|
||||
relayClientId: client.clientId,
|
||||
origin: IpcOrigin.Relay,
|
||||
data: { eventName: TaskEventName.TaskTokenUsageUpdated, data: { task, usage } },
|
||||
}),
|
||||
)
|
||||
|
||||
|
|
@ -144,9 +158,11 @@ export async function run() {
|
|||
|
||||
task = await updateTask(task.id, { taskMetricsId: taskMetrics.id, finishedAt: new Date() })
|
||||
|
||||
server.broadcast({
|
||||
type: IpcServerMessageType.TaskEvent,
|
||||
data: { eventName: "taskFinished", data: { task, taskMetrics } },
|
||||
client.sendMessage({
|
||||
type: IpcMessageType.TaskEvent,
|
||||
relayClientId: client.clientId,
|
||||
origin: IpcOrigin.Relay,
|
||||
data: { eventName: TaskEventName.TaskFinished, data: { task, taskMetrics } },
|
||||
})
|
||||
|
||||
await fs.writeFile(path.resolve(workspacePath, "usage.json"), JSON.stringify({ ...task, ...taskMetrics }, null, 2))
|
||||
|
|
|
|||
|
|
@ -1,7 +1,50 @@
|
|||
import { z } from "zod"
|
||||
|
||||
/**
|
||||
* languages
|
||||
* Language
|
||||
*/
|
||||
|
||||
export const languages = ["cpp", "go", "java", "javascript", "python", "rust"] as const
|
||||
|
||||
export type Language = (typeof languages)[number]
|
||||
|
||||
export const isLanguage = (value: string): value is Language => languages.includes(value as Language)
|
||||
|
||||
/**
|
||||
* TaskEvent
|
||||
*/
|
||||
|
||||
export enum TaskEventName {
|
||||
Connect = "Connect",
|
||||
TaskStarted = "TaskStarted",
|
||||
Message = "Message",
|
||||
TaskTokenUsageUpdated = "TaskTokenUsageUpdated",
|
||||
TaskFinished = "TaskFinished",
|
||||
}
|
||||
|
||||
export const taskEventSchema = z.object({
|
||||
eventName: z.nativeEnum(TaskEventName),
|
||||
data: z.unknown(),
|
||||
})
|
||||
|
||||
export type TaskEvent = z.infer<typeof taskEventSchema>
|
||||
|
||||
/**
|
||||
* TaskCommand
|
||||
*/
|
||||
|
||||
export enum TaskCommandName {
|
||||
StartNewTask = "StartNewTask",
|
||||
}
|
||||
|
||||
export const taskCommandSchema = z.discriminatedUnion("commandName", [
|
||||
z.object({
|
||||
commandName: z.literal(TaskCommandName.StartNewTask),
|
||||
data: z.object({
|
||||
text: z.string(),
|
||||
images: z.array(z.string()).optional(),
|
||||
}),
|
||||
}),
|
||||
])
|
||||
|
||||
export type TaskCommand = z.infer<typeof taskCommandSchema>
|
||||
|
|
|
|||
364
benchmark/pnpm-lock.yaml
generated
364
benchmark/pnpm-lock.yaml
generated
|
|
@ -44,6 +44,9 @@ importers:
|
|||
'@benchmark/db':
|
||||
specifier: workspace:^
|
||||
version: link:../../packages/db
|
||||
'@benchmark/ipc':
|
||||
specifier: workspace:^
|
||||
version: link:../../packages/ipc
|
||||
'@benchmark/types':
|
||||
specifier: workspace:^
|
||||
version: link:../../packages/types
|
||||
|
|
@ -115,8 +118,8 @@ importers:
|
|||
specifier: ^2.1.1
|
||||
version: 2.1.1
|
||||
cmdk:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
specifier: ^1.1.0
|
||||
version: 1.1.1(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
fuzzysort:
|
||||
specifier: ^3.1.0
|
||||
version: 3.1.0
|
||||
|
|
@ -244,6 +247,9 @@ importers:
|
|||
|
||||
packages/ipc:
|
||||
dependencies:
|
||||
'@benchmark/types':
|
||||
specifier: workspace:^
|
||||
version: link:../types
|
||||
node-ipc:
|
||||
specifier: ^12.0.0
|
||||
version: 12.0.0
|
||||
|
|
@ -282,6 +288,9 @@ importers:
|
|||
'@benchmark/ipc':
|
||||
specifier: workspace:^
|
||||
version: link:../ipc
|
||||
'@benchmark/types':
|
||||
specifier: workspace:^
|
||||
version: link:../types
|
||||
devDependencies:
|
||||
'@benchmark/eslint-config':
|
||||
specifier: workspace:^
|
||||
|
|
@ -1128,9 +1137,6 @@ packages:
|
|||
'@radix-ui/number@1.1.0':
|
||||
resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==}
|
||||
|
||||
'@radix-ui/primitive@1.0.1':
|
||||
resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==}
|
||||
|
||||
'@radix-ui/primitive@1.1.1':
|
||||
resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==}
|
||||
|
||||
|
|
@ -1160,15 +1166,6 @@ packages:
|
|||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-compose-refs@1.0.1':
|
||||
resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-compose-refs@1.1.1':
|
||||
resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==}
|
||||
peerDependencies:
|
||||
|
|
@ -1178,15 +1175,6 @@ packages:
|
|||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-context@1.0.1':
|
||||
resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-context@1.1.1':
|
||||
resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==}
|
||||
peerDependencies:
|
||||
|
|
@ -1196,19 +1184,6 @@ packages:
|
|||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-dialog@1.0.5':
|
||||
resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-dialog@1.1.6':
|
||||
resolution: {integrity: sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw==}
|
||||
peerDependencies:
|
||||
|
|
@ -1231,19 +1206,6 @@ packages:
|
|||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-dismissable-layer@1.0.5':
|
||||
resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-dismissable-layer@1.1.5':
|
||||
resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==}
|
||||
peerDependencies:
|
||||
|
|
@ -1257,15 +1219,6 @@ packages:
|
|||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-focus-guards@1.0.1':
|
||||
resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-focus-guards@1.1.1':
|
||||
resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==}
|
||||
peerDependencies:
|
||||
|
|
@ -1275,19 +1228,6 @@ packages:
|
|||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-focus-scope@1.0.4':
|
||||
resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-focus-scope@1.1.2':
|
||||
resolution: {integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==}
|
||||
peerDependencies:
|
||||
|
|
@ -1301,15 +1241,6 @@ packages:
|
|||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-id@1.0.1':
|
||||
resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-id@1.1.0':
|
||||
resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
|
||||
peerDependencies:
|
||||
|
|
@ -1358,19 +1289,6 @@ packages:
|
|||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-portal@1.0.4':
|
||||
resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-portal@1.1.4':
|
||||
resolution: {integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==}
|
||||
peerDependencies:
|
||||
|
|
@ -1384,19 +1302,6 @@ packages:
|
|||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-presence@1.0.1':
|
||||
resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-presence@1.1.2':
|
||||
resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==}
|
||||
peerDependencies:
|
||||
|
|
@ -1410,19 +1315,6 @@ packages:
|
|||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-primitive@1.0.3':
|
||||
resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-primitive@2.0.2':
|
||||
resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==}
|
||||
peerDependencies:
|
||||
|
|
@ -1488,15 +1380,6 @@ packages:
|
|||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-slot@1.0.2':
|
||||
resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-slot@1.1.2':
|
||||
resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==}
|
||||
peerDependencies:
|
||||
|
|
@ -1519,15 +1402,6 @@ packages:
|
|||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-callback-ref@1.0.1':
|
||||
resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-callback-ref@1.1.0':
|
||||
resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
|
||||
peerDependencies:
|
||||
|
|
@ -1537,15 +1411,6 @@ packages:
|
|||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-controllable-state@1.0.1':
|
||||
resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-controllable-state@1.1.0':
|
||||
resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
|
||||
peerDependencies:
|
||||
|
|
@ -1555,15 +1420,6 @@ packages:
|
|||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-escape-keydown@1.0.3':
|
||||
resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-escape-keydown@1.1.0':
|
||||
resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==}
|
||||
peerDependencies:
|
||||
|
|
@ -1573,15 +1429,6 @@ packages:
|
|||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-layout-effect@1.0.1':
|
||||
resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-layout-effect@1.1.0':
|
||||
resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==}
|
||||
peerDependencies:
|
||||
|
|
@ -2175,11 +2022,11 @@ packages:
|
|||
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
cmdk@1.0.0:
|
||||
resolution: {integrity: sha512-gDzVf0a09TvoJ5jnuPvygTB77+XdOSwEmJ88L6XPFPlv7T3RxbP9jgenfylrAMD0+Le1aO0nVjQUzl2g+vjz5Q==}
|
||||
cmdk@1.1.1:
|
||||
resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==}
|
||||
peerDependencies:
|
||||
react: ^18.0.0
|
||||
react-dom: ^18.0.0
|
||||
react: ^18 || ^19 || ^19.0.0-rc
|
||||
react-dom: ^18 || ^19 || ^19.0.0-rc
|
||||
|
||||
color-convert@1.9.3:
|
||||
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
|
||||
|
|
@ -3111,7 +2958,6 @@ packages:
|
|||
|
||||
libsql@0.4.7:
|
||||
resolution: {integrity: sha512-T9eIRCs6b0J1SHKYIvD8+KCJMcWZ900iZyxdnSCdqxN12Z1ijzT+jY5nrk72Jw4B0HGzms2NgpryArlJqvc3Lw==}
|
||||
cpu: [x64, arm64, wasm32]
|
||||
os: [darwin, linux, win32]
|
||||
|
||||
lie@3.3.0:
|
||||
|
|
@ -3603,16 +3449,6 @@ packages:
|
|||
'@types/react':
|
||||
optional: true
|
||||
|
||||
react-remove-scroll@2.5.5:
|
||||
resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
'@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
react-remove-scroll@2.6.3:
|
||||
resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==}
|
||||
engines: {node: '>=10'}
|
||||
|
|
@ -4896,10 +4732,6 @@ snapshots:
|
|||
|
||||
'@radix-ui/number@1.1.0': {}
|
||||
|
||||
'@radix-ui/primitive@1.0.1':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
|
||||
'@radix-ui/primitive@1.1.1': {}
|
||||
|
||||
'@radix-ui/react-arrow@1.1.2(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
|
|
@ -4923,55 +4755,18 @@ snapshots:
|
|||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-compose-refs@1.0.1(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-context@1.0.1(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-context@1.1.1(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-dialog@1.0.5(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
'@radix-ui/primitive': 1.0.1
|
||||
'@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
'@radix-ui/react-context': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
'@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@radix-ui/react-focus-guards': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
'@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@radix-ui/react-id': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
'@radix-ui/react-portal': 1.0.4(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@radix-ui/react-presence': 1.0.1(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@radix-ui/react-slot': 1.0.2(@types/react@19.0.12)(react@19.0.0)
|
||||
'@radix-ui/react-use-controllable-state': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
aria-hidden: 1.2.4
|
||||
react: 19.0.0
|
||||
react-dom: 19.0.0(react@19.0.0)
|
||||
react-remove-scroll: 2.5.5(@types/react@19.0.12)(react@19.0.0)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-dialog@1.1.6(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.1
|
||||
|
|
@ -5000,20 +4795,6 @@ snapshots:
|
|||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
'@radix-ui/primitive': 1.0.1
|
||||
'@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
'@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
'@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@19.0.12)(react@19.0.0)
|
||||
react: 19.0.0
|
||||
react-dom: 19.0.0(react@19.0.0)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.1
|
||||
|
|
@ -5027,31 +4808,12 @@ snapshots:
|
|||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-focus-guards@1.0.1(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-focus-guards@1.1.1(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-focus-scope@1.0.4(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
'@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
'@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
react: 19.0.0
|
||||
react-dom: 19.0.0(react@19.0.0)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-focus-scope@1.1.2(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.12)(react@19.0.0)
|
||||
|
|
@ -5063,14 +4825,6 @@ snapshots:
|
|||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-id@1.0.1(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
'@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-id@1.1.0(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.12)(react@19.0.0)
|
||||
|
|
@ -5128,16 +4882,6 @@ snapshots:
|
|||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-portal@1.0.4(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
'@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
react: 19.0.0
|
||||
react-dom: 19.0.0(react@19.0.0)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-portal@1.1.4(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
|
|
@ -5148,17 +4892,6 @@ snapshots:
|
|||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-presence@1.0.1(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
'@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
'@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
react: 19.0.0
|
||||
react-dom: 19.0.0(react@19.0.0)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-presence@1.1.2(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.12)(react@19.0.0)
|
||||
|
|
@ -5169,16 +4902,6 @@ snapshots:
|
|||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
'@radix-ui/react-slot': 1.0.2(@types/react@19.0.12)(react@19.0.0)
|
||||
react: 19.0.0
|
||||
react-dom: 19.0.0(react@19.0.0)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-primitive@2.0.2(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
|
||||
dependencies:
|
||||
'@radix-ui/react-slot': 1.1.2(@types/react@19.0.12)(react@19.0.0)
|
||||
|
|
@ -5260,14 +4983,6 @@ snapshots:
|
|||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-slot@1.0.2(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
'@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-slot@1.1.2(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.12)(react@19.0.0)
|
||||
|
|
@ -5291,27 +5006,12 @@ snapshots:
|
|||
'@types/react': 19.0.12
|
||||
'@types/react-dom': 19.0.4(@types/react@19.0.12)
|
||||
|
||||
'@radix-ui/react-use-callback-ref@1.0.1(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-use-controllable-state@1.0.1(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
'@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.12)(react@19.0.0)
|
||||
|
|
@ -5319,14 +5019,6 @@ snapshots:
|
|||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-use-escape-keydown@1.0.3(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
'@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.12)(react@19.0.0)
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.12)(react@19.0.0)
|
||||
|
|
@ -5334,13 +5026,6 @@ snapshots:
|
|||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-use-layout-effect@1.0.1(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.26.10
|
||||
react: 19.0.0
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
'@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.12)(react@19.0.0)':
|
||||
dependencies:
|
||||
react: 19.0.0
|
||||
|
|
@ -5937,10 +5622,12 @@ snapshots:
|
|||
|
||||
clsx@2.1.1: {}
|
||||
|
||||
cmdk@1.0.0(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
|
||||
cmdk@1.1.1(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
|
||||
dependencies:
|
||||
'@radix-ui/react-dialog': 1.0.5(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.12)(react@19.0.0)
|
||||
'@radix-ui/react-dialog': 1.1.6(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
'@radix-ui/react-id': 1.1.0(@types/react@19.0.12)(react@19.0.0)
|
||||
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
|
||||
react: 19.0.0
|
||||
react-dom: 19.0.0(react@19.0.0)
|
||||
transitivePeerDependencies:
|
||||
|
|
@ -7470,17 +7157,6 @@ snapshots:
|
|||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
react-remove-scroll@2.5.5(@types/react@19.0.12)(react@19.0.0):
|
||||
dependencies:
|
||||
react: 19.0.0
|
||||
react-remove-scroll-bar: 2.3.8(@types/react@19.0.12)(react@19.0.0)
|
||||
react-style-singleton: 2.2.3(@types/react@19.0.12)(react@19.0.0)
|
||||
tslib: 2.8.1
|
||||
use-callback-ref: 1.3.3(@types/react@19.0.12)(react@19.0.0)
|
||||
use-sidecar: 1.1.3(@types/react@19.0.12)(react@19.0.0)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.0.12
|
||||
|
||||
react-remove-scroll@2.6.3(@types/react@19.0.12)(react@19.0.0):
|
||||
dependencies:
|
||||
react: 19.0.0
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue