diff --git a/README.md b/README.md index ac4f99b..2d3ef2e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ # helium -effortless webrtc screensharing \ No newline at end of file +effortless webrtc screensharing + diff --git a/app/assets/css/tailwind.css b/app/assets/css/tailwind.css index 5609026..80b48d4 100644 --- a/app/assets/css/tailwind.css +++ b/app/assets/css/tailwind.css @@ -1,5 +1,6 @@ @import "tailwindcss"; @import "tw-animate-css"; +@import "@clerk/themes/shadcn.css"; @custom-variant dark (&:is(.dark *)); @@ -43,74 +44,59 @@ } :root { - --radius: 0.625rem; - --background: oklch(1 0 0); - --foreground: oklch(0.145 0 0); - --card: oklch(1 0 0); - --card-foreground: oklch(0.145 0 0); - --popover: oklch(1 0 0); - --popover-foreground: oklch(0.145 0 0); - --primary: oklch(0.205 0 0); - --primary-foreground: oklch(0.985 0 0); - --secondary: oklch(0.97 0 0); - --secondary-foreground: oklch(0.205 0 0); - --muted: oklch(0.97 0 0); - --muted-foreground: oklch(0.556 0 0); - --accent: oklch(0.97 0 0); - --accent-foreground: oklch(0.205 0 0); - --destructive: oklch(0.577 0.245 27.325); - --destructive-foreground: oklch(0.577 0.245 27.325); - --border: oklch(0.922 0 0); - --input: oklch(0.922 0 0); - --ring: oklch(0.708 0 0); - --chart-1: oklch(0.646 0.222 41.116); - --chart-2: oklch(0.6 0.118 184.704); - --chart-3: oklch(0.398 0.07 227.392); - --chart-4: oklch(0.828 0.189 84.429); - --chart-5: oklch(0.769 0.188 70.08); - --sidebar: oklch(0.985 0 0); - --sidebar-foreground: oklch(0.145 0 0); - --sidebar-primary: oklch(0.205 0 0); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.97 0 0); - --sidebar-accent-foreground: oklch(0.205 0 0); - --sidebar-border: oklch(0.922 0 0); - --sidebar-ring: oklch(0.708 0 0); + --radius: 0.5rem; + --background: oklch(0.959 0.006 264.533); + --foreground: oklch(0.431 0.043 279.511); + --muted: oklch(0.92 0.006 264.531); + --muted-foreground: oklch(0.406 0.022 264.291); + --popover: oklch(0.934 0.009 264.519); + --popover-foreground: oklch(0.345 0.032 279.621); + --card: oklch(0.942 0.008 264.524); + --card-foreground: oklch(0.389 0.037 279.559); + --border: oklch(0.92 0.006 264.529); + --input: oklch(0.895 0.008 264.52); + --primary: oklch(0.554 0.25 296.956); + --primary-foreground: oklch(1 0 180); + --secondary: oklch(0.771 0.057 304.762); + --secondary-foreground: oklch(0.245 0.044 303.216); + --accent: oklch(0.832 0.023 264.439); + --accent-foreground: oklch(0.305 0.03 263.965); + --destructive: oklch(0.484 0.188 29.368); + --destructive-foreground: oklch(0.969 0.014 21.071); + --ring: oklch(0.554 0.25 296.956); + --chart-1: oklch(0.554 0.25 296.956); + --chart-2: oklch(0.771 0.057 304.762); + --chart-3: oklch(0.832 0.023 264.439); + --chart-4: oklch(0.799 0.049 304.917); + --chart-5: oklch(0.553 0.256 296.488); } .dark { - --background: oklch(0.145 0 0); - --foreground: oklch(0.985 0 0); - --card: oklch(0.145 0 0); - --card-foreground: oklch(0.985 0 0); - --popover: oklch(0.145 0 0); - --popover-foreground: oklch(0.985 0 0); - --primary: oklch(0.985 0 0); - --primary-foreground: oklch(0.205 0 0); - --secondary: oklch(0.269 0 0); - --secondary-foreground: oklch(0.985 0 0); - --muted: oklch(0.269 0 0); - --muted-foreground: oklch(0.708 0 0); - --accent: oklch(0.269 0 0); - --accent-foreground: oklch(0.985 0 0); - --destructive: oklch(0.396 0.141 25.723); - --destructive-foreground: oklch(0.637 0.237 25.331); - --border: oklch(0.269 0 0); - --input: oklch(0.269 0 0); - --ring: oklch(0.439 0 0); - --chart-1: oklch(0.488 0.243 264.376); - --chart-2: oklch(0.696 0.17 162.48); - --chart-3: oklch(0.769 0.188 70.08); - --chart-4: oklch(0.627 0.265 303.9); - --chart-5: oklch(0.645 0.246 16.439); - --sidebar: oklch(0.205 0 0); - --sidebar-foreground: oklch(0.985 0 0); - --sidebar-primary: oklch(0.488 0.243 264.376); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.269 0 0); - --sidebar-accent-foreground: oklch(0.985 0 0); - --sidebar-border: oklch(0.269 0 0); - --sidebar-ring: oklch(0.439 0 0); + --radius: 0.5rem; + --background: oklch(0.244 0.03 283.913); + --foreground: oklch(0.878 0.043 272.094); + --muted: oklch(0.293 0.021 285.027); + --muted-foreground: oklch(0.733 0.027 285.71); + --popover: oklch(0.216 0.025 284.103); + --popover-foreground: oklch(0.98 0.007 272.584); + --card: oklch(0.225 0.027 284.034); + --card-foreground: oklch(0.929 0.024 272.369); + --border: oklch(0.303 0.02 285.14); + --input: oklch(0.331 0.023 285.098); + --primary: oklch(0.787 0.119 304.446); + --primary-foreground: oklch(0.277 0.139 295.596); + --secondary: oklch(0.334 0.068 303.657); + --secondary-foreground: oklch(0.864 0.033 305.939); + --accent: oklch(0.372 0.055 283.423); + --accent-foreground: oklch(0.91 0.014 286.109); + --destructive: oklch(75.56% 0.13 2.76); + --destructive-foreground: oklch(1 0 180); + --ring: oklch(0.787 0.119 304.446); + --chart-1: oklch(0.787 0.119 304.446); + --chart-2: oklch(0.334 0.068 303.657); + --chart-3: oklch(0.372 0.055 283.423); + --chart-4: oklch(0.359 0.075 303.591); + --chart-5: oklch(0.784 0.123 304.365); } @layer base { @@ -123,4 +109,8 @@ h1 { @apply scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl; } -} \ No newline at end of file +} + +.cl-avatarBox { + @apply size-8; +} diff --git a/app/components/app/CodeInput.vue b/app/components/app/CodeInput.vue index 40d08f6..ef24be7 100644 --- a/app/components/app/CodeInput.vue +++ b/app/components/app/CodeInput.vue @@ -1,20 +1,46 @@ \ No newline at end of file + diff --git a/app/components/app/EditPresetDialog.vue b/app/components/app/EditPresetDialog.vue new file mode 100644 index 0000000..b470e3e --- /dev/null +++ b/app/components/app/EditPresetDialog.vue @@ -0,0 +1,54 @@ + + + diff --git a/app/components/app/PresetForm.vue b/app/components/app/PresetForm.vue new file mode 100644 index 0000000..8cb6131 --- /dev/null +++ b/app/components/app/PresetForm.vue @@ -0,0 +1,172 @@ + + + diff --git a/app/components/app/PresetSelect.vue b/app/components/app/PresetSelect.vue new file mode 100644 index 0000000..2c7bc1f --- /dev/null +++ b/app/components/app/PresetSelect.vue @@ -0,0 +1,108 @@ + + + diff --git a/app/components/app/SignInDialog.vue b/app/components/app/SignInDialog.vue new file mode 100644 index 0000000..5f3c98c --- /dev/null +++ b/app/components/app/SignInDialog.vue @@ -0,0 +1,12 @@ + + + diff --git a/app/components/ui/ThemeDropdown.vue b/app/components/ui/ThemeDropdown.vue index 0cf623c..77e98b0 100644 --- a/app/components/ui/ThemeDropdown.vue +++ b/app/components/ui/ThemeDropdown.vue @@ -7,12 +7,14 @@ const colorMode = useColorMode() \ No newline at end of file + diff --git a/app/components/ui/badge/Badge.vue b/app/components/ui/badge/Badge.vue new file mode 100644 index 0000000..d894dfe --- /dev/null +++ b/app/components/ui/badge/Badge.vue @@ -0,0 +1,26 @@ + + + diff --git a/app/components/ui/badge/index.ts b/app/components/ui/badge/index.ts new file mode 100644 index 0000000..bbc0dfa --- /dev/null +++ b/app/components/ui/badge/index.ts @@ -0,0 +1,26 @@ +import type { VariantProps } from "class-variance-authority" +import { cva } from "class-variance-authority" + +export { default as Badge } from "./Badge.vue" + +export const badgeVariants = cva( + "inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden", + { + variants: { + variant: { + default: + "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90", + secondary: + "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90", + destructive: + "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", + outline: + "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + }, +) +export type BadgeVariants = VariantProps diff --git a/app/components/ui/card/Card.vue b/app/components/ui/card/Card.vue new file mode 100644 index 0000000..f5a0707 --- /dev/null +++ b/app/components/ui/card/Card.vue @@ -0,0 +1,22 @@ + + + diff --git a/app/components/ui/card/CardAction.vue b/app/components/ui/card/CardAction.vue new file mode 100644 index 0000000..c91638b --- /dev/null +++ b/app/components/ui/card/CardAction.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/components/ui/card/CardContent.vue b/app/components/ui/card/CardContent.vue new file mode 100644 index 0000000..dfbc552 --- /dev/null +++ b/app/components/ui/card/CardContent.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/components/ui/card/CardDescription.vue b/app/components/ui/card/CardDescription.vue new file mode 100644 index 0000000..71c1b8d --- /dev/null +++ b/app/components/ui/card/CardDescription.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/components/ui/card/CardFooter.vue b/app/components/ui/card/CardFooter.vue new file mode 100644 index 0000000..9e3739e --- /dev/null +++ b/app/components/ui/card/CardFooter.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/components/ui/card/CardHeader.vue b/app/components/ui/card/CardHeader.vue new file mode 100644 index 0000000..4fe4da4 --- /dev/null +++ b/app/components/ui/card/CardHeader.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/components/ui/card/CardTitle.vue b/app/components/ui/card/CardTitle.vue new file mode 100644 index 0000000..5f479e7 --- /dev/null +++ b/app/components/ui/card/CardTitle.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/components/ui/card/index.ts b/app/components/ui/card/index.ts new file mode 100644 index 0000000..1627758 --- /dev/null +++ b/app/components/ui/card/index.ts @@ -0,0 +1,7 @@ +export { default as Card } from "./Card.vue" +export { default as CardAction } from "./CardAction.vue" +export { default as CardContent } from "./CardContent.vue" +export { default as CardDescription } from "./CardDescription.vue" +export { default as CardFooter } from "./CardFooter.vue" +export { default as CardHeader } from "./CardHeader.vue" +export { default as CardTitle } from "./CardTitle.vue" diff --git a/app/components/ui/dialog/Dialog.vue b/app/components/ui/dialog/Dialog.vue new file mode 100644 index 0000000..ade5260 --- /dev/null +++ b/app/components/ui/dialog/Dialog.vue @@ -0,0 +1,19 @@ + + + diff --git a/app/components/ui/dialog/DialogClose.vue b/app/components/ui/dialog/DialogClose.vue new file mode 100644 index 0000000..c5fae04 --- /dev/null +++ b/app/components/ui/dialog/DialogClose.vue @@ -0,0 +1,15 @@ + + + diff --git a/app/components/ui/dialog/DialogContent.vue b/app/components/ui/dialog/DialogContent.vue new file mode 100644 index 0000000..7f86b47 --- /dev/null +++ b/app/components/ui/dialog/DialogContent.vue @@ -0,0 +1,53 @@ + + + diff --git a/app/components/ui/dialog/DialogDescription.vue b/app/components/ui/dialog/DialogDescription.vue new file mode 100644 index 0000000..f52e655 --- /dev/null +++ b/app/components/ui/dialog/DialogDescription.vue @@ -0,0 +1,23 @@ + + + diff --git a/app/components/ui/dialog/DialogFooter.vue b/app/components/ui/dialog/DialogFooter.vue new file mode 100644 index 0000000..0a936e6 --- /dev/null +++ b/app/components/ui/dialog/DialogFooter.vue @@ -0,0 +1,15 @@ + + + diff --git a/app/components/ui/dialog/DialogHeader.vue b/app/components/ui/dialog/DialogHeader.vue new file mode 100644 index 0000000..bfc3c64 --- /dev/null +++ b/app/components/ui/dialog/DialogHeader.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/components/ui/dialog/DialogOverlay.vue b/app/components/ui/dialog/DialogOverlay.vue new file mode 100644 index 0000000..7790077 --- /dev/null +++ b/app/components/ui/dialog/DialogOverlay.vue @@ -0,0 +1,21 @@ + + + diff --git a/app/components/ui/dialog/DialogScrollContent.vue b/app/components/ui/dialog/DialogScrollContent.vue new file mode 100644 index 0000000..f2475db --- /dev/null +++ b/app/components/ui/dialog/DialogScrollContent.vue @@ -0,0 +1,59 @@ + + + diff --git a/app/components/ui/dialog/DialogTitle.vue b/app/components/ui/dialog/DialogTitle.vue new file mode 100644 index 0000000..860f01a --- /dev/null +++ b/app/components/ui/dialog/DialogTitle.vue @@ -0,0 +1,23 @@ + + + diff --git a/app/components/ui/dialog/DialogTrigger.vue b/app/components/ui/dialog/DialogTrigger.vue new file mode 100644 index 0000000..49667e9 --- /dev/null +++ b/app/components/ui/dialog/DialogTrigger.vue @@ -0,0 +1,15 @@ + + + diff --git a/app/components/ui/dialog/index.ts b/app/components/ui/dialog/index.ts new file mode 100644 index 0000000..6768b09 --- /dev/null +++ b/app/components/ui/dialog/index.ts @@ -0,0 +1,10 @@ +export { default as Dialog } from "./Dialog.vue" +export { default as DialogClose } from "./DialogClose.vue" +export { default as DialogContent } from "./DialogContent.vue" +export { default as DialogDescription } from "./DialogDescription.vue" +export { default as DialogFooter } from "./DialogFooter.vue" +export { default as DialogHeader } from "./DialogHeader.vue" +export { default as DialogOverlay } from "./DialogOverlay.vue" +export { default as DialogScrollContent } from "./DialogScrollContent.vue" +export { default as DialogTitle } from "./DialogTitle.vue" +export { default as DialogTrigger } from "./DialogTrigger.vue" diff --git a/app/components/ui/field/Field.vue b/app/components/ui/field/Field.vue new file mode 100644 index 0000000..5519d37 --- /dev/null +++ b/app/components/ui/field/Field.vue @@ -0,0 +1,25 @@ + + + diff --git a/app/components/ui/field/FieldContent.vue b/app/components/ui/field/FieldContent.vue new file mode 100644 index 0000000..d9a23fd --- /dev/null +++ b/app/components/ui/field/FieldContent.vue @@ -0,0 +1,20 @@ + + + diff --git a/app/components/ui/field/FieldDescription.vue b/app/components/ui/field/FieldDescription.vue new file mode 100644 index 0000000..7240a83 --- /dev/null +++ b/app/components/ui/field/FieldDescription.vue @@ -0,0 +1,22 @@ + + + diff --git a/app/components/ui/field/FieldError.vue b/app/components/ui/field/FieldError.vue new file mode 100644 index 0000000..8a0a63f --- /dev/null +++ b/app/components/ui/field/FieldError.vue @@ -0,0 +1,53 @@ + + + diff --git a/app/components/ui/field/FieldGroup.vue b/app/components/ui/field/FieldGroup.vue new file mode 100644 index 0000000..834d8ce --- /dev/null +++ b/app/components/ui/field/FieldGroup.vue @@ -0,0 +1,20 @@ + + + diff --git a/app/components/ui/field/FieldLabel.vue b/app/components/ui/field/FieldLabel.vue new file mode 100644 index 0000000..ce6c498 --- /dev/null +++ b/app/components/ui/field/FieldLabel.vue @@ -0,0 +1,23 @@ + + + diff --git a/app/components/ui/field/FieldLegend.vue b/app/components/ui/field/FieldLegend.vue new file mode 100644 index 0000000..c620fed --- /dev/null +++ b/app/components/ui/field/FieldLegend.vue @@ -0,0 +1,24 @@ + + + diff --git a/app/components/ui/field/FieldSeparator.vue b/app/components/ui/field/FieldSeparator.vue new file mode 100644 index 0000000..97d0efa --- /dev/null +++ b/app/components/ui/field/FieldSeparator.vue @@ -0,0 +1,29 @@ + + + diff --git a/app/components/ui/field/FieldSet.vue b/app/components/ui/field/FieldSet.vue new file mode 100644 index 0000000..7be4dc9 --- /dev/null +++ b/app/components/ui/field/FieldSet.vue @@ -0,0 +1,21 @@ + + + diff --git a/app/components/ui/field/FieldTitle.vue b/app/components/ui/field/FieldTitle.vue new file mode 100644 index 0000000..f564b8b --- /dev/null +++ b/app/components/ui/field/FieldTitle.vue @@ -0,0 +1,20 @@ + + + diff --git a/app/components/ui/field/index.ts b/app/components/ui/field/index.ts new file mode 100644 index 0000000..162ba14 --- /dev/null +++ b/app/components/ui/field/index.ts @@ -0,0 +1,39 @@ +import type { VariantProps } from "class-variance-authority" +import { cva } from "class-variance-authority" + +export const fieldVariants = cva( + "group/field flex w-full gap-3 data-[invalid=true]:text-destructive", + { + variants: { + orientation: { + vertical: ["flex-col [&>*]:w-full [&>.sr-only]:w-auto"], + horizontal: [ + "flex-row items-center", + "[&>[data-slot=field-label]]:flex-auto", + "has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px", + ], + responsive: [ + "flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto", + "@md/field-group:[&>[data-slot=field-label]]:flex-auto", + "@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px", + ], + }, + }, + defaultVariants: { + orientation: "vertical", + }, + }, +) + +export type FieldVariants = VariantProps + +export { default as Field } from "./Field.vue" +export { default as FieldContent } from "./FieldContent.vue" +export { default as FieldDescription } from "./FieldDescription.vue" +export { default as FieldError } from "./FieldError.vue" +export { default as FieldGroup } from "./FieldGroup.vue" +export { default as FieldLabel } from "./FieldLabel.vue" +export { default as FieldLegend } from "./FieldLegend.vue" +export { default as FieldSeparator } from "./FieldSeparator.vue" +export { default as FieldSet } from "./FieldSet.vue" +export { default as FieldTitle } from "./FieldTitle.vue" diff --git a/app/components/ui/input/Input.vue b/app/components/ui/input/Input.vue new file mode 100644 index 0000000..e5135c1 --- /dev/null +++ b/app/components/ui/input/Input.vue @@ -0,0 +1,33 @@ + + + diff --git a/app/components/ui/input/index.ts b/app/components/ui/input/index.ts new file mode 100644 index 0000000..9976b86 --- /dev/null +++ b/app/components/ui/input/index.ts @@ -0,0 +1 @@ +export { default as Input } from "./Input.vue" diff --git a/app/components/ui/label/Label.vue b/app/components/ui/label/Label.vue new file mode 100644 index 0000000..ee63970 --- /dev/null +++ b/app/components/ui/label/Label.vue @@ -0,0 +1,26 @@ + + + diff --git a/app/components/ui/label/index.ts b/app/components/ui/label/index.ts new file mode 100644 index 0000000..036e35c --- /dev/null +++ b/app/components/ui/label/index.ts @@ -0,0 +1 @@ +export { default as Label } from "./Label.vue" diff --git a/app/components/ui/select/Select.vue b/app/components/ui/select/Select.vue new file mode 100644 index 0000000..c94bbe8 --- /dev/null +++ b/app/components/ui/select/Select.vue @@ -0,0 +1,19 @@ + + + diff --git a/app/components/ui/select/SelectContent.vue b/app/components/ui/select/SelectContent.vue new file mode 100644 index 0000000..adf04ec --- /dev/null +++ b/app/components/ui/select/SelectContent.vue @@ -0,0 +1,51 @@ + + + diff --git a/app/components/ui/select/SelectGroup.vue b/app/components/ui/select/SelectGroup.vue new file mode 100644 index 0000000..e981c6c --- /dev/null +++ b/app/components/ui/select/SelectGroup.vue @@ -0,0 +1,15 @@ + + + diff --git a/app/components/ui/select/SelectItem.vue b/app/components/ui/select/SelectItem.vue new file mode 100644 index 0000000..9371764 --- /dev/null +++ b/app/components/ui/select/SelectItem.vue @@ -0,0 +1,44 @@ + + + diff --git a/app/components/ui/select/SelectItemText.vue b/app/components/ui/select/SelectItemText.vue new file mode 100644 index 0000000..b6700b1 --- /dev/null +++ b/app/components/ui/select/SelectItemText.vue @@ -0,0 +1,15 @@ + + + diff --git a/app/components/ui/select/SelectLabel.vue b/app/components/ui/select/SelectLabel.vue new file mode 100644 index 0000000..5b6650c --- /dev/null +++ b/app/components/ui/select/SelectLabel.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/components/ui/select/SelectScrollDownButton.vue b/app/components/ui/select/SelectScrollDownButton.vue new file mode 100644 index 0000000..7dc7670 --- /dev/null +++ b/app/components/ui/select/SelectScrollDownButton.vue @@ -0,0 +1,26 @@ + + + diff --git a/app/components/ui/select/SelectScrollUpButton.vue b/app/components/ui/select/SelectScrollUpButton.vue new file mode 100644 index 0000000..07fe87e --- /dev/null +++ b/app/components/ui/select/SelectScrollUpButton.vue @@ -0,0 +1,26 @@ + + + diff --git a/app/components/ui/select/SelectSeparator.vue b/app/components/ui/select/SelectSeparator.vue new file mode 100644 index 0000000..4b5c885 --- /dev/null +++ b/app/components/ui/select/SelectSeparator.vue @@ -0,0 +1,19 @@ + + + diff --git a/app/components/ui/select/SelectTrigger.vue b/app/components/ui/select/SelectTrigger.vue new file mode 100644 index 0000000..667908b --- /dev/null +++ b/app/components/ui/select/SelectTrigger.vue @@ -0,0 +1,33 @@ + + + diff --git a/app/components/ui/select/SelectValue.vue b/app/components/ui/select/SelectValue.vue new file mode 100644 index 0000000..d5ce58b --- /dev/null +++ b/app/components/ui/select/SelectValue.vue @@ -0,0 +1,15 @@ + + + diff --git a/app/components/ui/select/index.ts b/app/components/ui/select/index.ts new file mode 100644 index 0000000..96eae60 --- /dev/null +++ b/app/components/ui/select/index.ts @@ -0,0 +1,11 @@ +export { default as Select } from "./Select.vue" +export { default as SelectContent } from "./SelectContent.vue" +export { default as SelectGroup } from "./SelectGroup.vue" +export { default as SelectItem } from "./SelectItem.vue" +export { default as SelectItemText } from "./SelectItemText.vue" +export { default as SelectLabel } from "./SelectLabel.vue" +export { default as SelectScrollDownButton } from "./SelectScrollDownButton.vue" +export { default as SelectScrollUpButton } from "./SelectScrollUpButton.vue" +export { default as SelectSeparator } from "./SelectSeparator.vue" +export { default as SelectTrigger } from "./SelectTrigger.vue" +export { default as SelectValue } from "./SelectValue.vue" diff --git a/app/components/ui/separator/Separator.vue b/app/components/ui/separator/Separator.vue new file mode 100644 index 0000000..78d60ec --- /dev/null +++ b/app/components/ui/separator/Separator.vue @@ -0,0 +1,29 @@ + + + diff --git a/app/components/ui/separator/index.ts b/app/components/ui/separator/index.ts new file mode 100644 index 0000000..4407287 --- /dev/null +++ b/app/components/ui/separator/index.ts @@ -0,0 +1 @@ +export { default as Separator } from "./Separator.vue" diff --git a/app/components/ui/sonner/Sonner.vue b/app/components/ui/sonner/Sonner.vue index 1c70dca..6830896 100644 --- a/app/components/ui/sonner/Sonner.vue +++ b/app/components/ui/sonner/Sonner.vue @@ -1,19 +1,42 @@ diff --git a/app/components/ui/spinner/Spinner.vue b/app/components/ui/spinner/Spinner.vue new file mode 100644 index 0000000..57cd1a9 --- /dev/null +++ b/app/components/ui/spinner/Spinner.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/components/ui/spinner/index.ts b/app/components/ui/spinner/index.ts new file mode 100644 index 0000000..aa63007 --- /dev/null +++ b/app/components/ui/spinner/index.ts @@ -0,0 +1 @@ +export { default as Spinner } from "./Spinner.vue" diff --git a/app/components/ui/switch/Switch.vue b/app/components/ui/switch/Switch.vue new file mode 100644 index 0000000..2e725ed --- /dev/null +++ b/app/components/ui/switch/Switch.vue @@ -0,0 +1,38 @@ + + + diff --git a/app/components/ui/switch/index.ts b/app/components/ui/switch/index.ts new file mode 100644 index 0000000..cc081f3 --- /dev/null +++ b/app/components/ui/switch/index.ts @@ -0,0 +1 @@ +export { default as Switch } from "./Switch.vue" diff --git a/app/layouts/default.vue b/app/layouts/default.vue index 1d54525..5373295 100644 --- a/app/layouts/default.vue +++ b/app/layouts/default.vue @@ -1,11 +1,58 @@ diff --git a/app/lib/db/index.ts b/app/lib/db/index.ts index f927c89..c4c5c5a 100644 --- a/app/lib/db/index.ts +++ b/app/lib/db/index.ts @@ -1,5 +1,4 @@ -import { drizzle } from 'drizzle-orm/neon-http'; -import * as schema from './schema'; +import { drizzle } from "drizzle-orm/neon-http"; +import * as schema from "./schema"; export const db = drizzle(process.env.DATABASE_URL!, { schema }); - diff --git a/app/lib/db/migrate.ts b/app/lib/db/migrate.ts new file mode 100644 index 0000000..2b3968c --- /dev/null +++ b/app/lib/db/migrate.ts @@ -0,0 +1,19 @@ +import { migrate } from "drizzle-orm/neon-http/migrator"; +import { drizzle } from "drizzle-orm/neon-http"; +import * as schema from "./schema"; + +export async function runMigrations() { + if (!process.env.DATABASE_URL) { + throw new Error("DATABASE_URL environment variable is not set"); + } + + try { + const db = drizzle(process.env.DATABASE_URL, { schema }); + console.log("[DB] Running migrations..."); + await migrate(db, { migrationsFolder: "./drizzle" }); + console.log("[DB] Migrations completed successfully"); + } catch (error) { + console.error("[DB] Migration failed:", error); + throw error; + } +} diff --git a/app/lib/db/schema.ts b/app/lib/db/schema.ts index a6e5cce..f6d2c11 100644 --- a/app/lib/db/schema.ts +++ b/app/lib/db/schema.ts @@ -1,23 +1,97 @@ -import { pgTable, text, timestamp, uuid } from 'drizzle-orm/pg-core'; +import { + boolean, + pgTable, + text, + timestamp, + uniqueIndex, + uuid, +} from "drizzle-orm/pg-core"; +import { relations } from "drizzle-orm"; -export const peers = pgTable('peers', { - id: text('id').primaryKey(), - lastSeen: timestamp('last_seen').notNull().defaultNow(), +export const peers = pgTable("peers", { + id: text("id").primaryKey(), + lastSeen: timestamp("last_seen").notNull().defaultNow(), }); -export const rooms = pgTable('rooms', { - id: text('id').primaryKey(), - broadcaster: text('broadcaster').notNull().references(() => peers.id, { onDelete: 'cascade' }), - createdAt: timestamp('created_at').notNull().defaultNow(), -}); - -export const roomViewers = pgTable('room_viewers', { - id: uuid('id').primaryKey().defaultRandom(), - roomId: text('room_id') +export const rooms = pgTable("rooms", { + id: text("id").primaryKey(), + broadcaster: text("broadcaster") .notNull() - .references(() => rooms.id, { onDelete: 'cascade' }), - viewerId: text('viewer_id') - .notNull() - .references(() => peers.id, { onDelete: 'cascade' }), - joinedAt: timestamp('joined_at').notNull().defaultNow(), + .references(() => peers.id, { onDelete: "cascade" }), + createdAt: timestamp("created_at").notNull().defaultNow(), }); + +export const roomViewers = pgTable("room_viewers", { + id: uuid("id").primaryKey().defaultRandom(), + roomId: text("room_id") + .notNull() + .references(() => rooms.id, { onDelete: "cascade" }), + viewerId: text("viewer_id") + .notNull() + .references(() => peers.id, { onDelete: "cascade" }), + joinedAt: timestamp("joined_at").notNull().defaultNow(), +}); + +export const presets = pgTable("presets", { + id: uuid("id").primaryKey().defaultRandom(), + createdBy: text("created_by").notNull(), + name: text("name").notNull().unique(), + iceServers: text("ice_servers").notNull(), // stringified json obv + shareable: boolean("shareable").notNull().default(false), + createdAt: timestamp("created_at").notNull().defaultNow(), +}); + +export const presetUsers = pgTable( + "preset_users", + { + id: uuid("id").primaryKey().defaultRandom(), + presetId: uuid("preset_id") + .notNull() + .references(() => presets.id, { onDelete: "cascade" }), + userId: text("user_id").notNull(), + isDefault: boolean("is_default").notNull().default(false), + addedAt: timestamp("added_at").notNull().defaultNow(), + }, + (table) => ({ + uniquePresetUser: uniqueIndex().on(table.presetId, table.userId), + }), +); + +// relations +export const peersRelations = relations(peers, ({ many }) => ({ + roomsAsbroadcaster: many(rooms, { relationName: "broadcaster" }), + roomViewersAsViewer: many(roomViewers, { relationName: "viewer" }), +})); + +export const roomsRelations = relations(rooms, ({ one, many }) => ({ + broadcasterPeer: one(peers, { + fields: [rooms.broadcaster], + references: [peers.id], + relationName: "broadcaster", + }), + viewers: many(roomViewers, { relationName: "room" }), +})); + +export const roomViewersRelations = relations(roomViewers, ({ one }) => ({ + room: one(rooms, { + fields: [roomViewers.roomId], + references: [rooms.id], + relationName: "room", + }), + viewer: one(peers, { + fields: [roomViewers.viewerId], + references: [peers.id], + relationName: "viewer", + }), +})); + +export const presetsRelations = relations(presets, ({ many }) => ({ + presetUsers: many(presetUsers), +})); + +export const presetUsersRelations = relations(presetUsers, ({ one }) => ({ + preset: one(presets, { + fields: [presetUsers.presetId], + references: [presets.id], + }), +})); diff --git a/app/lib/schema/new-preset.ts b/app/lib/schema/new-preset.ts new file mode 100644 index 0000000..560aa66 --- /dev/null +++ b/app/lib/schema/new-preset.ts @@ -0,0 +1,108 @@ +import { z } from "zod"; + +export const schema = z.object({ + name: z + .string() + .min(3, "Name must be at least 3 characters.") + .max(20, "Name must be at most 20 characters."), + iceServers: z.string().superRefine((val, ctx) => { + // below code is ai generated. i am not writing validation myself istg + try { + const parsed = JSON.parse(val); + if (!Array.isArray(parsed)) { + ctx.addIssue({ + code: "custom", + message: "Must be a JSON array", + }); + return; + } + + // Validate each ICE server object + parsed.forEach((item, index) => { + if (typeof item !== "object" || item === null) { + ctx.addIssue({ + code: "custom", + message: `Item ${index}: must be an object`, + }); + return; + } + + // Validate urls field - can be string or array of strings + const { urls } = item; + if (!urls) { + ctx.addIssue({ + code: "custom", + message: `Item ${index}: 'urls' is required`, + }); + return; + } + + const urlsList = Array.isArray(urls) ? urls : [urls]; + + if (!Array.isArray(urls) && typeof urls !== "string") { + ctx.addIssue({ + code: "custom", + message: `Item ${index}: 'urls' must be a string or array of strings`, + }); + return; + } + + // Validate each URL in the urls list + urlsList.forEach((url, urlIndex) => { + if (typeof url !== "string") { + ctx.addIssue({ + code: "custom", + message: `Item ${index}: urls[${urlIndex}] must be a string`, + }); + return; + } + + // Validate STUN/TURN URL format (RFC 8829) + const isValidStunUrl = /^stuns?:.+/.test(url); + const isValidTurnUrl = /^turns?:.+/.test(url); + + if (!isValidStunUrl && !isValidTurnUrl) { + ctx.addIssue({ + code: "custom", + message: `Item ${index}: urls[${urlIndex}] must be a valid STUN (stun:) or TURN (turn:/turns:) URL`, + }); + } + }); + + // Validate optional fields + if (item.username !== undefined && typeof item.username !== "string") { + ctx.addIssue({ + code: "custom", + message: `Item ${index}: 'username' must be a string`, + }); + } + + if ( + item.credential !== undefined && + typeof item.credential !== "string" + ) { + ctx.addIssue({ + code: "custom", + message: `Item ${index}: 'credential' must be a string`, + }); + } + + if ( + item.credentialType !== undefined && + !["password", "oauth"].includes(item.credentialType) + ) { + ctx.addIssue({ + code: "custom", + message: `Item ${index}: 'credentialType' must be 'password' or 'oauth'`, + }); + } + }); + } catch (error) { + ctx.addIssue({ + code: "custom", + message: "Must be valid JSON", + }); + } + }), + default: z.boolean(), +}); diff --git a/app/lib/types/PresetGetResponse.ts b/app/lib/types/PresetGetResponse.ts new file mode 100644 index 0000000..6109fe0 --- /dev/null +++ b/app/lib/types/PresetGetResponse.ts @@ -0,0 +1,29 @@ +import type { getPresetAuthorData } from "~/lib/utils/presetsDb"; +// below types are ai generated +interface IceServer { + urls: string | string[]; + username?: string; + credential?: string; +} +interface Preset { + id: string; + name: string; + createdBy: string; + iceServers: string | IceServer[]; // Database returns string, we transform to IceServer[] + shareable: boolean; + createdAt: string; +} +export interface PresetUser { + id: string; + presetId: string; + userId: string; + isDefault: boolean; + addedAt: string; + preset: Preset; +} + +export interface ApiResponse { + success: boolean; + data: PresetUser[]; + author: Awaited>; +} diff --git a/app/lib/types/PresetShareResponse.ts b/app/lib/types/PresetShareResponse.ts new file mode 100644 index 0000000..007a22f --- /dev/null +++ b/app/lib/types/PresetShareResponse.ts @@ -0,0 +1,28 @@ +interface IceServer { + urls: string | string[]; + username?: string; + credential?: string; +} + +export interface Preset { + id: string; + name: string; + createdBy: string; + iceServers: string | IceServer[]; // Database returns string, we transform to IceServer[] + shareable: boolean; + createdAt: string; +} + +export interface PresetAuthor { + id: string; + fullName: string | null; + profileImageUrl: string | null; + username: string | null; + email: string | null; +} + +export interface PresetShareResponse { + success: boolean; + data: Preset; + author: PresetAuthor; +} diff --git a/app/lib/utils/presetsDb.ts b/app/lib/utils/presetsDb.ts new file mode 100644 index 0000000..cde3e4c --- /dev/null +++ b/app/lib/utils/presetsDb.ts @@ -0,0 +1,165 @@ +import { clerkClient } from "@clerk/nuxt/server"; +import { eq, and } from "drizzle-orm"; +import { db } from "~/lib/db/index"; +import * as schema from "~/lib/db/schema"; +import type { H3Event } from "h3"; + +export async function getUserPresets(clerkUserId: string) { + return await db.query.presetUsers.findMany({ + where: eq(schema.presetUsers.userId, clerkUserId), + with: { + preset: true, + }, + }); +} + +export async function getPresetById(presetId: string) { + return await db.query.presets.findFirst({ + where: eq(schema.presets.id, presetId), + }); +} + +export async function userHasPresetAccess( + presetId: string, + userId: string, +): Promise { + const preset = await getPresetById(presetId); + if (!preset) return false; + + if (preset.createdBy === userId) return true; + + const userPreset = await db.query.presetUsers.findFirst({ + where: and( + eq(schema.presetUsers.presetId, presetId), + eq(schema.presetUsers.userId, userId), + ), + }); + + return !!userPreset; +} + +export async function createPreset( + userId: string, + name: string, + iceServers: string, + isDefault: boolean = false, +) { + const presetCreate = await db + .insert(schema.presets) + .values({ + createdBy: userId, + name: name, + iceServers: iceServers, + }) + .returning({ insertedId: schema.presets.id }); + + const insertedId = presetCreate[0]?.insertedId; + if (!insertedId) { + throw new Error("Failed to get inserted preset ID"); + } + + await db.insert(schema.presetUsers).values({ + presetId: insertedId, + userId: userId, + isDefault: isDefault, + }); + + return insertedId; +} + +export async function updatePreset( + presetId: string, + name: string, + iceServers: string, +) { + await db + .update(schema.presets) + .set({ + name: name, + iceServers: iceServers, + }) + .where(eq(schema.presets.id, presetId)); +} + +export async function setPresetAsDefault(presetId: string, userId: string) { + await db + .update(schema.presetUsers) + .set({ isDefault: false }) + .where(eq(schema.presetUsers.userId, userId)); + + // set as default + await db + .update(schema.presetUsers) + .set({ isDefault: true }) + .where( + and( + eq(schema.presetUsers.presetId, presetId), + eq(schema.presetUsers.userId, userId), + ), + ); +} + +export async function unsetPresetAsDefault(presetId: string, userId: string) { + await db + .update(schema.presetUsers) + .set({ isDefault: false }) + .where( + and( + eq(schema.presetUsers.presetId, presetId), + eq(schema.presetUsers.userId, userId), + ), + ); +} + +export async function updatePresetDefaultStatus( + presetId: string, + userId: string, + isDefault: boolean, +) { + if (isDefault) { + await setPresetAsDefault(presetId, userId); + } else { + await unsetPresetAsDefault(presetId, userId); + } +} + +export async function deletePreset(presetId: string) { + await db.delete(schema.presets).where(eq(schema.presets.id, presetId)); +} + +export async function getOwnedPresets(userId: string) { + return await db.query.presets.findMany({ + where: eq(schema.presets.createdBy, userId), + }); +} + +export async function ownsPreset( + presetId: string, + userId: string, +): Promise { + const preset = await getPresetById(presetId); + if (!preset) return false; + return preset.createdBy === userId; +} + +export async function markAsShareable(presetId: string, shareable: boolean) { + await db + .update(schema.presets) + .set({ shareable }) + .where(eq(schema.presets.id, presetId)); +} + +export async function getPresetAuthorData(event: H3Event, presetId: string) { + const preset = await getPresetById(presetId); + if (!preset) { + throw createError({ statusCode: 404, statusMessage: "Preset not found" }); + } + const user = await clerkClient(event).users.getUser(preset.createdBy); + return { + id: user.id, + fullName: user.fullName, + profileImageUrl: user.imageUrl, + username: user.username, + email: user.primaryEmailAddress?.emailAddress || null, + }; +} diff --git a/app/middleware/auth.global.ts b/app/middleware/auth.global.ts new file mode 100644 index 0000000..99ac7dc --- /dev/null +++ b/app/middleware/auth.global.ts @@ -0,0 +1,14 @@ +// source: https://clerk.com/docs/guides/secure/protect-pages +// Define the routes you want to protect with `createRouteMatcher()` +const isProtectedRoute = createRouteMatcher(["/presets(.*)", "/stream(.*)"]); + +export default defineNuxtRouteMiddleware((to) => { + // Use the `useAuth()` composable to access the `isSignedIn` property + const { isSignedIn } = useAuth(); + + // Check if the user is not signed in and is trying to access a protected route + // If so, redirect them to the sign-in page + if (!isSignedIn.value && isProtectedRoute(to)) { + return navigateTo("/sign-in"); + } +}); diff --git a/app/pages/index.vue b/app/pages/index.vue index a6a0c4e..49d7177 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -1,59 +1,117 @@ + + +}); - - \ No newline at end of file + // Reset connection status + viewerStore.setConnectionStatus("disconnected"); + isConnected.value = false; + + // Exit fullscreen if active + if (document.fullscreenElement) { + document.exitFullscreen().catch(() => {}); + } +} + +function toggleFullscreen() { + if (!videofeedRef.value) return; + + if (!document.fullscreenElement) { + videofeedRef.value.requestFullscreen().catch((err) => { + console.error(`Error attempting to enable fullscreen: ${err.message}`); + }); + } else { + document.exitFullscreen(); + } +} + +function handleReset() { + viewerStore.resetDisconnected(); + viewerStore.setConnectionStatus('waiting for a code'); +} + +// Cleanup on component unmount +onBeforeUnmount(() => { + cleanupViewing(); + closeWebSocket(); +}); + +// Cleanup on window/tab close +onMounted(() => { + const handleBeforeUnload = () => { + cleanupViewing(); + }; + + window.addEventListener("beforeunload", handleBeforeUnload); + + onUnmounted(() => { + window.removeEventListener("beforeunload", handleBeforeUnload); + }); +}); + \ No newline at end of file diff --git a/app/pages/presets/index.vue b/app/pages/presets/index.vue new file mode 100644 index 0000000..a76eb1b --- /dev/null +++ b/app/pages/presets/index.vue @@ -0,0 +1,153 @@ + + + diff --git a/app/pages/presets/new.vue b/app/pages/presets/new.vue new file mode 100644 index 0000000..06e03db --- /dev/null +++ b/app/pages/presets/new.vue @@ -0,0 +1,11 @@ + + + diff --git a/app/pages/presets/shared/[id].vue b/app/pages/presets/shared/[id].vue new file mode 100644 index 0000000..da98973 --- /dev/null +++ b/app/pages/presets/shared/[id].vue @@ -0,0 +1,146 @@ + + + diff --git a/app/pages/sign-in/[...slug].vue b/app/pages/sign-in/[...slug].vue new file mode 100644 index 0000000..ee848ec --- /dev/null +++ b/app/pages/sign-in/[...slug].vue @@ -0,0 +1,5 @@ + diff --git a/app/pages/sign-up/[...slug].vue b/app/pages/sign-up/[...slug].vue new file mode 100644 index 0000000..1fc2573 --- /dev/null +++ b/app/pages/sign-up/[...slug].vue @@ -0,0 +1,5 @@ + diff --git a/app/pages/stream.vue b/app/pages/stream.vue index 6d3df9a..5ec335d 100644 --- a/app/pages/stream.vue +++ b/app/pages/stream.vue @@ -1,130 +1,189 @@ + + + // Close all peer connections + Object.values(streamerStore.peerConnections).forEach((pc) => { + pc.close(); + }); - + // Clear peer connections from store + streamerStore.clearPeerConnections(); + + // Clear video element + if (videofeedRef.value) { + videofeedRef.value.srcObject = null; + } + + // Clear room code + streamerStore.setCode(""); +} + +// Cleanup on component unmount +onBeforeUnmount(() => { + cleanupStreaming(); + closeWebSocket(); +}); + +// Cleanup on window/tab close +onMounted(() => { + const handleBeforeUnload = () => { + cleanupStreaming(); + }; + + window.addEventListener("beforeunload", handleBeforeUnload); + + onUnmounted(() => { + window.removeEventListener("beforeunload", handleBeforeUnload); + }); +}); + diff --git a/app/state/streamer.ts b/app/state/streamer.ts index 794abbf..341c14d 100644 --- a/app/state/streamer.ts +++ b/app/state/streamer.ts @@ -1,9 +1,10 @@ -import { defineStore} from 'pinia'; +import { defineStore } from "pinia"; -export const useStreamerStore = defineStore('streamer', { +export const useStreamerStore = defineStore("streamer", { state: () => ({ - code: '', + code: "", peerConnections: {} as Record, + iceServers: [] as RTCIceServer[], }), actions: { setCode(code: string) { @@ -12,5 +13,15 @@ export const useStreamerStore = defineStore('streamer', { addPeerConnection(id: string, pc: RTCPeerConnection) { this.peerConnections[id] = pc; }, + removePeerConnection(id: string) { + delete this.peerConnections[id]; + }, + clearPeerConnections() { + this.peerConnections = {}; + }, + setIceServers(iceServers: RTCIceServer[]) { + this.iceServers = iceServers; + }, }, -}); \ No newline at end of file +}); + diff --git a/app/state/viewer.ts b/app/state/viewer.ts index 6aa2b4f..9c85238 100644 --- a/app/state/viewer.ts +++ b/app/state/viewer.ts @@ -5,12 +5,13 @@ export const useViewerStore = defineStore('viewer', { code: '', peerConnection: null as RTCPeerConnection | null, connectionStatus: 'waiting for a code', + isDisconnected: false, }), actions: { setCode(code: string) { this.code = code; }, - setPeerConnection(pc: RTCPeerConnection) { + setPeerConnection(pc: RTCPeerConnection | null) { this.peerConnection = pc; }, setConnectionStatus(status: string) { @@ -18,6 +19,12 @@ export const useViewerStore = defineStore('viewer', { console.log('pinia connection status debug:', status); } this.connectionStatus = status; + if (status === 'disconnected') { + this.isDisconnected = true; + } + }, + resetDisconnected() { + this.isDisconnected = false; } }, }); \ No newline at end of file diff --git a/drizzle/0001_material_puma.sql b/drizzle/0001_material_puma.sql new file mode 100644 index 0000000..f82caca --- /dev/null +++ b/drizzle/0001_material_puma.sql @@ -0,0 +1,19 @@ +CREATE TABLE "preset_users" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, + "preset_id" uuid NOT NULL, + "user_id" text NOT NULL, + "is_default" boolean DEFAULT false NOT NULL, + "added_at" timestamp DEFAULT now() NOT NULL +); +--> statement-breakpoint +CREATE TABLE "presets" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, + "created_by" text NOT NULL, + "name" text NOT NULL, + "ice_servers" text NOT NULL, + "shareable" boolean DEFAULT false NOT NULL, + "created_at" timestamp DEFAULT now() NOT NULL +); +--> statement-breakpoint +ALTER TABLE "preset_users" ADD CONSTRAINT "preset_users_preset_id_presets_id_fk" FOREIGN KEY ("preset_id") REFERENCES "public"."presets"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +CREATE UNIQUE INDEX "preset_users_preset_id_user_id_index" ON "preset_users" USING btree ("preset_id","user_id"); \ No newline at end of file diff --git a/drizzle/0002_jazzy_onslaught.sql b/drizzle/0002_jazzy_onslaught.sql new file mode 100644 index 0000000..1dfc62b --- /dev/null +++ b/drizzle/0002_jazzy_onslaught.sql @@ -0,0 +1 @@ +ALTER TABLE "presets" ADD CONSTRAINT "presets_name_unique" UNIQUE("name"); \ No newline at end of file diff --git a/drizzle/meta/0001_snapshot.json b/drizzle/meta/0001_snapshot.json new file mode 100644 index 0000000..d632eb5 --- /dev/null +++ b/drizzle/meta/0001_snapshot.json @@ -0,0 +1,291 @@ +{ + "id": "2d7f156d-41b3-41bc-83a1-e2fe9e5ba17d", + "prevId": "bede7229-4dec-4922-b74e-3b2d146e8f85", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.peers": { + "name": "peers", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "last_seen": { + "name": "last_seen", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.preset_users": { + "name": "preset_users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "preset_id": { + "name": "preset_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "is_default": { + "name": "is_default", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "added_at": { + "name": "added_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "preset_users_preset_id_user_id_index": { + "name": "preset_users_preset_id_user_id_index", + "columns": [ + { + "expression": "preset_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "preset_users_preset_id_presets_id_fk": { + "name": "preset_users_preset_id_presets_id_fk", + "tableFrom": "preset_users", + "tableTo": "presets", + "columnsFrom": [ + "preset_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.presets": { + "name": "presets", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_by": { + "name": "created_by", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "ice_servers": { + "name": "ice_servers", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "shareable": { + "name": "shareable", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.room_viewers": { + "name": "room_viewers", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "room_id": { + "name": "room_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "viewer_id": { + "name": "viewer_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "joined_at": { + "name": "joined_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "room_viewers_room_id_rooms_id_fk": { + "name": "room_viewers_room_id_rooms_id_fk", + "tableFrom": "room_viewers", + "tableTo": "rooms", + "columnsFrom": [ + "room_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "room_viewers_viewer_id_peers_id_fk": { + "name": "room_viewers_viewer_id_peers_id_fk", + "tableFrom": "room_viewers", + "tableTo": "peers", + "columnsFrom": [ + "viewer_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.rooms": { + "name": "rooms", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "broadcaster": { + "name": "broadcaster", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "rooms_broadcaster_peers_id_fk": { + "name": "rooms_broadcaster_peers_id_fk", + "tableFrom": "rooms", + "tableTo": "peers", + "columnsFrom": [ + "broadcaster" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": {}, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} \ No newline at end of file diff --git a/drizzle/meta/0002_snapshot.json b/drizzle/meta/0002_snapshot.json new file mode 100644 index 0000000..fbb47cc --- /dev/null +++ b/drizzle/meta/0002_snapshot.json @@ -0,0 +1,299 @@ +{ + "id": "8c94aa55-1f21-4db7-9adb-26c17d4075a5", + "prevId": "2d7f156d-41b3-41bc-83a1-e2fe9e5ba17d", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.peers": { + "name": "peers", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "last_seen": { + "name": "last_seen", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.preset_users": { + "name": "preset_users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "preset_id": { + "name": "preset_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "is_default": { + "name": "is_default", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "added_at": { + "name": "added_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "preset_users_preset_id_user_id_index": { + "name": "preset_users_preset_id_user_id_index", + "columns": [ + { + "expression": "preset_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "preset_users_preset_id_presets_id_fk": { + "name": "preset_users_preset_id_presets_id_fk", + "tableFrom": "preset_users", + "tableTo": "presets", + "columnsFrom": [ + "preset_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.presets": { + "name": "presets", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_by": { + "name": "created_by", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "ice_servers": { + "name": "ice_servers", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "shareable": { + "name": "shareable", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "presets_name_unique": { + "name": "presets_name_unique", + "nullsNotDistinct": false, + "columns": [ + "name" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.room_viewers": { + "name": "room_viewers", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "room_id": { + "name": "room_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "viewer_id": { + "name": "viewer_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "joined_at": { + "name": "joined_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "room_viewers_room_id_rooms_id_fk": { + "name": "room_viewers_room_id_rooms_id_fk", + "tableFrom": "room_viewers", + "tableTo": "rooms", + "columnsFrom": [ + "room_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "room_viewers_viewer_id_peers_id_fk": { + "name": "room_viewers_viewer_id_peers_id_fk", + "tableFrom": "room_viewers", + "tableTo": "peers", + "columnsFrom": [ + "viewer_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.rooms": { + "name": "rooms", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "broadcaster": { + "name": "broadcaster", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "rooms_broadcaster_peers_id_fk": { + "name": "rooms_broadcaster_peers_id_fk", + "tableFrom": "rooms", + "tableTo": "peers", + "columnsFrom": [ + "broadcaster" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": {}, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} \ No newline at end of file diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index fb69edd..97c082e 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -8,6 +8,20 @@ "when": 1765910486192, "tag": "0000_pale_maximus", "breakpoints": true + }, + { + "idx": 1, + "version": "7", + "when": 1767895147484, + "tag": "0001_material_puma", + "breakpoints": true + }, + { + "idx": 2, + "version": "7", + "when": 1767985505802, + "tag": "0002_jazzy_onslaught", + "breakpoints": true } ] } \ No newline at end of file diff --git a/nuxt.config.ts b/nuxt.config.ts index ec65fd4..493afb4 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -1,33 +1,46 @@ import tailwindcss from "@tailwindcss/vite"; - +import { shadcn } from "@clerk/themes"; // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ - compatibilityDate: '2025-07-15', + compatibilityDate: "2025-07-15", devtools: { enabled: true }, - css: ['~/assets/css/tailwind.css'], + css: ["~/assets/css/tailwind.css"], vite: { - plugins: [ - tailwindcss(), - ], + plugins: [tailwindcss()], + server: { + allowedHosts: ["urods-79-145-156-36.a.free.pinggy.link"], + }, }, - modules: ['shadcn-nuxt', '@nuxtjs/color-mode', '@pinia/nuxt', 'nuxt-cron'], + modules: [ + "shadcn-nuxt", + "@nuxtjs/color-mode", + "@pinia/nuxt", + "nuxt-cron", + "@clerk/nuxt", + "nuxt-monaco-editor", + ], colorMode: { - classSuffix: '' + classSuffix: "", }, shadcn: { /** * Prefix for all the imported component */ - prefix: '', + prefix: "", /** * Directory that the component lives in. * @default "./components/ui" */ - componentDir: './components/ui' + componentDir: "./components/ui", }, nitro: { experimental: { - websocket: true - } + websocket: true, + }, }, -}) \ No newline at end of file + clerk: { + appearance: { + theme: shadcn, + }, + }, +}); diff --git a/package.json b/package.json index ce1390d..93b0d25 100644 --- a/package.json +++ b/package.json @@ -12,17 +12,21 @@ "db:migrate": "drizzle-kit generate && drizzle-kit migrate" }, "dependencies": { + "@clerk/nuxt": "^1.13.10", + "@clerk/themes": "^2.4.46", "@neondatabase/serverless": "^1.0.2", "@pinia/nuxt": "0.11.2", "@tailwindcss/vite": "^4.1.16", + "@tanstack/vue-form": "^1.27.7", "@vueuse/core": "^14.0.0", - "better-auth": "^1.4.7", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "dotenv": "^17.2.3", "drizzle-orm": "^0.45.1", "lucide-vue-next": "^0.548.0", - "nuxt": "^4.2.0", + "monaco-editor": "^0.55.1", + "nuxt": "^4.2.1", + "nuxt-monaco-editor": "^1.4.0", "pinia": "^3.0.3", "reka-ui": "^2.6.0", "shadcn-nuxt": "2.3.2", @@ -31,7 +35,8 @@ "tw-animate-css": "^1.4.0", "vue": "^3.5.22", "vue-router": "^4.6.3", - "vue-sonner": "^2.0.9" + "vue-sonner": "^2.0.9", + "zod": "^4.3.5" }, "devDependencies": { "@iconify-json/radix-icons": "^1.2.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e757b44..26b40ed 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,12 @@ importers: .: dependencies: + '@clerk/nuxt': + specifier: ^1.13.10 + version: 1.13.10(magicast@0.5.0)(react@19.2.3)(vue@3.5.22(typescript@5.9.3)) + '@clerk/themes': + specifier: ^2.4.46 + version: 2.4.46(react@19.2.3) '@neondatabase/serverless': specifier: ^1.0.2 version: 1.0.2 @@ -16,13 +22,13 @@ importers: version: 0.11.2(magicast@0.5.0)(pinia@3.0.3(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))) '@tailwindcss/vite': specifier: ^4.1.16 - version: 4.1.16(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) + version: 4.1.16(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) + '@tanstack/vue-form': + specifier: ^1.27.7 + version: 1.27.7(vue@3.5.22(typescript@5.9.3)) '@vueuse/core': specifier: ^14.0.0 version: 14.0.0(vue@3.5.22(typescript@5.9.3)) - better-auth: - specifier: ^1.4.7 - version: 1.4.7(drizzle-kit@0.31.8)(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(vue@3.5.22(typescript@5.9.3)) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -38,9 +44,15 @@ importers: lucide-vue-next: specifier: ^0.548.0 version: 0.548.0(vue@3.5.22(typescript@5.9.3)) + monaco-editor: + specifier: ^0.55.1 + version: 0.55.1 nuxt: - specifier: ^4.2.0 - version: 4.2.0(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.22)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(yaml@2.8.1) + specifier: ^4.2.1 + version: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2) + nuxt-monaco-editor: + specifier: ^1.4.0 + version: 1.4.0(magicast@0.5.0)(monaco-editor@0.55.1)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) pinia: specifier: ^3.0.3 version: 3.0.3(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)) @@ -67,7 +79,10 @@ importers: version: 4.6.3(vue@3.5.22(typescript@5.9.3)) vue-sonner: specifier: ^2.0.9 - version: 2.0.9(@nuxt/kit@4.2.0(magicast@0.5.0))(@nuxt/schema@4.2.0)(nuxt@4.2.0(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.22)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(yaml@2.8.1)) + version: 2.0.9(@nuxt/kit@4.2.2(magicast@0.5.0))(@nuxt/schema@4.2.2)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2)) + zod: + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@iconify-json/radix-icons': specifier: ^1.2.5 @@ -216,26 +231,76 @@ packages: resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} engines: {node: '>=6.9.0'} - '@better-auth/core@1.4.7': - resolution: {integrity: sha512-rNfj8aNFwPwAMYo+ahoWDsqKrV7svD3jhHSC6+A77xxKodbgV0UgH+RO21GMaZ0PPAibEl851nw5e3bsNslW/w==} + '@bomb.sh/tab@0.0.11': + resolution: {integrity: sha512-RSqyreeicYBALcMaNxIUJTBknftXsyW45VRq5gKDNwKroh0Re5SDoWwXZaphb+OTEzVdpm/BA8Uq6y0P+AtVYw==} + hasBin: true peerDependencies: - '@better-auth/utils': 0.3.0 - '@better-fetch/fetch': 1.1.21 - better-call: 1.1.5 - jose: ^6.1.0 - kysely: ^0.28.5 - nanostores: ^1.0.1 + cac: ^6.7.14 + citty: ^0.1.6 + commander: ^13.1.0 + peerDependenciesMeta: + cac: + optional: true + citty: + optional: true + commander: + optional: true - '@better-auth/telemetry@1.4.7': - resolution: {integrity: sha512-k07C/FWnX6m+IxLruNkCweIxuaIwVTB2X40EqwamRVhYNBAhOYZFGLHH+PtQyM+Yf1Z4+8H6MugLOXSreXNAjQ==} + '@clack/core@1.0.0-alpha.7': + resolution: {integrity: sha512-3vdh6Ar09D14rVxJZIm3VQJkU+ZOKKT5I5cC0cOVazy70CNyYYjiwRj9unwalhESndgxx6bGc/m6Hhs4EKF5XQ==} + + '@clack/prompts@1.0.0-alpha.9': + resolution: {integrity: sha512-sKs0UjiHFWvry4SiRfBi5Qnj0C/6AYx8aKkFPZQSuUZXgAram25ZDmhQmP7vj1aFyLpfHWtLQjWvOvcat0TOLg==} + + '@clerk/backend@2.29.0': + resolution: {integrity: sha512-cw4CK6ZHgeFROirlIOawelqRBxZAyH6v3GPSYZEEzYAL0WWUHx7cMXzoQcTMruH7w6UM7s3Ox+uUcINESWkQPA==} + engines: {node: '>=18.17.0'} + + '@clerk/nuxt@1.13.10': + resolution: {integrity: sha512-zaw1Coc3In8/y3O3zEcwaydcvAeVMZdmTt9D+wkpvZGiUGDHfKipQRwuFpw92HhSTUD4LjeJ2h/XbCScKZnepg==} + engines: {node: '>=18.17.0'} + + '@clerk/shared@3.41.1': + resolution: {integrity: sha512-BCbT7Xodk2rndA2nV/lW8X5LMNTvFP5UG2wNN9cYuAcTaI6hYZP18/z2zef2gG4xIrK7WAEjGVzHscikqNtzFQ==} + engines: {node: '>=18.17.0'} peerDependencies: - '@better-auth/core': 1.4.7 + react: ^18.0.0 || ~19.0.3 || ~19.1.4 || ~19.2.3 || ~19.3.0-0 + react-dom: ^18.0.0 || ~19.0.3 || ~19.1.4 || ~19.2.3 || ~19.3.0-0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true - '@better-auth/utils@0.3.0': - resolution: {integrity: sha512-W+Adw6ZA6mgvnSnhOki270rwJ42t4XzSK6YWGF//BbVXL6SwCLWfyzBc1lN2m/4RM28KubdBKQ4X5VMoLRNPQw==} + '@clerk/shared@3.42.0': + resolution: {integrity: sha512-sJUur/7jnHHlAsdoDosxpOmfV05VR7K5rvqlFskj3GaAMFEJrvdOztw0hmhBGVSWiCpjTZfdGITegton8mo7mQ==} + engines: {node: '>=18.17.0'} + peerDependencies: + react: ^18.0.0 || ~19.0.3 || ~19.1.4 || ~19.2.3 || ~19.3.0-0 + react-dom: ^18.0.0 || ~19.0.3 || ~19.1.4 || ~19.2.3 || ~19.3.0-0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true - '@better-fetch/fetch@1.1.21': - resolution: {integrity: sha512-/ImESw0sskqlVR94jB+5+Pxjf+xBwDZF/N5+y2/q4EqD7IARUTSpPfIo8uf39SYpCxyOCtbyYpUrZ3F/k0zT4A==} + '@clerk/themes@2.4.46': + resolution: {integrity: sha512-26U+aInnWJwYHrT/LYX7sGRrLJwLk4NvfEoUyVc5EXUl7ue/TZ88r7ZiKDv0KutBTNopaz+p+7KD6F1j72nodA==} + engines: {node: '>=18.17.0'} + + '@clerk/types@4.101.10': + resolution: {integrity: sha512-qlmgnAm/IeK02RKEKVN8/Glx07xw/Lcv67jBfikM8HXhHc5v7bfYLD8UiWTr6H2RGtvB09cIt9JezRRlsuVBew==} + engines: {node: '>=18.17.0'} + + '@clerk/types@4.101.9': + resolution: {integrity: sha512-RO00JqqmkIoI1o0XCtvudjaLpqEoe8PRDHlLS1r/aNZazUQCO0TT6nZOx1F3X+QJDjqYVY7YmYl3mtO2QVEk1g==} + engines: {node: '>=18.17.0'} + + '@clerk/vue@1.17.7': + resolution: {integrity: sha512-NnVUIzV+vJeVRqtxHnsp96LLZJcvsKEA4xnC/iogW4PFM0C8Qb12038E5wV/xV3YhBiwnjTEGPmK9rbfFdXgtw==} + engines: {node: '>=18.17.0'} + peerDependencies: + vue: ^3.2.0 '@cloudflare/kv-asset-handler@0.4.0': resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} @@ -244,18 +309,24 @@ packages: '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} - '@dxup/nuxt@0.2.0': - resolution: {integrity: sha512-tUS2040HEiGwjwZ8hTczfuRoiXSOuA+ATPXO9Bllf03nHHj1lSlmaAyVJHFsSXL5Os5NZqimNAZ1iDed7VElzA==} + '@dxup/nuxt@0.2.2': + resolution: {integrity: sha512-RNpJjDZs9+JcT9N87AnOuHsNM75DEd58itADNd/s1LIF6BZbTLZV0xxilJZb55lntn4TYvscTaXLCBX2fq9CXg==} - '@dxup/unimport@0.1.0': - resolution: {integrity: sha512-6Q/Po8qGmlrShdG/R9+rpIhme9N/PGJumpvmwr1UAxGpt9DfOCt9kF8+yJkxhtPdJFL37KgUILZBRAkSU8cJZg==} + '@dxup/unimport@0.1.2': + resolution: {integrity: sha512-/B8YJGPzaYq1NbsQmwgP8EZqg40NpTw4ZB3suuI0TplbxKHeK94jeaawLmVhCv+YwUnOpiWEz9U6SeThku/8JQ==} '@emnapi/core@1.6.0': resolution: {integrity: sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg==} + '@emnapi/core@1.8.1': + resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} + '@emnapi/runtime@1.6.0': resolution: {integrity: sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA==} + '@emnapi/runtime@1.8.1': + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} @@ -784,18 +855,13 @@ packages: '@napi-rs/wasm-runtime@1.0.7': resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} + '@napi-rs/wasm-runtime@1.1.1': + resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} + '@neondatabase/serverless@1.0.2': resolution: {integrity: sha512-I5sbpSIAHiB+b6UttofhrN/UJXII+4tZPAq1qugzwCwLIL8EZLV7F/JyHUrEIiGgQpEXzpnjlJ+zwcEhheGvCw==} engines: {node: '>=19.0.0'} - '@noble/ciphers@2.1.1': - resolution: {integrity: sha512-bysYuiVfhxNJuldNXlFEitTVdNnYUc+XNJZd7Qm2a5j1vZHgY+fazadNFWFaMK/2vye0JVlxV3gHmC0WDfAOQw==} - engines: {node: '>= 20.19.0'} - - '@noble/hashes@2.0.1': - resolution: {integrity: sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==} - engines: {node: '>= 20.19.0'} - '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -808,28 +874,32 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@nuxt/cli@3.29.3': - resolution: {integrity: sha512-48GYmH4SyzR5pqd02UXVzBfrvEGaurPKMjSWxlHgqnpI5buwOYCvH+OqvHOmvnLrDP2bxR9hbDod/UIphOjMhg==} + '@nuxt/cli@3.32.0': + resolution: {integrity: sha512-n2f3SRjPlhthPvo2qWjLRRiTrUtB6WFwg0BGsvtqcqZVeQpNEU371zuKWBaFrWgqDZHV1r/aD9jrVCo+C8Pmrw==} engines: {node: ^16.10.0 || >=18.0.0} hasBin: true '@nuxt/devalue@2.0.2': resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} - '@nuxt/devtools-kit@2.7.0': - resolution: {integrity: sha512-MIJdah6CF6YOW2GhfKnb8Sivu6HpcQheqdjOlZqShBr+1DyjtKQbAKSCAyKPaoIzZP4QOo2SmTFV6aN8jBeEIQ==} + '@nuxt/devtools-kit@3.1.1': + resolution: {integrity: sha512-sjiKFeDCOy1SyqezSgyV4rYNfQewC64k/GhOsuJgRF+wR2qr6KTVhO6u2B+csKs74KrMrnJprQBgud7ejvOXAQ==} peerDependencies: vite: '>=6.0' - '@nuxt/devtools-wizard@2.7.0': - resolution: {integrity: sha512-iWuWR0U6BRpF7D6xrgq9ZkQ6ajsw2EA/gVmbU9V5JPKRUtV6DVpCPi+h34VFNeQ104Sf531XgvT0sl3h93AjXA==} + '@nuxt/devtools-wizard@3.1.1': + resolution: {integrity: sha512-6UORjapNKko2buv+3o57DQp69n5Z91TeJ75qdtNKcTvOfCTJrO78Ew0nZSgMMGrjbIJ4pFsHQEqXfgYLw3pNxg==} hasBin: true - '@nuxt/devtools@2.7.0': - resolution: {integrity: sha512-BtIklVYny14Ykek4SHeexAHoa28MEV9kz223ZzvoNYqE0f+YVV+cJP69ovZHf+HUVpxaAMJfWKLHXinWXiCZ4Q==} + '@nuxt/devtools@3.1.1': + resolution: {integrity: sha512-UG8oKQqcSyzwBe1l0z24zypmwn6FLW/HQMHK/F/gscUU5LeMHzgBhLPD+cuLlDvwlGAbifexWNMsS/I7n95KlA==} hasBin: true peerDependencies: + '@vitejs/devtools': '*' vite: '>=6.0' + peerDependenciesMeta: + '@vitejs/devtools': + optional: true '@nuxt/kit@3.20.0': resolution: {integrity: sha512-EoF1Gf0SPj9vxgAIcGEH+a4PRLC7Dwsy21K6f5+POzylT8DgssN8zL5pwXC+X7OcfzBrwYFh7mM7phvh7ubgeg==} @@ -839,26 +909,34 @@ packages: resolution: {integrity: sha512-1yN3LL6RDN5GjkNLPUYCbNRkaYnat6hqejPyfIBBVzrWOrpiQeNMGxQM/IcVdaSuBJXAnu0sUvTKXpXkmPhljg==} engines: {node: '>=18.12.0'} - '@nuxt/nitro-server@4.2.0': - resolution: {integrity: sha512-1fZwAV+VTQwmPVUYKH+eoeB+3jPE+c/mreK3PpuY6vvrIDuMh9L4QIeLFB0fIcY2MJ4XkvjU/5w3B9uu3GR9yQ==} + '@nuxt/kit@4.2.2': + resolution: {integrity: sha512-ZAgYBrPz/yhVgDznBNdQj2vhmOp31haJbO0I0iah/P9atw+OHH7NJLUZ3PK+LOz/0fblKTN1XJVSi8YQ1TQ0KA==} + engines: {node: '>=18.12.0'} + + '@nuxt/nitro-server@4.2.2': + resolution: {integrity: sha512-lDITf4n5bHQ6a5MO7pvkpdQbPdWAUgSvztSHCfui/3ioLZsM2XntlN02ue6GSoh3oV9H4xSB3qGa+qlSjgxN0A==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - nuxt: ^4.2.0 + nuxt: ^4.2.2 '@nuxt/schema@4.2.0': resolution: {integrity: sha512-YMbgpEyPokgOYME6BvY8Okk7GAIwhEFYzrkkkoU9IVgu0tKWetYRrjUwbd0eICqPm9EWDBQl5tTTNJ8xCndVbw==} engines: {node: ^14.18.0 || >=16.10.0} + '@nuxt/schema@4.2.2': + resolution: {integrity: sha512-lW/1MNpO01r5eR/VoeanQio8Lg4QpDklMOHa4mBHhhPNlBO1qiRtVYzjcnNdun3hujGauRaO9khGjv93Z5TZZA==} + engines: {node: ^14.18.0 || >=16.10.0} + '@nuxt/telemetry@2.6.6': resolution: {integrity: sha512-Zh4HJLjzvm3Cq9w6sfzIFyH9ozK5ePYVfCUzzUQNiZojFsI2k1QkSBrVI9BGc6ArKXj/O6rkI6w7qQ+ouL8Cag==} engines: {node: '>=18.12.0'} hasBin: true - '@nuxt/vite-builder@4.2.0': - resolution: {integrity: sha512-pNHIoO8kiSsOnoMo2zmxy0mk71ZBP4KJCiXr7Ahq8ewOm4W4vFQ1NV1O46wJGZyxlPC6nqFuYBvcUwVp1LgTNg==} + '@nuxt/vite-builder@4.2.2': + resolution: {integrity: sha512-Bot8fpJNtHZrM4cS1iSR7bEAZ1mFLAtJvD/JOSQ6kT62F4hSFWfMubMXOwDkLK2tnn3bnAdSqGy1nLNDBCahpQ==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - nuxt: 4.2.0 + nuxt: 4.2.2 rolldown: ^1.0.0-beta.38 vue: ^3.3.4 peerDependenciesMeta: @@ -868,106 +946,112 @@ packages: '@nuxtjs/color-mode@3.5.2': resolution: {integrity: sha512-cC6RfgZh3guHBMLLjrBB2Uti5eUoGM9KyauOaYS9ETmxNWBMTvpgjvSiSJp1OFljIXPIqVTJ3xtJpSNZiO3ZaA==} - '@oxc-minify/binding-android-arm64@0.95.0': - resolution: {integrity: sha512-ck0NakTt3oBWTMQjxKf5ZW1GzCs0y1kETzJdh8h8NAWTutlMfeWiuUxCgG4FMF4XiTnCdLq/dFAKFcdbiwcoqg==} + '@oxc-minify/binding-android-arm64@0.102.0': + resolution: {integrity: sha512-pknM+ttJTwRr7ezn1v5K+o2P4RRjLAzKI10bjVDPybwWQ544AZW6jxm7/YDgF2yUbWEV9o7cAQPkIUOmCiW8vg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-minify/binding-darwin-arm64@0.95.0': - resolution: {integrity: sha512-uvRkBVsh88DgMqddCIHcL1tKycKThfzLHNuBOm7csfpOD85TJimpl/1qAfrTCNrdaiteFK4U9QRKBdDvZay4RQ==} + '@oxc-minify/binding-darwin-arm64@0.102.0': + resolution: {integrity: sha512-BDLiH41ZctNND38+GCEL3ZxFn9j7qMZJLrr6SLWMt8xlG4Sl64xTkZ0zeUy4RdVEatKKZdrRIhFZ2e5wPDQT6Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-minify/binding-darwin-x64@0.95.0': - resolution: {integrity: sha512-SpDArHPKy/K9rduOCdlqz4BxFZte5Ad4/CPNaP0EaVTNbDW1OjBMrVOzRxr/bveWUbUJW3gbWby//YzXCese/w==} + '@oxc-minify/binding-darwin-x64@0.102.0': + resolution: {integrity: sha512-AcB8ZZ711w4hTDhMfMHNjT2d+hekTQ2XmNSUBqJdXB+a2bJbE50UCRq/nxXl44zkjaQTit3lcQbFvhk2wwKcpw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-minify/binding-freebsd-x64@0.95.0': - resolution: {integrity: sha512-U/ER7VsDCOv9HTE3rIZmNdN2ijZTT1vjDPPRsl9Z5Zyip2OsbHJxh4iNC00bO7qSw5keADuP4ooXsu2pjnfXNA==} + '@oxc-minify/binding-freebsd-x64@0.102.0': + resolution: {integrity: sha512-UlLEN9mR5QaviYVMWZQsN9DgAH3qyV67XUXDEzSrbVMLsqHsVHhFU8ZIeO0fxWTQW/cgpvldvKp9/+RdrggqWw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-minify/binding-linux-arm-gnueabihf@0.95.0': - resolution: {integrity: sha512-g+u5Zg72J7G9DbjnCIO6BhHE4lSaODLFjArFq9sZWu4xi4QOYapGdNZVbQWrWjzGlKTvYOhH621ySMOc07O64g==} + '@oxc-minify/binding-linux-arm-gnueabihf@0.102.0': + resolution: {integrity: sha512-CWyCwedZrUt47n56/RwHSwKXxVI3p98hB0ntLaBNeH5qjjBujs9uOh4bQ0aAlzUWunT77b3/Y+xcQnmV42HN4A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-minify/binding-linux-arm-musleabihf@0.95.0': - resolution: {integrity: sha512-RqQctWyvgSVkJ+UMhDPLDjSO+YjAWFGoSfvikgEIvGrTVjFzXz20EDFSH+CR9J+mXsuJOku63VKmcAZr8Vd/Qg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@oxc-minify/binding-linux-arm64-gnu@0.95.0': - resolution: {integrity: sha512-psrzacTaa5zmRXm2Skooj5YOZvueFZLOjNDAkwQcjIgrVAzl7uXtDCPq8soM46O12wGXMpDNUkrbD2BVcF+S9g==} + '@oxc-minify/binding-linux-arm64-gnu@0.102.0': + resolution: {integrity: sha512-W/DCw+Ys8rXj4j38ylJ2l6Kvp6SV+eO5SUWA11imz7yCWntNL001KJyGQ9PJNUFHg0jbxe3yqm4M50v6miWzeA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-minify/binding-linux-arm64-musl@0.95.0': - resolution: {integrity: sha512-W5VWcOTIxH8bvIviiFreNHK5RkaNE7Y7hm0fxYa9pAdDe8U2OnD77JPPHmNSKYROaDa1ZsmXK1dAOnwGcxvv1w==} + '@oxc-minify/binding-linux-arm64-musl@0.102.0': + resolution: {integrity: sha512-DyH/t/zSZHuX4Nn239oBteeMC4OP7B13EyXWX18Qg8aJoZ+lZo90WPGOvhP04zII33jJ7di+vrtAUhsX64lp+A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-minify/binding-linux-riscv64-gnu@0.95.0': - resolution: {integrity: sha512-FBAaIvTcRqdXDPZAsfEBc5nK3noZtEAO82090ne5EDsDNKu8u8sjLhXYJWM3AZFD6p7OPRqBby6N4pVicrk0dA==} + '@oxc-minify/binding-linux-riscv64-gnu@0.102.0': + resolution: {integrity: sha512-CMvzrmOg+Gs44E7TRK/IgrHYp+wwVJxVV8niUrDR2b3SsrCO3NQz5LI+7bM1qDbWnuu5Cl1aiitoMfjRY61dSg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxc-minify/binding-linux-s390x-gnu@0.95.0': - resolution: {integrity: sha512-7/OWwUC3r0/nPsHOCsTkgitdjpvDOwm8f4lE/Xeigt+9EcRcVuaSHRVOHI47mQ/cSL6V3AObVcmiAGysR36vEw==} + '@oxc-minify/binding-linux-s390x-gnu@0.102.0': + resolution: {integrity: sha512-tZWr6j2s0ddm9MTfWTI3myaAArg9GDy4UgvpF00kMQAjLcGUNhEEQbB9Bd9KtCvDQzaan8HQs0GVWUp+DWrymw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@oxc-minify/binding-linux-x64-gnu@0.95.0': - resolution: {integrity: sha512-3K2lxzk679ml1vXJtO8Nt3xMD2trnDQWBb4Q676Un5g3dbaYf1WgTmEI13ZnCrwE5uBI02DFtFQplkLFqb9dGA==} + '@oxc-minify/binding-linux-x64-gnu@0.102.0': + resolution: {integrity: sha512-0YEKmAIun1bS+Iy5Shx6WOTSj3GuilVuctJjc5/vP8/EMTZ/RI8j0eq0Mu3UFPoT/bMULL3MBXuHuEIXmq7Ddg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-minify/binding-linux-x64-musl@0.95.0': - resolution: {integrity: sha512-DrxQAALZs/He11OlCWZrJGsdwGSAK61nkZxcl3MnO33mL54Qs/vI9AbI2lMtggU+xB2sNKbjKTTpTbCPHOmhTA==} + '@oxc-minify/binding-linux-x64-musl@0.102.0': + resolution: {integrity: sha512-Ew4QDpEsXoV+pG5+bJpheEy3GH436GBe6ASPB0X27Hh9cQ2gb1NVZ7cY7xJj68+fizwS/PtT8GHoG3uxyH17Pg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-minify/binding-wasm32-wasi@0.95.0': - resolution: {integrity: sha512-PASXKqJyLHesNjTweXqkA3kG/hdjpauGb+REP5yZ4dr8gxu5DbMqk4QjsBmW3LjDF4tXXjRs8nHR6Qt2dhxTzA==} + '@oxc-minify/binding-openharmony-arm64@0.102.0': + resolution: {integrity: sha512-wYPXS8IOu/sXiP3CGHJNPzZo4hfPAwJKevcFH2syvU2zyqUxym7hx6smfcK/mgJBiX7VchwArdGRwrEQKcBSaQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxc-minify/binding-wasm32-wasi@0.102.0': + resolution: {integrity: sha512-52SepCb9e+8cVisGa9S/F14K8PxW0AnbV1j4KEYi8uwfkUIxeDNKRHVHzPoBXNrr0yxW0EHLn/3i8J7a2YCpWw==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-minify/binding-win32-arm64-msvc@0.95.0': - resolution: {integrity: sha512-fPVQZWObqqBRYedFy/bOI0UzUZCqq6ra/PBZFqi31c5Zn73ETTseLYL7ebQqKgjv8l9gQPBIAFIoXYsaoxT72A==} + '@oxc-minify/binding-win32-arm64-msvc@0.102.0': + resolution: {integrity: sha512-kLs6H1y6sDBKcIimkNwu5th28SLkyvFpHNxdLtCChda0KIGeIXNSiupy5BqEutY+VlWJivKT1OV3Ev3KC5Euzg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-minify/binding-win32-x64-msvc@0.95.0': - resolution: {integrity: sha512-mtCkksnBcO4dIxuj1n9THbMihV+zjO7ZIVCPOq54pylA+hTb/OHau3OV+XyU0pnmREGTuF9xV3BUKag1SYS/lQ==} + '@oxc-minify/binding-win32-x64-msvc@0.102.0': + resolution: {integrity: sha512-XdyJZdSMN8rbBXH10CrFuU+Q9jIP2+MnxHmNzjK4+bldbTI1UxqwjUMS9bKVC5VCaIEZhh8IE8x4Vf8gmCgrKQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] + '@oxc-parser/binding-android-arm64@0.102.0': + resolution: {integrity: sha512-pD2if3w3cxPvYbsBSTbhxAYGDaG6WVwnqYG0mYRQ142D6SJ6BpNs7YVQrqpRA2AJQCmzaPP5TRp/koFLebagfQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + '@oxc-parser/binding-android-arm64@0.93.0': resolution: {integrity: sha512-hTxegqGaVA5py2XCNV3Ry6e0tJNl32ZlB5TNOL9YuxvzTY3y3ySJovhufaubtOr/qW/FYmA5l+UC78gbtRTLEw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-parser/binding-android-arm64@0.95.0': - resolution: {integrity: sha512-dZyxhhvJigwWL1wgnLlqyEiSeuqO0WdDH9H+if0dPcBM4fKa5fjVkaUcJT1jBMcBTnkjxMwTXYZy5TK60N0fjg==} + '@oxc-parser/binding-darwin-arm64@0.102.0': + resolution: {integrity: sha512-RzMN6f6MrjjpQC2Dandyod3iOscofYBpHaTecmoRRbC5sJMwsurkqUMHzoJX9F6IM87kn8m/JcClnoOfx5Sesw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] - os: [android] + os: [darwin] '@oxc-parser/binding-darwin-arm64@0.93.0': resolution: {integrity: sha512-8Er+e4+0BX3hc+Ajuq/60p4qA4/dW8XGUdbE1LBEwx6z1anKv4lAc/J2GfPWLUAhJLZIaM/waGBSxhoWDrZD9A==} @@ -975,10 +1059,10 @@ packages: cpu: [arm64] os: [darwin] - '@oxc-parser/binding-darwin-arm64@0.95.0': - resolution: {integrity: sha512-zun9+V33kyCtNec9oUSWwb0qi3fB8pXwum1yGFECPEr55g/CrWju6/Jv4hwwNBeW2tK9Ch/PRstEtYmOLMhHpg==} + '@oxc-parser/binding-darwin-x64@0.102.0': + resolution: {integrity: sha512-Sr2/3K6GEcejY+HgWp5HaxRPzW5XHe9IfGKVn9OhLt8fzVLnXbK5/GjXj7JjMCNKI3G3ZPZDG2Dgm6CX3MaHCA==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] + cpu: [x64] os: [darwin] '@oxc-parser/binding-darwin-x64@0.93.0': @@ -987,11 +1071,11 @@ packages: cpu: [x64] os: [darwin] - '@oxc-parser/binding-darwin-x64@0.95.0': - resolution: {integrity: sha512-9djMQ/t6Ns/UXtziwUe562uVJMbhtuLtCj+Xav+HMVT/rhV9gWO8PQOG7AwDLUBjJanItsrfqrGtqhNxtZ701w==} + '@oxc-parser/binding-freebsd-x64@0.102.0': + resolution: {integrity: sha512-s9F2N0KJCGEpuBW6ChpFfR06m2Id9ReaHSl8DCca4HvFNt8SJFPp8fq42n2PZy68rtkremQasM0JDrK2BoBeBQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] - os: [darwin] + os: [freebsd] '@oxc-parser/binding-freebsd-x64@0.93.0': resolution: {integrity: sha512-aH2kMXL+60rhBbHYWU5cICo6HufTAWs1/8Ztu0nI4rr0Facp/mK2Ft6pGeuDxCJeKGyYIC21GIxVA7BHrGk9TQ==} @@ -999,20 +1083,14 @@ packages: cpu: [x64] os: [freebsd] - '@oxc-parser/binding-freebsd-x64@0.95.0': - resolution: {integrity: sha512-GK6k0PgCVkkeRZtHgcosCYbXIRySpJpuPw/OInfLGFh8f3x9gp2l8Fbcfx+YO+ZOHFBCd2NNedGqw8wMgouxfA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - - '@oxc-parser/binding-linux-arm-gnueabihf@0.93.0': - resolution: {integrity: sha512-vk1nZchv1hH2yf6hE5Nbs8DliRGEoDtAwonxpz/yBaAvUsKFZHHwx0hXdJdWr+8EfSfgbWfk4YT6rUadz9N7hQ==} + '@oxc-parser/binding-linux-arm-gnueabihf@0.102.0': + resolution: {integrity: sha512-zRCIOWzLbqhfY4g8KIZDyYfO2Fl5ltxdQI1v2GlePj66vFWRl8cf4qcBGzxKfsH3wCZHAhmWd1Ht59mnrfH/UQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-gnueabihf@0.95.0': - resolution: {integrity: sha512-+g/lFITtyHHEk69cunOHuiT5cX+mpUTcbGYNe8suguZ7FqgNwai+PnGv0ctCvtgxBPVfckfUK8c3RvFKo+vi/w==} + '@oxc-parser/binding-linux-arm-gnueabihf@0.93.0': + resolution: {integrity: sha512-vk1nZchv1hH2yf6hE5Nbs8DliRGEoDtAwonxpz/yBaAvUsKFZHHwx0hXdJdWr+8EfSfgbWfk4YT6rUadz9N7hQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] @@ -1023,10 +1101,10 @@ packages: cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.95.0': - resolution: {integrity: sha512-SXNasDtPw8ycNV7VEvFxb4LETmykvWKUhHR7K3us818coXYpDj54P8WEx8hJobP/9skuuiFuKHmtYLdjX8wntA==} + '@oxc-parser/binding-linux-arm64-gnu@0.102.0': + resolution: {integrity: sha512-5n5RbHgfjulRhKB0pW5p0X/NkQeOpI4uI9WHgIZbORUDATGFC8yeyPA6xYGEs+S3MyEAFxl4v544UEIWwqAgsA==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] + cpu: [arm64] os: [linux] '@oxc-parser/binding-linux-arm64-gnu@0.93.0': @@ -1035,8 +1113,8 @@ packages: cpu: [arm64] os: [linux] - '@oxc-parser/binding-linux-arm64-gnu@0.95.0': - resolution: {integrity: sha512-0LzebARTU0ROfD6pDK4h1pFn+09meErCZ0MA2TaW08G72+GNneEsksPufOuI+9AxVSRa+jKE3fu0wavvhZgSkg==} + '@oxc-parser/binding-linux-arm64-musl@0.102.0': + resolution: {integrity: sha512-/XWcmglH/VJ4yKAGTLRgPKSSikh3xciNxkwGiURt8dS30b+3pwc4ZZmudMu0tQ3mjSu0o7V9APZLMpbHK8Bp5w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] @@ -1047,10 +1125,10 @@ packages: cpu: [arm64] os: [linux] - '@oxc-parser/binding-linux-arm64-musl@0.95.0': - resolution: {integrity: sha512-Pvi1lGe/G+mJZ3hUojMP/aAHAzHA25AEtVr8/iuz7UV72t/15NOgJYr9kELMUMNjPqpr3vKUgXTFmTtAxp11Qw==} + '@oxc-parser/binding-linux-riscv64-gnu@0.102.0': + resolution: {integrity: sha512-2jtIq4nswvy6xdqv1ndWyvVlaRpS0yqomLCvvHdCFx3pFXo5Aoq4RZ39kgvFWrbAtpeYSYeAGFnwgnqjx9ftdw==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] + cpu: [riscv64] os: [linux] '@oxc-parser/binding-linux-riscv64-gnu@0.93.0': @@ -1059,10 +1137,10 @@ packages: cpu: [riscv64] os: [linux] - '@oxc-parser/binding-linux-riscv64-gnu@0.95.0': - resolution: {integrity: sha512-pUEVHIOVNDfhk4sTlLhn6mrNENhE4/dAwemxIfqpcSyBlYG0xYZND1F3jjR2yWY6DakXZ6VSuDbtiv1LPNlOLw==} + '@oxc-parser/binding-linux-s390x-gnu@0.102.0': + resolution: {integrity: sha512-Yp6HX/574mvYryiqj0jNvNTJqo4pdAsNP2LPBTxlDQ1cU3lPd7DUA4MQZadaeLI8+AGB2Pn50mPuPyEwFIxeFg==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [riscv64] + cpu: [s390x] os: [linux] '@oxc-parser/binding-linux-s390x-gnu@0.93.0': @@ -1071,10 +1149,10 @@ packages: cpu: [s390x] os: [linux] - '@oxc-parser/binding-linux-s390x-gnu@0.95.0': - resolution: {integrity: sha512-5+olaepHTE3J/+w7g0tr3nocvv5BKilAJnzj4L8tWBCLEZbL6olJcGVoldUO+3cgg1SO1xJywP5BuLhT0mDUDw==} + '@oxc-parser/binding-linux-x64-gnu@0.102.0': + resolution: {integrity: sha512-R4b0xZpDRhoNB2XZy0kLTSYm0ZmWeKjTii9fcv1Mk3/SIGPrrglwt4U6zEtwK54Dfi4Bve5JnQYduigR/gyDzw==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] + cpu: [x64] os: [linux] '@oxc-parser/binding-linux-x64-gnu@0.93.0': @@ -1083,8 +1161,8 @@ packages: cpu: [x64] os: [linux] - '@oxc-parser/binding-linux-x64-gnu@0.95.0': - resolution: {integrity: sha512-8huzHlK/N98wrnYKxIcYsK8ZGBWomQchu/Mzi6m+CtbhjWOv9DmK0jQ2fUWImtluQVpTwS0uZT06d3g7XIkJrA==} + '@oxc-parser/binding-linux-x64-musl@0.102.0': + resolution: {integrity: sha512-xM5A+03Ti3jvWYZoqaBRS3lusvnvIQjA46Fc9aBE/MHgvKgHSkrGEluLWg/33QEwBwxupkH25Pxc1yu97oZCtg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] @@ -1095,21 +1173,27 @@ packages: cpu: [x64] os: [linux] - '@oxc-parser/binding-linux-x64-musl@0.95.0': - resolution: {integrity: sha512-bWnrLfGDcx/fab0+UQnFbVFbiykof/btImbYf+cI2pU/1Egb2x+OKSmM5Qt0nEUiIpM5fgJmYXxTopybSZOKYA==} + '@oxc-parser/binding-openharmony-arm64@0.102.0': + resolution: {integrity: sha512-AieLlsliblyaTFq7Iw9Nc618tgwV02JT4fQ6VIUd/3ZzbluHIHfPjIXa6Sds+04krw5TvCS8lsegtDYAyzcyhg==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] + cpu: [arm64] + os: [openharmony] + + '@oxc-parser/binding-wasm32-wasi@0.102.0': + resolution: {integrity: sha512-w6HRyArs1PBb9rDsQSHlooe31buUlUI2iY8sBzp62jZ1tmvaJo9EIVTQlRNDkwJmk9DF9uEyIJ82EkZcCZTs9A==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] '@oxc-parser/binding-wasm32-wasi@0.93.0': resolution: {integrity: sha512-EXyCyY4GJO+SNTQJPPmJJwYbPkPOzw2nxSRMmUlwG19WKO7QHzHyL6u+4hXpp5IwgIWvgQgoix2/pB9JF+EA7w==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-parser/binding-wasm32-wasi@0.95.0': - resolution: {integrity: sha512-0JLyqkZu1HnQIZ4e5LBGOtzqua1QwFEUOoMSycdoerXqayd4LK2b7WMfAx8eCIf+jGm1Uj6f3R00nlsx8g1faQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] + '@oxc-parser/binding-win32-arm64-msvc@0.102.0': + resolution: {integrity: sha512-pqP5UuLiiFONQxqGiUFMdsfybaK1EOK4AXiPlvOvacLaatSEPObZGpyCkAcj9aZcvvNwYdeY9cxGM9IT3togaA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] '@oxc-parser/binding-win32-arm64-msvc@0.93.0': resolution: {integrity: sha512-LiWj6Yp91YnN8QptfP/+s2nfvQrbYXuaU53w9Pkyceimx0msQboddW3Dud4fbbmp3xzvNkw13+bMkGz5BLHO1w==} @@ -1117,10 +1201,10 @@ packages: cpu: [arm64] os: [win32] - '@oxc-parser/binding-win32-arm64-msvc@0.95.0': - resolution: {integrity: sha512-RWvaA6s1SYlBj9CxwHfNn0CRlkPdv9fEUAXfZkGQPdP5e1ppIaO2KYE0sUov/zzp9hPTMMsTMHl4dcIbb+pHCQ==} + '@oxc-parser/binding-win32-x64-msvc@0.102.0': + resolution: {integrity: sha512-ntMcL35wuLR1A145rLSmm7m7j8JBZGkROoB9Du0KFIFcfi/w1qk75BdCeiTl3HAKrreAnuhW3QOGs6mJhntowA==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] + cpu: [x64] os: [win32] '@oxc-parser/binding-win32-x64-msvc@0.93.0': @@ -1129,103 +1213,97 @@ packages: cpu: [x64] os: [win32] - '@oxc-parser/binding-win32-x64-msvc@0.95.0': - resolution: {integrity: sha512-BQpgl7rDjFvCIHudmUR0dCwc4ylBYZl4CPVinlD3NhkMif4WD5dADckoo5ES/KOpFyvwcbKZX+grP63cjHi26g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] + '@oxc-project/types@0.102.0': + resolution: {integrity: sha512-8Skrw405g+/UJPKWJ1twIk3BIH2nXdiVlVNtYT23AXVwpsd79es4K+KYt06Fbnkc5BaTvk/COT2JuCLYdwnCdA==} '@oxc-project/types@0.93.0': resolution: {integrity: sha512-yNtwmWZIBtJsMr5TEfoZFDxIWV6OdScOpza/f5YxbqUMJk+j6QX3Cf3jgZShGEFYWQJ5j9mJ6jM0tZHu2J9Yrg==} - '@oxc-project/types@0.95.0': - resolution: {integrity: sha512-vACy7vhpMPhjEJhULNxrdR0D943TkA/MigMpJCHmBHvMXxRStRi/dPtTlfQ3uDwWSzRpT8z+7ImjZVf8JWBocQ==} - - '@oxc-transform/binding-android-arm64@0.95.0': - resolution: {integrity: sha512-eW+BCgRWOsMrDiz7FEV7BjAmaF9lGIc2ueGdRUYjRUMq4f5FSGS7gMBTYDxajdoIB3L5Gnksh1CWkIlgg95UVA==} + '@oxc-transform/binding-android-arm64@0.102.0': + resolution: {integrity: sha512-JLBT7EiExsGmB6LuBBnm6qTfg0rLSxBU+F7xjqy6UXYpL7zhqelGJL7IAq6Pu5UYFT55zVlXXmgzLOXQfpQjXA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-transform/binding-darwin-arm64@0.95.0': - resolution: {integrity: sha512-OUUaYZVss8tyDZZ7TGr2vnH3+i3Ouwsx0frQRGkiePNatXxaJJ3NS5+Kwgi9hh3WryXaQz2hWji4AM2RHYE7Cg==} + '@oxc-transform/binding-darwin-arm64@0.102.0': + resolution: {integrity: sha512-xmsBCk/NwE0khy8h6wLEexiS5abCp1ZqJUNHsAovJdGgIW21oGwhiC3VYg1vNLbq+zEXwOHuphVuNEYfBwyNTw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-transform/binding-darwin-x64@0.95.0': - resolution: {integrity: sha512-49UPEgIlgWUndwcP3LH6dvmOewZ92DxCMpFMo11JhUlmNJxA3sjVImEBRB56/tJ+XF+xnya9kB1oCW4yRY+mRw==} + '@oxc-transform/binding-darwin-x64@0.102.0': + resolution: {integrity: sha512-EhBsiq8hSd5BRjlWACB9MxTUiZT2He1s1b3tRP8k3lB8ZTt6sXnDXIWhxRmmM0h//xe6IJ2HuMlbvjXPo/tATg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-transform/binding-freebsd-x64@0.95.0': - resolution: {integrity: sha512-lNKrHKaDEm8pbKlVbn0rv2L97O0lbA0Tsrxx4GF/HhmdW+NgwGU1pMzZ4tB2QcylbqgKxOB+v9luebHyh1jfgA==} + '@oxc-transform/binding-freebsd-x64@0.102.0': + resolution: {integrity: sha512-eujvuYf0x7BFgKyFecbXUa2JBEXT4Ss6vmyrrhVdN07jaeJRiobaKAmeNXBkanoWL2KQLELJbSBgs1ykWYTkzg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-transform/binding-linux-arm-gnueabihf@0.95.0': - resolution: {integrity: sha512-+VWcLeeizI8IjU+V+o8AmzPuIMiTrGr0vrmXU3CEsV05MrywCuJU+f6ilPs3JBKno9VIwqvRpHB/z39sQabHWg==} + '@oxc-transform/binding-linux-arm-gnueabihf@0.102.0': + resolution: {integrity: sha512-2x7Ro356PHBVp1SS/dOsHBSnrfs5MlPYwhdKg35t6qixt2bv1kzEH0tDmn4TNEbdjOirmvOXoCTEWUvh8A4f4Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-transform/binding-linux-arm-musleabihf@0.95.0': - resolution: {integrity: sha512-a59xPw84t6VwlvNEGcmuw3feGcKcWOC7uB8oePJ/BVSAV1yayLoB3k6JASwLTZ7N/PNPNUhcw1jDxowgAfBJfg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@oxc-transform/binding-linux-arm64-gnu@0.95.0': - resolution: {integrity: sha512-NLdrFuEHlmbiC1M1WESFV4luUcB/84GXi+cbnRXhgMjIW/CThRVJ989eTJy59QivkVlLcJSKTiKiKCt0O6TTlQ==} + '@oxc-transform/binding-linux-arm64-gnu@0.102.0': + resolution: {integrity: sha512-Rz/RbPvT4QwcHKIQ/cOt6Lwl4c7AhK2b6whZfyL6oJ7Uz8UiVl1BCwk8thedrB5h+FEykmaPHoriW1hmBev60g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-arm64-musl@0.95.0': - resolution: {integrity: sha512-GL0ffCPW8JlFI0/jeSgCY665yDdojHxA0pbYG+k8oEHOWCYZUZK9AXL+r0oerNEWYJ8CRB+L5Yq87ZtU/YUitw==} + '@oxc-transform/binding-linux-arm64-musl@0.102.0': + resolution: {integrity: sha512-I08iWABrN7zakn3wuNIBWY3hALQGsDLPQbZT1mXws7tyiQqJNGe49uS0/O50QhX3KXj+mbRGsmjVXLXGJE1CVQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-riscv64-gnu@0.95.0': - resolution: {integrity: sha512-tbH7LaClSmN3YFVo1UjMSe7D6gkb5f+CMIbj9i873UUZomVRmAjC4ygioObfzM+sj/tX0WoTXx5L1YOfQkHL6Q==} + '@oxc-transform/binding-linux-riscv64-gnu@0.102.0': + resolution: {integrity: sha512-9+SYW1ARAF6Oj/82ayoqKRe8SI7O1qvzs3Y0kijvhIqAaaZWcFRjI5DToyWRAbnzTtHlMcSllZLXNYdmxBjFxA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxc-transform/binding-linux-s390x-gnu@0.95.0': - resolution: {integrity: sha512-8jMqiURWa0iTiPMg7BWaln89VdhhWzNlPyKM90NaFVVhBIKCr2UEhrQWdpBw/E9C8uWf/4VabBEhfPMK+0yS4w==} + '@oxc-transform/binding-linux-s390x-gnu@0.102.0': + resolution: {integrity: sha512-HV9nTyQw0TTKYPu+gBhaJBioomiM9O4LcGXi+s5IylCGG6imP0/U13q/9xJnP267QFmiWWqnnSFcv0QAWCyh8A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@oxc-transform/binding-linux-x64-gnu@0.95.0': - resolution: {integrity: sha512-D5ULJ2uWipsTgfvHIvqmnGkCtB3Fyt2ZN7APRjVO+wLr+HtmnaWddKsLdrRWX/m/6nQ2xQdoQekdJrokYK9LtQ==} + '@oxc-transform/binding-linux-x64-gnu@0.102.0': + resolution: {integrity: sha512-4wcZ08mmdFk8OjsnglyeYGu5PW3TDh87AmcMOi7tZJ3cpJjfzwDfY27KTEUx6G880OpjAiF36OFSPwdKTKgp2g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-transform/binding-linux-x64-musl@0.95.0': - resolution: {integrity: sha512-DmCGU+FzRezES5wVAGVimZGzYIjMOapXbWpxuz8M8p3nMrfdBEQ5/tpwBp2vRlIohhABy4vhHJByl4c64ENCGQ==} + '@oxc-transform/binding-linux-x64-musl@0.102.0': + resolution: {integrity: sha512-rUHZSZBw0FUnUgOhL/Rs7xJz9KjH2eFur/0df6Lwq/isgJc/ggtBtFoZ+y4Fb8ON87a3Y2gS2LT7SEctX0XdPQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-transform/binding-wasm32-wasi@0.95.0': - resolution: {integrity: sha512-tSo1EU4Whd1gXyae7cwSDouhppkuz6Jkd5LY8Uch9VKsHVSRhDLDW19Mq6VSwtyPxDPTJnJ2jYJWm+n8SYXiXQ==} + '@oxc-transform/binding-openharmony-arm64@0.102.0': + resolution: {integrity: sha512-98y4tccTQ/pA+r2KA/MEJIZ7J8TNTJ4aCT4rX8kWK4pGOko2YsfY3Ru9DVHlLDwmVj7wP8Z4JNxdBrAXRvK+0g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxc-transform/binding-wasm32-wasi@0.102.0': + resolution: {integrity: sha512-M6myOXxHty3L2TJEB1NlJPtQm0c0LmivAxcGv/+DSDadOoB/UnOUbjM8W2Utlh5IYS9ARSOjqHtBiPYLWJ15XA==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-transform/binding-win32-arm64-msvc@0.95.0': - resolution: {integrity: sha512-6eaxlgj+J5n8zgJTSugqdPLBtKGRqvxYLcvHN8b+U9hVhF/2HG/JCOrcSYV/XgWGNPQiaRVzpR3hGhmFro9QTw==} + '@oxc-transform/binding-win32-arm64-msvc@0.102.0': + resolution: {integrity: sha512-jzaA1lLiMXiJs4r7E0BHRxTPiwAkpoCfSNRr8npK/SqL4UQE4cSz3WDTX5wJWRrN2U+xqsDGefeYzH4reI8sgw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-transform/binding-win32-x64-msvc@0.95.0': - resolution: {integrity: sha512-Y8JY79A7fTuBjEXZFu+mHbHzgsV3uJDUuUKeGffpOwI1ayOGCKeBJTiMhksYkiir1xS+DkGLEz73+xse9Is9rw==} + '@oxc-transform/binding-win32-x64-msvc@0.102.0': + resolution: {integrity: sha512-eYOm6mch+1cP9qlNkMdorfBFY8aEOxY/isqrreLmEWqF/hyXA0SbLKDigTbvh3JFKny/gXlHoCKckqfua4cwtg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -1336,14 +1414,17 @@ packages: '@poppinss/dumper@0.6.4': resolution: {integrity: sha512-iG0TIdqv8xJ3Lt9O8DrPRxw1MRLjNpoqiSGU03P/wNLP/s0ra0udPJ1J2Tx5M0J3H/cVyEgpbn8xUKRY9j59kQ==} + '@poppinss/dumper@0.6.5': + resolution: {integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==} + '@poppinss/exception@1.2.2': resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==} - '@rolldown/pluginutils@1.0.0-beta.29': - resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} + '@rolldown/pluginutils@1.0.0-beta.53': + resolution: {integrity: sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==} - '@rolldown/pluginutils@1.0.0-beta.45': - resolution: {integrity: sha512-Le9ulGCrD8ggInzWw/k2J8QcbPz7eGIOWqfJ2L+1R0Opm7n6J37s2hiDWlh6LJN0Lk9L5sUzMvRHKW7UxBZsQA==} + '@rolldown/pluginutils@1.0.0-beta.59': + resolution: {integrity: sha512-aoh6LAJRyhtazs98ydgpNOYstxUlsOV1KJXcpf/0c0vFcUA8uyd/hwKRhqE/AAPNqAho9RliGsvitCoOzREoVA==} '@rollup/plugin-alias@5.1.1': resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} @@ -1399,6 +1480,15 @@ packages: rollup: optional: true + '@rollup/plugin-replace@6.0.3': + resolution: {integrity: sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/plugin-terser@0.4.4': resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} @@ -1527,9 +1617,6 @@ packages: cpu: [x64] os: [win32] - '@sec-ant/readable-stream@0.4.1': - resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@sindresorhus/is@7.1.0': resolution: {integrity: sha512-7F/yz2IphV39hiS2zB4QYVkivrptHHh0K8qJJd9HhuWSdvf8AN7NpebW3CcDZDBQsUPMoDKWsY2WWgW7bqOcfA==} engines: {node: '>=18'} @@ -1538,11 +1625,14 @@ packages: resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} + '@speed-highlight/core@1.2.14': + resolution: {integrity: sha512-G4ewlBNhUtlLvrJTb88d2mdy2KRijzs4UhnlrOSRT4bmjh/IqNElZa3zkrZ+TC47TwtlDWzVLFADljF1Ijp5hA==} + '@speed-highlight/core@1.2.8': resolution: {integrity: sha512-IGytNtnUnPIobIbOq5Y6LIlqiHNX+vnToQIS7lj6L5819C+rA8TXRDkkG8vePsiBOGcoW9R6i+dp2YBUKdB09Q==} - '@standard-schema/spec@1.1.0': - resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@stablelib/base64@1.0.1': + resolution: {integrity: sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==} '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} @@ -1637,9 +1727,37 @@ packages: peerDependencies: vite: ^5.2.0 || ^6 || ^7 + '@tanstack/devtools-event-client@0.4.0': + resolution: {integrity: sha512-RPfGuk2bDZgcu9bAJodvO2lnZeHuz4/71HjZ0bGb/SPg8+lyTA+RLSKQvo7fSmPSi8/vcH3aKQ8EM9ywf1olaw==} + engines: {node: '>=18'} + + '@tanstack/form-core@1.27.7': + resolution: {integrity: sha512-nvogpyE98fhb0NDw1Bf2YaCH+L7ZIUgEpqO9TkHucDn6zg3ni521boUpv0i8HKIrmmFwDYjWZoCnrgY4HYWTkw==} + + '@tanstack/pacer-lite@0.1.1': + resolution: {integrity: sha512-y/xtNPNt/YeyoVxE/JCx+T7yjEzpezmbb+toK8DDD1P4m7Kzs5YR956+7OKexG3f8aXgC3rLZl7b1V+yNUSy5w==} + engines: {node: '>=18'} + + '@tanstack/store@0.7.7': + resolution: {integrity: sha512-xa6pTan1bcaqYDS9BDpSiS63qa6EoDkPN9RsRaxHuDdVDNntzq3xNwR5YKTU/V3SkSyC9T4YVOPh2zRQN0nhIQ==} + '@tanstack/virtual-core@3.13.12': resolution: {integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==} + '@tanstack/vue-form@1.27.7': + resolution: {integrity: sha512-wET2d3R/9GYGgBHMwWnKlHuGczpyTNm7bfkJyZahVDLLm7tI/6HBT970lBN44obvD4Ayu/FX0jF0ARI5JGJgpA==} + peerDependencies: + vue: ^3.4.0 + + '@tanstack/vue-store@0.7.7': + resolution: {integrity: sha512-6iv1Odmreff6TgEjQN11xoddsCnpn+/ul7MZ2DadHT3/RSY1YdoFafK8lCa889MEFi/5K0zAhf8psIkgTrRa9A==} + peerDependencies: + '@vue/composition-api': ^1.2.1 + vue: ^2.5.0 || ^3.0.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + '@tanstack/vue-virtual@3.13.12': resolution: {integrity: sha512-vhF7kEU9EXWXh+HdAwKJ2m3xaOnTTmgcdXcF2pim8g4GvI7eRrk2YRuV5nUlZnd/NbCIX4/Ja2OZu5EjJL06Ww==} peerDependencies: @@ -1670,6 +1788,9 @@ packages: '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + '@types/web-bluetooth@0.0.21': resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} @@ -1683,25 +1804,25 @@ packages: engines: {node: '>=18'} hasBin: true - '@vitejs/plugin-vue-jsx@5.1.1': - resolution: {integrity: sha512-uQkfxzlF8SGHJJVH966lFTdjM/lGcwJGzwAHpVqAPDD/QcsqoUGa+q31ox1BrUfi+FLP2ChVp7uLXE3DkHyDdQ==} + '@vitejs/plugin-vue-jsx@5.1.3': + resolution: {integrity: sha512-I6Zr8cYVr5WHMW5gNOP09DNqW9rgO8RX73Wa6Czgq/0ndpTfJM4vfDChfOT1+3KtdrNqilNBtNlFwVeB02ZzGw==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: ^5.0.0 || ^6.0.0 || ^7.0.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 vue: ^3.0.0 - '@vitejs/plugin-vue@6.0.1': - resolution: {integrity: sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==} + '@vitejs/plugin-vue@6.0.3': + resolution: {integrity: sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: ^5.0.0 || ^6.0.0 || ^7.0.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 vue: ^3.2.25 - '@volar/language-core@2.4.23': - resolution: {integrity: sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==} + '@volar/language-core@2.4.27': + resolution: {integrity: sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ==} - '@volar/source-map@2.4.23': - resolution: {integrity: sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==} + '@volar/source-map@2.4.27': + resolution: {integrity: sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg==} '@vue-macros/common@3.1.1': resolution: {integrity: sha512-afW2DMjgCBVs33mWRlz7YsGHzoEEupnl0DK5ZTKsgziAlLh5syc5m+GM7eqeYrgiQpwMaVxa1fk73caCvPxyAw==} @@ -1712,76 +1833,106 @@ packages: vue: optional: true - '@vue/babel-helper-vue-transform-on@1.5.0': - resolution: {integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==} + '@vue/babel-helper-vue-transform-on@2.0.1': + resolution: {integrity: sha512-uZ66EaFbnnZSYqYEyplWvn46GhZ1KuYSThdT68p+am7MgBNbQ3hphTL9L+xSIsWkdktwhPYLwPgVWqo96jDdRA==} - '@vue/babel-plugin-jsx@1.5.0': - resolution: {integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==} + '@vue/babel-plugin-jsx@2.0.1': + resolution: {integrity: sha512-a8CaLQjD/s4PVdhrLD/zT574ZNPnZBOY+IhdtKWRB4HRZ0I2tXBi5ne7d9eCfaYwp5gU5+4KIyFTV1W1YL9xZA==} peerDependencies: '@babel/core': ^7.0.0-0 peerDependenciesMeta: '@babel/core': optional: true - '@vue/babel-plugin-resolve-type@1.5.0': - resolution: {integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==} + '@vue/babel-plugin-resolve-type@2.0.1': + resolution: {integrity: sha512-ybwgIuRGRRBhOU37GImDoWQoz+TlSqap65qVI6iwg/J7FfLTLmMf97TS7xQH9I7Qtr/gp161kYVdhr1ZMraSYQ==} peerDependencies: '@babel/core': ^7.0.0-0 '@vue/compiler-core@3.5.22': resolution: {integrity: sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==} + '@vue/compiler-core@3.5.26': + resolution: {integrity: sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==} + '@vue/compiler-dom@3.5.22': resolution: {integrity: sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==} + '@vue/compiler-dom@3.5.26': + resolution: {integrity: sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==} + '@vue/compiler-sfc@3.5.22': resolution: {integrity: sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==} + '@vue/compiler-sfc@3.5.26': + resolution: {integrity: sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==} + '@vue/compiler-ssr@3.5.22': resolution: {integrity: sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==} + '@vue/compiler-ssr@3.5.26': + resolution: {integrity: sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==} + '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} '@vue/devtools-api@7.7.7': resolution: {integrity: sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg==} - '@vue/devtools-core@7.7.7': - resolution: {integrity: sha512-9z9TLbfC+AjAi1PQyWX+OErjIaJmdFlbDHcD+cAMYKY6Bh5VlsAtCeGyRMrXwIlMEQPukvnWt3gZBLwTAIMKzQ==} + '@vue/devtools-core@8.0.5': + resolution: {integrity: sha512-dpCw8nl0GDBuiL9SaY0mtDxoGIEmU38w+TQiYEPOLhW03VDC0lfNMYXS/qhl4I0YlysGp04NLY4UNn6xgD0VIQ==} peerDependencies: vue: ^3.0.0 - '@vue/devtools-kit@7.7.7': - resolution: {integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==} + '@vue/devtools-kit@7.7.9': + resolution: {integrity: sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==} - '@vue/devtools-shared@7.7.7': - resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==} + '@vue/devtools-kit@8.0.5': + resolution: {integrity: sha512-q2VV6x1U3KJMTQPUlRMyWEKVbcHuxhqJdSr6Jtjz5uAThAIrfJ6WVZdGZm5cuO63ZnSUz0RCsVwiUUb0mDV0Yg==} - '@vue/language-core@3.1.2': - resolution: {integrity: sha512-PyFDCqpdfYUT+oMLqcc61oHfJlC6yjhybaefwQjRdkchIihToOEpJ2Wu/Ebq2yrnJdd1EsaAvZaXVAqcxtnDxQ==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@vue/devtools-shared@7.7.9': + resolution: {integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==} + + '@vue/devtools-shared@8.0.5': + resolution: {integrity: sha512-bRLn6/spxpmgLk+iwOrR29KrYnJjG9DGpHGkDFG82UM21ZpJ39ztUT9OXX3g+usW7/b2z+h46I9ZiYyB07XMXg==} + + '@vue/language-core@3.2.2': + resolution: {integrity: sha512-5DAuhxsxBN9kbriklh3Q5AMaJhyOCNiQJvCskN9/30XOpdLiqZU9Q+WvjArP17ubdGEyZtBzlIeG5nIjEbNOrQ==} '@vue/reactivity@3.5.22': resolution: {integrity: sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==} + '@vue/reactivity@3.5.26': + resolution: {integrity: sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==} + '@vue/runtime-core@3.5.22': resolution: {integrity: sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==} + '@vue/runtime-core@3.5.26': + resolution: {integrity: sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==} + '@vue/runtime-dom@3.5.22': resolution: {integrity: sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==} + '@vue/runtime-dom@3.5.26': + resolution: {integrity: sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==} + '@vue/server-renderer@3.5.22': resolution: {integrity: sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==} peerDependencies: vue: 3.5.22 + '@vue/server-renderer@3.5.26': + resolution: {integrity: sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==} + peerDependencies: + vue: 3.5.26 + '@vue/shared@3.5.22': resolution: {integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==} + '@vue/shared@3.5.26': + resolution: {integrity: sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==} + '@vueuse/core@12.8.2': resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} @@ -1879,8 +2030,8 @@ packages: async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - autoprefixer@10.4.21: - resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} + autoprefixer@10.4.23: + resolution: {integrity: sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -1912,78 +2063,19 @@ packages: resolution: {integrity: sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==} hasBin: true - better-auth@1.4.7: - resolution: {integrity: sha512-kVmDQxzqGwP4FFMOYpS5I7oAaoFW3hwooUAAtcbb2DrOYv5EUvRUDJbTMaPoMTj7URjNDQ6vG9gcCS1Q+0aVBw==} - peerDependencies: - '@lynx-js/react': '*' - '@prisma/client': ^5.22.0 - '@sveltejs/kit': ^2.0.0 - '@tanstack/react-start': ^1.0.0 - better-sqlite3: ^12.4.1 - drizzle-kit: ^0.31.4 - drizzle-orm: ^0.41.0 - mongodb: ^6.18.0 - mysql2: ^3.14.4 - next: ^14.0.0 || ^15.0.0 || ^16.0.0 - pg: ^8.16.3 - prisma: ^5.22.0 - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - solid-js: ^1.0.0 - svelte: ^4.0.0 || ^5.0.0 - vitest: ^4.0.15 - vue: ^3.0.0 - peerDependenciesMeta: - '@lynx-js/react': - optional: true - '@prisma/client': - optional: true - '@sveltejs/kit': - optional: true - '@tanstack/react-start': - optional: true - better-sqlite3: - optional: true - drizzle-kit: - optional: true - drizzle-orm: - optional: true - mongodb: - optional: true - mysql2: - optional: true - next: - optional: true - pg: - optional: true - prisma: - optional: true - react: - optional: true - react-dom: - optional: true - solid-js: - optional: true - svelte: - optional: true - vitest: - optional: true - vue: - optional: true + baseline-browser-mapping@2.9.12: + resolution: {integrity: sha512-Mij6Lij93pTAIsSYy5cyBQ975Qh9uLEc5rwGTpomiZeXZL9yIS6uORJakb3ScHgfs0serMMfIbXzokPMuEiRyw==} + hasBin: true - better-call@1.1.5: - resolution: {integrity: sha512-nQJ3S87v6wApbDwbZ++FrQiSiVxWvZdjaO+2v6lZJAG2WWggkB2CziUDjPciz3eAt9TqfRursIQMZIcpkBnvlw==} - peerDependencies: - zod: ^4.0.0 - peerDependenciesMeta: - zod: - optional: true + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - birpc@2.6.1: - resolution: {integrity: sha512-LPnFhlDpdSH6FJhJyn4M0kFO7vtQ5iPw24FnG0y21q09xC7e8+1LeR31S1MAIrDAHp4m7aas4bEkTDTvMAtebQ==} + birpc@2.9.0: + resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -2000,6 +2092,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + buffer-crc32@1.0.0: resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} engines: {node: '>=8.0.0'} @@ -2022,6 +2119,14 @@ packages: magicast: optional: true + c12@3.3.3: + resolution: {integrity: sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q==} + peerDependencies: + magicast: '*' + peerDependenciesMeta: + magicast: + optional: true + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -2032,10 +2137,21 @@ packages: caniuse-lite@1.0.30001751: resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==} + caniuse-lite@1.0.30001762: + resolution: {integrity: sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -2050,10 +2166,6 @@ packages: resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} engines: {node: '>=18'} - clipboardy@5.0.0: - resolution: {integrity: sha512-MQfKHaD09eP80Pev4qBxZLbxJK/ONnqfSYAPlCmPh+7BDboYtO/3BmB6HGzxDIT0SlTRc2tzS8lQqfcdLtZ0Kg==} - engines: {node: '>=20'} - cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -2120,6 +2232,9 @@ packages: resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} engines: {node: '>=18'} + copy-paste@2.2.0: + resolution: {integrity: sha512-jqSL4r9DSeiIvJZStLzY/sMLt9ToTM7RsK237lYOTG+KcbQJHGala3R1TUpa8h1p9adswVgIdV4qGbseVhL4lg==} + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2172,8 +2287,8 @@ packages: engines: {node: '>=4'} hasBin: true - cssnano-preset-default@7.0.9: - resolution: {integrity: sha512-tCD6AAFgYBOVpMBX41KjbvRh9c2uUjLXRyV7KHSIrwHiq5Z9o0TFfUCoM3TwVrRsRteN3sVXGNvjVNxYzkpTsA==} + cssnano-preset-default@7.0.10: + resolution: {integrity: sha512-6ZBjW0Lf1K1Z+0OKUAUpEN62tSXmYChXWi2NAA0afxEVsj9a+MbcB1l5qel6BHJHmULai2fCGRthCeKSFbScpA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.32 @@ -2184,8 +2299,8 @@ packages: peerDependencies: postcss: ^8.4.32 - cssnano@7.1.1: - resolution: {integrity: sha512-fm4D8ti0dQmFPeF8DXSAA//btEmqCOgAc/9Oa3C1LW94h5usNrJEfrON7b4FkPZgnDEn6OUs5NdxiJZmAtGOpQ==} + cssnano@7.1.2: + resolution: {integrity: sha512-HYOPBsNvoiFeR1eghKD5C3ASm64v9YVyJB4Ivnl2gqKoQYvjjN/G0rztvKQq8OxocUtC6sjqY8jwYngIB4AByA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.32 @@ -2197,6 +2312,9 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + db0@0.3.4: resolution: {integrity: sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw==} peerDependencies: @@ -2260,6 +2378,10 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + destr@2.0.5: resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} @@ -2272,8 +2394,8 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - devalue@5.4.2: - resolution: {integrity: sha512-MwPZTKEPK2k8Qgfmqrd48ZKVvzSQjgW0lXLxiIBA8dQjtf/6mw6pggHNLcyDKyf+fI6eXxlQwPsfaCMTU5U+Bw==} + devalue@5.6.1: + resolution: {integrity: sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==} diff@8.0.2: resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==} @@ -2289,6 +2411,9 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} + dompurify@3.2.7: + resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==} + domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -2412,6 +2537,9 @@ packages: electron-to-chromium@1.5.241: resolution: {integrity: sha512-ILMvKX/ZV5WIJzzdtuHg8xquk2y0BOGlFOxBVwTpbiXqWIH0hamG45ddU4R3PQ0gYu+xgo0vdHXHli9sHIGb4w==} + electron-to-chromium@1.5.267: + resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2430,6 +2558,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@7.0.0: + resolution: {integrity: sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==} + engines: {node: '>=0.12'} + error-stack-parser-es@1.0.5: resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} @@ -2495,13 +2627,12 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - execa@9.6.0: - resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==} - engines: {node: ^18.19.0 || >=20.5.0} - exsolve@1.0.7: resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} @@ -2512,6 +2643,9 @@ packages: fast-npm-meta@0.4.7: resolution: {integrity: sha512-aZU3i3eRcSb2NCq8i6N6IlyiTyF6vqAqzBGl2NBF6ngNx/GIqfYbkLDIKZ4z4P0o/RmtsFnVqHwdrSm13o4tnQ==} + fast-sha256@1.3.0: + resolution: {integrity: sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==} + fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -2524,10 +2658,6 @@ packages: picomatch: optional: true - figures@6.1.0: - resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} - engines: {node: '>=18'} - file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -2539,8 +2669,8 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + fraction.js@5.3.4: + resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} fresh@2.0.0: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} @@ -2573,10 +2703,6 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - get-stream@9.0.1: - resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} - engines: {node: '>=18'} - get-tsconfig@4.13.0: resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} @@ -2594,6 +2720,9 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true @@ -2642,9 +2771,9 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - human-signals@8.0.1: - resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} - engines: {node: '>=18.18.0'} + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -2673,6 +2802,10 @@ packages: iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} @@ -2719,10 +2852,6 @@ packages: resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} engines: {node: '>=12'} - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} @@ -2737,18 +2866,6 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-stream@4.0.1: - resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} - engines: {node: '>=18'} - - is-unicode-supported@2.1.0: - resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} - engines: {node: '>=18'} - - is-wayland@0.1.0: - resolution: {integrity: sha512-QkbMsWkIfkrzOPxenwye0h56iAXirZYHG9eHVPb22fO9y+wPbaX/CHacOWBa/I++4ohTcByimhM1/nyCsH8KNA==} - engines: {node: '>=20'} - is-what@5.5.0: resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} engines: {node: '>=18'} @@ -2782,8 +2899,9 @@ packages: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true - jose@6.1.3: - resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==} + js-cookie@3.0.5: + resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} + engines: {node: '>=14'} js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -2816,6 +2934,9 @@ packages: knitwork@1.2.0: resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==} + knitwork@1.3.0: + resolution: {integrity: sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==} + kysely@0.28.9: resolution: {integrity: sha512-3BeXMoiOhpOwu62CiVpO6lxfq4eS6KMYfQdMsN/2kUCRNuF2YiEr7u0HLHaQU+O4Xu8YXE3bHVkwaQ85i72EuA==} engines: {node: '>=20.0.0'} @@ -2949,12 +3070,17 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - magicast@0.3.5: - resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} - magicast@0.5.0: resolution: {integrity: sha512-D0cxqnb8DpO66P4LkD9ME6a4AhRK6A+xprXksD5vtsJN6G4zbzdI10vDaWCIyj3eLwjNZrQxUYB20FDhKrMEKQ==} + magicast@0.5.1: + resolution: {integrity: sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==} + + marked@14.0.0: + resolution: {integrity: sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==} + engines: {node: '>= 18'} + hasBin: true + mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} @@ -3019,6 +3145,9 @@ packages: mocked-exports@0.1.1: resolution: {integrity: sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==} + monaco-editor@0.55.1: + resolution: {integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==} + mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -3039,10 +3168,6 @@ packages: engines: {node: ^18 || >=20} hasBin: true - nanostores@1.1.0: - resolution: {integrity: sha512-yJBmDJr18xy47dbNVlHcgdPrulSn1nhSE6Ns9vTG+Nx9VPT6iV1MD6aQFp/t52zpf82FhLLTXAXr30NuCnxvwA==} - engines: {node: ^20.0.0 || >=22.0.0} - nanotar@0.2.0: resolution: {integrity: sha512-9ca1h0Xjvo9bEkE4UOxgAzLV0jHKe6LMaxo37ND2DAhhAtd0j8pR1Wxz+/goMrZO8AEZTWCmyaOsFI/W5AdpCQ==} @@ -3085,6 +3210,9 @@ packages: node-releases@2.0.26: resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==} + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + nopt@8.1.0: resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} engines: {node: ^18.17.0 || >=20.5.0} @@ -3094,10 +3222,6 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3117,8 +3241,13 @@ packages: nuxt-cron@1.8.0: resolution: {integrity: sha512-XgNdounfdXNHOVlYTFDhc28yerwBP7+MP4Tk8GmC6GkxWo3nCWZ/pmqpan+tCmVVhUn6ltpe5KSCChWgl5P3kg==} - nuxt@4.2.0: - resolution: {integrity: sha512-4qzf2Ymf07dMMj50TZdNZgMqCdzDch8NY3NO2ClucUaIvvsr6wd9+JrDpI1CckSTHwqU37/dIPFpvIQZoeHoYA==} + nuxt-monaco-editor@1.4.0: + resolution: {integrity: sha512-uRvPr3FbuSFV4LIHNUJMTAJnrfggBVP+o8WsIJiN8iRK5u+ejN4Nhuz1u5bM90et30p0S3YYvvB/YNPsNKoD0g==} + peerDependencies: + monaco-editor: '*' + + nuxt@4.2.2: + resolution: {integrity: sha512-n6oYFikgLEb70J4+K19jAzfx4exZcRSRX7yZn09P5qlf2Z59VNOBqNmaZO5ObzvyGUZ308SZfL629/Q2v2FVjw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -3135,8 +3264,11 @@ packages: engines: {node: ^14.16.0 || >=16.10.0} hasBin: true - ofetch@1.5.0: - resolution: {integrity: sha512-A7llJ7eZyziA5xq9//3ZurA8OhFqtS99K5/V1sLBJ5j137CM/OAjlbA/TEJXBuOWwOfLqih+oH5U3ran4za1FQ==} + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} ohash@2.0.11: resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} @@ -3161,26 +3293,30 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} - oxc-minify@0.95.0: - resolution: {integrity: sha512-3k//447vscNk5JZXVnr2qv0QONjUU7F8Y6ewAPFVQNgdvYh3gCLYCRjQ/DR5kVkqxFgVa8R/FFBV3X5jlztSzw==} + oxc-minify@0.102.0: + resolution: {integrity: sha512-FphAHDyTCNepQbiQTSyWFMbNc9zdUmj1WBsoLwvZhWm7rEe/IeIKYKRhy75lWOjwFsi5/i4Qucq43hgs3n2Exw==} + engines: {node: ^20.19.0 || >=22.12.0} + + oxc-parser@0.102.0: + resolution: {integrity: sha512-xMiyHgr2FZsphQ12ZCsXRvSYzmKXCm1ejmyG4GDZIiKOmhyt5iKtWq0klOfFsEQ6jcgbwrUdwcCVYzr1F+h5og==} engines: {node: ^20.19.0 || >=22.12.0} oxc-parser@0.93.0: resolution: {integrity: sha512-ktMzTb3AqYCAsgnGTsWOhJYEBxGhxm6F+Ja9HsRibvVYBnA/BCiALAYLQk6M47mdEyybP9B3sOj56UDT+VIkMg==} engines: {node: ^20.19.0 || >=22.12.0} - oxc-parser@0.95.0: - resolution: {integrity: sha512-Te8fE/SmiiKWIrwBwxz5Dod87uYvsbcZ9JAL5ylPg1DevyKgTkxCXnPEaewk1Su2qpfNmry5RHoN+NywWFCG+A==} + oxc-transform@0.102.0: + resolution: {integrity: sha512-MR5ohiBS6/kvxRpmUZ3LIDTTJBEC4xLAEZXfYr7vrA0eP7WHewQaNQPFDgT4Bee89TdmVQ5ZKrifGwxLjSyHHw==} engines: {node: ^20.19.0 || >=22.12.0} - oxc-transform@0.95.0: - resolution: {integrity: sha512-SmS5aThb5K0SoUZgzGbikNBjrGHfOY4X5TEqBlaZb1uy5YgXbUSbpakpZJ13yW36LNqy8Im5+y+sIk5dlzpZ/w==} - engines: {node: ^20.19.0 || >=22.12.0} - - oxc-walker@0.5.2: - resolution: {integrity: sha512-XYoZqWwApSKUmSDEFeOKdy3Cdh95cOcSU8f7yskFWE4Rl3cfL5uwyY+EV7Brk9mdNLy+t5SseJajd6g7KncvlA==} + oxc-walker@0.6.0: + resolution: {integrity: sha512-BA3hlxq5+Sgzp7TCQF52XDXCK5mwoIZuIuxv/+JuuTzOs2RXkLqWZgZ69d8pJDDjnL7wiREZTWHBzFp/UWH88Q==} peerDependencies: - oxc-parser: '>=0.72.0' + oxc-parser: '>=0.98.0' + + p-map@7.0.4: + resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} + engines: {node: '>=18'} package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} @@ -3188,10 +3324,6 @@ packages: package-manager-detector@1.5.0: resolution: {integrity: sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw==} - parse-ms@4.0.0: - resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} - engines: {node: '>=18'} - parse-path@7.1.0: resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} @@ -3280,20 +3412,20 @@ packages: peerDependencies: postcss: ^8.4.38 - postcss-colormin@7.0.4: - resolution: {integrity: sha512-ziQuVzQZBROpKpfeDwmrG+Vvlr0YWmY/ZAk99XD+mGEBuEojoFekL41NCsdhyNUtZI7DPOoIWIR7vQQK9xwluw==} + postcss-colormin@7.0.5: + resolution: {integrity: sha512-ekIBP/nwzRWhEMmIxHHbXHcMdzd1HIUzBECaj5KEdLz9DVP2HzT065sEhvOx1dkLjYW7jyD0CngThx6bpFi2fA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.32 - postcss-convert-values@7.0.7: - resolution: {integrity: sha512-HR9DZLN04Xbe6xugRH6lS4ZQH2zm/bFh/ZyRkpedZozhvh+awAfbA0P36InO4fZfDhvYfNJeNvlTf1sjwGbw/A==} + postcss-convert-values@7.0.8: + resolution: {integrity: sha512-+XNKuPfkHTCEo499VzLMYn94TiL3r9YqRE3Ty+jP7UX4qjewUONey1t7CG21lrlTLN07GtGM8MqFVp86D4uKJg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.32 - postcss-discard-comments@7.0.4: - resolution: {integrity: sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg==} + postcss-discard-comments@7.0.5: + resolution: {integrity: sha512-IR2Eja8WfYgN5n32vEGSctVQ1+JARfu4UH8M7bgGh1bC+xI/obsPJXaBpQF7MAByvgwZinhpHpdrmXtvVVlKcQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.32 @@ -3322,8 +3454,8 @@ packages: peerDependencies: postcss: ^8.4.32 - postcss-merge-rules@7.0.6: - resolution: {integrity: sha512-2jIPT4Tzs8K87tvgCpSukRQ2jjd+hH6Bb8rEEOUDmmhOeTcqDg5fEFK8uKIu+Pvc3//sm3Uu6FRqfyv7YF7+BQ==} + postcss-merge-rules@7.0.7: + resolution: {integrity: sha512-njWJrd/Ms6XViwowaaCc+/vqhPG3SmXn725AGrnl+BgTuRPEacjiLEaGq16J6XirMJbtKkTwnt67SS+e2WGoew==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.32 @@ -3340,8 +3472,8 @@ packages: peerDependencies: postcss: ^8.4.32 - postcss-minify-params@7.0.4: - resolution: {integrity: sha512-3OqqUddfH8c2e7M35W6zIwv7jssM/3miF9cbCSb1iJiWvtguQjlxZGIHK9JRmc8XAKmE2PFGtHSM7g/VcW97sw==} + postcss-minify-params@7.0.5: + resolution: {integrity: sha512-FGK9ky02h6Ighn3UihsyeAH5XmLEE2MSGH5Tc4tXMFtEDx7B+zTG6hD/+/cT+fbF7PbYojsmmWjyTwFwW1JKQQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.32 @@ -3388,8 +3520,8 @@ packages: peerDependencies: postcss: ^8.4.32 - postcss-normalize-unicode@7.0.4: - resolution: {integrity: sha512-LvIURTi1sQoZqj8mEIE8R15yvM+OhbR1avynMtI9bUzj5gGKR/gfZFd8O7VMj0QgJaIFzxDwxGl/ASMYAkqO8g==} + postcss-normalize-unicode@7.0.5: + resolution: {integrity: sha512-X6BBwiRxVaFHrb2WyBMddIeB5HBjJcAaUHyhLrM2FsxSq5TFqcHSsK7Zu1otag+o0ZphQGJewGH1tAyrD0zX1Q==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.32 @@ -3412,8 +3544,8 @@ packages: peerDependencies: postcss: ^8.4.32 - postcss-reduce-initial@7.0.4: - resolution: {integrity: sha512-rdIC9IlMBn7zJo6puim58Xd++0HdbvHeHaPgXsimMfG1ijC5A9ULvNLSE0rUKVJOvNMcwewW4Ga21ngyJjY/+Q==} + postcss-reduce-initial@7.0.5: + resolution: {integrity: sha512-RHagHLidG8hTZcnr4FpyMB2jtgd/OcyAazjMhoy5qmWJOx1uxKh4ntk0Pb46ajKM0rkf32lRH4C8c9qQiPR6IA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.32 @@ -3467,10 +3599,6 @@ packages: resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==} engines: {node: '>=20'} - pretty-ms@9.3.0: - resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} - engines: {node: '>=18'} - process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -3504,6 +3632,10 @@ packages: rc9@2.1.2: resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + react@19.2.3: + resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} + engines: {node: '>=0.10.0'} + readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -3514,10 +3646,18 @@ packages: readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + redis-errors@1.2.0: resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} engines: {node: '>=4'} @@ -3576,9 +3716,6 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rou3@0.7.12: - resolution: {integrity: sha512-iFE4hLDuloSWcD7mjdCDhx2bKcIsYbtOTpfH5MHHLSKMOUyjqQXTeZVa289uuwEGEKFoE/BAPbhaU4B774nceg==} - run-applescript@7.1.0: resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} engines: {node: '>=18'} @@ -3592,6 +3729,9 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} @@ -3614,8 +3754,8 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - seroval@1.3.2: - resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} + seroval@1.4.2: + resolution: {integrity: sha512-N3HEHRCZYn3cQbsC4B5ldj9j+tHdf4JZoYPlcI4rRYu0Xy4qN8MQf1Z08EibzB0WpgRG5BGK08FTrmM66eSzKQ==} engines: {node: '>=10'} serve-placeholder@2.0.2: @@ -3625,9 +3765,6 @@ packages: resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} engines: {node: '>= 18'} - set-cookie-parser@2.7.2: - resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} - setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -3650,8 +3787,8 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - simple-git@3.28.0: - resolution: {integrity: sha512-Rs/vQRwsn1ILH1oBUy8NucJlXmnnLeLCfcvbSehkPzbv3wwoFWIdtfd6Ndo6ZPhlPsCZ60CPI4rxurnwAa+a2w==} + simple-git@3.30.0: + resolution: {integrity: sha512-q6lxyDsCmEal/MEGhP1aVyQ3oxnagGlBDOVSIB4XUVLl1iZh0Pah6ebC9V4xBap/RfgP2WlI8EKs0WS0rMEJHg==} sirv@3.0.2: resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} @@ -3686,14 +3823,17 @@ packages: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} engines: {node: '>=0.10.0'} - srvx@0.8.16: - resolution: {integrity: sha512-hmcGW4CgroeSmzgF1Ihwgl+Ths0JqAJ7HwjP2X7e3JzY7u4IydLMcdnlqGQiQGUswz+PO9oh/KtCpOISIvs9QQ==} + srvx@0.10.0: + resolution: {integrity: sha512-NqIsR+wQCfkvvwczBh8J8uM4wTZx41K2lLSEp/3oMp917ODVVMtW5Me4epCmQ3gH8D+0b+/t4xxkUKutyhimTA==} engines: {node: '>=20.16.0'} hasBin: true standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + standardwebhooks@1.0.0: + resolution: {integrity: sha512-BbHGOQK9olHPMvQNHWul6MYlrRTAOKn03rOe4A8O3CLWhNf4YHBqq2HJKKC+sfqpxiBY52pNeesD6jIiLDz8jg==} + statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -3734,10 +3874,6 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} - strip-final-newline@4.0.0: - resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} - engines: {node: '>=18'} - strip-literal@3.1.0: resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} @@ -3767,6 +3903,11 @@ packages: engines: {node: '>=16'} hasBin: true + swr@2.3.4: + resolution: {integrity: sha512-bYd2lrhc+VarcpkgWclcUi92wYCpOgMws9Sd1hG1ntAu0NEy+14CbotuFjshBU2kt9rYj9TSmDcybpxpeTU1fg==} + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + system-architecture@0.1.0: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} @@ -3806,6 +3947,10 @@ packages: tinyexec@1.0.1: resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} @@ -3866,13 +4011,12 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - undici@7.16.0: - resolution: {integrity: sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==} - engines: {node: '>=20.18.1'} - unenv@2.0.0-rc.23: resolution: {integrity: sha512-NeOb/HbW2OwOzYaV21MewVQYfzlSwG0kVUB74RyV0gEIP44M5DsYTK9e7jDcekB/3YU+pfNWniZj+r4M/aejyQ==} + unenv@2.0.0-rc.24: + resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} + unhead@2.0.19: resolution: {integrity: sha512-gEEjkV11Aj+rBnY6wnRfsFtF2RxKOLaPN4i+Gx3UhBxnszvV6ApSNZbGk7WKyy/lErQ6ekPN63qdFL7sa1leow==} @@ -3892,8 +4036,8 @@ packages: resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} engines: {node: '>=20.19.0'} - unplugin-vue-router@0.16.0: - resolution: {integrity: sha512-yFmUQoN07KABkbxMSaNvfjnflwSi3nkSVKi7v6FTwXlzXyRDSx63vQ8Se4ho0T9Ao9I8U5FJB12fzmrGxFB0CA==} + unplugin-vue-router@0.19.2: + resolution: {integrity: sha512-u5dgLBarxE5cyDK/hzJGfpCTLIAyiTXGlo85COuD4Nssj6G7NxS+i9mhCWz/1p/ud1eMwdcUbTXehQe41jYZUA==} peerDependencies: '@vue/compiler-sfc': ^3.5.17 vue-router: ^4.6.0 @@ -3905,8 +4049,12 @@ packages: resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==} engines: {node: '>=18.12.0'} - unstorage@1.17.1: - resolution: {integrity: sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==} + unplugin@2.3.11: + resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} + engines: {node: '>=18.12.0'} + + unstorage@1.17.3: + resolution: {integrity: sha512-i+JYyy0DoKmQ3FximTHbGadmIYb8JEpq7lxUjnjeB702bCPum0vzo6oy5Mfu0lpqISw7hCyMW2yj4nWC8bqJ3Q==} peerDependencies: '@azure/app-configuration': ^1.8.0 '@azure/cosmos': ^4.2.0 @@ -3984,9 +4132,20 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + uqr@0.1.2: resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -4000,23 +4159,23 @@ packages: peerDependencies: vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 - vite-node@3.2.4: - resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + vite-node@5.2.0: + resolution: {integrity: sha512-7UT39YxUukIA97zWPXUGb0SGSiLexEGlavMwU3HDE6+d/HJhKLjLqu4eX2qv6SQiocdhKLRcusroDwXHQ6CnRQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - vite-plugin-checker@0.11.0: - resolution: {integrity: sha512-iUdO9Pl9UIBRPAragwi3as/BXXTtRu4G12L3CMrjx+WVTd9g/MsqNakreib9M/2YRVkhZYiTEwdH2j4Dm0w7lw==} + vite-plugin-checker@0.12.0: + resolution: {integrity: sha512-CmdZdDOGss7kdQwv73UyVgLPv0FVYe5czAgnmRX2oKljgEvSrODGuClaV3PDR2+3ou7N/OKGauDDBjy2MB07Rg==} engines: {node: '>=16.11'} peerDependencies: '@biomejs/biome': '>=1.7' - eslint: '>=7' + eslint: '>=9.39.1' meow: ^13.2.0 optionator: ^0.9.4 oxlint: '>=1' stylelint: '>=16' typescript: '*' - vite: '>=5.4.20' + vite: '>=5.4.21' vls: '*' vti: '*' vue-tsc: ~2.2.10 || ^3.0.0 @@ -4052,14 +4211,20 @@ packages: '@nuxt/kit': optional: true - vite-plugin-vue-tracer@1.0.1: - resolution: {integrity: sha512-L5/vAhT6oYbH4RSQYGLN9VfHexWe7SGzca1pJ7oPkL6KtxWA1jbGeb3Ri1JptKzqtd42HinOq4uEYqzhVWrzig==} + vite-plugin-static-copy@3.1.4: + resolution: {integrity: sha512-iCmr4GSw4eSnaB+G8zc2f4dxSuDjbkjwpuBLLGvQYR9IW7rnDzftnUjOH5p4RYR+d4GsiBqXRvzuFhs5bnzVyw==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 + + vite-plugin-vue-tracer@1.2.0: + resolution: {integrity: sha512-a9Z/TLpxwmoE9kIcv28wqQmiszM7ec4zgndXWEsVD/2lEZLRGzcg7ONXmplzGF/UP5W59QNtS809OdywwpUWQQ==} peerDependencies: vite: ^6.0.0 || ^7.0.0 vue: ^3.5.0 - vite@7.1.12: - resolution: {integrity: sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==} + vite@7.3.1: + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -4145,6 +4310,14 @@ packages: typescript: optional: true + vue@3.5.26: + resolution: {integrity: sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -4203,8 +4376,8 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} - yaml@2.8.1: - resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} engines: {node: '>= 14.6'} hasBin: true @@ -4216,22 +4389,21 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - yoctocolors@2.1.2: - resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} - engines: {node: '>=18'} - youch-core@0.3.3: resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} youch@4.1.0-beta.11: resolution: {integrity: sha512-sQi6PERyO/mT8w564ojOVeAlYTtVQmC2GaktQAf+IdI75/GKIggosBuvyVXvEV+FATAT6RbLdIjFoiIId4ozoQ==} + youch@4.1.0-beta.13: + resolution: {integrity: sha512-3+AG1Xvt+R7M7PSDudhbfbwiyveW6B8PLBIwTyEC598biEYIjHhC89i6DBEvR0EZUjGY3uGSnC429HpIa2Z09g==} + zip-stream@6.0.1: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} - zod@4.2.1: - resolution: {integrity: sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw==} + zod@4.3.5: + resolution: {integrity: sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==} snapshots: @@ -4402,26 +4574,100 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@better-auth/core@1.4.7(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.5(zod@4.2.1))(jose@6.1.3)(kysely@0.28.9)(nanostores@1.1.0)': + '@bomb.sh/tab@0.0.11(cac@6.7.14)(citty@0.1.6)': + optionalDependencies: + cac: 6.7.14 + citty: 0.1.6 + + '@clack/core@1.0.0-alpha.7': dependencies: - '@better-auth/utils': 0.3.0 - '@better-fetch/fetch': 1.1.21 - '@standard-schema/spec': 1.1.0 - better-call: 1.1.5(zod@4.2.1) - jose: 6.1.3 - kysely: 0.28.9 - nanostores: 1.1.0 - zod: 4.2.1 + picocolors: 1.1.1 + sisteransi: 1.0.5 - '@better-auth/telemetry@1.4.7(@better-auth/core@1.4.7(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.5(zod@4.2.1))(jose@6.1.3)(kysely@0.28.9)(nanostores@1.1.0))': + '@clack/prompts@1.0.0-alpha.9': dependencies: - '@better-auth/core': 1.4.7(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.5(zod@4.2.1))(jose@6.1.3)(kysely@0.28.9)(nanostores@1.1.0) - '@better-auth/utils': 0.3.0 - '@better-fetch/fetch': 1.1.21 + '@clack/core': 1.0.0-alpha.7 + picocolors: 1.1.1 + sisteransi: 1.0.5 - '@better-auth/utils@0.3.0': {} + '@clerk/backend@2.29.0(react@19.2.3)': + dependencies: + '@clerk/shared': 3.41.1(react@19.2.3) + '@clerk/types': 4.101.9(react@19.2.3) + cookie: 1.0.2 + standardwebhooks: 1.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - react + - react-dom - '@better-fetch/fetch@1.1.21': {} + '@clerk/nuxt@1.13.10(magicast@0.5.0)(react@19.2.3)(vue@3.5.22(typescript@5.9.3))': + dependencies: + '@clerk/backend': 2.29.0(react@19.2.3) + '@clerk/shared': 3.41.1(react@19.2.3) + '@clerk/types': 4.101.9(react@19.2.3) + '@clerk/vue': 1.17.7(react@19.2.3)(vue@3.5.22(typescript@5.9.3)) + '@nuxt/kit': 4.2.0(magicast@0.5.0) + '@nuxt/schema': 4.2.0 + h3: 1.15.4 + transitivePeerDependencies: + - magicast + - react + - react-dom + - vue + + '@clerk/shared@3.41.1(react@19.2.3)': + dependencies: + csstype: 3.1.3 + dequal: 2.0.3 + glob-to-regexp: 0.4.1 + js-cookie: 3.0.5 + std-env: 3.10.0 + swr: 2.3.4(react@19.2.3) + optionalDependencies: + react: 19.2.3 + + '@clerk/shared@3.42.0(react@19.2.3)': + dependencies: + csstype: 3.1.3 + dequal: 2.0.3 + glob-to-regexp: 0.4.1 + js-cookie: 3.0.5 + std-env: 3.10.0 + swr: 2.3.4(react@19.2.3) + optionalDependencies: + react: 19.2.3 + + '@clerk/themes@2.4.46(react@19.2.3)': + dependencies: + '@clerk/shared': 3.41.1(react@19.2.3) + tslib: 2.8.1 + transitivePeerDependencies: + - react + - react-dom + + '@clerk/types@4.101.10(react@19.2.3)': + dependencies: + '@clerk/shared': 3.42.0(react@19.2.3) + transitivePeerDependencies: + - react + - react-dom + + '@clerk/types@4.101.9(react@19.2.3)': + dependencies: + '@clerk/shared': 3.41.1(react@19.2.3) + transitivePeerDependencies: + - react + - react-dom + + '@clerk/vue@1.17.7(react@19.2.3)(vue@3.5.22(typescript@5.9.3))': + dependencies: + '@clerk/shared': 3.42.0(react@19.2.3) + '@clerk/types': 4.101.10(react@19.2.3) + vue: 3.5.22(typescript@5.9.3) + transitivePeerDependencies: + - react + - react-dom '@cloudflare/kv-asset-handler@0.4.0': dependencies: @@ -4429,17 +4675,17 @@ snapshots: '@drizzle-team/brocli@0.10.2': {} - '@dxup/nuxt@0.2.0(magicast@0.5.0)': + '@dxup/nuxt@0.2.2(magicast@0.5.0)': dependencies: - '@dxup/unimport': 0.1.0 - '@nuxt/kit': 4.2.0(magicast@0.5.0) + '@dxup/unimport': 0.1.2 + '@nuxt/kit': 4.2.2(magicast@0.5.0) chokidar: 4.0.3 pathe: 2.0.3 tinyglobby: 0.2.15 transitivePeerDependencies: - magicast - '@dxup/unimport@0.1.0': {} + '@dxup/unimport@0.1.2': {} '@emnapi/core@1.6.0': dependencies: @@ -4447,11 +4693,22 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/core@1.8.1': + dependencies: + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.6.0': dependencies: tslib: 2.8.1 optional: true + '@emnapi/runtime@1.8.1': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/wasi-threads@1.1.0': dependencies: tslib: 2.8.1 @@ -4795,15 +5052,18 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true + '@napi-rs/wasm-runtime@1.1.1': + dependencies: + '@emnapi/core': 1.8.1 + '@emnapi/runtime': 1.8.1 + '@tybys/wasm-util': 0.10.1 + optional: true + '@neondatabase/serverless@1.0.2': dependencies: '@types/node': 22.19.3 '@types/pg': 8.16.0 - '@noble/ciphers@2.1.1': {} - - '@noble/hashes@2.0.1': {} - '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4816,67 +5076,70 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@nuxt/cli@3.29.3(magicast@0.5.0)': + '@nuxt/cli@3.32.0(cac@6.7.14)(magicast@0.5.0)': dependencies: - c12: 3.3.1(magicast@0.5.0) + '@bomb.sh/tab': 0.0.11(cac@6.7.14)(citty@0.1.6) + '@clack/prompts': 1.0.0-alpha.9 + c12: 3.3.3(magicast@0.5.0) citty: 0.1.6 - clipboardy: 5.0.0 confbox: 0.2.2 consola: 3.4.2 + copy-paste: 2.2.0 + debug: 4.4.3 defu: 6.1.4 - exsolve: 1.0.7 + exsolve: 1.0.8 fuse.js: 7.1.0 - get-port-please: 3.2.0 giget: 2.0.0 - h3: 1.15.4 jiti: 2.6.1 listhen: 1.9.0 nypm: 0.6.2 - ofetch: 1.5.0 + ofetch: 1.5.1 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 2.0.0 pkg-types: 2.3.0 scule: 1.3.0 semver: 7.7.3 - srvx: 0.8.16 + srvx: 0.10.0 std-env: 3.10.0 - tinyexec: 1.0.1 + tinyexec: 1.0.2 ufo: 1.6.1 - undici: 7.16.0 - youch: 4.1.0-beta.11 + youch: 4.1.0-beta.13 transitivePeerDependencies: + - cac + - commander - magicast + - supports-color '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@2.7.0(magicast@0.3.5)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': + '@nuxt/devtools-kit@3.1.1(magicast@0.5.1)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - '@nuxt/kit': 3.20.0(magicast@0.3.5) + '@nuxt/kit': 4.2.2(magicast@0.5.1) execa: 8.0.1 - vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - magicast - '@nuxt/devtools-wizard@2.7.0': + '@nuxt/devtools-wizard@3.1.1': dependencies: consola: 3.4.2 diff: 8.0.2 execa: 8.0.1 - magicast: 0.3.5 + magicast: 0.5.1 pathe: 2.0.3 pkg-types: 2.3.0 prompts: 2.4.2 semver: 7.7.3 - '@nuxt/devtools@2.7.0(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': + '@nuxt/devtools@3.1.1(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': dependencies: - '@nuxt/devtools-kit': 2.7.0(magicast@0.3.5)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) - '@nuxt/devtools-wizard': 2.7.0 - '@nuxt/kit': 3.20.0(magicast@0.3.5) - '@vue/devtools-core': 7.7.7(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) - '@vue/devtools-kit': 7.7.7 - birpc: 2.6.1 + '@nuxt/devtools-kit': 3.1.1(magicast@0.5.1)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) + '@nuxt/devtools-wizard': 3.1.1 + '@nuxt/kit': 4.2.2(magicast@0.5.1) + '@vue/devtools-core': 8.0.5(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) + '@vue/devtools-kit': 8.0.5 + birpc: 2.9.0 consola: 3.4.2 destr: 2.0.5 error-stack-parser-es: 1.0.5 @@ -4888,20 +5151,20 @@ snapshots: is-installed-globally: 1.0.0 launch-editor: 2.12.0 local-pkg: 1.1.2 - magicast: 0.3.5 + magicast: 0.5.1 nypm: 0.6.2 ohash: 2.0.11 pathe: 2.0.3 - perfect-debounce: 1.0.0 + perfect-debounce: 2.0.0 pkg-types: 2.3.0 semver: 7.7.3 - simple-git: 3.28.0 + simple-git: 3.30.0 sirv: 3.0.2 structured-clone-es: 1.0.0 tinyglobby: 0.2.15 - vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) - vite-plugin-inspect: 11.3.3(@nuxt/kit@3.20.0(magicast@0.3.5))(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) - vite-plugin-vue-tracer: 1.0.1(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) + vite-plugin-inspect: 11.3.3(@nuxt/kit@4.2.2(magicast@0.5.0))(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) + vite-plugin-vue-tracer: 1.2.0(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) which: 5.0.0 ws: 8.18.3 transitivePeerDependencies: @@ -4910,32 +5173,6 @@ snapshots: - utf-8-validate - vue - '@nuxt/kit@3.20.0(magicast@0.3.5)': - dependencies: - c12: 3.3.1(magicast@0.3.5) - consola: 3.4.2 - defu: 6.1.4 - destr: 2.0.5 - errx: 0.1.0 - exsolve: 1.0.7 - ignore: 7.0.5 - jiti: 2.6.1 - klona: 2.0.6 - knitwork: 1.2.0 - mlly: 1.8.0 - ohash: 2.0.11 - pathe: 2.0.3 - pkg-types: 2.3.0 - rc9: 2.1.2 - scule: 1.3.0 - semver: 7.7.3 - tinyglobby: 0.2.15 - ufo: 1.6.1 - unctx: 2.4.1 - untyped: 2.0.0 - transitivePeerDependencies: - - magicast - '@nuxt/kit@3.20.0(magicast@0.5.0)': dependencies: c12: 3.3.1(magicast@0.5.0) @@ -4987,33 +5224,83 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/nitro-server@4.2.0(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(magicast@0.5.0)(nuxt@4.2.0(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.22)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.3)': + '@nuxt/kit@4.2.2(magicast@0.5.0)': dependencies: - '@nuxt/devalue': 2.0.2 - '@nuxt/kit': 4.2.0(magicast@0.5.0) - '@unhead/vue': 2.0.19(vue@3.5.22(typescript@5.9.3)) - '@vue/shared': 3.5.22 + c12: 3.3.3(magicast@0.5.0) consola: 3.4.2 defu: 6.1.4 destr: 2.0.5 - devalue: 5.4.2 + errx: 0.1.0 + exsolve: 1.0.8 + ignore: 7.0.5 + jiti: 2.6.1 + klona: 2.0.6 + mlly: 1.8.0 + ohash: 2.0.11 + pathe: 2.0.3 + pkg-types: 2.3.0 + rc9: 2.1.2 + scule: 1.3.0 + semver: 7.7.3 + tinyglobby: 0.2.15 + ufo: 1.6.1 + unctx: 2.4.1 + untyped: 2.0.0 + transitivePeerDependencies: + - magicast + + '@nuxt/kit@4.2.2(magicast@0.5.1)': + dependencies: + c12: 3.3.3(magicast@0.5.1) + consola: 3.4.2 + defu: 6.1.4 + destr: 2.0.5 + errx: 0.1.0 + exsolve: 1.0.8 + ignore: 7.0.5 + jiti: 2.6.1 + klona: 2.0.6 + mlly: 1.8.0 + ohash: 2.0.11 + pathe: 2.0.3 + pkg-types: 2.3.0 + rc9: 2.1.2 + scule: 1.3.0 + semver: 7.7.3 + tinyglobby: 0.2.15 + ufo: 1.6.1 + unctx: 2.4.1 + untyped: 2.0.0 + transitivePeerDependencies: + - magicast + + '@nuxt/nitro-server@4.2.2(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2))(typescript@5.9.3)': + dependencies: + '@nuxt/devalue': 2.0.2 + '@nuxt/kit': 4.2.2(magicast@0.5.0) + '@unhead/vue': 2.0.19(vue@3.5.26(typescript@5.9.3)) + '@vue/shared': 3.5.26 + consola: 3.4.2 + defu: 6.1.4 + destr: 2.0.5 + devalue: 5.6.1 errx: 0.1.0 escape-string-regexp: 5.0.0 - exsolve: 1.0.7 + exsolve: 1.0.8 h3: 1.15.4 impound: 1.0.0 klona: 2.0.6 mocked-exports: 0.1.1 nitropack: 2.12.9(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)) - nuxt: 4.2.0(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.22)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(yaml@2.8.1) + nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2) pathe: 2.0.3 pkg-types: 2.3.0 radix3: 1.1.2 std-env: 3.10.0 ufo: 1.6.1 unctx: 2.4.1 - unstorage: 1.17.1(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(ioredis@5.8.2) - vue: 3.5.22(typescript@5.9.3) + unstorage: 1.17.3(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(ioredis@5.8.2) + vue: 3.5.26(typescript@5.9.3) vue-bundle-renderer: 2.2.0 vue-devtools-stub: 0.1.0 transitivePeerDependencies: @@ -5059,6 +5346,14 @@ snapshots: pkg-types: 2.3.0 std-env: 3.10.0 + '@nuxt/schema@4.2.2': + dependencies: + '@vue/shared': 3.5.26 + defu: 6.1.4 + pathe: 2.0.3 + pkg-types: 2.3.0 + std-env: 3.10.0 + '@nuxt/telemetry@2.6.6(magicast@0.5.0)': dependencies: '@nuxt/kit': 3.20.0(magicast@0.5.0) @@ -5068,7 +5363,7 @@ snapshots: dotenv: 16.6.1 git-url-parse: 16.1.0 is-docker: 3.0.0 - ofetch: 1.5.0 + ofetch: 1.5.1 package-manager-detector: 1.5.0 pathe: 2.0.3 rc9: 2.1.2 @@ -5076,39 +5371,39 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/vite-builder@4.2.0(@types/node@24.9.2)(lightningcss@1.30.2)(magicast@0.5.0)(nuxt@4.2.0(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.22)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(yaml@2.8.1))(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))(yaml@2.8.1)': + '@nuxt/vite-builder@4.2.2(@types/node@24.9.2)(lightningcss@1.30.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2))(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2)': dependencies: - '@nuxt/kit': 4.2.0(magicast@0.5.0) - '@rollup/plugin-replace': 6.0.2(rollup@4.52.5) - '@vitejs/plugin-vue': 6.0.1(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) - '@vitejs/plugin-vue-jsx': 5.1.1(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) - autoprefixer: 10.4.21(postcss@8.5.6) + '@nuxt/kit': 4.2.2(magicast@0.5.0) + '@rollup/plugin-replace': 6.0.3(rollup@4.52.5) + '@vitejs/plugin-vue': 6.0.3(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) + '@vitejs/plugin-vue-jsx': 5.1.3(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) + autoprefixer: 10.4.23(postcss@8.5.6) consola: 3.4.2 - cssnano: 7.1.1(postcss@8.5.6) + cssnano: 7.1.2(postcss@8.5.6) defu: 6.1.4 - esbuild: 0.25.11 + esbuild: 0.27.1 escape-string-regexp: 5.0.0 - exsolve: 1.0.7 + exsolve: 1.0.8 get-port-please: 3.2.0 h3: 1.15.4 jiti: 2.6.1 - knitwork: 1.2.0 + knitwork: 1.3.0 magic-string: 0.30.21 mlly: 1.8.0 mocked-exports: 0.1.1 - nuxt: 4.2.0(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.22)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(yaml@2.8.1) + nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2) pathe: 2.0.3 pkg-types: 2.3.0 postcss: 8.5.6 rollup-plugin-visualizer: 6.0.5(rollup@4.52.5) - seroval: 1.3.2 + seroval: 1.4.2 std-env: 3.10.0 ufo: 1.6.1 - unenv: 2.0.0-rc.23 - vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) - vite-plugin-checker: 0.11.0(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) - vue: 3.5.22(typescript@5.9.3) + unenv: 2.0.0-rc.24 + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) + vite-node: 5.2.0(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) + vite-plugin-checker: 0.12.0(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) + vue: 3.5.26(typescript@5.9.3) vue-bundle-renderer: 2.2.0 transitivePeerDependencies: - '@biomejs/biome' @@ -5144,123 +5439,128 @@ snapshots: transitivePeerDependencies: - magicast - '@oxc-minify/binding-android-arm64@0.95.0': + '@oxc-minify/binding-android-arm64@0.102.0': optional: true - '@oxc-minify/binding-darwin-arm64@0.95.0': + '@oxc-minify/binding-darwin-arm64@0.102.0': optional: true - '@oxc-minify/binding-darwin-x64@0.95.0': + '@oxc-minify/binding-darwin-x64@0.102.0': optional: true - '@oxc-minify/binding-freebsd-x64@0.95.0': + '@oxc-minify/binding-freebsd-x64@0.102.0': optional: true - '@oxc-minify/binding-linux-arm-gnueabihf@0.95.0': + '@oxc-minify/binding-linux-arm-gnueabihf@0.102.0': optional: true - '@oxc-minify/binding-linux-arm-musleabihf@0.95.0': + '@oxc-minify/binding-linux-arm64-gnu@0.102.0': optional: true - '@oxc-minify/binding-linux-arm64-gnu@0.95.0': + '@oxc-minify/binding-linux-arm64-musl@0.102.0': optional: true - '@oxc-minify/binding-linux-arm64-musl@0.95.0': + '@oxc-minify/binding-linux-riscv64-gnu@0.102.0': optional: true - '@oxc-minify/binding-linux-riscv64-gnu@0.95.0': + '@oxc-minify/binding-linux-s390x-gnu@0.102.0': optional: true - '@oxc-minify/binding-linux-s390x-gnu@0.95.0': + '@oxc-minify/binding-linux-x64-gnu@0.102.0': optional: true - '@oxc-minify/binding-linux-x64-gnu@0.95.0': + '@oxc-minify/binding-linux-x64-musl@0.102.0': optional: true - '@oxc-minify/binding-linux-x64-musl@0.95.0': + '@oxc-minify/binding-openharmony-arm64@0.102.0': optional: true - '@oxc-minify/binding-wasm32-wasi@0.95.0': + '@oxc-minify/binding-wasm32-wasi@0.102.0': dependencies: - '@napi-rs/wasm-runtime': 1.0.7 + '@napi-rs/wasm-runtime': 1.1.1 optional: true - '@oxc-minify/binding-win32-arm64-msvc@0.95.0': + '@oxc-minify/binding-win32-arm64-msvc@0.102.0': optional: true - '@oxc-minify/binding-win32-x64-msvc@0.95.0': + '@oxc-minify/binding-win32-x64-msvc@0.102.0': + optional: true + + '@oxc-parser/binding-android-arm64@0.102.0': optional: true '@oxc-parser/binding-android-arm64@0.93.0': optional: true - '@oxc-parser/binding-android-arm64@0.95.0': + '@oxc-parser/binding-darwin-arm64@0.102.0': optional: true '@oxc-parser/binding-darwin-arm64@0.93.0': optional: true - '@oxc-parser/binding-darwin-arm64@0.95.0': + '@oxc-parser/binding-darwin-x64@0.102.0': optional: true '@oxc-parser/binding-darwin-x64@0.93.0': optional: true - '@oxc-parser/binding-darwin-x64@0.95.0': + '@oxc-parser/binding-freebsd-x64@0.102.0': optional: true '@oxc-parser/binding-freebsd-x64@0.93.0': optional: true - '@oxc-parser/binding-freebsd-x64@0.95.0': + '@oxc-parser/binding-linux-arm-gnueabihf@0.102.0': optional: true '@oxc-parser/binding-linux-arm-gnueabihf@0.93.0': optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.95.0': - optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.93.0': optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.95.0': + '@oxc-parser/binding-linux-arm64-gnu@0.102.0': optional: true '@oxc-parser/binding-linux-arm64-gnu@0.93.0': optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.95.0': + '@oxc-parser/binding-linux-arm64-musl@0.102.0': optional: true '@oxc-parser/binding-linux-arm64-musl@0.93.0': optional: true - '@oxc-parser/binding-linux-arm64-musl@0.95.0': + '@oxc-parser/binding-linux-riscv64-gnu@0.102.0': optional: true '@oxc-parser/binding-linux-riscv64-gnu@0.93.0': optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.95.0': + '@oxc-parser/binding-linux-s390x-gnu@0.102.0': optional: true '@oxc-parser/binding-linux-s390x-gnu@0.93.0': optional: true - '@oxc-parser/binding-linux-s390x-gnu@0.95.0': + '@oxc-parser/binding-linux-x64-gnu@0.102.0': optional: true '@oxc-parser/binding-linux-x64-gnu@0.93.0': optional: true - '@oxc-parser/binding-linux-x64-gnu@0.95.0': + '@oxc-parser/binding-linux-x64-musl@0.102.0': optional: true '@oxc-parser/binding-linux-x64-musl@0.93.0': optional: true - '@oxc-parser/binding-linux-x64-musl@0.95.0': + '@oxc-parser/binding-openharmony-arm64@0.102.0': + optional: true + + '@oxc-parser/binding-wasm32-wasi@0.102.0': + dependencies: + '@napi-rs/wasm-runtime': 1.1.1 optional: true '@oxc-parser/binding-wasm32-wasi@0.93.0': @@ -5268,72 +5568,67 @@ snapshots: '@napi-rs/wasm-runtime': 1.0.7 optional: true - '@oxc-parser/binding-wasm32-wasi@0.95.0': - dependencies: - '@napi-rs/wasm-runtime': 1.0.7 + '@oxc-parser/binding-win32-arm64-msvc@0.102.0': optional: true '@oxc-parser/binding-win32-arm64-msvc@0.93.0': optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.95.0': + '@oxc-parser/binding-win32-x64-msvc@0.102.0': optional: true '@oxc-parser/binding-win32-x64-msvc@0.93.0': optional: true - '@oxc-parser/binding-win32-x64-msvc@0.95.0': - optional: true + '@oxc-project/types@0.102.0': {} '@oxc-project/types@0.93.0': {} - '@oxc-project/types@0.95.0': {} - - '@oxc-transform/binding-android-arm64@0.95.0': + '@oxc-transform/binding-android-arm64@0.102.0': optional: true - '@oxc-transform/binding-darwin-arm64@0.95.0': + '@oxc-transform/binding-darwin-arm64@0.102.0': optional: true - '@oxc-transform/binding-darwin-x64@0.95.0': + '@oxc-transform/binding-darwin-x64@0.102.0': optional: true - '@oxc-transform/binding-freebsd-x64@0.95.0': + '@oxc-transform/binding-freebsd-x64@0.102.0': optional: true - '@oxc-transform/binding-linux-arm-gnueabihf@0.95.0': + '@oxc-transform/binding-linux-arm-gnueabihf@0.102.0': optional: true - '@oxc-transform/binding-linux-arm-musleabihf@0.95.0': + '@oxc-transform/binding-linux-arm64-gnu@0.102.0': optional: true - '@oxc-transform/binding-linux-arm64-gnu@0.95.0': + '@oxc-transform/binding-linux-arm64-musl@0.102.0': optional: true - '@oxc-transform/binding-linux-arm64-musl@0.95.0': + '@oxc-transform/binding-linux-riscv64-gnu@0.102.0': optional: true - '@oxc-transform/binding-linux-riscv64-gnu@0.95.0': + '@oxc-transform/binding-linux-s390x-gnu@0.102.0': optional: true - '@oxc-transform/binding-linux-s390x-gnu@0.95.0': + '@oxc-transform/binding-linux-x64-gnu@0.102.0': optional: true - '@oxc-transform/binding-linux-x64-gnu@0.95.0': + '@oxc-transform/binding-linux-x64-musl@0.102.0': optional: true - '@oxc-transform/binding-linux-x64-musl@0.95.0': + '@oxc-transform/binding-openharmony-arm64@0.102.0': optional: true - '@oxc-transform/binding-wasm32-wasi@0.95.0': + '@oxc-transform/binding-wasm32-wasi@0.102.0': dependencies: - '@napi-rs/wasm-runtime': 1.0.7 + '@napi-rs/wasm-runtime': 1.1.1 optional: true - '@oxc-transform/binding-win32-arm64-msvc@0.95.0': + '@oxc-transform/binding-win32-arm64-msvc@0.102.0': optional: true - '@oxc-transform/binding-win32-x64-msvc@0.95.0': + '@oxc-transform/binding-win32-x64-msvc@0.102.0': optional: true '@parcel/watcher-android-arm64@2.5.1': @@ -5423,11 +5718,17 @@ snapshots: '@sindresorhus/is': 7.1.0 supports-color: 10.2.2 + '@poppinss/dumper@0.6.5': + dependencies: + '@poppinss/colors': 4.1.5 + '@sindresorhus/is': 7.1.0 + supports-color: 10.2.2 + '@poppinss/exception@1.2.2': {} - '@rolldown/pluginutils@1.0.0-beta.29': {} + '@rolldown/pluginutils@1.0.0-beta.53': {} - '@rolldown/pluginutils@1.0.0-beta.45': {} + '@rolldown/pluginutils@1.0.0-beta.59': {} '@rollup/plugin-alias@5.1.1(rollup@4.52.5)': optionalDependencies: @@ -5476,6 +5777,13 @@ snapshots: optionalDependencies: rollup: 4.52.5 + '@rollup/plugin-replace@6.0.3(rollup@4.52.5)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) + magic-string: 0.30.21 + optionalDependencies: + rollup: 4.52.5 + '@rollup/plugin-terser@0.4.4(rollup@4.52.5)': dependencies: serialize-javascript: 6.0.2 @@ -5558,15 +5866,15 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.5': optional: true - '@sec-ant/readable-stream@0.4.1': {} - '@sindresorhus/is@7.1.0': {} '@sindresorhus/merge-streams@4.0.0': {} + '@speed-highlight/core@1.2.14': {} + '@speed-highlight/core@1.2.8': {} - '@standard-schema/spec@1.1.0': {} + '@stablelib/base64@1.0.1': {} '@swc/helpers@0.5.17': dependencies: @@ -5633,15 +5941,41 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.1.16 '@tailwindcss/oxide-win32-x64-msvc': 4.1.16 - '@tailwindcss/vite@4.1.16(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': + '@tailwindcss/vite@4.1.16(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@tailwindcss/node': 4.1.16 '@tailwindcss/oxide': 4.1.16 tailwindcss: 4.1.16 - vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) + + '@tanstack/devtools-event-client@0.4.0': {} + + '@tanstack/form-core@1.27.7': + dependencies: + '@tanstack/devtools-event-client': 0.4.0 + '@tanstack/pacer-lite': 0.1.1 + '@tanstack/store': 0.7.7 + + '@tanstack/pacer-lite@0.1.1': {} + + '@tanstack/store@0.7.7': {} '@tanstack/virtual-core@3.13.12': {} + '@tanstack/vue-form@1.27.7(vue@3.5.22(typescript@5.9.3))': + dependencies: + '@tanstack/form-core': 1.27.7 + '@tanstack/vue-store': 0.7.7(vue@3.5.22(typescript@5.9.3)) + vue: 3.5.22(typescript@5.9.3) + transitivePeerDependencies: + - '@vue/composition-api' + + '@tanstack/vue-store@0.7.7(vue@3.5.22(typescript@5.9.3))': + dependencies: + '@tanstack/store': 0.7.7 + vue: 3.5.22(typescript@5.9.3) + vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3)) + '@tanstack/vue-virtual@3.13.12(vue@3.5.22(typescript@5.9.3))': dependencies: '@tanstack/virtual-core': 3.13.12 @@ -5676,13 +6010,16 @@ snapshots: '@types/resolve@1.20.2': {} + '@types/trusted-types@2.0.7': + optional: true + '@types/web-bluetooth@0.0.21': {} - '@unhead/vue@2.0.19(vue@3.5.22(typescript@5.9.3))': + '@unhead/vue@2.0.19(vue@3.5.26(typescript@5.9.3))': dependencies: hookable: 5.5.3 unhead: 2.0.19 - vue: 3.5.22(typescript@5.9.3) + vue: 3.5.26(typescript@5.9.3) '@vercel/nft@0.30.3(rollup@4.52.5)': dependencies: @@ -5703,31 +6040,31 @@ snapshots: - rollup - supports-color - '@vitejs/plugin-vue-jsx@5.1.1(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@5.1.3(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) - '@rolldown/pluginutils': 1.0.0-beta.45 - '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.5) - vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) - vue: 3.5.22(typescript@5.9.3) + '@rolldown/pluginutils': 1.0.0-beta.59 + '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.28.5) + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) + vue: 3.5.26(typescript@5.9.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.1(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.3(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': dependencies: - '@rolldown/pluginutils': 1.0.0-beta.29 - vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) - vue: 3.5.22(typescript@5.9.3) + '@rolldown/pluginutils': 1.0.0-beta.53 + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) + vue: 3.5.26(typescript@5.9.3) - '@volar/language-core@2.4.23': + '@volar/language-core@2.4.27': dependencies: - '@volar/source-map': 2.4.23 + '@volar/source-map': 2.4.27 - '@volar/source-map@2.4.23': {} + '@volar/source-map@2.4.27': {} - '@vue-macros/common@3.1.1(vue@3.5.22(typescript@5.9.3))': + '@vue-macros/common@3.1.1(vue@3.5.26(typescript@5.9.3))': dependencies: '@vue/compiler-sfc': 3.5.22 ast-kit: 2.1.3 @@ -5735,11 +6072,11 @@ snapshots: magic-string-ast: 1.0.3 unplugin-utils: 0.3.1 optionalDependencies: - vue: 3.5.22(typescript@5.9.3) + vue: 3.5.26(typescript@5.9.3) - '@vue/babel-helper-vue-transform-on@1.5.0': {} + '@vue/babel-helper-vue-transform-on@2.0.1': {} - '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.28.5)': + '@vue/babel-plugin-jsx@2.0.1(@babel/core@7.28.5)': dependencies: '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 @@ -5747,15 +6084,15 @@ snapshots: '@babel/template': 7.27.2 '@babel/traverse': 7.28.5 '@babel/types': 7.28.5 - '@vue/babel-helper-vue-transform-on': 1.5.0 - '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.28.5) - '@vue/shared': 3.5.22 + '@vue/babel-helper-vue-transform-on': 2.0.1 + '@vue/babel-plugin-resolve-type': 2.0.1(@babel/core@7.28.5) + '@vue/shared': 3.5.26 optionalDependencies: '@babel/core': 7.28.5 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.28.5)': + '@vue/babel-plugin-resolve-type@2.0.1(@babel/core@7.28.5)': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.5 @@ -5774,11 +6111,24 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@3.5.26': + dependencies: + '@babel/parser': 7.28.5 + '@vue/shared': 3.5.26 + entities: 7.0.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.5.22': dependencies: '@vue/compiler-core': 3.5.22 '@vue/shared': 3.5.22 + '@vue/compiler-dom@3.5.26': + dependencies: + '@vue/compiler-core': 3.5.26 + '@vue/shared': 3.5.26 + '@vue/compiler-sfc@3.5.22': dependencies: '@babel/parser': 7.28.5 @@ -5791,64 +6141,102 @@ snapshots: postcss: 8.5.6 source-map-js: 1.2.1 + '@vue/compiler-sfc@3.5.26': + dependencies: + '@babel/parser': 7.28.5 + '@vue/compiler-core': 3.5.26 + '@vue/compiler-dom': 3.5.26 + '@vue/compiler-ssr': 3.5.26 + '@vue/shared': 3.5.26 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.6 + source-map-js: 1.2.1 + '@vue/compiler-ssr@3.5.22': dependencies: '@vue/compiler-dom': 3.5.22 '@vue/shared': 3.5.22 + '@vue/compiler-ssr@3.5.26': + dependencies: + '@vue/compiler-dom': 3.5.26 + '@vue/shared': 3.5.26 + '@vue/devtools-api@6.6.4': {} '@vue/devtools-api@7.7.7': dependencies: - '@vue/devtools-kit': 7.7.7 + '@vue/devtools-kit': 7.7.9 - '@vue/devtools-core@7.7.7(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': + '@vue/devtools-core@8.0.5(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': dependencies: - '@vue/devtools-kit': 7.7.7 - '@vue/devtools-shared': 7.7.7 + '@vue/devtools-kit': 8.0.5 + '@vue/devtools-shared': 8.0.5 mitt: 3.0.1 nanoid: 5.1.6 pathe: 2.0.3 - vite-hot-client: 2.1.0(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) - vue: 3.5.22(typescript@5.9.3) + vite-hot-client: 2.1.0(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) + vue: 3.5.26(typescript@5.9.3) transitivePeerDependencies: - vite - '@vue/devtools-kit@7.7.7': + '@vue/devtools-kit@7.7.9': dependencies: - '@vue/devtools-shared': 7.7.7 - birpc: 2.6.1 + '@vue/devtools-shared': 7.7.9 + birpc: 2.9.0 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 speakingurl: 14.0.1 superjson: 2.2.5 - '@vue/devtools-shared@7.7.7': + '@vue/devtools-kit@8.0.5': + dependencies: + '@vue/devtools-shared': 8.0.5 + birpc: 2.9.0 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 2.0.0 + speakingurl: 14.0.1 + superjson: 2.2.5 + + '@vue/devtools-shared@7.7.9': dependencies: rfdc: 1.4.1 - '@vue/language-core@3.1.2(typescript@5.9.3)': + '@vue/devtools-shared@8.0.5': dependencies: - '@volar/language-core': 2.4.23 + rfdc: 1.4.1 + + '@vue/language-core@3.2.2': + dependencies: + '@volar/language-core': 2.4.27 '@vue/compiler-dom': 3.5.22 - '@vue/shared': 3.5.22 + '@vue/shared': 3.5.26 alien-signals: 3.0.3 muggle-string: 0.4.1 path-browserify: 1.0.1 picomatch: 4.0.3 - optionalDependencies: - typescript: 5.9.3 '@vue/reactivity@3.5.22': dependencies: '@vue/shared': 3.5.22 + '@vue/reactivity@3.5.26': + dependencies: + '@vue/shared': 3.5.26 + '@vue/runtime-core@3.5.22': dependencies: '@vue/reactivity': 3.5.22 '@vue/shared': 3.5.22 + '@vue/runtime-core@3.5.26': + dependencies: + '@vue/reactivity': 3.5.26 + '@vue/shared': 3.5.26 + '@vue/runtime-dom@3.5.22': dependencies: '@vue/reactivity': 3.5.22 @@ -5856,14 +6244,29 @@ snapshots: '@vue/shared': 3.5.22 csstype: 3.1.3 + '@vue/runtime-dom@3.5.26': + dependencies: + '@vue/reactivity': 3.5.26 + '@vue/runtime-core': 3.5.26 + '@vue/shared': 3.5.26 + csstype: 3.2.3 + '@vue/server-renderer@3.5.22(vue@3.5.22(typescript@5.9.3))': dependencies: '@vue/compiler-ssr': 3.5.22 '@vue/shared': 3.5.22 vue: 3.5.22(typescript@5.9.3) + '@vue/server-renderer@3.5.26(vue@3.5.26(typescript@5.9.3))': + dependencies: + '@vue/compiler-ssr': 3.5.26 + '@vue/shared': 3.5.26 + vue: 3.5.26(typescript@5.9.3) + '@vue/shared@3.5.22': {} + '@vue/shared@3.5.26': {} + '@vueuse/core@12.8.2(typescript@5.9.3)': dependencies: '@types/web-bluetooth': 0.0.21 @@ -5968,12 +6371,11 @@ snapshots: async@3.2.6: {} - autoprefixer@10.4.21(postcss@8.5.6): + autoprefixer@10.4.23(postcss@8.5.6): dependencies: - browserslist: 4.27.0 - caniuse-lite: 1.0.30001751 - fraction.js: 4.3.7 - normalize-range: 0.1.2 + browserslist: 4.28.1 + caniuse-lite: 1.0.30001762 + fraction.js: 5.3.4 picocolors: 1.1.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -5988,39 +6390,15 @@ snapshots: baseline-browser-mapping@2.8.20: {} - better-auth@1.4.7(drizzle-kit@0.31.8)(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(vue@3.5.22(typescript@5.9.3)): - dependencies: - '@better-auth/core': 1.4.7(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.5(zod@4.2.1))(jose@6.1.3)(kysely@0.28.9)(nanostores@1.1.0) - '@better-auth/telemetry': 1.4.7(@better-auth/core@1.4.7(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.5(zod@4.2.1))(jose@6.1.3)(kysely@0.28.9)(nanostores@1.1.0)) - '@better-auth/utils': 0.3.0 - '@better-fetch/fetch': 1.1.21 - '@noble/ciphers': 2.1.1 - '@noble/hashes': 2.0.1 - better-call: 1.1.5(zod@4.2.1) - defu: 6.1.4 - jose: 6.1.3 - kysely: 0.28.9 - nanostores: 1.1.0 - zod: 4.2.1 - optionalDependencies: - drizzle-kit: 0.31.8 - drizzle-orm: 0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9) - vue: 3.5.22(typescript@5.9.3) + baseline-browser-mapping@2.9.12: {} - better-call@1.1.5(zod@4.2.1): - dependencies: - '@better-auth/utils': 0.3.0 - '@better-fetch/fetch': 1.1.21 - rou3: 0.7.12 - set-cookie-parser: 2.7.2 - optionalDependencies: - zod: 4.2.1 + binary-extensions@2.3.0: {} bindings@1.5.0: dependencies: file-uri-to-path: 1.0.0 - birpc@2.6.1: {} + birpc@2.9.0: {} boolbase@1.0.0: {} @@ -6040,6 +6418,14 @@ snapshots: node-releases: 2.0.26 update-browserslist-db: 1.1.4(browserslist@4.27.0) + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.9.12 + caniuse-lite: 1.0.30001762 + electron-to-chromium: 1.5.267 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) + buffer-crc32@1.0.0: {} buffer-from@1.1.2: {} @@ -6053,23 +6439,6 @@ snapshots: dependencies: run-applescript: 7.1.0 - c12@3.3.1(magicast@0.3.5): - dependencies: - chokidar: 4.0.3 - confbox: 0.2.2 - defu: 6.1.4 - dotenv: 17.2.3 - exsolve: 1.0.7 - giget: 2.0.0 - jiti: 2.6.1 - ohash: 2.0.11 - pathe: 2.0.3 - perfect-debounce: 2.0.0 - pkg-types: 2.3.0 - rc9: 2.1.2 - optionalDependencies: - magicast: 0.3.5 - c12@3.3.1(magicast@0.5.0): dependencies: chokidar: 4.0.3 @@ -6087,6 +6456,40 @@ snapshots: optionalDependencies: magicast: 0.5.0 + c12@3.3.3(magicast@0.5.0): + dependencies: + chokidar: 5.0.0 + confbox: 0.2.2 + defu: 6.1.4 + dotenv: 17.2.3 + exsolve: 1.0.8 + giget: 2.0.0 + jiti: 2.6.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.0.0 + pkg-types: 2.3.0 + rc9: 2.1.2 + optionalDependencies: + magicast: 0.5.0 + + c12@3.3.3(magicast@0.5.1): + dependencies: + chokidar: 5.0.0 + confbox: 0.2.2 + defu: 6.1.4 + dotenv: 17.2.3 + exsolve: 1.0.8 + giget: 2.0.0 + jiti: 2.6.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.0.0 + pkg-types: 2.3.0 + rc9: 2.1.2 + optionalDependencies: + magicast: 0.5.1 + cac@6.7.14: {} caniuse-api@3.0.0: @@ -6098,10 +6501,28 @@ snapshots: caniuse-lite@1.0.30001751: {} + caniuse-lite@1.0.30001762: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + chokidar@4.0.3: dependencies: readdirp: 4.1.2 + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + chownr@3.0.0: {} citty@0.1.6: @@ -6118,13 +6539,6 @@ snapshots: is-wsl: 3.1.0 is64bit: 2.0.0 - clipboardy@5.0.0: - dependencies: - execa: 9.6.0 - is-wayland: 0.1.0 - is-wsl: 3.1.0 - is64bit: 2.0.0 - cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -6177,6 +6591,10 @@ snapshots: dependencies: is-what: 5.5.0 + copy-paste@2.2.0: + dependencies: + iconv-lite: 0.4.24 + core-util-is@1.0.3: {} crc-32@1.2.2: {} @@ -6229,24 +6647,24 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@7.0.9(postcss@8.5.6): + cssnano-preset-default@7.0.10(postcss@8.5.6): dependencies: browserslist: 4.27.0 css-declaration-sorter: 7.3.0(postcss@8.5.6) cssnano-utils: 5.0.1(postcss@8.5.6) postcss: 8.5.6 postcss-calc: 10.1.1(postcss@8.5.6) - postcss-colormin: 7.0.4(postcss@8.5.6) - postcss-convert-values: 7.0.7(postcss@8.5.6) - postcss-discard-comments: 7.0.4(postcss@8.5.6) + postcss-colormin: 7.0.5(postcss@8.5.6) + postcss-convert-values: 7.0.8(postcss@8.5.6) + postcss-discard-comments: 7.0.5(postcss@8.5.6) postcss-discard-duplicates: 7.0.2(postcss@8.5.6) postcss-discard-empty: 7.0.1(postcss@8.5.6) postcss-discard-overridden: 7.0.1(postcss@8.5.6) postcss-merge-longhand: 7.0.5(postcss@8.5.6) - postcss-merge-rules: 7.0.6(postcss@8.5.6) + postcss-merge-rules: 7.0.7(postcss@8.5.6) postcss-minify-font-values: 7.0.1(postcss@8.5.6) postcss-minify-gradients: 7.0.1(postcss@8.5.6) - postcss-minify-params: 7.0.4(postcss@8.5.6) + postcss-minify-params: 7.0.5(postcss@8.5.6) postcss-minify-selectors: 7.0.5(postcss@8.5.6) postcss-normalize-charset: 7.0.1(postcss@8.5.6) postcss-normalize-display-values: 7.0.1(postcss@8.5.6) @@ -6254,11 +6672,11 @@ snapshots: postcss-normalize-repeat-style: 7.0.1(postcss@8.5.6) postcss-normalize-string: 7.0.1(postcss@8.5.6) postcss-normalize-timing-functions: 7.0.1(postcss@8.5.6) - postcss-normalize-unicode: 7.0.4(postcss@8.5.6) + postcss-normalize-unicode: 7.0.5(postcss@8.5.6) postcss-normalize-url: 7.0.1(postcss@8.5.6) postcss-normalize-whitespace: 7.0.1(postcss@8.5.6) postcss-ordered-values: 7.0.2(postcss@8.5.6) - postcss-reduce-initial: 7.0.4(postcss@8.5.6) + postcss-reduce-initial: 7.0.5(postcss@8.5.6) postcss-reduce-transforms: 7.0.1(postcss@8.5.6) postcss-svgo: 7.1.0(postcss@8.5.6) postcss-unique-selectors: 7.0.4(postcss@8.5.6) @@ -6267,9 +6685,9 @@ snapshots: dependencies: postcss: 8.5.6 - cssnano@7.1.1(postcss@8.5.6): + cssnano@7.1.2(postcss@8.5.6): dependencies: - cssnano-preset-default: 7.0.9(postcss@8.5.6) + cssnano-preset-default: 7.0.10(postcss@8.5.6) lilconfig: 3.1.3 postcss: 8.5.6 @@ -6279,6 +6697,8 @@ snapshots: csstype@3.1.3: {} + csstype@3.2.3: {} + db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)): optionalDependencies: drizzle-orm: 0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9) @@ -6306,13 +6726,15 @@ snapshots: depd@2.0.0: {} + dequal@2.0.3: {} + destr@2.0.5: {} detect-libc@1.0.3: {} detect-libc@2.1.2: {} - devalue@5.4.2: {} + devalue@5.6.1: {} diff@8.0.2: {} @@ -6328,6 +6750,10 @@ snapshots: dependencies: domelementtype: 2.3.0 + dompurify@3.2.7: + optionalDependencies: + '@types/trusted-types': 2.0.7 + domutils@3.2.2: dependencies: dom-serializer: 2.0.0 @@ -6365,6 +6791,8 @@ snapshots: electron-to-chromium@1.5.241: {} + electron-to-chromium@1.5.267: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -6378,6 +6806,8 @@ snapshots: entities@4.5.0: {} + entities@7.0.0: {} + error-stack-parser-es@1.0.5: {} errx@0.1.0: {} @@ -6510,23 +6940,10 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - execa@9.6.0: - dependencies: - '@sindresorhus/merge-streams': 4.0.0 - cross-spawn: 7.0.6 - figures: 6.1.0 - get-stream: 9.0.1 - human-signals: 8.0.1 - is-plain-obj: 4.1.0 - is-stream: 4.0.1 - npm-run-path: 6.0.0 - pretty-ms: 9.3.0 - signal-exit: 4.1.0 - strip-final-newline: 4.0.0 - yoctocolors: 2.1.2 - exsolve@1.0.7: {} + exsolve@1.0.8: {} + fast-fifo@1.3.2: {} fast-glob@3.3.3: @@ -6539,6 +6956,8 @@ snapshots: fast-npm-meta@0.4.7: {} + fast-sha256@1.3.0: {} + fastq@1.19.1: dependencies: reusify: 1.1.0 @@ -6547,10 +6966,6 @@ snapshots: optionalDependencies: picomatch: 4.0.3 - figures@6.1.0: - dependencies: - is-unicode-supported: 2.1.0 - file-uri-to-path@1.0.0: {} fill-range@7.1.1: @@ -6562,7 +6977,7 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fraction.js@4.3.7: {} + fraction.js@5.3.4: {} fresh@2.0.0: {} @@ -6581,11 +6996,6 @@ snapshots: get-stream@8.0.1: {} - get-stream@9.0.1: - dependencies: - '@sec-ant/readable-stream': 0.4.1 - is-stream: 4.0.1 - get-tsconfig@4.13.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -6612,6 +7022,8 @@ snapshots: dependencies: is-glob: 4.0.3 + glob-to-regexp@0.4.1: {} + glob@10.4.5: dependencies: foreground-child: 3.3.1 @@ -6679,7 +7091,9 @@ snapshots: human-signals@5.0.0: {} - human-signals@8.0.1: {} + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 ieee754@1.2.1: {} @@ -6689,10 +7103,10 @@ snapshots: impound@1.0.0: dependencies: - exsolve: 1.0.7 + exsolve: 1.0.8 mocked-exports: 0.1.1 pathe: 2.0.3 - unplugin: 2.3.10 + unplugin: 2.3.11 unplugin-utils: 0.2.5 inherits@2.0.4: {} @@ -6715,6 +7129,10 @@ snapshots: iron-webcrypto@1.2.1: {} + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + is-core-module@2.16.1: dependencies: hasown: 2.0.2 @@ -6746,8 +7164,6 @@ snapshots: is-path-inside@4.0.0: {} - is-plain-obj@4.1.0: {} - is-reference@1.2.1: dependencies: '@types/estree': 1.0.8 @@ -6760,12 +7176,6 @@ snapshots: is-stream@3.0.0: {} - is-stream@4.0.1: {} - - is-unicode-supported@2.1.0: {} - - is-wayland@0.1.0: {} - is-what@5.5.0: {} is-wsl@2.2.0: @@ -6794,7 +7204,7 @@ snapshots: jiti@2.6.1: {} - jose@6.1.3: {} + js-cookie@3.0.5: {} js-tokens@4.0.0: {} @@ -6812,7 +7222,10 @@ snapshots: knitwork@1.2.0: {} - kysely@0.28.9: {} + knitwork@1.3.0: {} + + kysely@0.28.9: + optional: true launch-editor@2.12.0: dependencies: @@ -6931,7 +7344,7 @@ snapshots: regexp-tree: 0.1.27 type-level-regexp: 0.1.17 ufo: 1.6.1 - unplugin: 2.3.10 + unplugin: 2.3.11 magic-string-ast@1.0.3: dependencies: @@ -6941,18 +7354,20 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - magicast@0.3.5: - dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 - source-map-js: 1.2.1 - magicast@0.5.0: dependencies: '@babel/parser': 7.28.5 '@babel/types': 7.28.5 source-map-js: 1.2.1 + magicast@0.5.1: + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + source-map-js: 1.2.1 + + marked@14.0.0: {} + mdn-data@2.0.28: {} mdn-data@2.12.2: {} @@ -7003,6 +7418,11 @@ snapshots: mocked-exports@0.1.1: {} + monaco-editor@0.55.1: + dependencies: + dompurify: 3.2.7 + marked: 14.0.0 + mrmime@2.0.1: {} ms@2.1.3: {} @@ -7013,8 +7433,6 @@ snapshots: nanoid@5.1.6: {} - nanostores@1.1.0: {} - nanotar@0.2.0: {} nitropack@2.12.9(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)): @@ -7029,7 +7447,7 @@ snapshots: '@rollup/plugin-terser': 0.4.4(rollup@4.52.5) '@vercel/nft': 0.30.3(rollup@4.52.5) archiver: 7.0.1 - c12: 3.3.1(magicast@0.5.0) + c12: 3.3.3(magicast@0.5.0) chokidar: 4.0.3 citty: 0.1.6 compatx: 0.2.0 @@ -7045,7 +7463,7 @@ snapshots: esbuild: 0.25.11 escape-string-regexp: 5.0.0 etag: 1.8.1 - exsolve: 1.0.7 + exsolve: 1.0.8 globby: 15.0.0 gzip-size: 7.0.0 h3: 1.15.4 @@ -7054,7 +7472,7 @@ snapshots: ioredis: 5.8.2 jiti: 2.6.1 klona: 2.0.6 - knitwork: 1.2.0 + knitwork: 1.3.0 listhen: 1.9.0 magic-string: 0.30.21 magicast: 0.5.0 @@ -7062,7 +7480,7 @@ snapshots: mlly: 1.8.0 node-fetch-native: 1.6.7 node-mock-http: 1.0.3 - ofetch: 1.5.0 + ofetch: 1.5.1 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 2.0.0 @@ -7084,7 +7502,7 @@ snapshots: unenv: 2.0.0-rc.23 unimport: 5.5.0 unplugin-utils: 0.3.1 - unstorage: 1.17.1(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(ioredis@5.8.2) + unstorage: 1.17.3(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(ioredis@5.8.2) untyped: 2.0.0 unwasm: 0.3.11 youch: 4.1.0-beta.11 @@ -7135,14 +7553,14 @@ snapshots: node-releases@2.0.26: {} + node-releases@2.0.27: {} + nopt@8.1.0: dependencies: abbrev: 3.0.1 normalize-path@3.0.0: {} - normalize-range@0.1.2: {} - npm-run-path@5.3.0: dependencies: path-key: 4.0.0 @@ -7166,47 +7584,57 @@ snapshots: transitivePeerDependencies: - magicast - nuxt@4.2.0(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.22)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(yaml@2.8.1): + nuxt-monaco-editor@1.4.0(magicast@0.5.0)(monaco-editor@0.55.1)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)): dependencies: - '@dxup/nuxt': 0.2.0(magicast@0.5.0) - '@nuxt/cli': 3.29.3(magicast@0.5.0) - '@nuxt/devtools': 2.7.0(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@nuxt/kit': 4.2.0(magicast@0.5.0) - '@nuxt/nitro-server': 4.2.0(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(magicast@0.5.0)(nuxt@4.2.0(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.22)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.3) - '@nuxt/schema': 4.2.0 + defu: 6.1.4 + monaco-editor: 0.55.1 + vite-plugin-static-copy: 3.1.4(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) + transitivePeerDependencies: + - magicast + - vite + + nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2): + dependencies: + '@dxup/nuxt': 0.2.2(magicast@0.5.0) + '@nuxt/cli': 3.32.0(cac@6.7.14)(magicast@0.5.0) + '@nuxt/devtools': 3.1.1(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) + '@nuxt/kit': 4.2.2(magicast@0.5.0) + '@nuxt/nitro-server': 4.2.2(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2))(typescript@5.9.3) + '@nuxt/schema': 4.2.2 '@nuxt/telemetry': 2.6.6(magicast@0.5.0) - '@nuxt/vite-builder': 4.2.0(@types/node@24.9.2)(lightningcss@1.30.2)(magicast@0.5.0)(nuxt@4.2.0(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.22)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(yaml@2.8.1))(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))(yaml@2.8.1) - '@unhead/vue': 2.0.19(vue@3.5.22(typescript@5.9.3)) - '@vue/shared': 3.5.22 - c12: 3.3.1(magicast@0.5.0) - chokidar: 4.0.3 + '@nuxt/vite-builder': 4.2.2(@types/node@24.9.2)(lightningcss@1.30.2)(magicast@0.5.0)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2))(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2) + '@unhead/vue': 2.0.19(vue@3.5.26(typescript@5.9.3)) + '@vue/shared': 3.5.26 + c12: 3.3.3(magicast@0.5.0) + chokidar: 5.0.0 compatx: 0.2.0 consola: 3.4.2 cookie-es: 2.0.0 defu: 6.1.4 destr: 2.0.5 - devalue: 5.4.2 + devalue: 5.6.1 errx: 0.1.0 escape-string-regexp: 5.0.0 - exsolve: 1.0.7 + exsolve: 1.0.8 h3: 1.15.4 hookable: 5.5.3 ignore: 7.0.5 impound: 1.0.0 jiti: 2.6.1 klona: 2.0.6 - knitwork: 1.2.0 + knitwork: 1.3.0 magic-string: 0.30.21 mlly: 1.8.0 nanotar: 0.2.0 nypm: 0.6.2 - ofetch: 1.5.0 + ofetch: 1.5.1 ohash: 2.0.11 on-change: 6.0.1 - oxc-minify: 0.95.0 - oxc-parser: 0.95.0 - oxc-transform: 0.95.0 - oxc-walker: 0.5.2(oxc-parser@0.95.0) + oxc-minify: 0.102.0 + oxc-parser: 0.102.0 + oxc-transform: 0.102.0 + oxc-walker: 0.6.0(oxc-parser@0.102.0) pathe: 2.0.3 perfect-debounce: 2.0.0 pkg-types: 2.3.0 @@ -7220,11 +7648,11 @@ snapshots: uncrypto: 0.1.3 unctx: 2.4.1 unimport: 5.5.0 - unplugin: 2.3.10 - unplugin-vue-router: 0.16.0(@vue/compiler-sfc@3.5.22)(typescript@5.9.3)(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) + unplugin: 2.3.11 + unplugin-vue-router: 0.19.2(@vue/compiler-sfc@3.5.26)(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.26(typescript@5.9.3)) untyped: 2.0.0 - vue: 3.5.22(typescript@5.9.3) - vue-router: 4.6.3(vue@3.5.22(typescript@5.9.3)) + vue: 3.5.26(typescript@5.9.3) + vue-router: 4.6.3(vue@3.5.26(typescript@5.9.3)) optionalDependencies: '@parcel/watcher': 2.5.1 '@types/node': 24.9.2 @@ -7246,11 +7674,14 @@ snapshots: - '@vercel/blob' - '@vercel/functions' - '@vercel/kv' + - '@vitejs/devtools' - '@vue/compiler-sfc' - aws4fetch - bare-abort-controller - better-sqlite3 - bufferutil + - cac + - commander - db0 - drizzle-orm - encoding @@ -7294,7 +7725,9 @@ snapshots: pkg-types: 2.3.0 tinyexec: 1.0.1 - ofetch@1.5.0: + obug@2.1.1: {} + + ofetch@1.5.1: dependencies: destr: 2.0.5 node-fetch-native: 1.6.7 @@ -7325,23 +7758,43 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - oxc-minify@0.95.0: + oxc-minify@0.102.0: optionalDependencies: - '@oxc-minify/binding-android-arm64': 0.95.0 - '@oxc-minify/binding-darwin-arm64': 0.95.0 - '@oxc-minify/binding-darwin-x64': 0.95.0 - '@oxc-minify/binding-freebsd-x64': 0.95.0 - '@oxc-minify/binding-linux-arm-gnueabihf': 0.95.0 - '@oxc-minify/binding-linux-arm-musleabihf': 0.95.0 - '@oxc-minify/binding-linux-arm64-gnu': 0.95.0 - '@oxc-minify/binding-linux-arm64-musl': 0.95.0 - '@oxc-minify/binding-linux-riscv64-gnu': 0.95.0 - '@oxc-minify/binding-linux-s390x-gnu': 0.95.0 - '@oxc-minify/binding-linux-x64-gnu': 0.95.0 - '@oxc-minify/binding-linux-x64-musl': 0.95.0 - '@oxc-minify/binding-wasm32-wasi': 0.95.0 - '@oxc-minify/binding-win32-arm64-msvc': 0.95.0 - '@oxc-minify/binding-win32-x64-msvc': 0.95.0 + '@oxc-minify/binding-android-arm64': 0.102.0 + '@oxc-minify/binding-darwin-arm64': 0.102.0 + '@oxc-minify/binding-darwin-x64': 0.102.0 + '@oxc-minify/binding-freebsd-x64': 0.102.0 + '@oxc-minify/binding-linux-arm-gnueabihf': 0.102.0 + '@oxc-minify/binding-linux-arm64-gnu': 0.102.0 + '@oxc-minify/binding-linux-arm64-musl': 0.102.0 + '@oxc-minify/binding-linux-riscv64-gnu': 0.102.0 + '@oxc-minify/binding-linux-s390x-gnu': 0.102.0 + '@oxc-minify/binding-linux-x64-gnu': 0.102.0 + '@oxc-minify/binding-linux-x64-musl': 0.102.0 + '@oxc-minify/binding-openharmony-arm64': 0.102.0 + '@oxc-minify/binding-wasm32-wasi': 0.102.0 + '@oxc-minify/binding-win32-arm64-msvc': 0.102.0 + '@oxc-minify/binding-win32-x64-msvc': 0.102.0 + + oxc-parser@0.102.0: + dependencies: + '@oxc-project/types': 0.102.0 + optionalDependencies: + '@oxc-parser/binding-android-arm64': 0.102.0 + '@oxc-parser/binding-darwin-arm64': 0.102.0 + '@oxc-parser/binding-darwin-x64': 0.102.0 + '@oxc-parser/binding-freebsd-x64': 0.102.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.102.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.102.0 + '@oxc-parser/binding-linux-arm64-musl': 0.102.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.102.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.102.0 + '@oxc-parser/binding-linux-x64-gnu': 0.102.0 + '@oxc-parser/binding-linux-x64-musl': 0.102.0 + '@oxc-parser/binding-openharmony-arm64': 0.102.0 + '@oxc-parser/binding-wasm32-wasi': 0.102.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.102.0 + '@oxc-parser/binding-win32-x64-msvc': 0.102.0 oxc-parser@0.93.0: dependencies: @@ -7363,55 +7816,35 @@ snapshots: '@oxc-parser/binding-win32-arm64-msvc': 0.93.0 '@oxc-parser/binding-win32-x64-msvc': 0.93.0 - oxc-parser@0.95.0: - dependencies: - '@oxc-project/types': 0.95.0 + oxc-transform@0.102.0: optionalDependencies: - '@oxc-parser/binding-android-arm64': 0.95.0 - '@oxc-parser/binding-darwin-arm64': 0.95.0 - '@oxc-parser/binding-darwin-x64': 0.95.0 - '@oxc-parser/binding-freebsd-x64': 0.95.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.95.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.95.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.95.0 - '@oxc-parser/binding-linux-arm64-musl': 0.95.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.95.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.95.0 - '@oxc-parser/binding-linux-x64-gnu': 0.95.0 - '@oxc-parser/binding-linux-x64-musl': 0.95.0 - '@oxc-parser/binding-wasm32-wasi': 0.95.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.95.0 - '@oxc-parser/binding-win32-x64-msvc': 0.95.0 + '@oxc-transform/binding-android-arm64': 0.102.0 + '@oxc-transform/binding-darwin-arm64': 0.102.0 + '@oxc-transform/binding-darwin-x64': 0.102.0 + '@oxc-transform/binding-freebsd-x64': 0.102.0 + '@oxc-transform/binding-linux-arm-gnueabihf': 0.102.0 + '@oxc-transform/binding-linux-arm64-gnu': 0.102.0 + '@oxc-transform/binding-linux-arm64-musl': 0.102.0 + '@oxc-transform/binding-linux-riscv64-gnu': 0.102.0 + '@oxc-transform/binding-linux-s390x-gnu': 0.102.0 + '@oxc-transform/binding-linux-x64-gnu': 0.102.0 + '@oxc-transform/binding-linux-x64-musl': 0.102.0 + '@oxc-transform/binding-openharmony-arm64': 0.102.0 + '@oxc-transform/binding-wasm32-wasi': 0.102.0 + '@oxc-transform/binding-win32-arm64-msvc': 0.102.0 + '@oxc-transform/binding-win32-x64-msvc': 0.102.0 - oxc-transform@0.95.0: - optionalDependencies: - '@oxc-transform/binding-android-arm64': 0.95.0 - '@oxc-transform/binding-darwin-arm64': 0.95.0 - '@oxc-transform/binding-darwin-x64': 0.95.0 - '@oxc-transform/binding-freebsd-x64': 0.95.0 - '@oxc-transform/binding-linux-arm-gnueabihf': 0.95.0 - '@oxc-transform/binding-linux-arm-musleabihf': 0.95.0 - '@oxc-transform/binding-linux-arm64-gnu': 0.95.0 - '@oxc-transform/binding-linux-arm64-musl': 0.95.0 - '@oxc-transform/binding-linux-riscv64-gnu': 0.95.0 - '@oxc-transform/binding-linux-s390x-gnu': 0.95.0 - '@oxc-transform/binding-linux-x64-gnu': 0.95.0 - '@oxc-transform/binding-linux-x64-musl': 0.95.0 - '@oxc-transform/binding-wasm32-wasi': 0.95.0 - '@oxc-transform/binding-win32-arm64-msvc': 0.95.0 - '@oxc-transform/binding-win32-x64-msvc': 0.95.0 - - oxc-walker@0.5.2(oxc-parser@0.95.0): + oxc-walker@0.6.0(oxc-parser@0.102.0): dependencies: magic-regexp: 0.10.0 - oxc-parser: 0.95.0 + oxc-parser: 0.102.0 + + p-map@7.0.4: {} package-json-from-dist@1.0.1: {} package-manager-detector@1.5.0: {} - parse-ms@4.0.0: {} - parse-path@7.1.0: dependencies: protocols: 2.0.2 @@ -7489,7 +7922,7 @@ snapshots: postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.4(postcss@8.5.6): + postcss-colormin@7.0.5(postcss@8.5.6): dependencies: browserslist: 4.27.0 caniuse-api: 3.0.0 @@ -7497,13 +7930,13 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.7(postcss@8.5.6): + postcss-convert-values@7.0.8(postcss@8.5.6): dependencies: browserslist: 4.27.0 postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-discard-comments@7.0.4(postcss@8.5.6): + postcss-discard-comments@7.0.5(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 7.1.0 @@ -7526,7 +7959,7 @@ snapshots: postcss-value-parser: 4.2.0 stylehacks: 7.0.6(postcss@8.5.6) - postcss-merge-rules@7.0.6(postcss@8.5.6): + postcss-merge-rules@7.0.7(postcss@8.5.6): dependencies: browserslist: 4.27.0 caniuse-api: 3.0.0 @@ -7546,7 +7979,7 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.4(postcss@8.5.6): + postcss-minify-params@7.0.5(postcss@8.5.6): dependencies: browserslist: 4.27.0 cssnano-utils: 5.0.1(postcss@8.5.6) @@ -7588,7 +8021,7 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.4(postcss@8.5.6): + postcss-normalize-unicode@7.0.5(postcss@8.5.6): dependencies: browserslist: 4.27.0 postcss: 8.5.6 @@ -7610,7 +8043,7 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-reduce-initial@7.0.4(postcss@8.5.6): + postcss-reduce-initial@7.0.5(postcss@8.5.6): dependencies: browserslist: 4.27.0 caniuse-api: 3.0.0 @@ -7657,10 +8090,6 @@ snapshots: pretty-bytes@7.1.0: {} - pretty-ms@9.3.0: - dependencies: - parse-ms: 4.0.0 - process-nextick-args@2.0.1: {} process@0.11.10: {} @@ -7689,6 +8118,8 @@ snapshots: defu: 6.1.4 destr: 2.0.5 + react@19.2.3: {} + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -7711,8 +8142,14 @@ snapshots: dependencies: minimatch: 5.1.6 + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + readdirp@4.1.2: {} + readdirp@5.0.0: {} + redis-errors@1.2.0: {} redis-parser@3.0.0: @@ -7791,8 +8228,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.52.5 fsevents: 2.3.3 - rou3@0.7.12: {} - run-applescript@7.1.0: {} run-parallel@1.2.0: @@ -7803,6 +8238,8 @@ snapshots: safe-buffer@5.2.1: {} + safer-buffer@2.1.2: {} + sax@1.4.1: {} scule@1.3.0: {} @@ -7831,7 +8268,7 @@ snapshots: dependencies: randombytes: 2.1.0 - seroval@1.3.2: {} + seroval@1.4.2: {} serve-placeholder@2.0.2: dependencies: @@ -7846,8 +8283,6 @@ snapshots: transitivePeerDependencies: - supports-color - set-cookie-parser@2.7.2: {} - setprototypeof@1.2.0: {} shadcn-nuxt@2.3.2(magicast@0.5.0): @@ -7867,7 +8302,7 @@ snapshots: signal-exit@4.1.0: {} - simple-git@3.28.0: + simple-git@3.30.0: dependencies: '@kwsites/file-exists': 1.1.1 '@kwsites/promise-deferred': 1.1.1 @@ -7900,10 +8335,15 @@ snapshots: speakingurl@14.0.1: {} - srvx@0.8.16: {} + srvx@0.10.0: {} standard-as-callback@2.1.0: {} + standardwebhooks@1.0.0: + dependencies: + '@stablelib/base64': 1.0.1 + fast-sha256: 1.3.0 + statuses@2.0.1: {} statuses@2.0.2: {} @@ -7949,8 +8389,6 @@ snapshots: strip-final-newline@3.0.0: {} - strip-final-newline@4.0.0: {} - strip-literal@3.1.0: dependencies: js-tokens: 9.0.1 @@ -7981,6 +8419,12 @@ snapshots: picocolors: 1.1.1 sax: 1.4.1 + swr@2.3.4(react@19.2.3): + dependencies: + dequal: 2.0.3 + react: 19.2.3 + use-sync-external-store: 1.6.0(react@19.2.3) + system-architecture@0.1.0: {} tagged-tag@1.0.0: {} @@ -8025,6 +8469,8 @@ snapshots: tinyexec@1.0.1: {} + tinyexec@1.0.2: {} + tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) @@ -8076,12 +8522,14 @@ snapshots: undici-types@7.16.0: {} - undici@7.16.0: {} - unenv@2.0.0-rc.23: dependencies: pathe: 2.0.3 + unenv@2.0.0-rc.24: + dependencies: + pathe: 2.0.3 + unhead@2.0.19: dependencies: hookable: 5.5.3 @@ -8102,7 +8550,7 @@ snapshots: scule: 1.3.0 strip-literal: 3.1.0 tinyglobby: 0.2.15 - unplugin: 2.3.10 + unplugin: 2.3.11 unplugin-utils: 0.3.1 unplugin-utils@0.2.5: @@ -8115,14 +8563,14 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.3 - unplugin-vue-router@0.16.0(@vue/compiler-sfc@3.5.22)(typescript@5.9.3)(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)): + unplugin-vue-router@0.19.2(@vue/compiler-sfc@3.5.26)(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.26(typescript@5.9.3)): dependencies: '@babel/generator': 7.28.5 - '@vue-macros/common': 3.1.1(vue@3.5.22(typescript@5.9.3)) - '@vue/compiler-sfc': 3.5.22 - '@vue/language-core': 3.1.2(typescript@5.9.3) + '@vue-macros/common': 3.1.1(vue@3.5.26(typescript@5.9.3)) + '@vue/compiler-sfc': 3.5.26 + '@vue/language-core': 3.2.2 ast-walker-scope: 0.8.3 - chokidar: 4.0.3 + chokidar: 5.0.0 json5: 2.2.3 local-pkg: 1.1.2 magic-string: 0.30.21 @@ -8132,13 +8580,12 @@ snapshots: picomatch: 4.0.3 scule: 1.3.0 tinyglobby: 0.2.15 - unplugin: 2.3.10 + unplugin: 2.3.11 unplugin-utils: 0.3.1 - yaml: 2.8.1 + yaml: 2.8.2 optionalDependencies: vue-router: 4.6.3(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - - typescript - vue unplugin@2.3.10: @@ -8148,7 +8595,14 @@ snapshots: picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 - unstorage@1.17.1(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(ioredis@5.8.2): + unplugin@2.3.11: + dependencies: + '@jridgewell/remapping': 2.3.5 + acorn: 8.15.0 + picomatch: 4.0.3 + webpack-virtual-modules: 0.6.2 + + unstorage@1.17.3(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(ioredis@5.8.2): dependencies: anymatch: 3.1.3 chokidar: 4.0.3 @@ -8156,7 +8610,7 @@ snapshots: h3: 1.15.4 lru-cache: 10.4.3 node-fetch-native: 1.6.7 - ofetch: 1.5.0 + ofetch: 1.5.1 ufo: 1.6.1 optionalDependencies: db0: 0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)) @@ -8178,12 +8632,12 @@ snapshots: unwasm@0.3.11: dependencies: - knitwork: 1.2.0 + knitwork: 1.3.0 magic-string: 0.30.21 mlly: 1.8.0 pathe: 2.0.3 pkg-types: 2.3.0 - unplugin: 2.3.10 + unplugin: 2.3.11 update-browserslist-db@1.1.4(browserslist@4.27.0): dependencies: @@ -8191,27 +8645,37 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.2.3(browserslist@4.28.1): + dependencies: + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 + uqr@0.1.2: {} + use-sync-external-store@1.6.0(react@19.2.3): + dependencies: + react: 19.2.3 + util-deprecate@1.0.2: {} - vite-dev-rpc@1.1.0(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)): + vite-dev-rpc@1.1.0(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)): dependencies: - birpc: 2.6.1 - vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) - vite-hot-client: 2.1.0(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) + birpc: 2.9.0 + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) + vite-hot-client: 2.1.0(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) - vite-hot-client@2.1.0(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)): + vite-hot-client@2.1.0(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)): dependencies: - vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) - vite-node@3.2.4(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1): + vite-node@5.2.0(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2): dependencies: cac: 6.7.14 - debug: 4.4.3 es-module-lexer: 1.7.0 + obug: 2.1.1 pathe: 2.0.3 - vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@types/node' - jiti @@ -8221,12 +8685,11 @@ snapshots: - sass-embedded - stylus - sugarss - - supports-color - terser - tsx - yaml - vite-plugin-checker@0.11.0(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)): + vite-plugin-checker@0.12.0(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)): dependencies: '@babel/code-frame': 7.27.1 chokidar: 4.0.3 @@ -8235,12 +8698,12 @@ snapshots: picomatch: 4.0.3 tiny-invariant: 1.3.3 tinyglobby: 0.2.15 - vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) vscode-uri: 3.1.0 optionalDependencies: typescript: 5.9.3 - vite-plugin-inspect@11.3.3(@nuxt/kit@3.20.0(magicast@0.3.5))(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)): + vite-plugin-inspect@11.3.3(@nuxt/kit@4.2.2(magicast@0.5.0))(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)): dependencies: ansis: 4.2.0 debug: 4.4.3 @@ -8250,26 +8713,34 @@ snapshots: perfect-debounce: 2.0.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) - vite-dev-rpc: 1.1.0(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) + vite-dev-rpc: 1.1.0(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)) optionalDependencies: - '@nuxt/kit': 3.20.0(magicast@0.3.5) + '@nuxt/kit': 4.2.2(magicast@0.5.0) transitivePeerDependencies: - supports-color - vite-plugin-vue-tracer@1.0.1(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)): + vite-plugin-static-copy@3.1.4(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2)): + dependencies: + chokidar: 3.6.0 + p-map: 7.0.4 + picocolors: 1.1.1 + tinyglobby: 0.2.15 + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) + + vite-plugin-vue-tracer@1.2.0(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)): dependencies: estree-walker: 3.0.3 - exsolve: 1.0.7 + exsolve: 1.0.8 magic-string: 0.30.21 pathe: 2.0.3 source-map-js: 1.2.1 - vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) - vue: 3.5.22(typescript@5.9.3) + vite: 7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2) + vue: 3.5.26(typescript@5.9.3) - vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1): + vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2): dependencies: - esbuild: 0.25.11 + esbuild: 0.27.1 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 @@ -8282,7 +8753,7 @@ snapshots: lightningcss: 1.30.2 terser: 5.44.0 tsx: 4.21.0 - yaml: 2.8.1 + yaml: 2.8.2 vscode-uri@3.1.0: {} @@ -8301,11 +8772,16 @@ snapshots: '@vue/devtools-api': 6.6.4 vue: 3.5.22(typescript@5.9.3) - vue-sonner@2.0.9(@nuxt/kit@4.2.0(magicast@0.5.0))(@nuxt/schema@4.2.0)(nuxt@4.2.0(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.22)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(yaml@2.8.1)): + vue-router@4.6.3(vue@3.5.26(typescript@5.9.3)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.26(typescript@5.9.3) + + vue-sonner@2.0.9(@nuxt/kit@4.2.2(magicast@0.5.0))(@nuxt/schema@4.2.2)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2)): optionalDependencies: - '@nuxt/kit': 4.2.0(magicast@0.5.0) - '@nuxt/schema': 4.2.0 - nuxt: 4.2.0(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.22)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(yaml@2.8.1) + '@nuxt/kit': 4.2.2(magicast@0.5.0) + '@nuxt/schema': 4.2.2 + nuxt: 4.2.2(@parcel/watcher@2.5.1)(@types/node@24.9.2)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9)))(drizzle-orm@0.45.1(@neondatabase/serverless@1.0.2)(@types/pg@8.16.0)(kysely@0.28.9))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.5.0)(rollup@4.52.5)(terser@5.44.0)(tsx@4.21.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2) vue@3.5.22(typescript@5.9.3): dependencies: @@ -8317,6 +8793,16 @@ snapshots: optionalDependencies: typescript: 5.9.3 + vue@3.5.26(typescript@5.9.3): + dependencies: + '@vue/compiler-dom': 3.5.26 + '@vue/compiler-sfc': 3.5.26 + '@vue/runtime-dom': 3.5.26 + '@vue/server-renderer': 3.5.26(vue@3.5.26(typescript@5.9.3)) + '@vue/shared': 3.5.26 + optionalDependencies: + typescript: 5.9.3 + webidl-conversions@3.0.1: {} webpack-virtual-modules@0.6.2: {} @@ -8360,7 +8846,7 @@ snapshots: yallist@5.0.0: {} - yaml@2.8.1: {} + yaml@2.8.2: {} yargs-parser@21.1.1: {} @@ -8374,8 +8860,6 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yoctocolors@2.1.2: {} - youch-core@0.3.3: dependencies: '@poppinss/exception': 1.2.2 @@ -8389,10 +8873,18 @@ snapshots: cookie: 1.0.2 youch-core: 0.3.3 + youch@4.1.0-beta.13: + dependencies: + '@poppinss/colors': 4.1.5 + '@poppinss/dumper': 0.6.5 + '@speed-highlight/core': 1.2.14 + cookie-es: 2.0.0 + youch-core: 0.3.3 + zip-stream@6.0.1: dependencies: archiver-utils: 5.0.2 compress-commons: 6.0.2 readable-stream: 4.7.0 - zod@4.2.1: {} + zod@4.3.5: {} diff --git a/public/catppuccin-mocha.json b/public/catppuccin-mocha.json new file mode 100644 index 0000000..3b5ae31 --- /dev/null +++ b/public/catppuccin-mocha.json @@ -0,0 +1,2181 @@ +{ + "propsTo": "vscode themes in monaco over at vsctim.vercel.app", + "inherit": true, + "base": "vs-dark", + "colors": { + "focusBorder": "#cba6f7", + "foreground": "#cdd6f4", + "disabledForeground": "#a6adc8", + "widget.shadow": "#18182580", + "selection.background": "#cba6f766", + "descriptionForeground": "#cdd6f4", + "errorForeground": "#f38ba8", + "icon.foreground": "#cba6f7", + "sash.hoverBorder": "#cba6f7", + "textBlockQuote.background": "#181825", + "textBlockQuote.border": "#11111b", + "textCodeBlock.background": "#181825", + "textLink.activeForeground": "#89dceb", + "textLink.foreground": "#89b4fa", + "textPreformat.foreground": "#cdd6f4", + "textSeparator.foreground": "#cba6f7", + "activityBar.background": "#11111b", + "activityBar.foreground": "#cba6f7", + "activityBar.dropBorder": "#cba6f733", + "activityBar.inactiveForeground": "#6c7086", + "activityBar.border": "#00000000", + "activityBarBadge.background": "#cba6f7", + "activityBarBadge.foreground": "#11111b", + "activityBar.activeBorder": "#00000000", + "activityBar.activeBackground": "#00000000", + "activityBar.activeFocusBorder": "#00000000", + "activityBarTop.foreground": "#cba6f7", + "activityBarTop.activeBorder": "#00000000", + "activityBarTop.inactiveForeground": "#6c7086", + "activityBarTop.dropBorder": "#cba6f733", + "badge.background": "#45475a", + "badge.foreground": "#cdd6f4", + "breadcrumb.activeSelectionForeground": "#cba6f7", + "breadcrumb.background": "#1e1e2e", + "breadcrumb.focusForeground": "#cba6f7", + "breadcrumb.foreground": "#cdd6f4cc", + "breadcrumbPicker.background": "#181825", + "button.background": "#cba6f7", + "button.foreground": "#11111b", + "button.border": "#00000000", + "button.separator": "#00000000", + "button.hoverBackground": "#dec7fa", + "button.secondaryForeground": "#cdd6f4", + "button.secondaryBackground": "#585b70", + "button.secondaryHoverBackground": "#686b84", + "checkbox.background": "#45475a", + "checkbox.border": "#00000000", + "checkbox.foreground": "#cba6f7", + "dropdown.background": "#181825", + "dropdown.listBackground": "#585b70", + "dropdown.border": "#cba6f7", + "dropdown.foreground": "#cdd6f4", + "debugToolBar.background": "#11111b", + "debugToolBar.border": "#00000000", + "debugExceptionWidget.background": "#11111b", + "debugExceptionWidget.border": "#cba6f7", + "debugTokenExpression.number": "#fab387", + "debugTokenExpression.boolean": "#cba6f7", + "debugTokenExpression.string": "#a6e3a1", + "debugTokenExpression.error": "#f38ba8", + "debugIcon.breakpointForeground": "#f38ba8", + "debugIcon.breakpointDisabledForeground": "#f38ba899", + "debugIcon.breakpointUnverifiedForeground": "#a6738c", + "debugIcon.breakpointCurrentStackframeForeground": "#585b70", + "debugIcon.breakpointStackframeForeground": "#585b70", + "debugIcon.startForeground": "#a6e3a1", + "debugIcon.pauseForeground": "#89b4fa", + "debugIcon.stopForeground": "#f38ba8", + "debugIcon.disconnectForeground": "#585b70", + "debugIcon.restartForeground": "#94e2d5", + "debugIcon.stepOverForeground": "#cba6f7", + "debugIcon.stepIntoForeground": "#cdd6f4", + "debugIcon.stepOutForeground": "#cdd6f4", + "debugIcon.continueForeground": "#a6e3a1", + "debugIcon.stepBackForeground": "#585b70", + "debugConsole.infoForeground": "#89b4fa", + "debugConsole.warningForeground": "#fab387", + "debugConsole.errorForeground": "#f38ba8", + "debugConsole.sourceForeground": "#f5e0dc", + "debugConsoleInputIcon.foreground": "#cdd6f4", + "testing.runAction": "#cba6f7", + "testing.iconErrored": "#f38ba8", + "testing.iconFailed": "#f38ba8", + "testing.iconPassed": "#a6e3a1", + "testing.iconQueued": "#89b4fa", + "testing.iconUnset": "#cdd6f4", + "testing.iconSkipped": "#a6adc8", + "testing.iconErrored.retired": "#f38ba8", + "testing.iconFailed.retired": "#f38ba8", + "testing.iconPassed.retired": "#a6e3a1", + "testing.iconQueued.retired": "#89b4fa", + "testing.iconUnset.retired": "#cdd6f4", + "testing.iconSkipped.retired": "#a6adc8", + "testing.peekBorder": "#cba6f7", + "testing.peekHeaderBackground": "#585b70", + "testing.message.error.lineBackground": "#f38ba826", + "testing.message.info.decorationForeground": "#a6e3a1cc", + "testing.message.info.lineBackground": "#a6e3a126", + "testing.messagePeekBorder": "#cba6f7", + "testing.messagePeekHeaderBackground": "#585b70", + "testing.coveredBackground": "#a6e3a14d", + "testing.coveredBorder": "#00000000", + "testing.coveredGutterBackground": "#a6e3a14d", + "testing.uncoveredBranchBackground": "#f38ba833", + "testing.uncoveredBackground": "#f38ba833", + "testing.uncoveredBorder": "#00000000", + "testing.uncoveredGutterBackground": "#f38ba840", + "testing.coverCountBadgeBackground": "#00000000", + "testing.coverCountBadgeForeground": "#cba6f7", + "diffEditor.border": "#585b70", + "diffEditor.insertedTextBackground": "#a6e3a133", + "diffEditor.removedTextBackground": "#f38ba833", + "diffEditor.insertedLineBackground": "#a6e3a126", + "diffEditor.removedLineBackground": "#f38ba826", + "diffEditor.diagonalFill": "#585b7099", + "diffEditorOverview.insertedForeground": "#a6e3a1cc", + "diffEditorOverview.removedForeground": "#f38ba8cc", + "editor.background": "#1e1e2e", + "editor.findMatchBackground": "#5e3f53", + "editor.findMatchBorder": "#f38ba833", + "editor.findMatchHighlightBackground": "#3e5767", + "editor.findMatchHighlightBorder": "#89dceb33", + "editor.findRangeHighlightBackground": "#3e5767", + "editor.findRangeHighlightBorder": "#89dceb33", + "editor.foldBackground": "#89dceb40", + "editor.foreground": "#cdd6f4", + "editor.hoverHighlightBackground": "#89dceb40", + "editor.lineHighlightBackground": "#cdd6f412", + "editor.lineHighlightBorder": "#00000000", + "editor.rangeHighlightBackground": "#89dceb40", + "editor.rangeHighlightBorder": "#00000000", + "editor.selectionBackground": "#9399b240", + "editor.selectionHighlightBackground": "#9399b233", + "editor.selectionHighlightBorder": "#9399b233", + "editor.wordHighlightBackground": "#9399b233", + "editor.wordHighlightStrongBackground": "#89b4fa33", + "editorBracketMatch.background": "#9399b21a", + "editorBracketMatch.border": "#9399b2", + "editorCodeLens.foreground": "#7f849c", + "editorCursor.background": "#1e1e2e", + "editorCursor.foreground": "#f5e0dc", + "editorGroup.border": "#585b70", + "editorGroup.dropBackground": "#cba6f733", + "editorGroup.emptyBackground": "#1e1e2e", + "editorGroupHeader.tabsBackground": "#11111b", + "editorGutter.addedBackground": "#a6e3a1", + "editorGutter.background": "#1e1e2e", + "editorGutter.commentRangeForeground": "#313244", + "editorGutter.commentGlyphForeground": "#cba6f7", + "editorGutter.deletedBackground": "#f38ba8", + "editorGutter.foldingControlForeground": "#9399b2", + "editorGutter.modifiedBackground": "#f9e2af", + "editorHoverWidget.background": "#181825", + "editorHoverWidget.border": "#585b70", + "editorHoverWidget.foreground": "#cdd6f4", + "editorIndentGuide.activeBackground": "#585b70", + "editorIndentGuide.background": "#45475a", + "editorInlayHint.foreground": "#585b70", + "editorInlayHint.background": "#181825bf", + "editorInlayHint.typeForeground": "#bac2de", + "editorInlayHint.typeBackground": "#181825bf", + "editorInlayHint.parameterForeground": "#a6adc8", + "editorInlayHint.parameterBackground": "#181825bf", + "editorLineNumber.activeForeground": "#cba6f7", + "editorLineNumber.foreground": "#7f849c", + "editorLink.activeForeground": "#cba6f7", + "editorMarkerNavigation.background": "#181825", + "editorMarkerNavigationError.background": "#f38ba8", + "editorMarkerNavigationInfo.background": "#89b4fa", + "editorMarkerNavigationWarning.background": "#fab387", + "editorOverviewRuler.background": "#181825", + "editorOverviewRuler.border": "#cdd6f412", + "editorOverviewRuler.modifiedForeground": "#f9e2af", + "editorRuler.foreground": "#585b70", + "editor.stackFrameHighlightBackground": "#f9e2af26", + "editor.focusedStackFrameHighlightBackground": "#a6e3a126", + "editorStickyScrollHover.background": "#313244", + "editorSuggestWidget.background": "#181825", + "editorSuggestWidget.border": "#585b70", + "editorSuggestWidget.foreground": "#cdd6f4", + "editorSuggestWidget.highlightForeground": "#cba6f7", + "editorSuggestWidget.selectedBackground": "#313244", + "editorWhitespace.foreground": "#9399b266", + "editorWidget.background": "#181825", + "editorWidget.foreground": "#cdd6f4", + "editorWidget.resizeBorder": "#585b70", + "editorLightBulb.foreground": "#f9e2af", + "editorError.foreground": "#f38ba8", + "editorError.border": "#00000000", + "editorError.background": "#00000000", + "editorWarning.foreground": "#fab387", + "editorWarning.border": "#00000000", + "editorWarning.background": "#00000000", + "editorInfo.foreground": "#89b4fa", + "editorInfo.border": "#00000000", + "editorInfo.background": "#00000000", + "problemsErrorIcon.foreground": "#f38ba8", + "problemsInfoIcon.foreground": "#89b4fa", + "problemsWarningIcon.foreground": "#fab387", + "extensionButton.prominentForeground": "#11111b", + "extensionButton.prominentBackground": "#cba6f7", + "extensionButton.separator": "#1e1e2e", + "extensionButton.prominentHoverBackground": "#dec7fa", + "extensionBadge.remoteBackground": "#89b4fa", + "extensionBadge.remoteForeground": "#11111b", + "extensionIcon.starForeground": "#f9e2af", + "extensionIcon.verifiedForeground": "#a6e3a1", + "extensionIcon.preReleaseForeground": "#585b70", + "extensionIcon.sponsorForeground": "#f5c2e7", + "gitDecoration.addedResourceForeground": "#a6e3a1", + "gitDecoration.conflictingResourceForeground": "#cba6f7", + "gitDecoration.deletedResourceForeground": "#f38ba8", + "gitDecoration.ignoredResourceForeground": "#6c7086", + "gitDecoration.modifiedResourceForeground": "#f9e2af", + "gitDecoration.stageDeletedResourceForeground": "#f38ba8", + "gitDecoration.stageModifiedResourceForeground": "#f9e2af", + "gitDecoration.submoduleResourceForeground": "#89b4fa", + "gitDecoration.untrackedResourceForeground": "#a6e3a1", + "scmGraph.historyItemRefColor": "#89b4fa", + "scmGraph.historyItemBaseRefColor": "#fab387", + "scmGraph.historyItemRemoteRefColor": "#cba6f7", + "scmGraph.foreground1": "#f9e2af", + "scmGraph.foreground2": "#f38ba8", + "scmGraph.foreground3": "#a6e3a1", + "scmGraph.foreground4": "#cba6f7", + "scmGraph.foreground5": "#94e2d5", + "input.background": "#313244", + "input.border": "#00000000", + "input.foreground": "#cdd6f4", + "input.placeholderForeground": "#cdd6f473", + "inputOption.activeBackground": "#585b70", + "inputOption.activeBorder": "#cba6f7", + "inputOption.activeForeground": "#cdd6f4", + "inputValidation.errorBackground": "#f38ba8", + "inputValidation.errorBorder": "#11111b33", + "inputValidation.errorForeground": "#11111b", + "inputValidation.infoBackground": "#89b4fa", + "inputValidation.infoBorder": "#11111b33", + "inputValidation.infoForeground": "#11111b", + "inputValidation.warningBackground": "#fab387", + "inputValidation.warningBorder": "#11111b33", + "inputValidation.warningForeground": "#11111b", + "list.activeSelectionBackground": "#313244", + "list.activeSelectionForeground": "#cdd6f4", + "list.dropBackground": "#cba6f733", + "list.focusBackground": "#313244", + "list.focusForeground": "#cdd6f4", + "list.focusOutline": "#00000000", + "list.highlightForeground": "#cba6f7", + "list.hoverBackground": "#31324480", + "list.hoverForeground": "#cdd6f4", + "list.inactiveSelectionBackground": "#313244", + "list.inactiveSelectionForeground": "#cdd6f4", + "list.warningForeground": "#fab387", + "listFilterWidget.background": "#45475a", + "listFilterWidget.noMatchesOutline": "#f38ba8", + "listFilterWidget.outline": "#00000000", + "tree.indentGuidesStroke": "#9399b2", + "tree.inactiveIndentGuidesStroke": "#45475a", + "menu.background": "#1e1e2e", + "menu.border": "#1e1e2e80", + "menu.foreground": "#cdd6f4", + "menu.selectionBackground": "#585b70", + "menu.selectionBorder": "#00000000", + "menu.selectionForeground": "#cdd6f4", + "menu.separatorBackground": "#585b70", + "menubar.selectionBackground": "#45475a", + "menubar.selectionForeground": "#cdd6f4", + "merge.commonContentBackground": "#45475a", + "merge.commonHeaderBackground": "#585b70", + "merge.currentContentBackground": "#a6e3a133", + "merge.currentHeaderBackground": "#a6e3a166", + "merge.incomingContentBackground": "#89b4fa33", + "merge.incomingHeaderBackground": "#89b4fa66", + "minimap.background": "#18182580", + "minimap.findMatchHighlight": "#89dceb4d", + "minimap.selectionHighlight": "#585b70bf", + "minimap.selectionOccurrenceHighlight": "#585b70bf", + "minimap.warningHighlight": "#fab387bf", + "minimap.errorHighlight": "#f38ba8bf", + "minimapSlider.background": "#cba6f733", + "minimapSlider.hoverBackground": "#cba6f766", + "minimapSlider.activeBackground": "#cba6f799", + "minimapGutter.addedBackground": "#a6e3a1bf", + "minimapGutter.deletedBackground": "#f38ba8bf", + "minimapGutter.modifiedBackground": "#f9e2afbf", + "notificationCenter.border": "#cba6f7", + "notificationCenterHeader.foreground": "#cdd6f4", + "notificationCenterHeader.background": "#181825", + "notificationToast.border": "#cba6f7", + "notifications.foreground": "#cdd6f4", + "notifications.background": "#181825", + "notifications.border": "#cba6f7", + "notificationLink.foreground": "#89b4fa", + "notificationsErrorIcon.foreground": "#f38ba8", + "notificationsWarningIcon.foreground": "#fab387", + "notificationsInfoIcon.foreground": "#89b4fa", + "panel.background": "#1e1e2e", + "panel.border": "#585b70", + "panelSection.border": "#585b70", + "panelSection.dropBackground": "#cba6f733", + "panelTitle.activeBorder": "#cba6f7", + "panelTitle.activeForeground": "#cdd6f4", + "panelTitle.inactiveForeground": "#a6adc8", + "peekView.border": "#cba6f7", + "peekViewEditor.background": "#181825", + "peekViewEditorGutter.background": "#181825", + "peekViewEditor.matchHighlightBackground": "#89dceb4d", + "peekViewEditor.matchHighlightBorder": "#00000000", + "peekViewResult.background": "#181825", + "peekViewResult.fileForeground": "#cdd6f4", + "peekViewResult.lineForeground": "#cdd6f4", + "peekViewResult.matchHighlightBackground": "#89dceb4d", + "peekViewResult.selectionBackground": "#313244", + "peekViewResult.selectionForeground": "#cdd6f4", + "peekViewTitle.background": "#1e1e2e", + "peekViewTitleDescription.foreground": "#bac2deb3", + "peekViewTitleLabel.foreground": "#cdd6f4", + "pickerGroup.border": "#cba6f7", + "pickerGroup.foreground": "#cba6f7", + "progressBar.background": "#cba6f7", + "scrollbar.shadow": "#11111b", + "scrollbarSlider.activeBackground": "#31324466", + "scrollbarSlider.background": "#585b7080", + "scrollbarSlider.hoverBackground": "#6c7086", + "settings.focusedRowBackground": "#585b7033", + "settings.headerForeground": "#cdd6f4", + "settings.modifiedItemIndicator": "#cba6f7", + "settings.dropdownBackground": "#45475a", + "settings.dropdownListBorder": "#00000000", + "settings.textInputBackground": "#45475a", + "settings.textInputBorder": "#00000000", + "settings.numberInputBackground": "#45475a", + "settings.numberInputBorder": "#00000000", + "sideBar.background": "#181825", + "sideBar.dropBackground": "#cba6f733", + "sideBar.foreground": "#cdd6f4", + "sideBar.border": "#00000000", + "sideBarSectionHeader.background": "#181825", + "sideBarSectionHeader.foreground": "#cdd6f4", + "sideBarTitle.foreground": "#cba6f7", + "banner.background": "#45475a", + "banner.foreground": "#cdd6f4", + "banner.iconForeground": "#cdd6f4", + "statusBar.background": "#11111b", + "statusBar.foreground": "#cdd6f4", + "statusBar.border": "#00000000", + "statusBar.noFolderBackground": "#11111b", + "statusBar.noFolderForeground": "#cdd6f4", + "statusBar.noFolderBorder": "#00000000", + "statusBar.debuggingBackground": "#fab387", + "statusBar.debuggingForeground": "#11111b", + "statusBar.debuggingBorder": "#00000000", + "statusBarItem.remoteBackground": "#89b4fa", + "statusBarItem.remoteForeground": "#11111b", + "statusBarItem.activeBackground": "#585b7066", + "statusBarItem.hoverBackground": "#585b7033", + "statusBarItem.prominentForeground": "#cba6f7", + "statusBarItem.prominentBackground": "#00000000", + "statusBarItem.prominentHoverBackground": "#585b7033", + "statusBarItem.errorForeground": "#f38ba8", + "statusBarItem.errorBackground": "#00000000", + "statusBarItem.warningForeground": "#fab387", + "statusBarItem.warningBackground": "#00000000", + "commandCenter.foreground": "#bac2de", + "commandCenter.inactiveForeground": "#bac2de", + "commandCenter.activeForeground": "#cba6f7", + "commandCenter.background": "#181825", + "commandCenter.activeBackground": "#585b7033", + "commandCenter.border": "#00000000", + "commandCenter.inactiveBorder": "#00000000", + "commandCenter.activeBorder": "#cba6f7", + "tab.activeBackground": "#1e1e2e", + "tab.activeBorder": "#00000000", + "tab.activeBorderTop": "#cba6f7", + "tab.activeForeground": "#cba6f7", + "tab.activeModifiedBorder": "#f9e2af", + "tab.border": "#181825", + "tab.hoverBackground": "#28283d", + "tab.hoverBorder": "#00000000", + "tab.hoverForeground": "#cba6f7", + "tab.inactiveBackground": "#181825", + "tab.inactiveForeground": "#6c7086", + "tab.inactiveModifiedBorder": "#f9e2af4d", + "tab.lastPinnedBorder": "#cba6f7", + "tab.unfocusedActiveBackground": "#181825", + "tab.unfocusedActiveBorder": "#00000000", + "tab.unfocusedActiveBorderTop": "#cba6f74d", + "tab.unfocusedInactiveBackground": "#0e0e16", + "terminal.foreground": "#cdd6f4", + "terminal.ansiBlack": "#45475a", + "terminal.ansiRed": "#f38ba8", + "terminal.ansiGreen": "#a6e3a1", + "terminal.ansiYellow": "#f9e2af", + "terminal.ansiBlue": "#89b4fa", + "terminal.ansiMagenta": "#f5c2e7", + "terminal.ansiCyan": "#94e2d5", + "terminal.ansiWhite": "#a6adc8", + "terminal.ansiBrightBlack": "#585b70", + "terminal.ansiBrightRed": "#f37799", + "terminal.ansiBrightGreen": "#89d88b", + "terminal.ansiBrightYellow": "#ebd391", + "terminal.ansiBrightBlue": "#74a8fc", + "terminal.ansiBrightMagenta": "#f2aede", + "terminal.ansiBrightCyan": "#6bd7ca", + "terminal.ansiBrightWhite": "#bac2de", + "terminal.selectionBackground": "#585b70", + "terminal.inactiveSelectionBackground": "#585b7080", + "terminalCursor.background": "#1e1e2e", + "terminalCursor.foreground": "#f5e0dc", + "terminal.border": "#585b70", + "terminal.dropBackground": "#cba6f733", + "terminal.tab.activeBorder": "#cba6f7", + "terminalCommandDecoration.defaultBackground": "#585b70", + "terminalCommandDecoration.successBackground": "#a6e3a1", + "terminalCommandDecoration.errorBackground": "#f38ba8", + "titleBar.activeBackground": "#11111b", + "titleBar.activeForeground": "#cdd6f4", + "titleBar.inactiveBackground": "#11111b", + "titleBar.inactiveForeground": "#cdd6f480", + "titleBar.border": "#00000000", + "welcomePage.tileBackground": "#181825", + "welcomePage.progress.background": "#11111b", + "welcomePage.progress.foreground": "#cba6f7", + "walkThrough.embeddedEditorBackground": "#1e1e2e4d", + "symbolIcon.textForeground": "#cdd6f4", + "symbolIcon.arrayForeground": "#fab387", + "symbolIcon.booleanForeground": "#cba6f7", + "symbolIcon.classForeground": "#f9e2af", + "symbolIcon.colorForeground": "#f5c2e7", + "symbolIcon.constantForeground": "#fab387", + "symbolIcon.constructorForeground": "#b4befe", + "symbolIcon.enumeratorForeground": "#f9e2af", + "symbolIcon.enumeratorMemberForeground": "#f9e2af", + "symbolIcon.eventForeground": "#f5c2e7", + "symbolIcon.fieldForeground": "#cdd6f4", + "symbolIcon.fileForeground": "#cba6f7", + "symbolIcon.folderForeground": "#cba6f7", + "symbolIcon.functionForeground": "#89b4fa", + "symbolIcon.interfaceForeground": "#f9e2af", + "symbolIcon.keyForeground": "#94e2d5", + "symbolIcon.keywordForeground": "#cba6f7", + "symbolIcon.methodForeground": "#89b4fa", + "symbolIcon.moduleForeground": "#cdd6f4", + "symbolIcon.namespaceForeground": "#f9e2af", + "symbolIcon.nullForeground": "#eba0ac", + "symbolIcon.numberForeground": "#fab387", + "symbolIcon.objectForeground": "#f9e2af", + "symbolIcon.operatorForeground": "#94e2d5", + "symbolIcon.packageForeground": "#f2cdcd", + "symbolIcon.propertyForeground": "#eba0ac", + "symbolIcon.referenceForeground": "#f9e2af", + "symbolIcon.snippetForeground": "#f2cdcd", + "symbolIcon.stringForeground": "#a6e3a1", + "symbolIcon.structForeground": "#94e2d5", + "symbolIcon.typeParameterForeground": "#eba0ac", + "symbolIcon.unitForeground": "#cdd6f4", + "symbolIcon.variableForeground": "#cdd6f4", + "charts.foreground": "#cdd6f4", + "charts.lines": "#bac2de", + "charts.red": "#f38ba8", + "charts.blue": "#89b4fa", + "charts.yellow": "#f9e2af", + "charts.orange": "#fab387", + "charts.green": "#a6e3a1", + "charts.purple": "#cba6f7", + "errorLens.errorBackground": "#f38ba826", + "errorLens.errorBackgroundLight": "#f38ba826", + "errorLens.errorForeground": "#f38ba8", + "errorLens.errorForegroundLight": "#f38ba8", + "errorLens.errorMessageBackground": "#f38ba826", + "errorLens.hintBackground": "#a6e3a126", + "errorLens.hintBackgroundLight": "#a6e3a126", + "errorLens.hintForeground": "#a6e3a1", + "errorLens.hintForegroundLight": "#a6e3a1", + "errorLens.hintMessageBackground": "#a6e3a126", + "errorLens.infoBackground": "#89b4fa26", + "errorLens.infoBackgroundLight": "#89b4fa26", + "errorLens.infoForeground": "#89b4fa", + "errorLens.infoForegroundLight": "#89b4fa", + "errorLens.infoMessageBackground": "#89b4fa26", + "errorLens.statusBarErrorForeground": "#f38ba8", + "errorLens.statusBarHintForeground": "#a6e3a1", + "errorLens.statusBarIconErrorForeground": "#f38ba8", + "errorLens.statusBarIconWarningForeground": "#fab387", + "errorLens.statusBarInfoForeground": "#89b4fa", + "errorLens.statusBarWarningForeground": "#fab387", + "errorLens.warningBackground": "#fab38726", + "errorLens.warningBackgroundLight": "#fab38726", + "errorLens.warningForeground": "#fab387", + "errorLens.warningForegroundLight": "#fab387", + "errorLens.warningMessageBackground": "#fab38726", + "issues.closed": "#cba6f7", + "issues.newIssueDecoration": "#f5e0dc", + "issues.open": "#a6e3a1", + "pullRequests.closed": "#f38ba8", + "pullRequests.draft": "#9399b2", + "pullRequests.merged": "#cba6f7", + "pullRequests.notification": "#cdd6f4", + "pullRequests.open": "#a6e3a1", + "gitlens.gutterBackgroundColor": "#3132444d", + "gitlens.gutterForegroundColor": "#cdd6f4", + "gitlens.gutterUncommittedForegroundColor": "#cba6f7", + "gitlens.trailingLineBackgroundColor": "#00000000", + "gitlens.trailingLineForegroundColor": "#cdd6f44d", + "gitlens.lineHighlightBackgroundColor": "#cba6f726", + "gitlens.lineHighlightOverviewRulerColor": "#cba6f7cc", + "gitlens.openAutolinkedIssueIconColor": "#a6e3a1", + "gitlens.closedAutolinkedIssueIconColor": "#cba6f7", + "gitlens.closedPullRequestIconColor": "#f38ba8", + "gitlens.openPullRequestIconColor": "#a6e3a1", + "gitlens.mergedPullRequestIconColor": "#cba6f7", + "gitlens.unpublishedChangesIconColor": "#a6e3a1", + "gitlens.unpublishedCommitIconColor": "#a6e3a1", + "gitlens.unpulledChangesIconColor": "#fab387", + "gitlens.decorations.branchAheadForegroundColor": "#a6e3a1", + "gitlens.decorations.branchBehindForegroundColor": "#fab387", + "gitlens.decorations.branchDivergedForegroundColor": "#f9e2af", + "gitlens.decorations.branchUnpublishedForegroundColor": "#a6e3a1", + "gitlens.decorations.branchMissingUpstreamForegroundColor": "#fab387", + "gitlens.decorations.statusMergingOrRebasingConflictForegroundColor": "#eba0ac", + "gitlens.decorations.statusMergingOrRebasingForegroundColor": "#f9e2af", + "gitlens.decorations.workspaceRepoMissingForegroundColor": "#a6adc8", + "gitlens.decorations.workspaceCurrentForegroundColor": "#cba6f7", + "gitlens.decorations.workspaceRepoOpenForegroundColor": "#cba6f7", + "gitlens.decorations.worktreeHasUncommittedChangesForegroundColor": "#fab387", + "gitlens.decorations.worktreeMissingForegroundColor": "#eba0ac", + "gitlens.graphLane1Color": "#cba6f7", + "gitlens.graphLane2Color": "#f9e2af", + "gitlens.graphLane3Color": "#89b4fa", + "gitlens.graphLane4Color": "#f2cdcd", + "gitlens.graphLane5Color": "#a6e3a1", + "gitlens.graphLane6Color": "#b4befe", + "gitlens.graphLane7Color": "#f5e0dc", + "gitlens.graphLane8Color": "#f38ba8", + "gitlens.graphLane9Color": "#94e2d5", + "gitlens.graphLane10Color": "#f5c2e7", + "gitlens.graphChangesColumnAddedColor": "#a6e3a1", + "gitlens.graphChangesColumnDeletedColor": "#f38ba8", + "gitlens.graphMinimapMarkerHeadColor": "#a6e3a1", + "gitlens.graphScrollMarkerHeadColor": "#a6e3a1", + "gitlens.graphMinimapMarkerUpstreamColor": "#93dd8d", + "gitlens.graphScrollMarkerUpstreamColor": "#93dd8d", + "gitlens.graphMinimapMarkerHighlightsColor": "#f9e2af", + "gitlens.graphScrollMarkerHighlightsColor": "#f9e2af", + "gitlens.graphMinimapMarkerLocalBranchesColor": "#89b4fa", + "gitlens.graphScrollMarkerLocalBranchesColor": "#89b4fa", + "gitlens.graphMinimapMarkerRemoteBranchesColor": "#71a4f9", + "gitlens.graphScrollMarkerRemoteBranchesColor": "#71a4f9", + "gitlens.graphMinimapMarkerStashesColor": "#cba6f7", + "gitlens.graphScrollMarkerStashesColor": "#cba6f7", + "gitlens.graphMinimapMarkerTagsColor": "#f2cdcd", + "gitlens.graphScrollMarkerTagsColor": "#f2cdcd", + "editorBracketHighlight.foreground1": "#f38ba8", + "editorBracketHighlight.foreground2": "#fab387", + "editorBracketHighlight.foreground3": "#f9e2af", + "editorBracketHighlight.foreground4": "#a6e3a1", + "editorBracketHighlight.foreground5": "#74c7ec", + "editorBracketHighlight.foreground6": "#cba6f7", + "editorBracketHighlight.unexpectedBracket.foreground": "#eba0ac", + "button.secondaryBorder": "#cba6f7", + "table.headerBackground": "#313244", + "table.headerForeground": "#cdd6f4", + "list.focusAndSelectionBackground": "#45475a" + }, + "rules": [ + { + "foreground": "#cdd6f4", + "token": "text" + }, + { + "foreground": "#cdd6f4", + "token": "source" + }, + { + "foreground": "#cdd6f4", + "token": "variable.other.readwrite" + }, + { + "foreground": "#cdd6f4", + "token": "punctuation.definition.variable" + }, + { + "foreground": "#9399b2", + "fontStyle": "", + "token": "punctuation" + }, + { + "foreground": "#9399b2", + "fontStyle": "italic", + "token": "comment" + }, + { + "foreground": "#9399b2", + "fontStyle": "italic", + "token": "punctuation.definition.comment" + }, + { + "foreground": "#a6e3a1", + "token": "string" + }, + { + "foreground": "#a6e3a1", + "token": "punctuation.definition.string" + }, + { + "foreground": "#f5c2e7", + "token": "constant.character.escape" + }, + { + "foreground": "#fab387", + "token": "constant.numeric" + }, + { + "foreground": "#fab387", + "token": "variable.other.constant" + }, + { + "foreground": "#fab387", + "token": "entity.name.constant" + }, + { + "foreground": "#fab387", + "token": "constant.language.boolean" + }, + { + "foreground": "#fab387", + "token": "constant.language.false" + }, + { + "foreground": "#fab387", + "token": "constant.language.true" + }, + { + "foreground": "#fab387", + "token": "keyword.other.unit.user-defined" + }, + { + "foreground": "#fab387", + "token": "keyword.other.unit.suffix.floating-point" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "keyword" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "keyword.operator.word" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "keyword.operator.new" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "variable.language.super" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "support.type.primitive" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "storage.type" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "storage.modifier" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "punctuation.definition.keyword" + }, + { + "foreground": "#cba6f7", + "token": "entity.name.tag.documentation" + }, + { + "foreground": "#94e2d5", + "token": "keyword.operator" + }, + { + "foreground": "#94e2d5", + "token": "punctuation.accessor" + }, + { + "foreground": "#94e2d5", + "token": "punctuation.definition.generic" + }, + { + "foreground": "#94e2d5", + "token": "meta.function.closure punctuation.section.parameters" + }, + { + "foreground": "#94e2d5", + "token": "punctuation.definition.tag" + }, + { + "foreground": "#94e2d5", + "token": "punctuation.separator.key-value" + }, + { + "foreground": "#89b4fa", + "fontStyle": "italic", + "token": "entity.name.function" + }, + { + "foreground": "#89b4fa", + "fontStyle": "italic", + "token": "meta.function-call.method" + }, + { + "foreground": "#89b4fa", + "fontStyle": "italic", + "token": "support.function" + }, + { + "foreground": "#89b4fa", + "fontStyle": "italic", + "token": "support.function.misc" + }, + { + "foreground": "#89b4fa", + "fontStyle": "italic", + "token": "variable.function" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "entity.name.class" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "entity.other.inherited-class" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "support.class" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "meta.function-call.constructor" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "entity.name.struct" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "entity.name.enum" + }, + { + "foreground": "#94e2d5", + "token": "meta.enum variable.other.readwrite" + }, + { + "foreground": "#94e2d5", + "token": "variable.other.enummember" + }, + { + "foreground": "#94e2d5", + "token": "meta.property.object" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "meta.type" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "meta.type-alias" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "support.type" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "entity.name.type" + }, + { + "foreground": "#fab387", + "token": "meta.annotation variable.function" + }, + { + "foreground": "#fab387", + "token": "meta.annotation variable.annotation.function" + }, + { + "foreground": "#fab387", + "token": "meta.annotation punctuation.definition.annotation" + }, + { + "foreground": "#fab387", + "token": "meta.decorator" + }, + { + "foreground": "#fab387", + "token": "punctuation.decorator" + }, + { + "foreground": "#eba0ac", + "fontStyle": "italic", + "token": "variable.parameter" + }, + { + "foreground": "#eba0ac", + "fontStyle": "italic", + "token": "meta.function.parameters" + }, + { + "foreground": "#f38ba8", + "token": "constant.language" + }, + { + "foreground": "#f38ba8", + "token": "support.function.builtin" + }, + { + "foreground": "#f38ba8", + "token": "entity.other.attribute-name.documentation" + }, + { + "foreground": "#f9e2af", + "token": "keyword.control.directive" + }, + { + "foreground": "#f9e2af", + "token": "punctuation.definition.directive" + }, + { + "foreground": "#89dceb", + "token": "punctuation.definition.typeparameters" + }, + { + "foreground": "#f9e2af", + "token": "entity.name.namespace" + }, + { + "foreground": "#89b4fa", + "fontStyle": "", + "token": "support.type.property-name.css" + }, + { + "foreground": "#89b4fa", + "fontStyle": "", + "token": "support.type.property-name.less" + }, + { + "foreground": "#f38ba8", + "token": "variable.language.this" + }, + { + "foreground": "#f38ba8", + "token": "variable.language.this punctuation.definition.variable" + }, + { + "foreground": "#cdd6f4", + "token": "variable.object.property" + }, + { + "foreground": "#cdd6f4", + "token": "string.template variable" + }, + { + "foreground": "#cdd6f4", + "token": "string variable" + }, + { + "fontStyle": "bold", + "token": "keyword.operator.new" + }, + { + "foreground": "#cba6f7", + "token": "storage.modifier.specifier.extern.cpp" + }, + { + "foreground": "#f9e2af", + "token": "entity.name.scope-resolution.template.call.cpp" + }, + { + "foreground": "#f9e2af", + "token": "entity.name.scope-resolution.parameter.cpp" + }, + { + "foreground": "#f9e2af", + "token": "entity.name.scope-resolution.cpp" + }, + { + "foreground": "#f9e2af", + "token": "entity.name.scope-resolution.function.definition.cpp" + }, + { + "fontStyle": "", + "token": "storage.type.class.doxygen" + }, + { + "foreground": "#94e2d5", + "token": "storage.modifier.reference.cpp" + }, + { + "foreground": "#cdd6f4", + "token": "meta.interpolation.cs" + }, + { + "foreground": "#cdd6f4", + "token": "comment.block.documentation.cs" + }, + { + "foreground": "#f9e2af", + "token": "source.css entity.other.attribute-name.class.css" + }, + { + "foreground": "#f9e2af", + "token": "entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css" + }, + { + "foreground": "#94e2d5", + "token": "punctuation.separator.operator.css" + }, + { + "foreground": "#94e2d5", + "token": "source.css entity.other.attribute-name.pseudo-class" + }, + { + "foreground": "#fab387", + "token": "source.css constant.other.unicode-range" + }, + { + "foreground": "#a6e3a1", + "fontStyle": "", + "token": "source.css variable.parameter.url" + }, + { + "foreground": "#89dceb", + "token": "support.type.vendored.property-name" + }, + { + "foreground": "#eba0ac", + "token": "source.css meta.property-value variable" + }, + { + "foreground": "#eba0ac", + "token": "source.css meta.property-value variable.other.less" + }, + { + "foreground": "#eba0ac", + "token": "source.css meta.property-value variable.other.less punctuation.definition.variable.less" + }, + { + "foreground": "#eba0ac", + "token": "meta.definition.variable.scss" + }, + { + "foreground": "#89b4fa", + "token": "source.css meta.property-list variable" + }, + { + "foreground": "#89b4fa", + "token": "meta.property-list variable.other.less" + }, + { + "foreground": "#89b4fa", + "token": "meta.property-list variable.other.less punctuation.definition.variable.less" + }, + { + "foreground": "#fab387", + "token": "keyword.other.unit.percentage.css" + }, + { + "foreground": "#a6e3a1", + "token": "source.css meta.attribute-selector" + }, + { + "foreground": "#89b4fa", + "fontStyle": "", + "token": "keyword.other.definition.ini" + }, + { + "foreground": "#89b4fa", + "fontStyle": "", + "token": "punctuation.support.type.property-name.json" + }, + { + "foreground": "#89b4fa", + "fontStyle": "", + "token": "support.type.property-name.json" + }, + { + "foreground": "#89b4fa", + "fontStyle": "", + "token": "punctuation.support.type.property-name.toml" + }, + { + "foreground": "#89b4fa", + "fontStyle": "", + "token": "support.type.property-name.toml" + }, + { + "foreground": "#89b4fa", + "fontStyle": "", + "token": "entity.name.tag.yaml" + }, + { + "foreground": "#89b4fa", + "fontStyle": "", + "token": "punctuation.support.type.property-name.yaml" + }, + { + "foreground": "#89b4fa", + "fontStyle": "", + "token": "support.type.property-name.yaml" + }, + { + "foreground": "#fab387", + "token": "constant.language.json" + }, + { + "foreground": "#fab387", + "token": "constant.language.yaml" + }, + { + "foreground": "#f9e2af", + "fontStyle": "", + "token": "entity.name.type.anchor.yaml" + }, + { + "foreground": "#f9e2af", + "fontStyle": "", + "token": "variable.other.alias.yaml" + }, + { + "foreground": "#f9e2af", + "token": "support.type.property-name.table" + }, + { + "foreground": "#f9e2af", + "token": "entity.name.section.group-title.ini" + }, + { + "foreground": "#f5c2e7", + "token": "constant.other.time.datetime.offset.toml" + }, + { + "foreground": "#f5c2e7", + "token": "punctuation.definition.anchor.yaml" + }, + { + "foreground": "#f5c2e7", + "token": "punctuation.definition.alias.yaml" + }, + { + "foreground": "#f5c2e7", + "token": "entity.other.document.begin.yaml" + }, + { + "foreground": "#fab387", + "token": "markup.changed.diff" + }, + { + "foreground": "#89b4fa", + "token": "meta.diff.header.from-file" + }, + { + "foreground": "#89b4fa", + "token": "meta.diff.header.to-file" + }, + { + "foreground": "#89b4fa", + "token": "punctuation.definition.from-file.diff" + }, + { + "foreground": "#89b4fa", + "token": "punctuation.definition.to-file.diff" + }, + { + "foreground": "#a6e3a1", + "token": "markup.inserted.diff" + }, + { + "foreground": "#f38ba8", + "token": "markup.deleted.diff" + }, + { + "foreground": "#89b4fa", + "token": "variable.other.env" + }, + { + "foreground": "#cdd6f4", + "token": "string.quoted variable.other.env" + }, + { + "foreground": "#89b4fa", + "token": "support.function.builtin.gdscript" + }, + { + "foreground": "#fab387", + "token": "constant.language.gdscript" + }, + { + "foreground": "#eba0ac", + "token": "comment meta.annotation.go" + }, + { + "foreground": "#fab387", + "token": "comment meta.annotation.parameters.go" + }, + { + "foreground": "#fab387", + "token": "constant.language.go" + }, + { + "foreground": "#cdd6f4", + "token": "variable.graphql" + }, + { + "foreground": "#f2cdcd", + "token": "string.unquoted.alias.graphql" + }, + { + "foreground": "#94e2d5", + "token": "constant.character.enum.graphql" + }, + { + "foreground": "#f2cdcd", + "token": "meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql" + }, + { + "foreground": "#cba6f7", + "token": "keyword.other.doctype" + }, + { + "foreground": "#cba6f7", + "token": "meta.tag.sgml.doctype punctuation.definition.tag" + }, + { + "foreground": "#cba6f7", + "token": "meta.tag.metadata.doctype entity.name.tag" + }, + { + "foreground": "#cba6f7", + "token": "meta.tag.metadata.doctype punctuation.definition.tag" + }, + { + "foreground": "#89b4fa", + "fontStyle": "", + "token": "entity.name.tag" + }, + { + "foreground": "#f38ba8", + "token": "text.html constant.character.entity" + }, + { + "foreground": "#f38ba8", + "token": "text.html constant.character.entity punctuation" + }, + { + "foreground": "#f38ba8", + "token": "constant.character.entity.xml" + }, + { + "foreground": "#f38ba8", + "token": "constant.character.entity.xml punctuation" + }, + { + "foreground": "#f38ba8", + "token": "constant.character.entity.js.jsx" + }, + { + "foreground": "#f38ba8", + "token": "constant.charactger.entity.js.jsx punctuation" + }, + { + "foreground": "#f38ba8", + "token": "constant.character.entity.tsx" + }, + { + "foreground": "#f38ba8", + "token": "constant.character.entity.tsx punctuation" + }, + { + "foreground": "#f9e2af", + "token": "entity.other.attribute-name" + }, + { + "foreground": "#f5c2e7", + "fontStyle": "", + "token": "support.class.component" + }, + { + "foreground": "#f5c2e7", + "fontStyle": "", + "token": "support.class.component.jsx" + }, + { + "foreground": "#f5c2e7", + "fontStyle": "", + "token": "support.class.component.tsx" + }, + { + "foreground": "#f5c2e7", + "fontStyle": "", + "token": "support.class.component.vue" + }, + { + "foreground": "#fab387", + "token": "punctuation.definition.annotation" + }, + { + "foreground": "#fab387", + "token": "storage.type.annotation" + }, + { + "foreground": "#94e2d5", + "token": "constant.other.enum.java" + }, + { + "foreground": "#cdd6f4", + "token": "storage.modifier.import.java" + }, + { + "fontStyle": "", + "token": "comment.block.javadoc.java keyword.other.documentation.javadoc.java" + }, + { + "foreground": "#eba0ac", + "token": "meta.export variable.other.readwrite.js" + }, + { + "foreground": "#cdd6f4", + "token": "variable.other.constant.js" + }, + { + "foreground": "#cdd6f4", + "token": "variable.other.constant.ts" + }, + { + "foreground": "#cdd6f4", + "token": "variable.other.property.js" + }, + { + "foreground": "#cdd6f4", + "token": "variable.other.property.ts" + }, + { + "foreground": "#eba0ac", + "fontStyle": "", + "token": "variable.other.jsdoc" + }, + { + "foreground": "#eba0ac", + "fontStyle": "", + "token": "comment.block.documentation variable.other" + }, + { + "fontStyle": "", + "token": "storage.type.class.jsdoc" + }, + { + "foreground": "#cdd6f4", + "token": "support.type.object.console.js" + }, + { + "foreground": "#cba6f7", + "token": "support.constant.node" + }, + { + "foreground": "#cba6f7", + "token": "support.type.object.module.js" + }, + { + "foreground": "#cba6f7", + "token": "storage.modifier.implements" + }, + { + "foreground": "#cba6f7", + "token": "constant.language.null.js" + }, + { + "foreground": "#cba6f7", + "token": "constant.language.null.ts" + }, + { + "foreground": "#cba6f7", + "token": "constant.language.undefined.js" + }, + { + "foreground": "#cba6f7", + "token": "constant.language.undefined.ts" + }, + { + "foreground": "#cba6f7", + "token": "support.type.builtin.ts" + }, + { + "foreground": "#f9e2af", + "token": "variable.parameter.generic" + }, + { + "foreground": "#94e2d5", + "token": "keyword.declaration.function.arrow.js" + }, + { + "foreground": "#94e2d5", + "token": "storage.type.function.arrow.ts" + }, + { + "foreground": "#89b4fa", + "fontStyle": "italic", + "token": "punctuation.decorator.ts" + }, + { + "foreground": "#cba6f7", + "token": "keyword.operator.expression.in.js" + }, + { + "foreground": "#cba6f7", + "token": "keyword.operator.expression.in.ts" + }, + { + "foreground": "#cba6f7", + "token": "keyword.operator.expression.infer.ts" + }, + { + "foreground": "#cba6f7", + "token": "keyword.operator.expression.instanceof.js" + }, + { + "foreground": "#cba6f7", + "token": "keyword.operator.expression.instanceof.ts" + }, + { + "foreground": "#cba6f7", + "token": "keyword.operator.expression.is" + }, + { + "foreground": "#cba6f7", + "token": "keyword.operator.expression.keyof.ts" + }, + { + "foreground": "#cba6f7", + "token": "keyword.operator.expression.of.js" + }, + { + "foreground": "#cba6f7", + "token": "keyword.operator.expression.of.ts" + }, + { + "foreground": "#cba6f7", + "token": "keyword.operator.expression.typeof.ts" + }, + { + "foreground": "#94e2d5", + "fontStyle": "italic", + "token": "support.function.macro.julia" + }, + { + "foreground": "#fab387", + "token": "constant.language.julia" + }, + { + "foreground": "#eba0ac", + "token": "constant.other.symbol.julia" + }, + { + "foreground": "#94e2d5", + "token": "text.tex keyword.control.preamble" + }, + { + "foreground": "#89dceb", + "token": "text.tex support.function.be" + }, + { + "foreground": "#f2cdcd", + "token": "constant.other.general.math.tex" + }, + { + "foreground": "#f5c2e7", + "token": "variable.language.liquid" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "comment.line.double-dash.documentation.lua storage.type.annotation.lua" + }, + { + "foreground": "#cdd6f4", + "token": "comment.line.double-dash.documentation.lua entity.name.variable.lua" + }, + { + "foreground": "#cdd6f4", + "token": "comment.line.double-dash.documentation.lua variable.lua" + }, + { + "foreground": "#f38ba8", + "token": "heading.1.markdown punctuation.definition.heading.markdown" + }, + { + "foreground": "#f38ba8", + "token": "heading.1.markdown" + }, + { + "foreground": "#f38ba8", + "token": "heading.1.quarto punctuation.definition.heading.quarto" + }, + { + "foreground": "#f38ba8", + "token": "heading.1.quarto" + }, + { + "foreground": "#f38ba8", + "token": "markup.heading.atx.1.mdx" + }, + { + "foreground": "#f38ba8", + "token": "markup.heading.atx.1.mdx punctuation.definition.heading.mdx" + }, + { + "foreground": "#f38ba8", + "token": "markup.heading.setext.1.markdown" + }, + { + "foreground": "#f38ba8", + "token": "markup.heading.heading-0.asciidoc" + }, + { + "foreground": "#fab387", + "token": "heading.2.markdown punctuation.definition.heading.markdown" + }, + { + "foreground": "#fab387", + "token": "heading.2.markdown" + }, + { + "foreground": "#fab387", + "token": "heading.2.quarto punctuation.definition.heading.quarto" + }, + { + "foreground": "#fab387", + "token": "heading.2.quarto" + }, + { + "foreground": "#fab387", + "token": "markup.heading.atx.2.mdx" + }, + { + "foreground": "#fab387", + "token": "markup.heading.atx.2.mdx punctuation.definition.heading.mdx" + }, + { + "foreground": "#fab387", + "token": "markup.heading.setext.2.markdown" + }, + { + "foreground": "#fab387", + "token": "markup.heading.heading-1.asciidoc" + }, + { + "foreground": "#f9e2af", + "token": "heading.3.markdown punctuation.definition.heading.markdown" + }, + { + "foreground": "#f9e2af", + "token": "heading.3.markdown" + }, + { + "foreground": "#f9e2af", + "token": "heading.3.quarto punctuation.definition.heading.quarto" + }, + { + "foreground": "#f9e2af", + "token": "heading.3.quarto" + }, + { + "foreground": "#f9e2af", + "token": "markup.heading.atx.3.mdx" + }, + { + "foreground": "#f9e2af", + "token": "markup.heading.atx.3.mdx punctuation.definition.heading.mdx" + }, + { + "foreground": "#f9e2af", + "token": "markup.heading.heading-2.asciidoc" + }, + { + "foreground": "#a6e3a1", + "token": "heading.4.markdown punctuation.definition.heading.markdown" + }, + { + "foreground": "#a6e3a1", + "token": "heading.4.markdown" + }, + { + "foreground": "#a6e3a1", + "token": "heading.4.quarto punctuation.definition.heading.quarto" + }, + { + "foreground": "#a6e3a1", + "token": "heading.4.quarto" + }, + { + "foreground": "#a6e3a1", + "token": "markup.heading.atx.4.mdx" + }, + { + "foreground": "#a6e3a1", + "token": "markup.heading.atx.4.mdx punctuation.definition.heading.mdx" + }, + { + "foreground": "#a6e3a1", + "token": "markup.heading.heading-3.asciidoc" + }, + { + "foreground": "#74c7ec", + "token": "heading.5.markdown punctuation.definition.heading.markdown" + }, + { + "foreground": "#74c7ec", + "token": "heading.5.markdown" + }, + { + "foreground": "#74c7ec", + "token": "heading.5.quarto punctuation.definition.heading.quarto" + }, + { + "foreground": "#74c7ec", + "token": "heading.5.quarto" + }, + { + "foreground": "#74c7ec", + "token": "markup.heading.atx.5.mdx" + }, + { + "foreground": "#74c7ec", + "token": "markup.heading.atx.5.mdx punctuation.definition.heading.mdx" + }, + { + "foreground": "#74c7ec", + "token": "markup.heading.heading-4.asciidoc" + }, + { + "foreground": "#b4befe", + "token": "heading.6.markdown punctuation.definition.heading.markdown" + }, + { + "foreground": "#b4befe", + "token": "heading.6.markdown" + }, + { + "foreground": "#b4befe", + "token": "heading.6.quarto punctuation.definition.heading.quarto" + }, + { + "foreground": "#b4befe", + "token": "heading.6.quarto" + }, + { + "foreground": "#b4befe", + "token": "markup.heading.atx.6.mdx" + }, + { + "foreground": "#b4befe", + "token": "markup.heading.atx.6.mdx punctuation.definition.heading.mdx" + }, + { + "foreground": "#b4befe", + "token": "markup.heading.heading-5.asciidoc" + }, + { + "foreground": "#f38ba8", + "fontStyle": "bold", + "token": "markup.bold" + }, + { + "foreground": "#f38ba8", + "fontStyle": "italic", + "token": "markup.italic" + }, + { + "foreground": "#a6adc8", + "fontStyle": "strikethrough", + "token": "markup.strikethrough" + }, + { + "foreground": "#89b4fa", + "token": "punctuation.definition.link" + }, + { + "foreground": "#89b4fa", + "token": "markup.underline.link" + }, + { + "foreground": "#b4befe", + "token": "text.html.markdown punctuation.definition.link.title" + }, + { + "foreground": "#b4befe", + "token": "text.html.quarto punctuation.definition.link.title" + }, + { + "foreground": "#b4befe", + "token": "string.other.link.title.markdown" + }, + { + "foreground": "#b4befe", + "token": "string.other.link.title.quarto" + }, + { + "foreground": "#b4befe", + "token": "markup.link" + }, + { + "foreground": "#b4befe", + "token": "punctuation.definition.constant.markdown" + }, + { + "foreground": "#b4befe", + "token": "punctuation.definition.constant.quarto" + }, + { + "foreground": "#b4befe", + "token": "constant.other.reference.link.markdown" + }, + { + "foreground": "#b4befe", + "token": "constant.other.reference.link.quarto" + }, + { + "foreground": "#b4befe", + "token": "markup.substitution.attribute-reference" + }, + { + "foreground": "#a6e3a1", + "token": "punctuation.definition.raw.markdown" + }, + { + "foreground": "#a6e3a1", + "token": "punctuation.definition.raw.quarto" + }, + { + "foreground": "#a6e3a1", + "token": "markup.inline.raw.string.markdown" + }, + { + "foreground": "#a6e3a1", + "token": "markup.inline.raw.string.quarto" + }, + { + "foreground": "#a6e3a1", + "token": "markup.raw.block.markdown" + }, + { + "foreground": "#a6e3a1", + "token": "markup.raw.block.quarto" + }, + { + "foreground": "#89dceb", + "token": "fenced_code.block.language" + }, + { + "foreground": "#9399b2", + "token": "markup.fenced_code.block punctuation.definition" + }, + { + "foreground": "#9399b2", + "token": "markup.raw support.asciidoc" + }, + { + "foreground": "#f5c2e7", + "token": "markup.quote" + }, + { + "foreground": "#f5c2e7", + "token": "punctuation.definition.quote.begin" + }, + { + "foreground": "#94e2d5", + "token": "meta.separator.markdown" + }, + { + "foreground": "#94e2d5", + "token": "punctuation.definition.list.begin.markdown" + }, + { + "foreground": "#94e2d5", + "token": "punctuation.definition.list.begin.quarto" + }, + { + "foreground": "#94e2d5", + "token": "markup.list.bullet" + }, + { + "fontStyle": "bold", + "token": "markup.heading.quarto" + }, + { + "foreground": "#89b4fa", + "token": "entity.other.attribute-name.multipart.nix" + }, + { + "foreground": "#89b4fa", + "token": "entity.other.attribute-name.single.nix" + }, + { + "foreground": "#cdd6f4", + "fontStyle": "", + "token": "variable.parameter.name.nix" + }, + { + "foreground": "#b4befe", + "fontStyle": "", + "token": "meta.embedded variable.parameter.name.nix" + }, + { + "foreground": "#f5c2e7", + "fontStyle": "", + "token": "string.unquoted.path.nix" + }, + { + "foreground": "#f9e2af", + "token": "support.attribute.builtin" + }, + { + "foreground": "#f9e2af", + "token": "meta.attribute.php" + }, + { + "foreground": "#eba0ac", + "token": "meta.function.parameters.php punctuation.definition.variable.php" + }, + { + "foreground": "#cba6f7", + "token": "constant.language.php" + }, + { + "foreground": "#89dceb", + "token": "text.html.php support.function" + }, + { + "fontStyle": "", + "token": "keyword.other.phpdoc.php" + }, + { + "foreground": "#cdd6f4", + "token": "support.variable.magic.python" + }, + { + "foreground": "#cdd6f4", + "token": "meta.function-call.arguments.python" + }, + { + "foreground": "#89dceb", + "fontStyle": "italic", + "token": "support.function.magic.python" + }, + { + "foreground": "#f38ba8", + "fontStyle": "italic", + "token": "variable.parameter.function.language.special.self.python" + }, + { + "foreground": "#f38ba8", + "fontStyle": "italic", + "token": "variable.language.special.self.python" + }, + { + "foreground": "#cba6f7", + "token": "keyword.control.flow.python" + }, + { + "foreground": "#cba6f7", + "token": "keyword.operator.logical.python" + }, + { + "foreground": "#cba6f7", + "token": "storage.type.function.python" + }, + { + "foreground": "#89dceb", + "token": "support.token.decorator.python" + }, + { + "foreground": "#89dceb", + "token": "meta.function.decorator.identifier.python" + }, + { + "foreground": "#89b4fa", + "token": "meta.function-call.python" + }, + { + "foreground": "#fab387", + "fontStyle": "italic", + "token": "entity.name.function.decorator.python" + }, + { + "foreground": "#fab387", + "fontStyle": "italic", + "token": "punctuation.definition.decorator.python" + }, + { + "foreground": "#f5c2e7", + "token": "constant.character.format.placeholder.other.python" + }, + { + "foreground": "#fab387", + "token": "support.type.exception.python" + }, + { + "foreground": "#fab387", + "token": "support.function.builtin.python" + }, + { + "foreground": "#cba6f7", + "token": "support.type.python" + }, + { + "foreground": "#fab387", + "token": "constant.language.python" + }, + { + "foreground": "#eba0ac", + "fontStyle": "italic", + "token": "meta.indexed-name.python" + }, + { + "foreground": "#eba0ac", + "fontStyle": "italic", + "token": "meta.item-access.python" + }, + { + "foreground": "#a6e3a1", + "fontStyle": "italic", + "token": "storage.type.string.python" + }, + { + "fontStyle": "", + "token": "meta.function.parameters.python" + }, + { + "foreground": "#89b4fa", + "token": "meta.function-call.r" + }, + { + "foreground": "#cdd6f4", + "token": "meta.function-call.arguments.r" + }, + { + "foreground": "#f5c2e7", + "token": "string.regexp punctuation.definition.string.begin" + }, + { + "foreground": "#f5c2e7", + "token": "string.regexp punctuation.definition.string.end" + }, + { + "foreground": "#cba6f7", + "token": "keyword.control.anchor.regexp" + }, + { + "foreground": "#cdd6f4", + "token": "string.regexp.ts" + }, + { + "foreground": "#a6e3a1", + "token": "punctuation.definition.group.regexp" + }, + { + "foreground": "#a6e3a1", + "token": "keyword.other.back-reference.regexp" + }, + { + "foreground": "#f9e2af", + "token": "punctuation.definition.character-class.regexp" + }, + { + "foreground": "#f5c2e7", + "token": "constant.other.character-class.regexp" + }, + { + "foreground": "#f5e0dc", + "token": "constant.other.character-class.range.regexp" + }, + { + "foreground": "#94e2d5", + "token": "keyword.operator.quantifier.regexp" + }, + { + "foreground": "#fab387", + "token": "constant.character.numeric.regexp" + }, + { + "foreground": "#89b4fa", + "token": "punctuation.definition.group.no-capture.regexp" + }, + { + "foreground": "#89b4fa", + "token": "meta.assertion.look-ahead.regexp" + }, + { + "foreground": "#89b4fa", + "token": "meta.assertion.negative-look-ahead.regexp" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "meta.annotation.rust" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "meta.annotation.rust punctuation" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "meta.attribute.rust" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "punctuation.definition.attribute.rust" + }, + { + "fontStyle": "", + "token": "meta.attribute.rust string.quoted.double.rust" + }, + { + "fontStyle": "", + "token": "meta.attribute.rust string.quoted.single.char.rust" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "entity.name.function.macro.rules.rust" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "storage.type.module.rust" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "storage.modifier.rust" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "storage.type.struct.rust" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "storage.type.enum.rust" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "storage.type.trait.rust" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "storage.type.union.rust" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "storage.type.impl.rust" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "storage.type.rust" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "storage.type.function.rust" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "storage.type.type.rust" + }, + { + "foreground": "#cba6f7", + "fontStyle": "", + "token": "entity.name.type.numeric.rust" + }, + { + "foreground": "#fab387", + "token": "meta.generic.rust" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "entity.name.impl.rust" + }, + { + "foreground": "#fab387", + "token": "entity.name.module.rust" + }, + { + "foreground": "#f9e2af", + "fontStyle": "italic", + "token": "entity.name.trait.rust" + }, + { + "foreground": "#f9e2af", + "token": "storage.type.source.rust" + }, + { + "foreground": "#f9e2af", + "token": "entity.name.union.rust" + }, + { + "foreground": "#94e2d5", + "token": "meta.enum.rust storage.type.source.rust" + }, + { + "foreground": "#89b4fa", + "fontStyle": "italic", + "token": "support.macro.rust" + }, + { + "foreground": "#89b4fa", + "fontStyle": "italic", + "token": "meta.macro.rust support.function.rust" + }, + { + "foreground": "#89b4fa", + "fontStyle": "italic", + "token": "entity.name.function.macro.rust" + }, + { + "foreground": "#89b4fa", + "fontStyle": "italic", + "token": "storage.modifier.lifetime.rust" + }, + { + "foreground": "#89b4fa", + "fontStyle": "italic", + "token": "entity.name.type.lifetime" + }, + { + "foreground": "#f5c2e7", + "token": "string.quoted.double.rust constant.other.placeholder.rust" + }, + { + "foreground": "#cdd6f4", + "token": "meta.function.return-type.rust meta.generic.rust storage.type.rust" + }, + { + "foreground": "#89b4fa", + "token": "meta.function.call.rust" + }, + { + "foreground": "#89dceb", + "token": "punctuation.brackets.angle.rust" + }, + { + "foreground": "#fab387", + "token": "constant.other.caps.rust" + }, + { + "foreground": "#eba0ac", + "token": "meta.function.definition.rust variable.other.rust" + }, + { + "foreground": "#cdd6f4", + "token": "meta.function.call.rust variable.other.rust" + }, + { + "foreground": "#f38ba8", + "token": "variable.language.self.rust" + }, + { + "foreground": "#f5c2e7", + "token": "variable.other.metavariable.name.rust" + }, + { + "foreground": "#f5c2e7", + "token": "meta.macro.metavariable.rust keyword.operator.macro.dollar.rust" + }, + { + "foreground": "#f5c2e7", + "fontStyle": "italic", + "token": "comment.line.shebang" + }, + { + "foreground": "#f5c2e7", + "fontStyle": "italic", + "token": "comment.line.shebang punctuation.definition.comment" + }, + { + "foreground": "#f5c2e7", + "fontStyle": "italic", + "token": "comment.line.shebang" + }, + { + "foreground": "#f5c2e7", + "fontStyle": "italic", + "token": "punctuation.definition.comment.shebang.shell" + }, + { + "foreground": "#f5c2e7", + "fontStyle": "italic", + "token": "meta.shebang.shell" + }, + { + "foreground": "#94e2d5", + "fontStyle": "italic", + "token": "comment.line.shebang constant.language" + }, + { + "foreground": "#f38ba8", + "token": "meta.function-call.arguments.shell punctuation.definition.variable.shell" + }, + { + "foreground": "#f38ba8", + "token": "meta.function-call.arguments.shell punctuation.section.interpolation" + }, + { + "foreground": "#f38ba8", + "token": "meta.function-call.arguments.shell punctuation.definition.variable.shell" + }, + { + "foreground": "#f38ba8", + "token": "meta.function-call.arguments.shell punctuation.section.interpolation" + }, + { + "foreground": "#fab387", + "fontStyle": "italic", + "token": "meta.string meta.interpolation.parameter.shell variable.other.readwrite" + }, + { + "foreground": "#94e2d5", + "token": "source.shell punctuation.section.interpolation" + }, + { + "foreground": "#94e2d5", + "token": "punctuation.definition.evaluation.backticks.shell" + }, + { + "foreground": "#cba6f7", + "token": "entity.name.tag.heredoc.shell" + }, + { + "foreground": "#cdd6f4", + "token": "string.quoted.double.shell variable.other.normal.shell" + }, + { + "foreground": "#f38ba8", + "token": "markup.heading.typst" + } + ], + "encodedTokensColors": [] +} diff --git a/server/api/presets/[id].delete.ts b/server/api/presets/[id].delete.ts new file mode 100644 index 0000000..c785697 --- /dev/null +++ b/server/api/presets/[id].delete.ts @@ -0,0 +1,33 @@ +import { getPresetById, deletePreset } from "~/lib/utils/presetsDb"; + +export default defineEventHandler(async (event) => { + const { isAuthenticated, userId } = event.context.auth(); + + if (!isAuthenticated || !userId) { + throw createError({ statusCode: 401, statusMessage: "Unauthorized" }); + } + + const id = getRouterParam(event, "id"); + if (!id) { + throw createError({ statusCode: 400, statusMessage: "Missing preset ID" }); + } + + // Check if the user is the creator of the preset + const preset = await getPresetById(id); + + if (!preset) { + throw createError({ statusCode: 404, statusMessage: "Preset not found" }); + } + + if (preset.createdBy !== userId) { + throw createError({ + statusCode: 403, + statusMessage: "Forbidden: You can only delete your own presets", + }); + } + + // Delete the preset (cascades to presetUsers) + await deletePreset(id); + + return { success: true }; +}); diff --git a/server/api/presets/[id].get.ts b/server/api/presets/[id].get.ts new file mode 100644 index 0000000..3138ae0 --- /dev/null +++ b/server/api/presets/[id].get.ts @@ -0,0 +1,30 @@ +import { + getPresetAuthorData, + getPresetById, + userHasPresetAccess, +} from "~/lib/utils/presetsDb"; + +export default defineEventHandler(async (event) => { + const { isAuthenticated, userId } = event.context.auth(); + + if (!isAuthenticated || !userId) { + throw createError({ statusCode: 401, statusMessage: "Unauthorized" }); + } + + const id = getRouterParam(event, "id"); + if (!id) { + throw createError({ statusCode: 400, statusMessage: "Missing preset ID" }); + } + + const preset = await getPresetById(id); + if (!preset) { + throw createError({ statusCode: 404, statusMessage: "Preset not found" }); + } + const author = await getPresetAuthorData(event, id); + + return { + success: true, + data: preset, + author, + }; +}); diff --git a/server/api/presets/[id].put.ts b/server/api/presets/[id].put.ts new file mode 100644 index 0000000..ed07683 --- /dev/null +++ b/server/api/presets/[id].put.ts @@ -0,0 +1,44 @@ +import { + getPresetById, + updatePreset, + updatePresetDefaultStatus, +} from "~/lib/utils/presetsDb"; + +export default defineEventHandler(async (event) => { + const { isAuthenticated, userId } = event.context.auth(); + + if (!isAuthenticated || !userId) { + throw createError({ statusCode: 401, statusMessage: "Unauthorized" }); + } + + const id = getRouterParam(event, "id"); + if (!id) { + throw createError({ statusCode: 400, statusMessage: "Missing preset ID" }); + } + + const body = await readBody(event); + + // Verify ownership + const preset = await getPresetById(id); + + if (!preset) { + throw createError({ statusCode: 404, statusMessage: "Preset not found" }); + } + + if (preset.createdBy !== userId) { + throw createError({ + statusCode: 403, + statusMessage: "Forbidden: You can only edit your own presets", + }); + } + + // Update preset + await updatePreset(id, body.name, JSON.stringify(body.iceServers)); + + // Update default status in presetUsers + if (body.default !== undefined) { + await updatePresetDefaultStatus(id, userId, body.default); + } + + return { success: true }; +}); diff --git a/server/api/presets/[id]/import.post.ts b/server/api/presets/[id]/import.post.ts new file mode 100644 index 0000000..f77214d --- /dev/null +++ b/server/api/presets/[id]/import.post.ts @@ -0,0 +1,69 @@ +import { getPresetById, userHasPresetAccess } from "~/lib/utils/presetsDb"; +import { db } from "~/lib/db/index"; +import * as schema from "~/lib/db/schema"; + +export default defineEventHandler(async (event) => { + const id = getRouterParam(event, "id"); + const { isAuthenticated, userId } = event.context.auth(); + + if (!isAuthenticated || !userId) { + setResponseStatus(event, 401); + return { + success: false, + message: "Unauthorized", + }; + } + + if (!id) { + setResponseStatus(event, 400); + return { + success: false, + message: "Missing preset ID", + }; + } + + const preset = await getPresetById(id); + if (!preset) { + setResponseStatus(event, 404); + return { + success: false, + message: "Preset not found", + }; + } + + if (!preset.shareable) { + setResponseStatus(event, 403); + return { + success: false, + message: "This preset is not shareable", + }; + } + + // Check if user already has this preset + const userAlreadyHasPreset = await db.query.presetUsers.findFirst({ + where: (presetUsers, { eq, and }) => + and( + eq(presetUsers.presetId, id), + eq(presetUsers.userId, userId), + ), + }); + + if (userAlreadyHasPreset) { + return { + success: false, + message: "You already have this preset imported", + }; + } + + // Add preset to user + await db.insert(schema.presetUsers).values({ + presetId: id, + userId: userId, + isDefault: false, + }); + + return { + success: true, + message: "Preset imported successfully", + }; +}); diff --git a/server/api/presets/[id]/share.post.ts b/server/api/presets/[id]/share.post.ts new file mode 100644 index 0000000..b7969e0 --- /dev/null +++ b/server/api/presets/[id]/share.post.ts @@ -0,0 +1,36 @@ +import { markAsShareable, ownsPreset } from "~/lib/utils/presetsDb"; + +export default defineEventHandler(async (event) => { + const id = getRouterParam(event, "id"); + const { isAuthenticated, userId } = event.context.auth(); + + if (!isAuthenticated || !userId) { + setResponseStatus(event, 401); + return { + success: false, + message: "Unauthorized", + }; + } + if (!id) { + setResponseStatus(event, 400); + return { + success: false, + message: "Missing preset ID", + }; + } + + if (!(await ownsPreset(id, userId))) { + setResponseStatus(event, 403); + return { + success: false, + message: "Forbidden", + }; + } + + await markAsShareable(id, true); + + return { + success: true, + message: "Preset marked as shareable", + }; +}); diff --git a/server/api/presets/create.post.ts b/server/api/presets/create.post.ts new file mode 100644 index 0000000..9839ed4 --- /dev/null +++ b/server/api/presets/create.post.ts @@ -0,0 +1,51 @@ +import { clerkClient } from "@clerk/nuxt/server"; +import { schema as zodSchema } from "~/lib/schema/new-preset"; +import { createPreset } from "~/lib/utils/presetsDb"; + +export default defineEventHandler(async (req) => { + const reqBody = await readBody(req); + if (reqBody && reqBody.iceServers) { + reqBody.iceServers = JSON.stringify(reqBody.iceServers); + } + + const body = zodSchema.safeParse(reqBody); + if (body.success === false) { + setResponseStatus(req, 400); + return { + success: false, + message: "Invalid request body", + }; + } + + const { isAuthenticated, userId } = req.context.auth(); + + if (!isAuthenticated) { + setResponseStatus(req, 401); + return { + success: false, + message: "Unauthorized", + }; + } + + const user = await clerkClient(req).users.getUser(userId); + + try { + await createPreset( + user.id, + body.data.name, + body.data.iceServers, + body.data.default, + ); + } catch (e: any) { + setResponseStatus(req, 500); + return { + success: false, + message: "Database error", + }; + } + + return { + success: true, + message: "Preset created successfully", + }; +}); diff --git a/server/api/presets/index.get.ts b/server/api/presets/index.get.ts new file mode 100644 index 0000000..84e7acc --- /dev/null +++ b/server/api/presets/index.get.ts @@ -0,0 +1,15 @@ +import { getUserPresets } from "~/lib/utils/presetsDb"; + +export default defineEventHandler(async (event) => { + const { isAuthenticated, userId } = event.context.auth(); + console.log("Fetching presets for user:", userId); + if (!isAuthenticated) { + throw createError({ statusCode: 401, statusMessage: "Unauthorized" }); + } + const data = await getUserPresets(userId); + + return { + success: true, + data: data, + }; +}); diff --git a/server/plugins/migrations.ts b/server/plugins/migrations.ts new file mode 100644 index 0000000..e9b2cfc --- /dev/null +++ b/server/plugins/migrations.ts @@ -0,0 +1,15 @@ +import { runMigrations } from "../../app/lib/db/migrate"; + +export default defineNitroPlugin(async () => { + // Run migrations once when the server starts + try { + await runMigrations(); + } catch (error) { + console.error("[Server] Failed to run migrations on startup:", error); + // In production, you may want to throw here to prevent server startup + // For now, we'll just log the error and continue + if (process.env.NODE_ENV === "production") { + throw error; + } + } +}); diff --git a/server/routes/ws/signaling.ts b/server/routes/ws/signaling.ts index 50b0cd6..ddc69fc 100644 --- a/server/routes/ws/signaling.ts +++ b/server/routes/ws/signaling.ts @@ -124,6 +124,7 @@ export default defineWebSocketHandler({ event: 'offer', sdp: msg.sdp, senderId: peer.id, + iceServers: msg.iceServers, })); } }