chore: Clean up unused files from a project creation experiment (#42690)

This PR removes the onboarding schema generation and visualization
feature from the project creation flow. This was part of an experiment
which has been tested and shut down.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Revert**
* Removed project creation workflow components and related UI surfaces
including the initial setup interface, project visual preview, and
schema generation assistant.
  * Removed database schema visualization and diagram components.
  * Cleaned up associated package dependencies.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
Ivan Vasilov authored and GitHub committed 2026-02-12 10:15:14 +01:00
1 parent 3ba77ce748
commit a5511386ce
7 files changed
+2 -1167

No files matched your search

@@ -1,82 +0,0 @@
import { Database, Import } from 'lucide-react'
import { cn } from 'ui'
import { SchemaGenerator } from './SchemaGenerator'
interface SupabaseService {
name: 'Auth' | 'Storage' | 'Database' | 'Edge Function' | 'Cron' | 'Queues' | 'Vector'
reason: string
}
export const InitialStep = ({
onSubmit,
onStartBlank,
onMigrate,
onSqlGenerated,
onServicesUpdated,
onTitleUpdated,
}: {
onSubmit: (value: string) => void
onStartBlank: () => void
onMigrate: () => void
onSqlGenerated: (sql: string) => void
onServicesUpdated: (services: SupabaseService[]) => void
onTitleUpdated: (title: string) => void
}) => {
return (
<div className="w-full">
<h3>What are you building?</h3>
<p className="text-sm text-foreground-lighter mb-4">
We can generate a schema for you to kick start your project.
</p>
<SchemaGenerator
isOneOff
step="initial"
onSqlGenerated={(sql) => {
onSqlGenerated(sql)
onSubmit(sql)
}}
onServicesUpdated={onServicesUpdated}
onTitleUpdated={onTitleUpdated}
/>
<div
className={cn(
'relative text-center text-sm text-foreground-lighter my-4 before:absolute before:inset-y-1/2 before:left-0 before:w-[calc(50%-24px)]',
'before:h-px before:bg-border after:absolute after:inset-y-1/2 after:right-0 after:w-[calc(50%-24px)] after:h-px after:bg-border'
)}
>
or
</div>
<div className="grid grid-cols-2 gap-4">
<div
className="p-4 h-auto block border rounded-md cursor text-sm border-strong hover:border-foreground-muted cursor-pointer flex items-center gap-4"
role="button"
onClick={onStartBlank}
>
<Database strokeWidth={1.5} size={16} className="text-foreground-lighter shrink-0" />
<div>
<span className="block">Start blank</span>
<span className="text-foreground-lighter">Configure a database and dive right in</span>
</div>
</div>
<div
className="p-4 h-auto block border rounded-md cursor text-sm border-strong hover:border-foreground-muted cursor-pointer flex items-center gap-4"
role="button"
onClick={onMigrate}
>
<Import
strokeWidth={1.5}
size={16}
className="text-foreground-lighter mx-auto shrink-0"
/>
<div>
<span className="mb-1 block">Migrate</span>
<span className="text-foreground-lighter">
Import your database from another provider
</span>
</div>
</div>
</div>
</div>
)
}
@@ -1,174 +0,0 @@
import { AnimatePresence, motion } from 'framer-motion'
import { Box, Clock, Database, File, ListOrdered, User2, Zap } from 'lucide-react'
import { memo } from 'react'
import { SchemaVisualizer } from 'components/interfaces/SchemaVisualizer'
import { BASE_PATH } from 'lib/constants'
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from 'ui'
interface SupabaseService {
name: 'Auth' | 'Storage' | 'Database' | 'Edge Function' | 'Cron' | 'Queues' | 'Vector'
reason: string
}
interface ProjectVisualProps {
sqlStatements: string[]
showInfo: boolean
services: SupabaseService[]
selectedRegion: {
name: string
location: { latitude: number; longitude: number }
code: string
displayName: string
} | null
projectDetails: {
dbRegion: string
cloudProvider: string
postgresVersion: string
}
}
const arePropsEqual = (prevProps: ProjectVisualProps, nextProps: ProjectVisualProps) => {
return (
prevProps.sqlStatements.length === nextProps.sqlStatements.length &&
prevProps.showInfo === nextProps.showInfo &&
prevProps.services.length === nextProps.services.length &&
prevProps.selectedRegion?.name === nextProps.selectedRegion?.name &&
prevProps.projectDetails.dbRegion === nextProps.projectDetails.dbRegion &&
prevProps.projectDetails.cloudProvider === nextProps.projectDetails.cloudProvider &&
prevProps.projectDetails.postgresVersion === nextProps.projectDetails.postgresVersion
)
}
export const ProjectVisual = memo(
({
sqlStatements,
showInfo = true,
services,
selectedRegion,
projectDetails,
}: ProjectVisualProps) => {
const variants = {
center: {
scale: 1,
opacity: 1,
top: '50%',
right: '50%',
x: '50%',
y: '-70%',
},
corner: {
scale: 1,
opacity: 1,
top: '3%',
right: '3%',
x: '0%',
y: '0%',
},
}
const currentVariant = showInfo ? (sqlStatements.length > 0 ? 'corner' : 'center') : 'hidden'
return (
<div className="flex h-full flex-1">
<div className="flex-1 h-full relative">
{showInfo && (
<motion.div
key="info"
variants={variants}
transition={{
duration: 0.3,
ease: 'easeInOut',
}}
className={`hidden lg:block absolute z-30 p-4 bg-surface-100 min-w-80 rounded-lg border shadow-lg`}
initial={{
scale: 0.99,
opacity: 0,
top: '50%',
right: '50%',
x: '50%',
y: '-70%',
}}
animate={currentVariant}
>
<div className="flex items-start justify-between w-80">
<div className="flex gap-x-3">
<div className="flex flex-col gap-y-0.5">
<p className="text-sm">Primary Database</p>
<p className="flex items-center gap-x-1">
<span className="text-sm text-foreground-light">
{projectDetails.dbRegion}
</span>
</p>
<p className="flex items-center gap-x-1">
<span className="text-sm text-foreground-light">
{projectDetails.cloudProvider}
</span>
<span className="text-sm text-foreground-light">•</span>
<span className="text-sm text-foreground-light">
{projectDetails.postgresVersion}
</span>
</p>
</div>
</div>
{selectedRegion && (
<img
alt="region icon"
className="w-8 rounded-sm mt-0.5"
src={`${BASE_PATH}/img/regions/${selectedRegion.name}.svg`}
/>
)}
</div>
<TooltipProvider>
<div className="flex gap-2 mt-4">
{[
{ name: 'Auth', icon: User2 },
{ name: 'Storage', icon: File },
{ name: 'Database', icon: Database },
{ name: 'Edge Function', icon: Zap },
{ name: 'Cron', icon: Clock },
{ name: 'Queues', icon: ListOrdered },
{ name: 'Vector', icon: Box },
].map((service) => {
const enabledService = services.find((s) => s.name === service.name)
const isEnabled = !!enabledService
return (
<Tooltip key={service.name} delayDuration={100}>
<TooltipTrigger asChild>
<div
className={`
flex items-center justify-center w-10 h-10 border rounded cursor-help
${isEnabled ? 'border-brand-600 text-brand-600' : 'text-foreground-lighter'}
`}
>
<service.icon size={16} strokeWidth={2} />
</div>
</TooltipTrigger>
<TooltipContent>
{isEnabled ? `${service.name}: ${enabledService.reason}` : service.name}
</TooltipContent>
</Tooltip>
)
})}
</div>
</TooltipProvider>
</motion.div>
)}
<AnimatePresence>
<motion.div
initial={{ opacity: 0, scale: 1.05 }}
animate={{ opacity: 1, scale: 1, transition: { delay: 1 } }}
exit={{ opacity: 0 }}
className={`h-full z-20 ${sqlStatements.length === 0 ? 'pointer-events-none' : ''}`}
>
<SchemaVisualizer sqlStatements={sqlStatements} className="h-full z-20" />
</motion.div>
</AnimatePresence>
</div>
</div>
)
},
arePropsEqual
)
ProjectVisual.displayName = 'ProjectVisual'
@@ -1,86 +0,0 @@
import { useCallback, useEffect, useMemo } from 'react'
import {
applyNodeChanges,
Background,
BackgroundVariant,
Edge,
Node,
NodeChange,
NodeProps,
ReactFlow,
useEdgesState,
useNodesState,
useReactFlow,
} from 'reactflow'
import { TableNode, TableNodeData } from '../Database/Schemas/SchemaTableNode'
export const TABLE_NODE_WIDTH = 640
export const TABLE_NODE_ROW_HEIGHT = 80
interface SchemaFlowProps {
nodes: Node[]
edges: Edge[]
}
export const SchemaFlow = ({ nodes: initialNodes, edges: initialEdges }: SchemaFlowProps) => {
const [nodes, setNodes] = useNodesState(initialNodes)
const [edges, setEdges] = useEdgesState(initialEdges)
const nodeTypes = useMemo(
() => ({ table: (props: NodeProps<TableNodeData>) => <TableNode {...props} placeholder /> }),
[]
)
const reactFlowInstance = useReactFlow<TableNodeData>()
useEffect(() => {
setNodes(initialNodes)
setEdges(initialEdges)
}, [initialNodes, initialEdges, setNodes, setEdges])
useEffect(() => {
reactFlowInstance.fitView()
}, [reactFlowInstance, nodes, edges])
const onNodesChange = useCallback(
(changes: NodeChange[]) => {
setNodes((nds) => applyNodeChanges(changes, nds))
},
[setNodes]
)
return (
<div
style={{ maskImage: 'linear-gradient(to right, transparent 2%, black 13%)' }}
className="absolute inset-0"
>
<ReactFlow
nodes={nodes}
edges={edges}
nodeTypes={nodeTypes}
onNodesChange={onNodesChange}
defaultEdgeOptions={{
type: 'smoothstep',
animated: true,
deletable: false,
style: {
stroke: 'hsl(var(--border-stronger))',
strokeWidth: 0.5,
},
}}
fitView
minZoom={0.8}
maxZoom={1.8}
proOptions={{ hideAttribution: true }}
panOnScroll
panOnScrollSpeed={1}
>
<Background
gap={16}
className="[&>*]:stroke-foreground-muted opacity-[50%]"
variant={BackgroundVariant.Dots}
color={'inherit'}
/>
</ReactFlow>
</div>
)
}
@@ -1,230 +0,0 @@
import { useChat } from '@ai-sdk/react'
import { DefaultChatTransport } from 'ai'
import { useEffect, useState } from 'react'
import { Markdown } from 'components/interfaces/Markdown'
import { onErrorChat } from 'components/ui/AIAssistantPanel/AIAssistant.utils'
import { BASE_PATH } from 'lib/constants'
import { useTrack } from 'lib/telemetry/track'
import { AiIconAnimation, Button, Label_Shadcn_, Textarea } from 'ui'
interface SupabaseService {
name: 'Auth' | 'Storage' | 'Database' | 'Edge Function' | 'Cron' | 'Queues' | 'Vector'
reason: string
}
interface SchemaGeneratorProps {
step: 'initial' | 'second'
onSqlGenerated: (sql: string) => void
onReset?: () => void
onServicesUpdated: (services: SupabaseService[]) => void
onTitleUpdated: (title: string) => void
isOneOff?: boolean
}
export const SchemaGenerator = ({
step,
onSqlGenerated,
onServicesUpdated,
onTitleUpdated,
onReset,
isOneOff = false,
}: SchemaGeneratorProps) => {
const [input, setInput] = useState('')
const [hasSql, setHasSql] = useState(false)
const [promptIntendSent, setPromptIntendSent] = useState(false)
const track = useTrack()
const { messages, setMessages, sendMessage, status, addToolResult } = useChat({
id: 'schema-generator',
onError: onErrorChat,
onFinish: () => {
setInput('')
},
async onToolCall({ toolCall }) {
if (toolCall.toolName === 'executeSql') {
try {
const sql = (toolCall.input as { sql: string }).sql
setHasSql(true)
onSqlGenerated(sql)
addToolResult({
tool: toolCall.toolName,
toolCallId: toolCall.toolCallId,
output: 'Database successfully updated. Respond with next steps.',
})
} catch (error) {
console.error('Failed to execute SQL:', error)
addToolResult({
tool: toolCall.toolName,
toolCallId: toolCall.toolCallId,
output: `SQL execution failed: ${error instanceof Error ? error.message : String(error)}`,
})
}
}
if (toolCall.toolName === 'reset') {
try {
setHasSql(false)
onSqlGenerated('')
if (onReset) {
onReset()
}
addToolResult({
tool: toolCall.toolName,
toolCallId: toolCall.toolCallId,
output: 'Database successfully reset',
})
} catch (error) {
console.error('Failed to reset the database', error)
addToolResult({
tool: toolCall.toolName,
toolCallId: toolCall.toolCallId,
output: `Resetting the database failed: ${error instanceof Error ? error.message : String(error)}`,
})
}
}
if (toolCall.toolName === 'setServices') {
const newServices = (toolCall.input as { services: SupabaseService[] }).services
onServicesUpdated(newServices)
addToolResult({
tool: toolCall.toolName,
toolCallId: toolCall.toolCallId,
output: 'Services updated successfully',
})
}
if (toolCall.toolName === 'setTitle') {
const newTitle = (toolCall.input as { title: string }).title
onTitleUpdated(newTitle)
addToolResult({
tool: toolCall.toolName,
toolCallId: toolCall.toolCallId,
output: 'Title updated successfully',
})
}
},
transport: new DefaultChatTransport({
api: `${BASE_PATH}/api/ai/onboarding/design`,
}),
})
const isMessagesLoading = status === 'submitted' || status === 'streaming'
useEffect(() => {
if (isOneOff) {
setMessages([])
setInput('')
}
}, [isOneOff, setMessages])
const sendUserMessage = (content: string) => {
const payload = {
role: 'user' as const,
createdAt: new Date(),
parts: [{ type: 'text' as const, text: content }],
id: `msg-${Date.now()}`,
}
sendMessage(payload)
}
const getLastAssistantMessage = () => {
const lastAssistantMessage = messages.filter((m) => m.role === 'assistant').slice(-1)[0]
if (!lastAssistantMessage?.parts) return ''
const textPart = lastAssistantMessage.parts.find((part: any) => part.type === 'text') as
| { text: string }
| undefined
return textPart?.text || ''
}
return (
<div>
{!isOneOff && (
<div className="flex justify-between w-full items-center mb-4">
<Label_Shadcn_ className="text-foreground-light flex-1">
Generate a starting schema
</Label_Shadcn_>
{messages?.length > 0 && (
<Button
type="outline"
size="tiny"
onClick={() => {
setInput('Reset the database, services and start over')
sendUserMessage('Reset the database, services and start over')
}}
>
Reset
</Button>
)}
</div>
)}
<div className="rounded-md border bg-surface-100">
{messages.length > 0 &&
messages[messages.length - 1].role === 'assistant' &&
getLastAssistantMessage() &&
((isOneOff && !hasSql) || !isOneOff) && (
<div className="px-4 py-3 border-b space-y-1">
<p>
<Markdown className="text-foreground-light" content={getLastAssistantMessage()} />
</p>
</div>
)}
<div className="w-full relative text-sm border-none block bg-muted mb-0 text-foreground-light placeholder:text-foreground-lighter">
<Textarea
id="input"
name="prompt"
autoComplete="off"
className="text-sm w-full bg-transparent border-none resize-none px-4 pt-3 pb-8"
value={input}
disabled={isMessagesLoading}
onChange={(e) => {
setInput(e.target.value)
}}
placeholder={messages.length > 0 ? 'Make an edit...' : 'Describe your application...'}
rows={Math.max(3, Math.min(input.split('\n').length, 10))}
onKeyDown={(e) => {
if (!(e.target instanceof HTMLTextAreaElement)) {
return
}
if (!promptIntendSent && e.target.value.length > 5) {
// distinguish between a new prompt or an edit
const isNewPrompt = messages.length == 0
// distinguish between initial step or second step
if (step === 'initial') {
track('project_creation_initial_step_prompt_intended', {
isNewPrompt,
})
} else {
track('project_creation_second_step_prompt_intended', {
isNewPrompt,
})
}
setPromptIntendSent(true)
}
if (e.key === 'Enter' && !e.shiftKey && !e.nativeEvent.isComposing) {
e.preventDefault()
setHasSql(false)
sendUserMessage(input)
}
}}
/>
<Button
onClick={(e) => {
e.preventDefault()
setHasSql(false)
sendUserMessage(input)
}}
disabled={isMessagesLoading}
loading={isMessagesLoading}
icon={<AiIconAnimation size={16} />}
className="absolute bottom-2 right-2"
>
Generate
</Button>
</div>
</div>
</div>
)
}
@@ -1,141 +0,0 @@
import { PGlite } from '@electric-sql/pglite'
import { PostgresMetaBase, wrapError, wrapResult } from '@gregnr/postgres-meta/base'
import { useEffect, useRef, useState } from 'react'
import { Edge, Node, ReactFlowProvider } from 'reactflow'
import { SchemaFlow } from 'components/interfaces/ProjectCreation/SchemaFlow'
import { getGraphDataFromTables } from '../Database/Schemas/Schemas.utils'
import { TableNodeData } from '../Database/Schemas/SchemaTableNode'
export const TABLE_NODE_WIDTH = 640
export const TABLE_NODE_ROW_HEIGHT = 80
interface SchemaVisualizerProps {
sqlStatements: string[]
className?: string
}
const AUTH_SCHEMA_SQL = `
CREATE SCHEMA auth;
CREATE TABLE auth.users (
instance_id uuid,
id uuid NOT NULL,
aud character varying(255),
role character varying(255),
email character varying(255),
encrypted_password character varying(255),
confirmed_at timestamp with time zone,
invited_at timestamp with time zone,
confirmation_token character varying(255),
confirmation_sent_at timestamp with time zone,
recovery_token character varying(255),
recovery_sent_at timestamp with time zone,
email_change_token character varying(255),
email_change character varying(255),
email_change_sent_at timestamp with time zone,
last_sign_in_at timestamp with time zone,
raw_app_meta_data jsonb,
raw_user_meta_data jsonb,
is_super_admin boolean,
created_at timestamp with time zone,
updated_at timestamp with time zone
);
ALTER TABLE ONLY auth.users
ADD CONSTRAINT users_email_key UNIQUE (email);
ALTER TABLE ONLY auth.users
ADD CONSTRAINT users_pkey PRIMARY KEY (id);
`.trim()
export const SchemaVisualizer = ({ sqlStatements, className }: SchemaVisualizerProps) => {
const [nodes, setNodes] = useState<Node<TableNodeData>[]>([])
const [edges, setEdges] = useState<Edge[]>([])
const db = useRef<PGlite>()
const executedStatements = useRef<Set<string>>(new Set())
// Initialize database once
useEffect(() => {
db.current = new PGlite()
// Execute initial auth schema setup
db.current.exec(AUTH_SCHEMA_SQL)
}, [])
// Execute new SQL statements and update schema
useEffect(() => {
const updateSchema = async () => {
if (!db.current) return
// Reset if statements is empty
if (sqlStatements.length === 0) {
setNodes([])
setEdges([])
if (executedStatements.current.size) {
executedStatements.current.clear()
// Reset database
db.current = new PGlite()
// Re-run initial auth schema setup
db.current.exec(AUTH_SCHEMA_SQL)
}
return
}
// Execute only new statements
const newStatements = sqlStatements.filter((sql) => !executedStatements.current.has(sql))
if (newStatements.length === 0) return
try {
for (const sql of newStatements) {
await db.current.exec(sql)
executedStatements.current.add(sql)
}
const pgMeta = new PostgresMetaBase({
query: async (sql: string) => {
try {
const res = await db.current?.query(sql)
if (!res) throw new Error('No response from database')
return wrapResult<any[]>(res.rows)
} catch (error) {
console.error('Query failed:', error)
return wrapError(error, sql)
}
},
end: async () => {},
})
const { data: tables, error } = await pgMeta.tables.list({
includedSchemas: ['public'],
includeColumns: true,
})
if (error) {
console.error('Failed to get tables:', error)
return
}
if (tables) {
const { nodes, edges } = await getGraphDataFromTables(
'onboarding',
{ id: 1, name: 'public', owner: 'admin' },
tables
)
setNodes(nodes)
setEdges(edges)
}
} catch (error) {
console.error('Failed to execute SQL:', error)
}
}
updateSchema()
}, [sqlStatements])
return (
<div className={className}>
<ReactFlowProvider>
<SchemaFlow nodes={nodes} edges={edges} />
</ReactFlowProvider>
</div>
)
}
-2
View File
@@ -38,10 +38,8 @@
"@dnd-kit/modifiers": "^9.0.0",
"@dnd-kit/sortable": "^8.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@electric-sql/pglite": "^0.2.15",
"@graphiql/react": "^0.19.4",
"@graphiql/toolkit": "^0.9.1",
"@gregnr/postgres-meta": "^0.82.0-dev.2",
"@hcaptcha/react-hcaptcha": "^1.12.0",
"@headlessui/react": "^1.7.17",
"@heroicons/react": "^2.1.3",
+2 -452
View File
@@ -773,18 +773,12 @@ importers:
'@dnd-kit/utilities':
specifier: ^3.2.2
version: 3.2.2(react@18.3.1)
'@electric-sql/pglite':
specifier: ^0.2.15
version: 0.2.15
'@graphiql/react':
specifier: ^0.19.4
version: 0.19.4(@codemirror/language@6.11.0)(@types/node@22.13.14)(@types/react-dom@18.3.0)(@types/react@18.3.3)(graphql-ws@5.14.1(graphql@16.11.0))(graphql@16.11.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@graphiql/toolkit':
specifier: ^0.9.1
version: 0.9.1(@types/node@22.13.14)(graphql-ws@5.14.1(graphql@16.11.0))(graphql@16.11.0)
'@gregnr/postgres-meta':
specifier: ^0.82.0-dev.2
version: 0.82.0-dev.2(encoding@0.1.13)(supports-color@8.1.1)
'@hcaptcha/react-hcaptcha':
specifier: ^1.12.0
version: 1.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -3667,32 +3661,9 @@ packages:
'@fal-works/esbuild-plugin-global-externals@2.1.2':
resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==}
'@fastify/ajv-compiler@3.6.0':
resolution: {integrity: sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==}
'@fastify/busboy@3.1.1':
resolution: {integrity: sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==}
'@fastify/cors@9.0.1':
resolution: {integrity: sha512-YY9Ho3ovI+QHIL2hW+9X4XqQjXLjJqsU+sMV/xFsxZkE8p3GNnYVFpoOxF7SsP5ZL76gwvbo3V9L+FIekBGU4Q==}
'@fastify/error@3.4.1':
resolution: {integrity: sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==}
'@fastify/fast-json-stringify-compiler@4.3.0':
resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==}
'@fastify/merge-json-schemas@0.1.1':
resolution: {integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==}
'@fastify/swagger@8.15.0':
resolution: {integrity: sha512-zy+HEEKFqPMS2sFUsQU5X0MHplhKJvWeohBwTCkBAJA/GDYGLGUWQaETEhptiqxK7Hs0fQB9B4MDb3pbwIiCwA==}
'@fastify/type-provider-typebox@3.6.0':
resolution: {integrity: sha512-HTeOLvirfGg0u1KGao3iXn5rZpYNqlrOmyDnXSXAbWVPa+mDQTTBNs/x5uZzOB6vFAqr0Xcf7x1lxOamNSYKjw==}
peerDependencies:
'@sinclair/typebox': '>=0.26 <=0.32'
'@floating-ui/core@1.5.0':
resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==}
@@ -4008,10 +3979,6 @@ packages:
peerDependencies:
graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
'@gregnr/postgres-meta@0.82.0-dev.2':
resolution: {integrity: sha512-RLCMcshNBZi1FBA60PfQTLCvfuYmNXVzRe147j5mlOIXvq+o9K/pJgm49GOEBBYfvH+bwcs3w/mBRCh7BNveng==}
engines: {node: '>=20', npm: '>=9'}
'@grpc/grpc-js@1.10.9':
resolution: {integrity: sha512-5tcgUctCG0qoNyfChZifz2tJqbRbXVO9J7X6duFcOjY3HUNCxg5D0ZCK7EP9vIcZ0zRpLU9bWkyCqVCLZ46IbQ==}
engines: {node: '>=12.10.0'}
@@ -8099,9 +8066,6 @@ packages:
'@sinclair/typebox@0.27.8':
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
'@sinclair/typebox@0.31.28':
resolution: {integrity: sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ==}
'@sindresorhus/is@7.1.0':
resolution: {integrity: sha512-7F/yz2IphV39hiS2zB4QYVkivrptHHh0K8qJJd9HhuWSdvf8AN7NpebW3CcDZDBQsUPMoDKWsY2WWgW7bqOcfA==}
engines: {node: '>=18'}
@@ -9474,9 +9438,6 @@ packages:
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
engines: {node: '>=6.5'}
abstract-logging@2.0.1:
resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==}
accepts@1.3.8:
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
engines: {node: '>= 0.6'}
@@ -9782,10 +9743,6 @@ packages:
asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
atomic-sleep@1.0.0:
resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
engines: {node: '>=8.0.0'}
attr-accept@2.2.5:
resolution: {integrity: sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==}
engines: {node: '>=4'}
@@ -9811,9 +9768,6 @@ packages:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
avvio@8.4.0:
resolution: {integrity: sha512-CDSwaxINFy59iNwhYnkvALBwZiTydGkOecZyPkqBpABYR1KqGEsET0VOOYDwtleZSUIdeY36DC2bSZ24CO1igA==}
awesome-debounce-promise@2.1.0:
resolution: {integrity: sha512-0Dv4j2wKk5BrNZh4jgV2HUdznaeVgEK/WTvcHhZWUElhmQ1RR+iURRoLEwICFyR0S/5VtxfcvY6gR+qSe95jNg==}
engines: {node: '>=8', npm: '>=5'}
@@ -9906,9 +9860,6 @@ packages:
bindings@1.5.0:
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
bintrees@1.0.2:
resolution: {integrity: sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==}
birpc@2.5.0:
resolution: {integrity: sha512-VSWO/W6nNQdyP520F1mhf+Lc2f8pjGQOtoHHm7Ze8Go1kX7akpVIrtTa0fn+HB0QJEDVacl6aO08YE0PgXfdnQ==}
@@ -10236,9 +10187,6 @@ packages:
resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
engines: {node: '>=0.8'}
close-with-grace@1.3.0:
resolution: {integrity: sha512-lvm0rmLIR5bNz4CRKW6YvCfn9Wg5Wb9A8PJ3Bb+hjyikgC1RO1W3J4z9rBXQYw97mAte7dNSQI8BmUsxdlXQyw==}
clsx@1.2.1:
resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
engines: {node: '>=6'}
@@ -11861,15 +11809,9 @@ packages:
resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==}
engines: {'0': node >=0.6.0}
fast-content-type-parse@1.1.0:
resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==}
fast-content-type-parse@2.0.1:
resolution: {integrity: sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==}
fast-decode-uri-component@1.0.1:
resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==}
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -11898,9 +11840,6 @@ packages:
fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
fast-json-stringify@5.16.1:
resolution: {integrity: sha512-KAdnLvy1yu/XrRtP+LJnxbBGrhN+xXu+gt3EUvZhYGKCr3lFHq/7UFJHHFgmJKoqlh6B40bZLEv7w46B0mqn1g==}
fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
@@ -11910,22 +11849,12 @@ packages:
fast-npm-meta@0.4.6:
resolution: {integrity: sha512-zbBBOAOlzxfrU4WSnbCHk/nR6Vf32lSEPxDEvNOR08Z5DSZ/A6qJu0rqrHVcexBTd1hc2gim998xnqF/R1PuEw==}
fast-querystring@1.1.2:
resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==}
fast-redact@3.5.0:
resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==}
engines: {node: '>=6'}
fast-safe-stringify@2.1.1:
resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
fast-shallow-equal@1.0.0:
resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
fast-uri@2.4.0:
resolution: {integrity: sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==}
fast-uri@3.0.6:
resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
@@ -11940,17 +11869,6 @@ packages:
fastest-stable-stringify@2.0.2:
resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
fastify-metrics@10.6.0:
resolution: {integrity: sha512-QIPncCnwBOEObMn+VaRhsBC1ox8qEsaiYF2sV/A1UbXj7ic70W8/HNn/hlEC2W8JQbBeZMx++o1um2fPfhsFDQ==}
peerDependencies:
fastify: '>=4'
fastify-plugin@4.5.1:
resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==}
fastify@4.29.1:
resolution: {integrity: sha512-m2kMNHIG92tSNWv+Z3UeTR9AWLLuo7KctC7mlFPtMEVrfjIhmQhkQnT9v15qA/BfVq3vvj134Y0jl9SBje3jXQ==}
fastq@1.18.0:
resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==}
@@ -12035,10 +11953,6 @@ packages:
resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==}
engines: {node: '>= 0.8'}
find-my-way@8.2.2:
resolution: {integrity: sha512-Dobi7gcTEq8yszimcfp/R7+owiT4WncAJ7VTTgFH1jYJ5GaG1FbhjwDG820hptN0QDFvzVY3RfCzdInvGPGzjA==}
engines: {node: '>=14'}
find-up@5.0.0:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
@@ -13440,13 +13354,6 @@ packages:
json-pointer@0.6.2:
resolution: {integrity: sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==}
json-schema-ref-resolver@1.0.1:
resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==}
json-schema-resolver@2.0.0:
resolution: {integrity: sha512-pJ4XLQP4Q9HTxl6RVDLJ8Cyh1uitSs0CzDBAz1uoJ4sRD/Bk7cFSXL1FUXDW3zJ7YnfliJx6eu8Jn283bpZ4Yg==}
engines: {node: '>=10'}
json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
@@ -13497,10 +13404,6 @@ packages:
resolution: {integrity: sha512-SavvDsUP9Xnqo2MoC6Wl6zNyX3f+I5199hRbXBtAITyP2NTPyAgyx5xM0bgcIljRjzsIvOBANbgfWe8XXlyeLA==}
hasBin: true
jsox@1.2.121:
resolution: {integrity: sha512-9Ag50tKhpTwS6r5wh3MJSAvpSof0UBr39Pto8OnzFT32Z/pAbxAsKHzyvsyMEHVslELvHyO/4/jaQELHk8wDcw==}
hasBin: true
jsrsasign@11.0.0:
resolution: {integrity: sha512-BtRwVKS+5dsgPpAtzJcpo5OoWjSs1/zllSBG0+8o8/aV0Ki76m6iZwHnwnsqoTdhfFZDN1XIdcaZr5ZkP+H2gg==}
@@ -13593,9 +13496,6 @@ packages:
libpg-query@17.6.0:
resolution: {integrity: sha512-r4zOTcLTGYS5PlLQAicJ6Yi/tvZFag42YUuNEO8pi8bwt/ZZ4kj514J4QV5bOx0mZzPLF6agbfNXQVxGgmHR8g==}
light-my-request@5.14.0:
resolution: {integrity: sha512-aORPWntbpH5esaYpGOOmri0OHDOe3wC5M2MQxZ9dvMLZm6DnaAn0kJlcbU9hwsQgLzmZyReKwFwwPkR+nHu5kA==}
lilconfig@2.1.0:
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
engines: {node: '>=10'}
@@ -14475,9 +14375,6 @@ packages:
mlly@1.8.0:
resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==}
mnemonist@0.39.6:
resolution: {integrity: sha512-A/0v5Z59y63US00cRSLiloEIw3t5G+MiKz4BhX21FI+YBJXBOGW0ohFxTxO08dsOYlzxo87T7vGfZKYp2bcAWA==}
mobx-react-lite@4.1.0:
resolution: {integrity: sha512-QEP10dpHHBeQNv1pks3WnHRCem2Zp636lq54M2nKO2Sarr13pL4u6diQXf65yzXUn0mkk18SyIDCm9UOJYTi1w==}
peerDependencies:
@@ -15014,9 +14911,6 @@ packages:
resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
engines: {node: '>= 0.4'}
obliterator@2.0.4:
resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==}
obuf@1.1.2:
resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
@@ -15030,10 +14924,6 @@ packages:
resolution: {integrity: sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==}
engines: {node: '>=18'}
on-exit-leak-free@2.1.2:
resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
engines: {node: '>=14.0.0'}
on-finished@2.4.1:
resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
engines: {node: '>= 0.8'}
@@ -15378,9 +15268,6 @@ packages:
pg-cloudflare@1.2.7:
resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==}
pg-connection-string@2.6.2:
resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==}
pg-connection-string@2.7.0:
resolution: {integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==}
@@ -15421,9 +15308,6 @@ packages:
pg-protocol@1.10.3:
resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==}
pg-protocol@1.6.0:
resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==}
pg-protocol@1.7.1:
resolution: {integrity: sha512-gjTHWGYWsEgy9MsY0Gp6ZJxV24IjDqdpTW7Eh0x+WfJLFsm/TJx1MzL6T0D88mBvkpxotCQ6TwW6N+Kko7lhgQ==}
@@ -15493,26 +15377,6 @@ packages:
resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
engines: {node: '>=4'}
pino-abstract-transport@1.2.0:
resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==}
pino-abstract-transport@2.0.0:
resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==}
pino-std-serializers@6.2.2:
resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==}
pino-std-serializers@7.0.0:
resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==}
pino@8.21.0:
resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==}
hasBin: true
pino@9.6.0:
resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==}
hasBin: true
pirates@4.0.6:
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
engines: {node: '>= 6'}
@@ -15839,12 +15703,6 @@ packages:
peerDependencies:
prettier: ^2.0.0
prettier-plugin-sql@0.17.1:
resolution: {integrity: sha512-CR9UpTkUSC/f69AV597hnYcBo77iUhsBPkUER7BUa4YHRRtRUJGfL5LDoHAlUHWGTZNiJdHHELlzK6I3R9XuAw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
prettier: ^3.0.3
prettier@2.8.8:
resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
engines: {node: '>=10.13.0'}
@@ -15905,12 +15763,6 @@ packages:
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
process-warning@3.0.0:
resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==}
process-warning@4.0.0:
resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==}
process@0.11.10:
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
engines: {node: '>= 0.6.0'}
@@ -15919,10 +15771,6 @@ packages:
resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
engines: {node: '>=0.4.0'}
prom-client@14.2.0:
resolution: {integrity: sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==}
engines: {node: '>=10'}
promise-inflight@1.0.1:
resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
peerDependencies:
@@ -16004,9 +15852,6 @@ packages:
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
quick-format-unescaped@4.0.4:
resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
radix3@1.1.2:
resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==}
@@ -16405,10 +16250,6 @@ packages:
resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==}
engines: {node: '>= 14.18.0'}
real-require@0.2.0:
resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
engines: {node: '>= 12.13.0'}
recast@0.23.11:
resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==}
engines: {node: '>= 4'}
@@ -16659,10 +16500,6 @@ packages:
resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==}
engines: {node: '>=4'}
ret@0.4.3:
resolution: {integrity: sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==}
engines: {node: '>=10'}
retry@0.12.0:
resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
engines: {node: '>= 4'}
@@ -16772,13 +16609,6 @@ packages:
resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
engines: {node: '>= 0.4'}
safe-regex2@3.1.0:
resolution: {integrity: sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==}
safe-stable-stringify@2.5.0:
resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
engines: {node: '>=10'}
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
@@ -16831,9 +16661,6 @@ packages:
resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
engines: {node: '>=4'}
secure-json-parse@2.7.0:
resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
semver@5.7.2:
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
hasBin: true
@@ -17105,12 +16932,6 @@ packages:
resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==}
engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
sonic-boom@3.8.1:
resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==}
sonic-boom@4.2.0:
resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==}
sonner@1.5.0:
resolution: {integrity: sha512-FBjhG/gnnbN6FY0jaNnqZOMmB73R+5IiyYAw8yBj7L54ER7HB3fOSE5OFiQiE2iXWxeXKvg6fIP4LtVppHEdJA==}
peerDependencies:
@@ -17186,10 +17007,6 @@ packages:
resolution: {integrity: sha512-6QumAdGHEnI5dXEq1d0aBRP876AyA9Wp/UE7wopKNA2Mp9sKGRKVqGgoWHk4dr0J0nceesC85Y0p36qmGoNqhw==}
hasBin: true
sql-formatter@14.0.0:
resolution: {integrity: sha512-VcHYMRvZqg3RNjjxNB/puT9O1hR5QLXTvgTaBtxXcvmRQwSnH9M+oW2Ti+uFuVVU8HoNlOjU2uKHv8c0FQNsdQ==}
hasBin: true
sql-formatter@15.4.9:
resolution: {integrity: sha512-5vmt2HlCAVozxsBZuXWkAki/KGawaK+b5GG5x+BtXOFVpN/8cqppblFUxHl4jxdA0cvo14lABhM+KBnrUapOlw==}
hasBin: true
@@ -17578,9 +17395,6 @@ packages:
resolution: {integrity: sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==}
engines: {node: '>=18'}
tdigest@0.1.2:
resolution: {integrity: sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==}
termi-link@1.1.0:
resolution: {integrity: sha512-2qSN6TnomHgVLtk+htSWbaYs4Rd2MH/RU7VpHTy6MBstyNyWbM4yKd1DCYpE3fDg8dmGWojXCngNi/MHCzGuAA==}
engines: {node: '>=12'}
@@ -17626,12 +17440,6 @@ packages:
peerDependencies:
tslib: ^2
thread-stream@2.7.0:
resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==}
thread-stream@3.1.0:
resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==}
throttle-debounce@3.0.1:
resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
engines: {node: '>=10'}
@@ -20356,7 +20164,8 @@ snapshots:
'@effect-ts/system@0.57.5': {}
'@electric-sql/pglite@0.2.15': {}
'@electric-sql/pglite@0.2.15':
optional: true
'@emnapi/core@1.5.0':
dependencies:
@@ -20550,43 +20359,8 @@ snapshots:
'@fal-works/esbuild-plugin-global-externals@2.1.2': {}
'@fastify/ajv-compiler@3.6.0':
dependencies:
ajv: 8.17.1
ajv-formats: 2.1.1(ajv@8.17.1)
fast-uri: 2.4.0
'@fastify/busboy@3.1.1': {}
'@fastify/cors@9.0.1':
dependencies:
fastify-plugin: 4.5.1
mnemonist: 0.39.6
'@fastify/error@3.4.1': {}
'@fastify/fast-json-stringify-compiler@4.3.0':
dependencies:
fast-json-stringify: 5.16.1
'@fastify/merge-json-schemas@0.1.1':
dependencies:
fast-deep-equal: 3.1.3
'@fastify/swagger@8.15.0(supports-color@8.1.1)':
dependencies:
fastify-plugin: 4.5.1
json-schema-resolver: 2.0.0(supports-color@8.1.1)
openapi-types: 12.1.3
rfdc: 1.4.1
yaml: 2.8.1
transitivePeerDependencies:
- supports-color
'@fastify/type-provider-typebox@3.6.0(@sinclair/typebox@0.31.28)':
dependencies:
'@sinclair/typebox': 0.31.28
'@floating-ui/core@1.5.0':
dependencies:
'@floating-ui/utils': 0.1.6
@@ -21195,31 +20969,6 @@ snapshots:
dependencies:
graphql: 16.11.0
'@gregnr/postgres-meta@0.82.0-dev.2(encoding@0.1.13)(supports-color@8.1.1)':
dependencies:
'@fastify/cors': 9.0.1
'@fastify/swagger': 8.15.0(supports-color@8.1.1)
'@fastify/type-provider-typebox': 3.6.0(@sinclair/typebox@0.31.28)
'@sinclair/typebox': 0.31.28
close-with-grace: 1.3.0
crypto-js: 4.2.0
fastify: 4.29.1
fastify-metrics: 10.6.0(fastify@4.29.1)
pg: 8.16.3
pg-connection-string: 2.6.2
pg-format: 1.0.4
pg-protocol: 1.6.0
pgsql-parser: 13.5.0(encoding@0.1.13)(supports-color@8.1.1)
pino: 8.21.0
postgres-array: 3.0.2
prettier: 3.2.5
prettier-plugin-sql: 0.17.1(prettier@3.2.5)
transitivePeerDependencies:
- bluebird
- encoding
- pg-native
- supports-color
'@grpc/grpc-js@1.10.9':
dependencies:
'@grpc/proto-loader': 0.7.13
@@ -25656,8 +25405,6 @@ snapshots:
'@sinclair/typebox@0.27.8': {}
'@sinclair/typebox@0.31.28': {}
'@sindresorhus/is@7.1.0': {}
'@sindresorhus/merge-streams@2.3.0': {}
@@ -27479,8 +27226,6 @@ snapshots:
dependencies:
event-target-shim: 5.0.1
abstract-logging@2.0.1: {}
accepts@1.3.8:
dependencies:
mime-types: 2.1.35
@@ -27804,8 +27549,6 @@ snapshots:
asynckit@0.4.0: {}
atomic-sleep@1.0.0: {}
attr-accept@2.2.5: {}
auto-bind@4.0.0: {}
@@ -27843,11 +27586,6 @@ snapshots:
dependencies:
possible-typed-array-names: 1.0.0
avvio@8.4.0:
dependencies:
'@fastify/error': 3.4.1
fastq: 1.18.0
awesome-debounce-promise@2.1.0:
dependencies:
'@types/debounce-promise': 3.1.7
@@ -27948,8 +27686,6 @@ snapshots:
dependencies:
file-uri-to-path: 1.0.0
bintrees@1.0.2: {}
birpc@2.5.0: {}
bl@4.1.0:
@@ -28416,8 +28152,6 @@ snapshots:
clone@1.0.4: {}
close-with-grace@1.3.0: {}
clsx@1.2.1: {}
clsx@2.1.1: {}
@@ -30174,12 +29908,8 @@ snapshots:
extsprintf@1.4.1: {}
fast-content-type-parse@1.1.0: {}
fast-content-type-parse@2.0.1: {}
fast-decode-uri-component@1.0.1: {}
fast-deep-equal@3.1.3: {}
fast-equals@4.0.3: {}
@@ -30214,34 +29944,16 @@ snapshots:
fast-json-stable-stringify@2.1.0: {}
fast-json-stringify@5.16.1:
dependencies:
'@fastify/merge-json-schemas': 0.1.1
ajv: 8.17.1
ajv-formats: 3.0.1(ajv@8.17.1)
fast-deep-equal: 3.1.3
fast-uri: 2.4.0
json-schema-ref-resolver: 1.0.1
rfdc: 1.4.1
fast-levenshtein@2.0.6: {}
fast-loops@1.1.4: {}
fast-npm-meta@0.4.6: {}
fast-querystring@1.1.2:
dependencies:
fast-decode-uri-component: 1.0.1
fast-redact@3.5.0: {}
fast-safe-stringify@2.1.1: {}
fast-shallow-equal@1.0.0: {}
fast-uri@2.4.0: {}
fast-uri@3.0.6: {}
fast-xml-parser@4.4.1:
@@ -30254,33 +29966,6 @@ snapshots:
fastest-stable-stringify@2.0.2: {}
fastify-metrics@10.6.0(fastify@4.29.1):
dependencies:
fastify: 4.29.1
fastify-plugin: 4.5.1
prom-client: 14.2.0
fastify-plugin@4.5.1: {}
fastify@4.29.1:
dependencies:
'@fastify/ajv-compiler': 3.6.0
'@fastify/error': 3.4.1
'@fastify/fast-json-stringify-compiler': 4.3.0
abstract-logging: 2.0.1
avvio: 8.4.0
fast-content-type-parse: 1.1.0
fast-json-stringify: 5.16.1
find-my-way: 8.2.2
light-my-request: 5.14.0
pino: 9.6.0
process-warning: 3.0.0
proxy-addr: 2.0.7
rfdc: 1.4.1
secure-json-parse: 2.7.0
semver: 7.7.3
toad-cache: 3.7.0
fastq@1.18.0:
dependencies:
reusify: 1.0.4
@@ -30387,12 +30072,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
find-my-way@8.2.2:
dependencies:
fast-deep-equal: 3.1.3
fast-querystring: 1.1.2
safe-regex2: 3.1.0
find-up@5.0.0:
dependencies:
locate-path: 6.0.0
@@ -31940,18 +31619,6 @@ snapshots:
dependencies:
foreach: 2.0.6
json-schema-ref-resolver@1.0.1:
dependencies:
fast-deep-equal: 3.1.3
json-schema-resolver@2.0.0(supports-color@8.1.1):
dependencies:
debug: 4.4.3(supports-color@8.1.1)
rfdc: 1.4.1
uri-js: 4.4.1
transitivePeerDependencies:
- supports-color
json-schema-traverse@0.4.1: {}
json-schema-traverse@1.0.0: {}
@@ -31993,8 +31660,6 @@ snapshots:
jsonrepair@3.5.0: {}
jsox@1.2.121: {}
jsrsasign@11.0.0: {}
jsx-ast-utils@3.3.5:
@@ -32097,12 +31762,6 @@ snapshots:
dependencies:
'@pgsql/types': 17.6.2
light-my-request@5.14.0:
dependencies:
cookie: 0.7.2
process-warning: 3.0.0
set-cookie-parser: 2.7.1
lilconfig@2.1.0: {}
lilconfig@3.1.3: {}
@@ -33620,10 +33279,6 @@ snapshots:
pkg-types: 1.3.1
ufo: 1.6.3
mnemonist@0.39.6:
dependencies:
obliterator: 2.0.4
mobx-react-lite@4.1.0(mobx@6.11.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
mobx: 6.11.0
@@ -34396,8 +34051,6 @@ snapshots:
define-properties: 1.2.1
es-object-atoms: 1.1.1
obliterator@2.0.4: {}
obuf@1.1.2: {}
ofetch@1.4.1:
@@ -34410,8 +34063,6 @@ snapshots:
on-change@5.0.1: {}
on-exit-leak-free@2.1.2: {}
on-finished@2.4.1:
dependencies:
ee-first: 1.1.1
@@ -34833,8 +34484,6 @@ snapshots:
pg-cloudflare@1.2.7:
optional: true
pg-connection-string@2.6.2: {}
pg-connection-string@2.7.0: {}
pg-connection-string@2.9.1: {}
@@ -34864,8 +34513,6 @@ snapshots:
pg-protocol@1.10.3: {}
pg-protocol@1.6.0: {}
pg-protocol@1.7.1: {}
pg-types@2.2.0:
@@ -34946,47 +34593,6 @@ snapshots:
pify@3.0.0: {}
pino-abstract-transport@1.2.0:
dependencies:
readable-stream: 4.6.0
split2: 4.2.0
pino-abstract-transport@2.0.0:
dependencies:
split2: 4.2.0
pino-std-serializers@6.2.2: {}
pino-std-serializers@7.0.0: {}
pino@8.21.0:
dependencies:
atomic-sleep: 1.0.0
fast-redact: 3.5.0
on-exit-leak-free: 2.1.2
pino-abstract-transport: 1.2.0
pino-std-serializers: 6.2.2
process-warning: 3.0.0
quick-format-unescaped: 4.0.4
real-require: 0.2.0
safe-stable-stringify: 2.5.0
sonic-boom: 3.8.1
thread-stream: 2.7.0
pino@9.6.0:
dependencies:
atomic-sleep: 1.0.0
fast-redact: 3.5.0
on-exit-leak-free: 2.1.2
pino-abstract-transport: 2.0.0
pino-std-serializers: 7.0.0
process-warning: 4.0.0
quick-format-unescaped: 4.0.4
real-require: 0.2.0
safe-stable-stringify: 2.5.0
sonic-boom: 4.2.0
thread-stream: 3.1.0
pirates@4.0.6: {}
pkce-challenge@5.0.0: {}
@@ -35287,14 +34893,6 @@ snapshots:
sql-formatter: 11.0.2
tslib: 2.8.1
prettier-plugin-sql@0.17.1(prettier@3.2.5):
dependencies:
jsox: 1.2.121
node-sql-parser: 4.18.0
prettier: 3.2.5
sql-formatter: 14.0.0
tslib: 2.8.1
prettier@2.8.8: {}
prettier@3.2.4: {}
@@ -35337,18 +34935,10 @@ snapshots:
process-nextick-args@2.0.1: {}
process-warning@3.0.0: {}
process-warning@4.0.0: {}
process@0.11.10: {}
progress@2.0.3: {}
prom-client@14.2.0:
dependencies:
tdigest: 0.1.2
promise-inflight@1.0.1: {}
promise-retry@2.0.1:
@@ -35435,8 +35025,6 @@ snapshots:
queue-microtask@1.2.3: {}
quick-format-unescaped@4.0.4: {}
radix3@1.1.2: {}
raf-schd@4.0.3: {}
@@ -35928,8 +35516,6 @@ snapshots:
readdirp@4.1.1: {}
real-require@0.2.0: {}
recast@0.23.11:
dependencies:
ast-types: 0.16.1
@@ -36343,8 +35929,6 @@ snapshots:
ret@0.2.2: {}
ret@0.4.3: {}
retry@0.12.0: {}
rettime@0.7.0: {}
@@ -36474,12 +36058,6 @@ snapshots:
es-errors: 1.3.0
is-regex: 1.2.1
safe-regex2@3.1.0:
dependencies:
ret: 0.4.3
safe-stable-stringify@2.5.0: {}
safer-buffer@2.1.2: {}
sass@1.72.0:
@@ -36547,8 +36125,6 @@ snapshots:
extend-shallow: 2.0.1
kind-of: 6.0.3
secure-json-parse@2.7.0: {}
semver@5.7.2: {}
semver@6.3.1: {}
@@ -36953,14 +36529,6 @@ snapshots:
ip-address: 9.0.5
smart-buffer: 4.2.0
sonic-boom@3.8.1:
dependencies:
atomic-sleep: 1.0.0
sonic-boom@4.2.0:
dependencies:
atomic-sleep: 1.0.0
sonner@1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
react: 18.3.1
@@ -37022,12 +36590,6 @@ snapshots:
argparse: 2.0.1
nearley: 2.20.1
sql-formatter@14.0.0:
dependencies:
argparse: 2.0.1
get-stdin: 8.0.0
nearley: 2.20.1
sql-formatter@15.4.9:
dependencies:
argparse: 2.0.1
@@ -37520,10 +37082,6 @@ snapshots:
minizlib: 3.1.0
yallist: 5.0.0
tdigest@0.1.2:
dependencies:
bintrees: 1.0.2
termi-link@1.1.0: {}
terser-webpack-plugin@5.3.14(esbuild@0.25.2)(webpack@5.94.0(esbuild@0.25.2)):
@@ -37576,14 +37134,6 @@ snapshots:
dependencies:
tslib: 2.8.1
thread-stream@2.7.0:
dependencies:
real-require: 0.2.0
thread-stream@3.1.0:
dependencies:
real-require: 0.2.0
throttle-debounce@3.0.1: {}
throttleit@2.1.0: {}