mirror of
https://github.com/stack-auth/stack.git
synced 2026-07-20 21:29:36 +08:00
Offsite stuff
This commit is contained in:
parent
09e5a97d77
commit
4d308b2ba3
@ -1,11 +1,6 @@
|
||||
{
|
||||
"version": 1,
|
||||
"hooks": {
|
||||
"afterFileEdit": [
|
||||
{
|
||||
"command": "./hooks/lint-file.sh"
|
||||
}
|
||||
],
|
||||
"stop": [
|
||||
{
|
||||
"command": "./hooks/stop-check.sh"
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
"with-env:dev": "dotenv -c development --",
|
||||
"with-env:prod": "dotenv -c production --",
|
||||
"with-env:test": "dotenv -c test --",
|
||||
"dev": "BACKEND_PORT=${STACK_DEV_FALLBACK_BACKEND:+${NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81}10} && BACKEND_PORT=${BACKEND_PORT:-${NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81}02} && concurrently -n \"dev,codegen,prisma-studio,email-queue,cron-jobs,bulldozer-studio\" -k \"STACK_DISABLE_REACT_ASYNC_DEBUG_INFO=${STACK_DISABLE_REACT_ASYNC_DEBUG_INFO:-true} NODE_ENV=development BACKEND_PORT=$BACKEND_PORT dotenv -c development -- tsx watch src/server/server.ts ${STACK_BACKEND_DEV_EXTRA_ARGS:-}\" \"pnpm run codegen:watch\" \"pnpm run prisma-studio\" \"pnpm run run-email-queue\" \"pnpm run run-cron-jobs\" \"pnpm run run-bulldozer-studio\"",
|
||||
"dev": "BACKEND_PORT=${STACK_DEV_FALLBACK_BACKEND:+${NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81}10} && BACKEND_PORT=${BACKEND_PORT:-${NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81}02} && concurrently -n \"dev,codegen,prisma-studio\" -k \"STACK_DISABLE_REACT_ASYNC_DEBUG_INFO=${STACK_DISABLE_REACT_ASYNC_DEBUG_INFO:-true} NODE_ENV=development BACKEND_PORT=$BACKEND_PORT dotenv -c development -- tsx watch --clear-screen=false src/server/server.ts ${STACK_BACKEND_DEV_EXTRA_ARGS:-}\" \"pnpm run codegen:watch\" \"pnpm run prisma-studio\"",
|
||||
"dev:inspect": "STACK_BACKEND_DEV_EXTRA_ARGS=\"--inspect\" pnpm run dev",
|
||||
"dev:profile": "STACK_BACKEND_DEV_EXTRA_ARGS=\"--experimental-cpu-prof\" pnpm run dev",
|
||||
"build": "pnpm run codegen && tsdown --config tsdown.config.ts",
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { SmartRouter } from "@/smart-router";
|
||||
import { writeFileSyncIfChanged } from "@hexclave/shared/dist/utils/fs";
|
||||
import fs from "fs";
|
||||
|
||||
const httpMethodNames = ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD"] as const;
|
||||
@ -40,9 +41,9 @@ async function main() {
|
||||
const routes = await SmartRouter.listRoutes();
|
||||
const apiVersions = await SmartRouter.listApiVersions();
|
||||
fs.mkdirSync("src/generated", { recursive: true });
|
||||
fs.writeFileSync("src/generated/routes.json", JSON.stringify(routes, null, 2));
|
||||
fs.writeFileSync("src/generated/api-versions.json", JSON.stringify(apiVersions, null, 2));
|
||||
fs.writeFileSync("src/generated/route-modules.ts", generateRouteModules(routes));
|
||||
writeFileSyncIfChanged("src/generated/routes.json", JSON.stringify(routes, null, 2));
|
||||
writeFileSyncIfChanged("src/generated/api-versions.json", JSON.stringify(apiVersions, null, 2));
|
||||
writeFileSyncIfChanged("src/generated/route-modules.ts", generateRouteModules(routes));
|
||||
console.log("Successfully updated route info");
|
||||
}
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
|
||||
@ -18,4 +18,5 @@ console.log(`Hexclave backend listening on http://${hostname}:${port}`);
|
||||
|
||||
process.once("SIGTERM", () => {
|
||||
runAsynchronously(app.stop());
|
||||
process.exit(0);
|
||||
});
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
"scripts": {
|
||||
"start": "tsx --expose-gc src/index.ts",
|
||||
"dev": "NODE_ENV=development tsx watch --clear-screen=false --expose-gc src/index.ts",
|
||||
"run-bulldozer-studio": "tsx watch --clear-screen=false scripts/run-bulldozer-studio.ts",
|
||||
"run-bulldozer-studio": "NODE_ENV=development tsx watch --clear-screen=false scripts/run-bulldozer-studio.ts",
|
||||
"profile:performance": "tsx scripts/profile-bulldozer-performance.ts",
|
||||
"test": "vitest run",
|
||||
"test:watch": "vitest watch",
|
||||
|
||||
@ -66,6 +66,7 @@
|
||||
"@tanstack/react-virtual": "^3.13.18",
|
||||
"@vercel/analytics": "^1.2.2",
|
||||
"@vercel/speed-insights": "^1.0.12",
|
||||
"@xyflow/react": "^12.11.1",
|
||||
"ai": "^6.0.0",
|
||||
"browser-image-compression": "^2.0.2",
|
||||
"canvas-confetti": "^1.9.2",
|
||||
|
||||
@ -0,0 +1,212 @@
|
||||
"use client";
|
||||
|
||||
import { DesignButton, DesignMenu } from "@/components/design-components";
|
||||
import {
|
||||
ArrowCounterClockwiseIcon,
|
||||
ArrowsOutIcon,
|
||||
CloudArrowUpIcon,
|
||||
CpuIcon,
|
||||
DatabaseIcon,
|
||||
HardDrivesIcon,
|
||||
LightningIcon,
|
||||
PlusIcon,
|
||||
StackIcon,
|
||||
} from "@phosphor-icons/react";
|
||||
import {
|
||||
addEdge,
|
||||
Background,
|
||||
BackgroundVariant,
|
||||
MiniMap,
|
||||
Panel,
|
||||
ReactFlow,
|
||||
type Connection,
|
||||
type NodeTypes,
|
||||
useEdgesState,
|
||||
useNodesState,
|
||||
useReactFlow,
|
||||
} from "@xyflow/react";
|
||||
import "@xyflow/react/dist/style.css";
|
||||
import { useState } from "react";
|
||||
import {
|
||||
ADDABLE_SERVICE_KINDS,
|
||||
createInitialDeploymentGraph,
|
||||
createServiceNode,
|
||||
type DeploymentEdge,
|
||||
type DeploymentNode,
|
||||
type ServiceKind,
|
||||
} from "./deployment-model";
|
||||
import { DeploymentNodeCard } from "./deployment-node";
|
||||
|
||||
const NODE_TYPES = {
|
||||
deployment: DeploymentNodeCard,
|
||||
} satisfies NodeTypes;
|
||||
|
||||
const SERVICE_MENU_ITEMS = [
|
||||
{ kind: "serverless", label: "Serverless", icon: <CloudArrowUpIcon size={16} /> },
|
||||
{ kind: "server", label: "Server", icon: <HardDrivesIcon size={16} /> },
|
||||
{ kind: "postgres", label: "Postgres", icon: <DatabaseIcon size={16} /> },
|
||||
{ kind: "convex", label: "Convex", icon: <LightningIcon size={16} /> },
|
||||
{ kind: "redis", label: "Redis", icon: <StackIcon size={16} /> },
|
||||
{ kind: "worker", label: "Worker", icon: <CpuIcon size={16} /> },
|
||||
] satisfies readonly {
|
||||
kind: typeof ADDABLE_SERVICE_KINDS[number],
|
||||
label: string,
|
||||
icon: React.ReactNode,
|
||||
}[];
|
||||
|
||||
function GraphControls(props: {
|
||||
onReset: () => void,
|
||||
}) {
|
||||
const { fitView } = useReactFlow<DeploymentNode, DeploymentEdge>();
|
||||
|
||||
return (
|
||||
<Panel className="flex gap-2" position="top-right">
|
||||
<DesignButton
|
||||
className="gap-1.5 bg-background/90 shadow-sm backdrop-blur-xl"
|
||||
onClick={async () => {
|
||||
await fitView({ duration: 200, padding: 0.2 });
|
||||
}}
|
||||
size="sm"
|
||||
variant="outline"
|
||||
>
|
||||
<ArrowsOutIcon size={15} />
|
||||
Fit view
|
||||
</DesignButton>
|
||||
<DesignButton
|
||||
className="gap-1.5 bg-background/90 shadow-sm backdrop-blur-xl"
|
||||
onClick={props.onReset}
|
||||
size="sm"
|
||||
variant="outline"
|
||||
>
|
||||
<ArrowCounterClockwiseIcon size={15} />
|
||||
Reset
|
||||
</DesignButton>
|
||||
</Panel>
|
||||
);
|
||||
}
|
||||
|
||||
function miniMapColor(node: DeploymentNode): string {
|
||||
const colors = new Map<ServiceKind, string>([
|
||||
["serverless", "#3b82f6"],
|
||||
["server", "#64748b"],
|
||||
["postgres", "#06b6d4"],
|
||||
["convex", "#f97316"],
|
||||
["redis", "#ef4444"],
|
||||
["worker", "#a855f7"],
|
||||
["public-internet", "#10b981"],
|
||||
["hexclave", "#8b5cf6"],
|
||||
]);
|
||||
const color = colors.get(node.data.kind);
|
||||
if (color == null) {
|
||||
throw new Error(`Missing minimap color for deployment service kind "${node.data.kind}".`);
|
||||
}
|
||||
return color;
|
||||
}
|
||||
|
||||
export function DeploymentGraph({ projectId }: { projectId: string }) {
|
||||
const [initialGraph] = useState(() => createInitialDeploymentGraph(projectId));
|
||||
const [nodes, setNodes, onNodesChange] = useNodesState<DeploymentNode>(initialGraph.nodes);
|
||||
const [edges, setEdges, onEdgesChange] = useEdgesState<DeploymentEdge>(initialGraph.edges);
|
||||
|
||||
function addService(kind: ServiceKind) {
|
||||
setNodes((currentNodes) => [
|
||||
...currentNodes,
|
||||
createServiceNode(kind, currentNodes.filter((node) => !node.data.immutable).length),
|
||||
]);
|
||||
}
|
||||
|
||||
function connect(connection: Connection) {
|
||||
if (connection.sourceHandle == null || connection.targetHandle == null) {
|
||||
throw new Error("Deployment connections must join a specific output to a specific input.");
|
||||
}
|
||||
|
||||
setEdges((currentEdges) => addEdge(
|
||||
{
|
||||
...connection,
|
||||
id: crypto.randomUUID(),
|
||||
type: "smoothstep",
|
||||
animated: true,
|
||||
},
|
||||
currentEdges.filter((edge) => (
|
||||
edge.target !== connection.target
|
||||
|| edge.targetHandle !== connection.targetHandle
|
||||
)),
|
||||
));
|
||||
}
|
||||
|
||||
function resetGraph() {
|
||||
const reset = createInitialDeploymentGraph(projectId);
|
||||
setNodes(reset.nodes);
|
||||
setEdges(reset.edges);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="relative min-h-[560px] flex-1 overflow-hidden rounded-2xl border border-border/70 bg-background shadow-sm">
|
||||
<ReactFlow<DeploymentNode, DeploymentEdge>
|
||||
connectionLineStyle={{ stroke: "hsl(var(--primary))", strokeWidth: 2 }}
|
||||
defaultEdgeOptions={{
|
||||
style: { stroke: "hsl(var(--muted-foreground))", strokeWidth: 1.5 },
|
||||
}}
|
||||
deleteKeyCode={["Backspace", "Delete"]}
|
||||
edges={edges}
|
||||
fitView
|
||||
fitViewOptions={{ maxZoom: 1, padding: 0.2 }}
|
||||
isValidConnection={(connection) => (
|
||||
connection.source !== connection.target
|
||||
&& connection.sourceHandle != null
|
||||
&& connection.targetHandle != null
|
||||
)}
|
||||
maxZoom={1.6}
|
||||
minZoom={0.2}
|
||||
nodeTypes={NODE_TYPES}
|
||||
nodes={nodes}
|
||||
onConnect={connect}
|
||||
onEdgesChange={onEdgesChange}
|
||||
onNodesChange={onNodesChange}
|
||||
panOnScroll
|
||||
proOptions={{ hideAttribution: true }}
|
||||
selectionOnDrag
|
||||
snapGrid={[16, 16]}
|
||||
snapToGrid
|
||||
>
|
||||
<Background
|
||||
color="hsl(var(--muted-foreground))"
|
||||
gap={24}
|
||||
size={1}
|
||||
variant={BackgroundVariant.Dots}
|
||||
/>
|
||||
<Panel position="top-left">
|
||||
<DesignMenu
|
||||
align="start"
|
||||
contentClassName="w-56"
|
||||
items={SERVICE_MENU_ITEMS.map((service) => ({
|
||||
id: service.kind,
|
||||
label: service.label,
|
||||
icon: service.icon,
|
||||
onClick: () => addService(service.kind),
|
||||
}))}
|
||||
label="Service type"
|
||||
triggerLabel="Add service"
|
||||
triggerIcon={<PlusIcon size={15} />}
|
||||
variant="actions"
|
||||
withIcons
|
||||
/>
|
||||
</Panel>
|
||||
<GraphControls onReset={resetGraph} />
|
||||
<Panel
|
||||
className="rounded-xl border border-border/70 bg-background/90 px-3 py-2 text-[11px] text-muted-foreground shadow-sm backdrop-blur-xl"
|
||||
position="bottom-left"
|
||||
>
|
||||
Drag nodes to arrange · Drag between ports to connect · Select and press Delete
|
||||
</Panel>
|
||||
<MiniMap
|
||||
className="!rounded-xl !border !border-border/70 !bg-background/90 !shadow-sm"
|
||||
maskColor="hsl(var(--background) / 0.65)"
|
||||
nodeColor={miniMapColor}
|
||||
pannable
|
||||
zoomable
|
||||
/>
|
||||
</ReactFlow>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@ -0,0 +1,223 @@
|
||||
import type { Edge, Node } from "@xyflow/react";
|
||||
|
||||
export type ServiceKind =
|
||||
| "serverless"
|
||||
| "server"
|
||||
| "postgres"
|
||||
| "convex"
|
||||
| "redis"
|
||||
| "worker"
|
||||
| "public-internet"
|
||||
| "hexclave";
|
||||
|
||||
export type DeploymentField = {
|
||||
id: string,
|
||||
label: string,
|
||||
value: string,
|
||||
secret?: boolean,
|
||||
};
|
||||
|
||||
export type DeploymentNodeData = {
|
||||
kind: ServiceKind,
|
||||
title: string,
|
||||
immutable: boolean,
|
||||
inputs: DeploymentField[],
|
||||
outputs: DeploymentField[],
|
||||
};
|
||||
|
||||
export type DeploymentNode = Node<DeploymentNodeData, "deployment">;
|
||||
export type DeploymentEdge = Edge;
|
||||
|
||||
type ServiceTemplate = {
|
||||
title: string,
|
||||
inputs: readonly string[],
|
||||
outputs: readonly string[],
|
||||
};
|
||||
|
||||
export const ADDABLE_SERVICE_KINDS = [
|
||||
"serverless",
|
||||
"server",
|
||||
"postgres",
|
||||
"convex",
|
||||
"redis",
|
||||
"worker",
|
||||
] as const satisfies readonly ServiceKind[];
|
||||
|
||||
const SERVICE_TEMPLATES = new Map<ServiceKind, ServiceTemplate>([
|
||||
["serverless", {
|
||||
title: "Serverless",
|
||||
inputs: ["DATABASE_URL", "HEXCLAVE_PROJECT_ID"],
|
||||
outputs: ["Deployment URL"],
|
||||
}],
|
||||
["server", {
|
||||
title: "Server",
|
||||
inputs: ["DATABASE_URL", "HEXCLAVE_SECRET_SERVER_KEY"],
|
||||
outputs: ["Deployment URL", "Private address"],
|
||||
}],
|
||||
["postgres", {
|
||||
title: "Postgres",
|
||||
inputs: [],
|
||||
outputs: ["Connection string", "Host"],
|
||||
}],
|
||||
["convex", {
|
||||
title: "Convex",
|
||||
inputs: ["HEXCLAVE_PROJECT_ID"],
|
||||
outputs: ["Deployment URL"],
|
||||
}],
|
||||
["redis", {
|
||||
title: "Redis",
|
||||
inputs: [],
|
||||
outputs: ["Connection string"],
|
||||
}],
|
||||
["worker", {
|
||||
title: "Worker",
|
||||
inputs: ["QUEUE_URL", "HEXCLAVE_SECRET_SERVER_KEY"],
|
||||
outputs: [],
|
||||
}],
|
||||
]);
|
||||
|
||||
function field(id: string, label: string, value = ""): DeploymentField {
|
||||
return { id, label, value };
|
||||
}
|
||||
|
||||
function templateFor(kind: ServiceKind): ServiceTemplate {
|
||||
const template = SERVICE_TEMPLATES.get(kind);
|
||||
if (template == null) {
|
||||
throw new Error(`Service kind "${kind}" cannot be added from the service menu.`);
|
||||
}
|
||||
return template;
|
||||
}
|
||||
|
||||
export function createServiceNode(kind: ServiceKind, index: number): DeploymentNode {
|
||||
const template = templateFor(kind);
|
||||
const nodeId = crypto.randomUUID();
|
||||
|
||||
return {
|
||||
id: nodeId,
|
||||
type: "deployment",
|
||||
position: {
|
||||
x: 360 + (index % 3) * 80,
|
||||
y: 100 + (index % 5) * 70,
|
||||
},
|
||||
data: {
|
||||
kind,
|
||||
title: `${template.title} ${index + 1}`,
|
||||
immutable: false,
|
||||
inputs: template.inputs.map((label, fieldIndex) => field(`${nodeId}-input-${fieldIndex}`, label)),
|
||||
outputs: template.outputs.map((label, fieldIndex) => field(`${nodeId}-output-${fieldIndex}`, label)),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export function createInitialDeploymentGraph(projectId: string): {
|
||||
nodes: DeploymentNode[],
|
||||
edges: DeploymentEdge[],
|
||||
} {
|
||||
const hexclaveProjectIdHandle = "hexclave-project-id";
|
||||
const hexclaveSecretKeyHandle = "hexclave-secret-server-key";
|
||||
const postgresConnectionHandle = "postgres-connection-string";
|
||||
const serverlessProjectInput = "serverless-project-id";
|
||||
const serverlessDatabaseInput = "serverless-database-url";
|
||||
const serverlessUrlHandle = "serverless-deployment-url";
|
||||
const publicDomainHandle = "public-domain-app";
|
||||
|
||||
return {
|
||||
nodes: [
|
||||
{
|
||||
id: "public-internet",
|
||||
type: "deployment",
|
||||
position: { x: 1050, y: 80 },
|
||||
deletable: false,
|
||||
data: {
|
||||
kind: "public-internet",
|
||||
title: "Public internet",
|
||||
immutable: true,
|
||||
inputs: [
|
||||
field(publicDomainHandle, "Domain", "app.example.com"),
|
||||
field("public-domain-api", "Domain", "api.example.com"),
|
||||
],
|
||||
outputs: [],
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "hexclave",
|
||||
type: "deployment",
|
||||
position: { x: 0, y: 120 },
|
||||
deletable: false,
|
||||
data: {
|
||||
kind: "hexclave",
|
||||
title: "Hexclave",
|
||||
immutable: true,
|
||||
inputs: [],
|
||||
outputs: [
|
||||
field(hexclaveProjectIdHandle, "Project ID", projectId),
|
||||
{ ...field(hexclaveSecretKeyHandle, "Secret server key", "••••••••••••"), secret: true },
|
||||
field("hexclave-publishable-key", "Publishable client key", "pck_••••••••"),
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "postgres-main",
|
||||
type: "deployment",
|
||||
position: { x: 40, y: 500 },
|
||||
data: {
|
||||
kind: "postgres",
|
||||
title: "Primary database",
|
||||
immutable: false,
|
||||
inputs: [],
|
||||
outputs: [
|
||||
field(postgresConnectionHandle, "Connection string", "postgresql://••••••••"),
|
||||
field("postgres-host", "Host", "db.internal"),
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "serverless-web",
|
||||
type: "deployment",
|
||||
position: { x: 540, y: 220 },
|
||||
data: {
|
||||
kind: "serverless",
|
||||
title: "Web application",
|
||||
immutable: false,
|
||||
inputs: [
|
||||
field(serverlessProjectInput, "HEXCLAVE_PROJECT_ID"),
|
||||
field(serverlessDatabaseInput, "DATABASE_URL"),
|
||||
field("serverless-api-key", "THIRD_PARTY_API_KEY", "sk_live_••••"),
|
||||
],
|
||||
outputs: [
|
||||
field(serverlessUrlHandle, "Deployment URL", "https://web.example.dev"),
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
edges: [
|
||||
{
|
||||
id: "hexclave-project-to-web",
|
||||
source: "hexclave",
|
||||
sourceHandle: hexclaveProjectIdHandle,
|
||||
target: "serverless-web",
|
||||
targetHandle: serverlessProjectInput,
|
||||
type: "smoothstep",
|
||||
animated: true,
|
||||
},
|
||||
{
|
||||
id: "postgres-to-web",
|
||||
source: "postgres-main",
|
||||
sourceHandle: postgresConnectionHandle,
|
||||
target: "serverless-web",
|
||||
targetHandle: serverlessDatabaseInput,
|
||||
type: "smoothstep",
|
||||
animated: true,
|
||||
},
|
||||
{
|
||||
id: "web-to-public-domain",
|
||||
source: "serverless-web",
|
||||
sourceHandle: serverlessUrlHandle,
|
||||
target: "public-internet",
|
||||
targetHandle: publicDomainHandle,
|
||||
type: "smoothstep",
|
||||
animated: true,
|
||||
},
|
||||
],
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,265 @@
|
||||
"use client";
|
||||
|
||||
import { DesignButton, DesignInput } from "@/components/design-components";
|
||||
import { cn } from "@/lib/utils";
|
||||
import {
|
||||
CloudArrowUpIcon,
|
||||
CpuIcon,
|
||||
DatabaseIcon,
|
||||
GlobeHemisphereWestIcon,
|
||||
HardDrivesIcon,
|
||||
HexagonIcon,
|
||||
LightningIcon,
|
||||
PlusIcon,
|
||||
StackIcon,
|
||||
TrashIcon,
|
||||
type Icon as PhosphorIcon,
|
||||
} from "@phosphor-icons/react";
|
||||
import {
|
||||
Handle,
|
||||
Position,
|
||||
type NodeProps,
|
||||
useReactFlow,
|
||||
useStore,
|
||||
} from "@xyflow/react";
|
||||
import { useMemo } from "react";
|
||||
import type {
|
||||
DeploymentEdge,
|
||||
DeploymentField,
|
||||
DeploymentNode,
|
||||
ServiceKind,
|
||||
} from "./deployment-model";
|
||||
|
||||
const SERVICE_ICONS = new Map<ServiceKind, PhosphorIcon>([
|
||||
["serverless", CloudArrowUpIcon],
|
||||
["server", HardDrivesIcon],
|
||||
["postgres", DatabaseIcon],
|
||||
["convex", LightningIcon],
|
||||
["redis", StackIcon],
|
||||
["worker", CpuIcon],
|
||||
["public-internet", GlobeHemisphereWestIcon],
|
||||
["hexclave", HexagonIcon],
|
||||
]);
|
||||
|
||||
const SERVICE_ACCENTS = new Map<ServiceKind, string>([
|
||||
["serverless", "bg-blue-500/10 text-blue-600 dark:text-blue-400"],
|
||||
["server", "bg-slate-500/10 text-slate-600 dark:text-slate-300"],
|
||||
["postgres", "bg-cyan-500/10 text-cyan-600 dark:text-cyan-400"],
|
||||
["convex", "bg-orange-500/10 text-orange-600 dark:text-orange-400"],
|
||||
["redis", "bg-red-500/10 text-red-600 dark:text-red-400"],
|
||||
["worker", "bg-purple-500/10 text-purple-600 dark:text-purple-400"],
|
||||
["public-internet", "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400"],
|
||||
["hexclave", "bg-purple-500/10 text-purple-600 dark:text-purple-400"],
|
||||
]);
|
||||
|
||||
function mapValueOrThrow<TKey, TValue>(map: Map<TKey, TValue>, key: TKey, name: string): TValue {
|
||||
const value = map.get(key);
|
||||
if (value == null) {
|
||||
throw new Error(`Missing ${name} for deployment service kind "${String(key)}".`);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
function FieldHandle(props: {
|
||||
field: DeploymentField,
|
||||
direction: "input" | "output",
|
||||
connected: boolean,
|
||||
keepValueWhenConnected?: boolean,
|
||||
onLabelChange?: (label: string) => void,
|
||||
onValueChange?: (value: string) => void,
|
||||
}) {
|
||||
const isInput = props.direction === "input";
|
||||
|
||||
return (
|
||||
<div className="relative px-3 py-2.5">
|
||||
<Handle
|
||||
id={props.field.id}
|
||||
type={isInput ? "target" : "source"}
|
||||
position={isInput ? Position.Left : Position.Right}
|
||||
className={cn(
|
||||
"!h-3 !w-3 !border-2 !border-background !shadow-sm",
|
||||
props.connected ? "!bg-blue-500" : "!bg-muted-foreground",
|
||||
)}
|
||||
/>
|
||||
<div className="mb-1 flex items-center justify-between gap-3">
|
||||
{props.onLabelChange ? (
|
||||
<DesignInput
|
||||
aria-label="Environment variable key"
|
||||
className="nodrag nowheel min-w-0 flex-1 font-mono"
|
||||
onChange={(event) => props.onLabelChange?.(event.target.value)}
|
||||
size="sm"
|
||||
value={props.field.label}
|
||||
/>
|
||||
) : (
|
||||
<span className="truncate text-[10px] font-semibold uppercase tracking-wider text-muted-foreground">
|
||||
{props.field.label}
|
||||
</span>
|
||||
)}
|
||||
{props.connected && (
|
||||
<span className="text-[10px] font-medium text-blue-600 dark:text-blue-400">
|
||||
Connected
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
{isInput && props.onValueChange ? (
|
||||
<DesignInput
|
||||
aria-label={`${props.field.label} value`}
|
||||
className="nodrag nowheel"
|
||||
disabled={props.connected}
|
||||
onChange={(event) => props.onValueChange?.(event.target.value)}
|
||||
placeholder={props.connected ? "Value supplied by connection" : "Enter a value"}
|
||||
size="sm"
|
||||
value={props.connected && !props.keepValueWhenConnected ? "" : props.field.value}
|
||||
/>
|
||||
) : (
|
||||
<div
|
||||
className="truncate rounded-lg bg-foreground/[0.035] px-2.5 py-1.5 font-mono text-[11px] text-foreground"
|
||||
title={props.field.secret ? "Secret value hidden" : props.field.value}
|
||||
>
|
||||
{props.field.value || "Available after deploy"}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export function DeploymentNodeCard({
|
||||
id,
|
||||
data,
|
||||
selected,
|
||||
}: NodeProps<DeploymentNode>) {
|
||||
const edges = useStore((state) => state.edges);
|
||||
const { deleteElements, updateNodeData } = useReactFlow<DeploymentNode, DeploymentEdge>();
|
||||
const Icon = mapValueOrThrow(SERVICE_ICONS, data.kind, "service icon");
|
||||
const accent = mapValueOrThrow(SERVICE_ACCENTS, data.kind, "service accent");
|
||||
|
||||
const connectedInputHandles = useMemo(() => new Set(
|
||||
edges
|
||||
.filter((edge) => edge.target === id && edge.targetHandle != null)
|
||||
.map((edge) => edge.targetHandle)
|
||||
.filter((handle) => handle != null),
|
||||
), [edges, id]);
|
||||
|
||||
const connectedOutputHandles = useMemo(() => new Set(
|
||||
edges
|
||||
.filter((edge) => edge.source === id && edge.sourceHandle != null)
|
||||
.map((edge) => edge.sourceHandle)
|
||||
.filter((handle) => handle != null),
|
||||
), [edges, id]);
|
||||
|
||||
function updateInput(fieldId: string, value: string) {
|
||||
updateNodeData(id, {
|
||||
inputs: data.inputs.map((input) => input.id === fieldId ? { ...input, value } : input),
|
||||
});
|
||||
}
|
||||
|
||||
function updateInputLabel(fieldId: string, label: string) {
|
||||
updateNodeData(id, {
|
||||
inputs: data.inputs.map((input) => input.id === fieldId ? { ...input, label } : input),
|
||||
});
|
||||
}
|
||||
|
||||
function addInput() {
|
||||
const isDomain = data.kind === "public-internet";
|
||||
updateNodeData(id, {
|
||||
inputs: [
|
||||
...data.inputs,
|
||||
{
|
||||
id: `${id}-${crypto.randomUUID()}`,
|
||||
label: isDomain ? "Domain" : "NEW_ENV_VAR",
|
||||
value: isDomain ? "new.example.com" : "",
|
||||
},
|
||||
],
|
||||
});
|
||||
}
|
||||
|
||||
return (
|
||||
<div
|
||||
className={cn(
|
||||
"w-[320px] overflow-hidden rounded-2xl border bg-background/95 shadow-lg backdrop-blur-xl",
|
||||
"transition-[border-color,box-shadow] duration-150 hover:transition-none",
|
||||
selected
|
||||
? "border-blue-500/70 shadow-blue-500/10 ring-2 ring-blue-500/15"
|
||||
: "border-border/80 hover:border-foreground/20",
|
||||
)}
|
||||
>
|
||||
<div className="flex items-center gap-3 border-b border-border/70 p-3">
|
||||
<div className={cn("flex h-9 w-9 shrink-0 items-center justify-center rounded-xl", accent)}>
|
||||
<Icon size={19} weight="duotone" />
|
||||
</div>
|
||||
<div className="min-w-0 flex-1">
|
||||
{data.immutable ? (
|
||||
<>
|
||||
<div className="truncate text-sm font-semibold text-foreground">{data.title}</div>
|
||||
<div className="text-[11px] text-muted-foreground">Managed by Hexclave</div>
|
||||
</>
|
||||
) : (
|
||||
<DesignInput
|
||||
aria-label="Service name"
|
||||
className="nodrag nowheel"
|
||||
onChange={(event) => updateNodeData(id, { title: event.target.value })}
|
||||
size="sm"
|
||||
value={data.title}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
{!data.immutable && (
|
||||
<DesignButton
|
||||
aria-label={`Delete ${data.title}`}
|
||||
className="nodrag h-8 w-8 shrink-0 p-0 text-muted-foreground"
|
||||
onClick={async () => {
|
||||
await deleteElements({ nodes: [{ id }] });
|
||||
}}
|
||||
size="icon"
|
||||
variant="ghost"
|
||||
>
|
||||
<TrashIcon size={16} />
|
||||
</DesignButton>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{data.inputs.length > 0 && (
|
||||
<div className="divide-y divide-border/60">
|
||||
{data.inputs.map((input) => (
|
||||
<FieldHandle
|
||||
key={input.id}
|
||||
connected={connectedInputHandles.has(input.id)}
|
||||
direction="input"
|
||||
field={input}
|
||||
keepValueWhenConnected={data.kind === "public-internet"}
|
||||
onLabelChange={data.kind === "public-internet" ? undefined : (label) => updateInputLabel(input.id, label)}
|
||||
onValueChange={(value) => updateInput(input.id, value)}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
|
||||
{data.outputs.length > 0 && (
|
||||
<div className="divide-y divide-border/60 border-t border-border/70 bg-foreground/[0.018]">
|
||||
{data.outputs.map((output) => (
|
||||
<FieldHandle
|
||||
key={output.id}
|
||||
connected={connectedOutputHandles.has(output.id)}
|
||||
direction="output"
|
||||
field={output}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
|
||||
{data.kind !== "hexclave" && (
|
||||
<div className="border-t border-border/70 p-2">
|
||||
<DesignButton
|
||||
className="nodrag w-full justify-center gap-1.5 text-xs"
|
||||
onClick={addInput}
|
||||
size="sm"
|
||||
variant="ghost"
|
||||
>
|
||||
<PlusIcon size={13} />
|
||||
{data.kind === "public-internet" ? "Add domain" : "Add environment variable"}
|
||||
</DesignButton>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
"use client";
|
||||
|
||||
import { AppEnabledGuard } from "../app-enabled-guard";
|
||||
import { PageLayout } from "../page-layout";
|
||||
import { useAdminApp } from "../use-admin-app";
|
||||
import { DeploymentGraph } from "./deployment-graph";
|
||||
|
||||
export default function PageClient() {
|
||||
const project = useAdminApp().useProject();
|
||||
|
||||
return (
|
||||
<AppEnabledGuard appId="deployments">
|
||||
<PageLayout
|
||||
containedHeight
|
||||
description="Map services, credentials, databases, and public routes into a connected deployment graph."
|
||||
fillWidth
|
||||
title="Deployments"
|
||||
>
|
||||
<DeploymentGraph projectId={project.id} />
|
||||
</PageLayout>
|
||||
</AppEnabledGuard>
|
||||
);
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
import PageClient from "./page-client";
|
||||
|
||||
export const metadata = {
|
||||
title: "Deployments",
|
||||
};
|
||||
|
||||
export default function Page() {
|
||||
return <PageClient />;
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
import type { JSX } from "react";
|
||||
import { Link } from "@/components/link";
|
||||
import { ChartLineIcon, ChatCircleDotsIcon, ClipboardTextIcon, CodeIcon, CreditCardIcon, CursorClickIcon, EnvelopeSimpleIcon, FingerprintSimpleIcon, KeyIcon, MailboxIcon, MonitorPlayIcon, RocketIcon, ShieldCheckIcon, SparkleIcon, TelevisionSimpleIcon, TerminalWindowIcon, TriangleIcon, UserGearIcon, UsersIcon, VaultIcon, WebhooksLogoIcon } from "@phosphor-icons/react";
|
||||
import { ChartLineIcon, ChatCircleDotsIcon, ClipboardTextIcon, CloudArrowUpIcon, CodeIcon, CreditCardIcon, CursorClickIcon, EnvelopeSimpleIcon, FingerprintSimpleIcon, KeyIcon, MailboxIcon, MonitorPlayIcon, RocketIcon, ShieldCheckIcon, SparkleIcon, TelevisionSimpleIcon, TerminalWindowIcon, TriangleIcon, UserGearIcon, UsersIcon, VaultIcon, WebhooksLogoIcon } from "@phosphor-icons/react";
|
||||
import { StackAdminApp } from "@hexclave/next";
|
||||
import type { AppId } from "@hexclave/shared/dist/apps/apps-config";
|
||||
import { getRelativePart, isChildUrl } from "@hexclave/shared/dist/utils/urls";
|
||||
@ -437,6 +437,20 @@ export const ALL_APPS_FRONTEND = {
|
||||
</>
|
||||
),
|
||||
},
|
||||
deployments: {
|
||||
icon: CloudArrowUpIcon,
|
||||
href: "deployments",
|
||||
navigationItems: [
|
||||
{ displayName: "Deployments", href: "." },
|
||||
],
|
||||
screenshots: [],
|
||||
storeDescription: (
|
||||
<>
|
||||
<p>Deployments turns your project architecture into a visual, connected service graph.</p>
|
||||
<p>Map compute, databases, public domains, environment variables, and Hexclave credentials in one place.</p>
|
||||
</>
|
||||
),
|
||||
},
|
||||
} as const satisfies Record<AppId, AppFrontend>;
|
||||
|
||||
function createSvgIcon(ChildrenComponent: () => React.ReactNode): (props: any) => React.ReactNode {
|
||||
|
||||
@ -48,7 +48,7 @@
|
||||
"db:regen-internal-subscriptions-to-latest": "pnpm pre && pnpm run --filter=@hexclave/backend db:regen-internal-subscriptions-to-latest",
|
||||
"dev:full": "pnpm pre && concurrently -k \"pnpm run build-packages:watch\" \"pnpm run generate-sdks:watch\" \"pnpm run generate-setup-prompt-docs:watch\" \"turbo run dev --concurrency 99999\"",
|
||||
"dev": "pnpm pre && concurrently -k \"pnpm run build-packages:watch\" \"pnpm run generate-sdks:watch\" \"pnpm run generate-openapi-docs:watch\" \"pnpm run generate-setup-prompt-docs:watch\" \"turbo run dev --concurrency 99999 --filter=./apps/* --filter=@hexclave/docs-mintlify --filter=./packages/* --filter=./examples/demo --filter=./examples/tanstack-start-demo \"",
|
||||
"dev:tui": "pnpm pre && (trap 'kill 0' EXIT; pnpm run build-packages:watch & pnpm run generate-sdks:watch & pnpm run generate-openapi-docs:watch & pnpm run generate-setup-prompt-docs:watch & turbo run dev --ui tui --concurrency 99999 --filter=./apps/* --filter=@hexclave/docs-mintlify --filter=./packages/* --filter=./examples/demo --filter=./examples/tanstack-start-demo)",
|
||||
"dev:tui": "pnpm pre && turbo run dev --ui tui --concurrency 99999 --filter=./apps/* --filter=@hexclave/docs-mintlify --filter=./packages/* --filter=./examples/demo --filter=./examples/tanstack-start-demo",
|
||||
"dev:inspect": "pnpm pre && STACK_BACKEND_DEV_EXTRA_ARGS=\"--inspect\" pnpm run dev",
|
||||
"dev:profile": "pnpm pre && STACK_BACKEND_DEV_EXTRA_ARGS=\"--experimental-cpu-prof\" pnpm run dev",
|
||||
"dev:basic": "pnpm pre && concurrently -k \"pnpm run build-packages:watch\" \"pnpm run generate-sdks:watch\" \"turbo run dev --concurrency 99999 --filter=@hexclave/backend --filter=@hexclave/bulldozer-js --filter=@hexclave/mcp --filter=@hexclave/dashboard --filter=@hexclave/mock-oauth-server\"",
|
||||
|
||||
@ -193,6 +193,12 @@ export const ALL_APPS = {
|
||||
stage: "alpha",
|
||||
parentAppId: "authentication",
|
||||
},
|
||||
"deployments": {
|
||||
displayName: "Deployments",
|
||||
subtitle: "Design and connect your deployment architecture",
|
||||
tags: ["developers", "operations"],
|
||||
stage: "alpha",
|
||||
},
|
||||
} as const satisfies Record<string, App>;
|
||||
|
||||
export function getParentAppId(appId: AppId): AppId | null {
|
||||
|
||||
314
pnpm-lock.yaml
314
pnpm-lock.yaml
@ -533,6 +533,9 @@ importers:
|
||||
'@vercel/speed-insights':
|
||||
specifier: ^1.0.12
|
||||
version: 1.0.12(next@16.2.9(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)
|
||||
'@xyflow/react':
|
||||
specifier: ^12.11.1
|
||||
version: 12.11.1(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(immer@9.0.21)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||
ai:
|
||||
specifier: ^6.0.0
|
||||
version: 6.0.81(zod@4.1.12)
|
||||
@ -795,7 +798,7 @@ importers:
|
||||
version: 1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
|
||||
'@tanstack/react-start':
|
||||
specifier: ^1.121.3
|
||||
version: 1.166.6(crossws@0.4.4(srvx@0.8.16))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))
|
||||
version: 1.166.6(crossws@0.4.4(srvx@0.8.16))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))
|
||||
'@tanstack/react-start-client':
|
||||
specifier: ^1.121.3
|
||||
version: 1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
|
||||
@ -810,7 +813,7 @@ importers:
|
||||
version: 1.166.6
|
||||
'@tanstack/start-plugin-core':
|
||||
specifier: ^1.121.3
|
||||
version: 1.166.6(@tanstack/react-router@1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(crossws@0.4.4(srvx@0.8.16))(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))
|
||||
version: 1.166.6(@tanstack/react-router@1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(crossws@0.4.4(srvx@0.8.16))(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))
|
||||
'@tanstack/start-server-core':
|
||||
specifier: ^1.121.3
|
||||
version: 1.166.6(crossws@0.4.4(srvx@0.8.16))
|
||||
@ -834,7 +837,7 @@ importers:
|
||||
version: 0.468.0(react@19.2.1)
|
||||
nitro:
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.0(@electric-sql/pglite@0.3.2)(chokidar@4.0.3)(lru-cache@11.2.2)(mysql2@3.15.3)(rolldown@1.1.2)(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(xml2js@0.6.2)
|
||||
version: 3.0.0(@electric-sql/pglite@0.3.2)(chokidar@4.0.3)(lru-cache@11.2.2)(mysql2@3.15.3)(rolldown@1.1.2)(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(xml2js@0.6.2)
|
||||
qrcode:
|
||||
specifier: ^1.5.4
|
||||
version: 1.5.4
|
||||
@ -871,7 +874,7 @@ importers:
|
||||
version: 19.2.3(@types/react@19.2.7)
|
||||
'@vitejs/plugin-react':
|
||||
specifier: ^5.0.0
|
||||
version: 5.1.4(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))
|
||||
version: 5.1.4(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))
|
||||
autoprefixer:
|
||||
specifier: ^10.4.20
|
||||
version: 10.4.21(postcss@8.5.6)
|
||||
@ -889,10 +892,10 @@ importers:
|
||||
version: 6.0.3
|
||||
vite:
|
||||
specifier: ^7.0.0
|
||||
version: 7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)
|
||||
version: 7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)
|
||||
vite-tsconfig-paths:
|
||||
specifier: ^4.3.2
|
||||
version: 4.3.2(typescript@6.0.3)(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))
|
||||
version: 4.3.2(typescript@6.0.3)(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))
|
||||
|
||||
apps/internal-tool:
|
||||
dependencies:
|
||||
@ -1182,7 +1185,7 @@ importers:
|
||||
devDependencies:
|
||||
mint:
|
||||
specifier: ^4.2.487
|
||||
version: 4.2.487(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/node@20.17.6)(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
version: 4.2.487(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/node@20.17.6)(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
|
||||
examples/cjs-test:
|
||||
dependencies:
|
||||
@ -2437,7 +2440,7 @@ importers:
|
||||
devDependencies:
|
||||
'@quetzallabs/i18n':
|
||||
specifier: ^0.1.19
|
||||
version: 0.1.19(next@16.2.9(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))
|
||||
version: 0.1.19(next@16.2.9(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))
|
||||
'@tanstack/react-router':
|
||||
specifier: ^1.167.4
|
||||
version: 1.169.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||
@ -10299,6 +10302,22 @@ packages:
|
||||
'@xtuc/long@4.2.2':
|
||||
resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
|
||||
|
||||
'@xyflow/react@12.11.1':
|
||||
resolution: {integrity: sha512-L+zBoLGSXham0MnlY8QqjfR7/C5JNw0zxkaey5aZ5XmCgJBAdH4+WRIu8CR40d3l/BdU635V6YbhBK1jMo8/6Q==}
|
||||
peerDependencies:
|
||||
'@types/react': 19.2.7
|
||||
'@types/react-dom': 19.2.3
|
||||
react: '>=17'
|
||||
react-dom: '>=17'
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@xyflow/system@0.0.78':
|
||||
resolution: {integrity: sha512-lY0z2qP33fUhTva9Vaxrk0lqZta2pkbxB1trHAx1omnJqRtPvDlAQYV2r5fhS6AdpkulYmbNW0svy+A4/t4B/g==}
|
||||
|
||||
'@zeit/schemas@2.36.0':
|
||||
resolution: {integrity: sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==}
|
||||
|
||||
@ -11096,6 +11115,9 @@ packages:
|
||||
class-variance-authority@0.7.1:
|
||||
resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
|
||||
|
||||
classcat@5.0.5:
|
||||
resolution: {integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==}
|
||||
|
||||
classnames@2.5.1:
|
||||
resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
|
||||
|
||||
@ -18605,6 +18627,21 @@ packages:
|
||||
zod@4.3.6:
|
||||
resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==}
|
||||
|
||||
zustand@4.5.7:
|
||||
resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==}
|
||||
engines: {node: '>=12.7.0'}
|
||||
peerDependencies:
|
||||
'@types/react': 19.2.7
|
||||
immer: '>=9.0.6'
|
||||
react: '>=16.8'
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
immer:
|
||||
optional: true
|
||||
react:
|
||||
optional: true
|
||||
|
||||
zustand@5.0.6:
|
||||
resolution: {integrity: sha512-ihAqNeUVhe0MAD+X8M5UzqyZ9k3FFZLBTtqo6JLPwV53cbRB/mJwBI0PxcIgqhBBHlEs8G45OTDTMq3gNcLq3A==}
|
||||
engines: {node: '>=12.20.0'}
|
||||
@ -21585,13 +21622,13 @@ snapshots:
|
||||
dependencies:
|
||||
'@chevrotain/types': 11.1.2
|
||||
|
||||
'@mintlify/cli@4.0.1090(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/node@20.17.6)(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)':
|
||||
'@mintlify/cli@4.0.1090(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/node@20.17.6)(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)':
|
||||
dependencies:
|
||||
'@inquirer/prompts': 7.9.0(@types/node@20.17.6)
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/link-rot': 3.0.1010(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/prebuild': 1.0.977(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/previewing': 4.0.1038(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/link-rot': 3.0.1010(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/prebuild': 1.0.977(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/previewing': 4.0.1038(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/validation': 0.1.653(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@6.0.3)
|
||||
adm-zip: 0.5.16
|
||||
chalk: 5.2.0
|
||||
@ -21691,7 +21728,7 @@ snapshots:
|
||||
- ts-node
|
||||
- typescript
|
||||
|
||||
'@mintlify/common@1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)':
|
||||
'@mintlify/common@1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)':
|
||||
dependencies:
|
||||
'@asyncapi/parser': 3.4.0
|
||||
'@asyncapi/specs': 6.8.1
|
||||
@ -21733,7 +21770,7 @@ snapshots:
|
||||
remark-rehype: 11.1.1
|
||||
remark-stringify: 11.0.0
|
||||
sucrase: 3.35.0
|
||||
tailwindcss: 3.4.18(tsx@4.19.3)(yaml@2.6.0)
|
||||
tailwindcss: 3.4.18(tsx@4.21.0)(yaml@2.8.0)
|
||||
unified: 11.0.5
|
||||
unist-builder: 4.0.0
|
||||
unist-util-map: 4.0.0
|
||||
@ -21755,7 +21792,7 @@ snapshots:
|
||||
- typescript
|
||||
- yaml
|
||||
|
||||
'@mintlify/common@1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)':
|
||||
'@mintlify/common@1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)':
|
||||
dependencies:
|
||||
'@asyncapi/parser': 3.4.0
|
||||
'@asyncapi/specs': 6.8.1
|
||||
@ -21797,7 +21834,7 @@ snapshots:
|
||||
remark-rehype: 11.1.1
|
||||
remark-stringify: 11.0.0
|
||||
sucrase: 3.35.0
|
||||
tailwindcss: 3.4.18(tsx@4.19.3)(yaml@2.6.0)
|
||||
tailwindcss: 3.4.18(tsx@4.21.0)(yaml@2.8.0)
|
||||
unified: 11.0.5
|
||||
unist-builder: 4.0.0
|
||||
unist-util-map: 4.0.0
|
||||
@ -21819,11 +21856,11 @@ snapshots:
|
||||
- typescript
|
||||
- yaml
|
||||
|
||||
'@mintlify/link-rot@3.0.1010(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)':
|
||||
'@mintlify/link-rot@3.0.1010(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)':
|
||||
dependencies:
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/prebuild': 1.0.977(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/previewing': 4.0.1038(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/prebuild': 1.0.977(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/previewing': 4.0.1038(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/scraping': 4.0.522(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(typescript@6.0.3)
|
||||
'@mintlify/validation': 0.1.653(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(typescript@6.0.3)
|
||||
fs-extra: 11.1.0
|
||||
@ -21921,11 +21958,11 @@ snapshots:
|
||||
leven: 4.0.0
|
||||
yaml: 2.8.0
|
||||
|
||||
'@mintlify/prebuild@1.0.977(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)':
|
||||
'@mintlify/prebuild@1.0.977(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)':
|
||||
dependencies:
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/openapi-parser': 0.0.8
|
||||
'@mintlify/scraping': 4.0.699(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/scraping': 4.0.699(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/validation': 0.1.653(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(typescript@6.0.3)
|
||||
chalk: 5.3.0
|
||||
favicons: 7.2.0
|
||||
@ -21953,11 +21990,11 @@ snapshots:
|
||||
- utf-8-validate
|
||||
- yaml
|
||||
|
||||
'@mintlify/prebuild@1.0.977(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)':
|
||||
'@mintlify/prebuild@1.0.977(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)':
|
||||
dependencies:
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/openapi-parser': 0.0.8
|
||||
'@mintlify/scraping': 4.0.699(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/scraping': 4.0.699(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/validation': 0.1.653(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@6.0.3)
|
||||
chalk: 5.3.0
|
||||
favicons: 7.2.0
|
||||
@ -21985,10 +22022,10 @@ snapshots:
|
||||
- utf-8-validate
|
||||
- yaml
|
||||
|
||||
'@mintlify/previewing@4.0.1038(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)':
|
||||
'@mintlify/previewing@4.0.1038(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)':
|
||||
dependencies:
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/prebuild': 1.0.977(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/prebuild': 1.0.977(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/validation': 0.1.653(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@6.0.3)
|
||||
adm-zip: 0.5.16
|
||||
better-opn: 3.0.2
|
||||
@ -22058,9 +22095,9 @@ snapshots:
|
||||
- typescript
|
||||
- utf-8-validate
|
||||
|
||||
'@mintlify/scraping@4.0.699(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)':
|
||||
'@mintlify/scraping@4.0.699(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)':
|
||||
dependencies:
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@18.3.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/openapi-parser': 0.0.8
|
||||
fs-extra: 11.1.1
|
||||
hast-util-to-mdast: 10.1.0
|
||||
@ -22093,9 +22130,9 @@ snapshots:
|
||||
- utf-8-validate
|
||||
- yaml
|
||||
|
||||
'@mintlify/scraping@4.0.699(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)':
|
||||
'@mintlify/scraping@4.0.699(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)':
|
||||
dependencies:
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/common': 1.0.835(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
'@mintlify/openapi-parser': 0.0.8
|
||||
fs-extra: 11.1.1
|
||||
hast-util-to-mdast: 10.1.0
|
||||
@ -24237,7 +24274,7 @@ snapshots:
|
||||
- next
|
||||
- supports-color
|
||||
|
||||
'@quetzallabs/i18n@0.1.19(next@16.2.9(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))':
|
||||
'@quetzallabs/i18n@0.1.19(next@16.2.9(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))':
|
||||
dependencies:
|
||||
'@babel/parser': 7.29.0
|
||||
'@babel/traverse': 7.29.0
|
||||
@ -24245,7 +24282,7 @@ snapshots:
|
||||
dotenv: 10.0.0
|
||||
i18next: 21.10.0
|
||||
i18next-parser: 9.0.2
|
||||
next-intl: 3.19.1(next@16.2.9(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@18.3.1)
|
||||
next-intl: 3.19.1(next@16.2.9(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@18.3.1)
|
||||
path: 0.12.7
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
@ -28155,19 +28192,19 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- crossws
|
||||
|
||||
'@tanstack/react-start@1.166.6(crossws@0.4.4(srvx@0.8.16))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))':
|
||||
'@tanstack/react-start@1.166.6(crossws@0.4.4(srvx@0.8.16))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))':
|
||||
dependencies:
|
||||
'@tanstack/react-router': 1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
|
||||
'@tanstack/react-start-client': 1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
|
||||
'@tanstack/react-start-server': 1.166.6(crossws@0.4.4(srvx@0.8.16))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
|
||||
'@tanstack/router-utils': 1.161.4
|
||||
'@tanstack/start-client-core': 1.166.6
|
||||
'@tanstack/start-plugin-core': 1.166.6(@tanstack/react-router@1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(crossws@0.4.4(srvx@0.8.16))(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))
|
||||
'@tanstack/start-plugin-core': 1.166.6(@tanstack/react-router@1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(crossws@0.4.4(srvx@0.8.16))(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))
|
||||
'@tanstack/start-server-core': 1.166.6(crossws@0.4.4(srvx@0.8.16))
|
||||
pathe: 2.0.3
|
||||
react: 19.2.1
|
||||
react-dom: 19.2.1(react@19.2.1)
|
||||
vite: 7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)
|
||||
vite: 7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)
|
||||
transitivePeerDependencies:
|
||||
- '@rsbuild/core'
|
||||
- crossws
|
||||
@ -28332,7 +28369,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@tanstack/router-plugin@1.166.6(@tanstack/react-router@1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))':
|
||||
'@tanstack/router-plugin@1.166.6(@tanstack/react-router@1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))':
|
||||
dependencies:
|
||||
'@babel/core': 7.29.0
|
||||
'@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0)
|
||||
@ -28349,7 +28386,7 @@ snapshots:
|
||||
zod: 3.25.76
|
||||
optionalDependencies:
|
||||
'@tanstack/react-router': 1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
|
||||
vite: 7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)
|
||||
vite: 7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)
|
||||
webpack: 5.92.0(esbuild@0.24.2)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@ -28468,7 +28505,7 @@ snapshots:
|
||||
|
||||
'@tanstack/start-fn-stubs@1.161.6': {}
|
||||
|
||||
'@tanstack/start-plugin-core@1.166.6(@tanstack/react-router@1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(crossws@0.4.4(srvx@0.8.16))(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))':
|
||||
'@tanstack/start-plugin-core@1.166.6(@tanstack/react-router@1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(crossws@0.4.4(srvx@0.8.16))(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))':
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.27.1
|
||||
'@babel/core': 7.28.5
|
||||
@ -28476,7 +28513,7 @@ snapshots:
|
||||
'@rolldown/pluginutils': 1.0.0-beta.40
|
||||
'@tanstack/router-core': 1.166.6
|
||||
'@tanstack/router-generator': 1.166.6
|
||||
'@tanstack/router-plugin': 1.166.6(@tanstack/react-router@1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))
|
||||
'@tanstack/router-plugin': 1.166.6(@tanstack/react-router@1.166.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(webpack@5.92.0(esbuild@0.24.2))
|
||||
'@tanstack/router-utils': 1.161.4
|
||||
'@tanstack/start-client-core': 1.166.6
|
||||
'@tanstack/start-server-core': 1.166.6(crossws@0.4.4(srvx@0.8.16))
|
||||
@ -28488,8 +28525,8 @@ snapshots:
|
||||
srvx: 0.11.9
|
||||
tinyglobby: 0.2.15
|
||||
ufo: 1.5.4
|
||||
vite: 7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)
|
||||
vitefu: 1.1.2(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))
|
||||
vite: 7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)
|
||||
vitefu: 1.1.2(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))
|
||||
xmlbuilder2: 4.0.3
|
||||
zod: 3.25.76
|
||||
transitivePeerDependencies:
|
||||
@ -29364,18 +29401,6 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@vitejs/plugin-react@5.1.4(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))':
|
||||
dependencies:
|
||||
'@babel/core': 7.29.0
|
||||
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0)
|
||||
'@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0)
|
||||
'@rolldown/pluginutils': 1.0.0-rc.3
|
||||
'@types/babel__core': 7.20.5
|
||||
react-refresh: 0.18.0
|
||||
vite: 7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@vitejs/plugin-react@5.1.4(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))':
|
||||
dependencies:
|
||||
'@babel/core': 7.29.0
|
||||
@ -29501,6 +29526,31 @@ snapshots:
|
||||
|
||||
'@xtuc/long@4.2.2': {}
|
||||
|
||||
'@xyflow/react@12.11.1(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(immer@9.0.21)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
|
||||
dependencies:
|
||||
'@xyflow/system': 0.0.78
|
||||
classcat: 5.0.5
|
||||
react: 19.2.3
|
||||
react-dom: 19.2.3(react@19.2.3)
|
||||
zustand: 4.5.7(@types/react@19.2.7)(immer@9.0.21)(react@19.2.3)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.7
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.7)
|
||||
transitivePeerDependencies:
|
||||
- immer
|
||||
|
||||
'@xyflow/system@0.0.78':
|
||||
dependencies:
|
||||
'@types/d3-drag': 3.0.7
|
||||
'@types/d3-interpolate': 3.0.4
|
||||
'@types/d3-selection': 3.0.11
|
||||
'@types/d3-transition': 3.0.9
|
||||
'@types/d3-zoom': 3.0.8
|
||||
d3-drag: 3.0.0
|
||||
d3-interpolate: 3.0.1
|
||||
d3-selection: 3.0.0
|
||||
d3-zoom: 3.0.0
|
||||
|
||||
'@zeit/schemas@2.36.0': {}
|
||||
|
||||
abbrev@2.0.0: {}
|
||||
@ -30439,6 +30489,8 @@ snapshots:
|
||||
dependencies:
|
||||
clsx: 2.1.1
|
||||
|
||||
classcat@5.0.5: {}
|
||||
|
||||
classnames@2.5.1: {}
|
||||
|
||||
clean-stack@4.2.0:
|
||||
@ -33326,15 +33378,6 @@ snapshots:
|
||||
optionalDependencies:
|
||||
crossws: 0.4.4(srvx@0.8.16)
|
||||
|
||||
h3@2.0.1-rc.2(crossws@0.4.4(srvx@0.11.15)):
|
||||
dependencies:
|
||||
cookie-es: 2.0.0
|
||||
fetchdts: 0.1.7
|
||||
rou3: 0.7.12
|
||||
srvx: 0.8.16
|
||||
optionalDependencies:
|
||||
crossws: 0.4.4(srvx@0.11.15)
|
||||
|
||||
h3@2.0.1-rc.2(crossws@0.4.4(srvx@0.8.16)):
|
||||
dependencies:
|
||||
cookie-es: 2.0.0
|
||||
@ -35358,9 +35401,9 @@ snapshots:
|
||||
dependencies:
|
||||
minipass: 7.1.3
|
||||
|
||||
mint@4.2.487(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/node@20.17.6)(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0):
|
||||
mint@4.2.487(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/node@20.17.6)(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0):
|
||||
dependencies:
|
||||
'@mintlify/cli': 4.0.1090(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/node@20.17.6)(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.19.3)(typescript@6.0.3)(yaml@2.6.0)
|
||||
'@mintlify/cli': 4.0.1090(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/node@20.17.6)(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.0)
|
||||
transitivePeerDependencies:
|
||||
- '@radix-ui/react-popover'
|
||||
- '@types/node'
|
||||
@ -35526,11 +35569,11 @@ snapshots:
|
||||
react: 18.3.1
|
||||
use-intl: 3.19.1(react@18.3.1)
|
||||
|
||||
next-intl@3.19.1(next@16.2.9(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@18.3.1):
|
||||
next-intl@3.19.1(next@16.2.9(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@18.3.1):
|
||||
dependencies:
|
||||
'@formatjs/intl-localematcher': 0.5.4
|
||||
negotiator: 0.6.4
|
||||
next: 16.2.9(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||
next: 16.2.9(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||
react: 18.3.1
|
||||
use-intl: 3.19.1(react@18.3.1)
|
||||
|
||||
@ -35845,58 +35888,6 @@ snapshots:
|
||||
jsonpath-plus: 10.4.0
|
||||
lodash.topath: 4.5.2
|
||||
|
||||
nitro@3.0.0(@electric-sql/pglite@0.3.2)(chokidar@4.0.3)(lru-cache@11.2.2)(mysql2@3.15.3)(rolldown@1.1.2)(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(xml2js@0.6.2):
|
||||
dependencies:
|
||||
consola: 3.4.2
|
||||
cookie-es: 2.0.0
|
||||
crossws: 0.4.4(srvx@0.8.16)
|
||||
db0: 0.3.4(@electric-sql/pglite@0.3.2)(mysql2@3.15.3)
|
||||
esbuild: 0.25.11
|
||||
fetchdts: 0.1.7
|
||||
h3: 2.0.1-rc.2(crossws@0.4.4(srvx@0.8.16))
|
||||
jiti: 2.6.1
|
||||
nf3: 0.1.12
|
||||
ofetch: 1.5.1
|
||||
ohash: 2.0.11
|
||||
rendu: 0.0.6
|
||||
rollup: 4.57.1
|
||||
srvx: 0.8.16
|
||||
undici: 7.18.2
|
||||
unenv: 2.0.0-rc.21
|
||||
unstorage: 2.0.0-alpha.3(chokidar@4.0.3)(db0@0.3.4(@electric-sql/pglite@0.3.2)(mysql2@3.15.3))(lru-cache@11.2.2)(ofetch@1.5.1)
|
||||
optionalDependencies:
|
||||
rolldown: 1.1.2
|
||||
vite: 7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)
|
||||
xml2js: 0.6.2
|
||||
transitivePeerDependencies:
|
||||
- '@azure/app-configuration'
|
||||
- '@azure/cosmos'
|
||||
- '@azure/data-tables'
|
||||
- '@azure/identity'
|
||||
- '@azure/keyvault-secrets'
|
||||
- '@azure/storage-blob'
|
||||
- '@capacitor/preferences'
|
||||
- '@deno/kv'
|
||||
- '@electric-sql/pglite'
|
||||
- '@libsql/client'
|
||||
- '@netlify/blobs'
|
||||
- '@planetscale/database'
|
||||
- '@upstash/redis'
|
||||
- '@vercel/blob'
|
||||
- '@vercel/functions'
|
||||
- '@vercel/kv'
|
||||
- aws4fetch
|
||||
- better-sqlite3
|
||||
- chokidar
|
||||
- drizzle-orm
|
||||
- idb-keyval
|
||||
- ioredis
|
||||
- lru-cache
|
||||
- mongodb
|
||||
- mysql2
|
||||
- sqlite3
|
||||
- uploadthing
|
||||
|
||||
nitro@3.0.0(@electric-sql/pglite@0.3.2)(chokidar@4.0.3)(lru-cache@11.2.2)(mysql2@3.15.3)(rolldown@1.1.2)(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0))(xml2js@0.6.2):
|
||||
dependencies:
|
||||
consola: 3.4.2
|
||||
@ -35905,7 +35896,7 @@ snapshots:
|
||||
db0: 0.3.4(@electric-sql/pglite@0.3.2)(mysql2@3.15.3)
|
||||
esbuild: 0.25.11
|
||||
fetchdts: 0.1.7
|
||||
h3: 2.0.1-rc.2(crossws@0.4.4(srvx@0.11.15))
|
||||
h3: 2.0.1-rc.2(crossws@0.4.4(srvx@0.8.16))
|
||||
jiti: 2.6.1
|
||||
nf3: 0.1.12
|
||||
ofetch: 1.5.1
|
||||
@ -36536,15 +36527,6 @@ snapshots:
|
||||
optionalDependencies:
|
||||
postcss: 8.5.6
|
||||
|
||||
postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.19.3)(yaml@2.6.0):
|
||||
dependencies:
|
||||
lilconfig: 3.1.3
|
||||
optionalDependencies:
|
||||
jiti: 1.21.7
|
||||
postcss: 8.5.6
|
||||
tsx: 4.19.3
|
||||
yaml: 2.6.0
|
||||
|
||||
postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.0):
|
||||
dependencies:
|
||||
lilconfig: 3.1.3
|
||||
@ -38832,34 +38814,6 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- ts-node
|
||||
|
||||
tailwindcss@3.4.18(tsx@4.19.3)(yaml@2.6.0):
|
||||
dependencies:
|
||||
'@alloc/quick-lru': 5.2.0
|
||||
arg: 5.0.2
|
||||
chokidar: 3.6.0
|
||||
didyoumean: 1.2.2
|
||||
dlv: 1.1.3
|
||||
fast-glob: 3.3.3
|
||||
glob-parent: 6.0.2
|
||||
is-glob: 4.0.3
|
||||
jiti: 1.21.7
|
||||
lilconfig: 3.1.3
|
||||
micromatch: 4.0.8
|
||||
normalize-path: 3.0.0
|
||||
object-hash: 3.0.0
|
||||
picocolors: 1.1.1
|
||||
postcss: 8.5.6
|
||||
postcss-import: 15.1.0(postcss@8.5.6)
|
||||
postcss-js: 4.0.1(postcss@8.5.6)
|
||||
postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.19.3)(yaml@2.6.0)
|
||||
postcss-nested: 6.2.0(postcss@8.5.6)
|
||||
postcss-selector-parser: 6.1.2
|
||||
resolve: 1.22.11
|
||||
sucrase: 3.35.0
|
||||
transitivePeerDependencies:
|
||||
- tsx
|
||||
- yaml
|
||||
|
||||
tailwindcss@3.4.18(tsx@4.21.0)(yaml@2.8.0):
|
||||
dependencies:
|
||||
'@alloc/quick-lru': 5.2.0
|
||||
@ -39904,17 +39858,6 @@ snapshots:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
vite-tsconfig-paths@4.3.2(typescript@6.0.3)(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)):
|
||||
dependencies:
|
||||
debug: 4.4.3
|
||||
globrex: 0.1.2
|
||||
tsconfck: 3.1.5(typescript@6.0.3)
|
||||
optionalDependencies:
|
||||
vite: 7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
vite-tsconfig-paths@4.3.2(typescript@6.0.3)(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)):
|
||||
dependencies:
|
||||
debug: 4.4.3
|
||||
@ -40004,23 +39947,6 @@ snapshots:
|
||||
tsx: 4.19.3
|
||||
yaml: 2.6.0
|
||||
|
||||
vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0):
|
||||
dependencies:
|
||||
esbuild: 0.27.1
|
||||
fdir: 6.5.0(picomatch@4.0.3)
|
||||
picomatch: 4.0.3
|
||||
postcss: 8.5.6
|
||||
rollup: 4.57.1
|
||||
tinyglobby: 0.2.15
|
||||
optionalDependencies:
|
||||
'@types/node': 22.19.0
|
||||
fsevents: 2.3.3
|
||||
jiti: 1.21.7
|
||||
lightningcss: 1.32.0
|
||||
terser: 5.44.0
|
||||
tsx: 4.21.0
|
||||
yaml: 2.8.0
|
||||
|
||||
vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0):
|
||||
dependencies:
|
||||
esbuild: 0.27.1
|
||||
@ -40038,10 +39964,6 @@ snapshots:
|
||||
tsx: 4.21.0
|
||||
yaml: 2.8.0
|
||||
|
||||
vitefu@1.1.2(vite@7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)):
|
||||
optionalDependencies:
|
||||
vite: 7.3.1(@types/node@22.19.0)(jiti@1.21.7)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)
|
||||
|
||||
vitefu@1.1.2(vite@7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)):
|
||||
optionalDependencies:
|
||||
vite: 7.3.1(@types/node@22.19.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.0)
|
||||
@ -40532,6 +40454,14 @@ snapshots:
|
||||
|
||||
zod@4.3.6: {}
|
||||
|
||||
zustand@4.5.7(@types/react@19.2.7)(immer@9.0.21)(react@19.2.3):
|
||||
dependencies:
|
||||
use-sync-external-store: 1.6.0(react@19.2.3)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.7
|
||||
immer: 9.0.21
|
||||
react: 19.2.3
|
||||
|
||||
zustand@5.0.6(@types/react@19.2.7)(immer@9.0.21)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)):
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.7
|
||||
|
||||
Loading…
Reference in New Issue
Block a user