diff --git a/fdm-app/.env.example b/fdm-app/.env.example new file mode 100644 index 000000000..e7181a6c8 --- /dev/null +++ b/fdm-app/.env.example @@ -0,0 +1,31 @@ +# NodeJS Configuration +# Sets the environment for the application (development, production). +# Example: development, production +NODE_ENV= + +# Secret key used to sign session cookies. +# Must be a strong, randomly generated string. Do not hardcode or commit this value to version control. Use a secure secret management system. +# Rotate this key periodically. Compromising this secret can allow attackers to hijack user sessions. +FDM_SESSION_SECRET= + +# DB configuration +# The hostname or IP address of the PostgreSQL database server. +POSTGRES_HOST= + +# The port number on which the PostgreSQL database server is listening. Defaults to 5432 if not specified. +POSTGRES_PORT= + +# The name of the PostgreSQL database to connect to. +POSTGRES_DB= + +# The username used to authenticate with the PostgreSQL database server. +POSTGRES_USER= + +# The password used to authenticate with the PostgreSQL database server. Ensure this is stored securely and not exposed in version control. +POSTGRES_PASSWORD= + +# Mapbox configuration +# API token for Mapbox services. Required to use Mapbox features. +# Obtain your token from the Mapbox website. Keep this token secure and do not expose it in version control. +MAPBOX_TOKEN= + diff --git a/fdm-app/.eslintrc.cjs b/fdm-app/.eslintrc.cjs deleted file mode 100644 index eeefc6ec5..000000000 --- a/fdm-app/.eslintrc.cjs +++ /dev/null @@ -1,90 +0,0 @@ -/** - * This is intended to be a basic starting point for linting in your app. - * It relies on recommended configs out of the box for simplicity, but you can - * and should modify this configuration to best suit your team's needs. - */ - -/** @type {import('eslint').Linter.Config} */ -module.exports = { - root: true, - parserOptions: { - ecmaVersion: "latest", - sourceType: "module", - ecmaFeatures: { - jsx: true, - }, - }, - env: { - browser: true, - commonjs: true, - es6: true, - }, - ignorePatterns: ["!**/.server", "!**/.client"], - - // Base config - extends: ["eslint:recommended"], - - overrides: [ - // React - { - files: ["**/*.{js,jsx,ts,tsx}"], - plugins: ["react", "jsx-a11y"], - extends: [ - "plugin:react/recommended", - "plugin:react/jsx-runtime", - "plugin:react-hooks/recommended", - "plugin:jsx-a11y/recommended", - ], - settings: { - react: { - version: "detect", - }, - formComponents: ["Form"], - linkComponents: [ - { name: "Link", linkAttribute: "to" }, - { name: "NavLink", linkAttribute: "to" }, - ], - "import/resolver": { - typescript: {}, - alias: { - map:[ - ["@/app", "~/"] - - ] - } - }, - }, - }, - - // Typescript - { - files: ["**/*.{ts,tsx}"], - plugins: ["@typescript-eslint", "import"], - parser: "@typescript-eslint/parser", - settings: { - "import/internal-regex": "^~/", - "import/resolver": { - node: { - extensions: [".ts", ".tsx"], - }, - typescript: { - alwaysTryTypes: true, - }, - }, - }, - extends: [ - "plugin:@typescript-eslint/recommended", - "plugin:import/recommended", - "plugin:import/typescript", - ], - }, - - // Node - { - files: [".eslintrc.cjs"], - env: { - node: true, - }, - }, - ], -}; diff --git a/fdm-app/CHANGELOG.md b/fdm-app/CHANGELOG.md index dfc8b4ab7..675fc3683 100644 --- a/fdm-app/CHANGELOG.md +++ b/fdm-app/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog fdm-app -## v.0.1.0 +## 0.2.0 -A first prototype of an application for fdm with minimal functions \ No newline at end of file +### Minor Changes + +- e1aa0ee: Rename an app to `Nutriëntenbalans` + +### Patch Changes + +- bfa7927: Increase width of sidebar on desktop to `18rem` +- 35c55e1: Add example configuration file as `.env.example` +- Updated dependencies [d39b097] +- Updated dependencies [35c55e1] +- Updated dependencies [6694029] +- Updated dependencies [c316d5c] +- Updated dependencies [b1dea77] +- Updated dependencies [d39b097] +- Updated dependencies [49aa60c] + - @svenvw/fdm-data@1.0.0 + - @svenvw/fdm-core@0.6.0 + +## 0.1.0 + +A first prototype of an application for fdm with minimal functions diff --git a/fdm-app/app/components/app-sidebar.tsx b/fdm-app/app/components/app-sidebar.tsx index 041e5d00a..92f691b65 100644 --- a/fdm-app/app/components/app-sidebar.tsx +++ b/fdm-app/app/components/app-sidebar.tsx @@ -119,7 +119,7 @@ export function AppSidebar(props: SideBarType) { - MINAS2 + Nutriëntenbalans diff --git a/fdm-app/app/components/blocks/cultivation-plan.tsx b/fdm-app/app/components/blocks/cultivation-plan.tsx new file mode 100644 index 000000000..23aedda12 --- /dev/null +++ b/fdm-app/app/components/blocks/cultivation-plan.tsx @@ -0,0 +1,107 @@ +import { useState } from "react"; +import { Form, useLocation, useNavigation } from "@remix-run/react"; + +import { cn } from "@/lib/utils" +import { Label } from "@/components/ui/label"; +import { Input } from "@/components/ui/input"; +import { buttonVariants } from "@/components/ui/button" +import { Calendar } from "@/components/ui/calendar" +// import { nl } from "react-day-picker/locale" // Could not be found somehow + +interface SidebarNavProps extends React.HTMLAttributes { + items: { + href: string + title: string + }[] +} + +export function SidebarNav({ className, items, ...props }: SidebarNavProps) { + const { pathname } = useLocation(); + + return ( + + ) +} + +export default function Cultivation(props: { action: string | undefined; }) { + const navigation = useNavigation(); + + // Get sowing and harvesting dates + const [dateSowing, setDateSowing] = useState(new Date('2024-03-01')) + const [dateHarvesting, setDateHarvesting] = useState(new Date('2024-10-01')) + + + return ( +
+
+

+ Werk de opbrengst, stikstofgehalte en zaai- en oogstdatum bij voor dit gewas. +

+
+
+
+
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+
+
+ ) +} \ No newline at end of file diff --git a/fdm-app/app/components/blocks/fields-map.tsx b/fdm-app/app/components/blocks/fields-map.tsx index 428be6f75..489403509 100644 --- a/fdm-app/app/components/blocks/fields-map.tsx +++ b/fdm-app/app/components/blocks/fields-map.tsx @@ -140,7 +140,7 @@ export function FieldsMap(props: FieldsMapType) { latitude: 52, zoom: 10, }} - style={{ height: "calc(100vh - 64px)" }} + style={{ height: "calc(100vh - 64px - 123px)" }} mapStyle="mapbox://styles/mapbox/satellite-streets-v12" mapboxAccessToken={mapboxToken} onZoomEnd={async evt => await loadBrpFields(evt)} diff --git a/fdm-app/app/components/blocks/fields.tsx b/fdm-app/app/components/blocks/fields.tsx index 0befbaac9..e07dc28a6 100644 --- a/fdm-app/app/components/blocks/fields.tsx +++ b/fdm-app/app/components/blocks/fields.tsx @@ -19,14 +19,28 @@ import { useToast } from "@/hooks/use-toast" import { FieldMap } from "@/components/blocks/field-map"; import { ClientOnly } from "remix-utils/client-only"; import { Skeleton } from "../ui/skeleton"; +import { cn } from "@/lib/utils" +import { + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, +} from "@/components/ui/command" +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui/popover" +import { ChevronsUpDown, Check } from "lucide-react" - -export interface soilTypesListType { - value: string - label: string +interface CultivationOption { + value: string; + label: string; } -export interface fieldType { +interface fieldType { /** Mapbox API token for map rendering */ mapboxToken: string; /** Unique identifier for the field */ @@ -38,27 +52,99 @@ export interface fieldType { /** Agricultural soil type classification */ b_soiltype_agr: string | null b_geojson: FeatureCollection + cultivations: {b_lu_catalogue: string} + cultivationOptions: CultivationOption[] action: string } -export interface fieldsType { +interface fieldsType { fields: fieldType[] + cultivationOptions: CultivationOption[] mapboxToken: string action: string } +interface CultivationComboboxProps { + cultivations: { + b_lu_catalogue: string + }; + cultivationOptions: CultivationOption[]; + defaultValue?: string; + error?: boolean; + onValueChange?: (value: string) => void; +} + +function CultivationCombobox({ + cultivations, + cultivationOptions, + defaultValue, + error = false, + onValueChange +}: CultivationComboboxProps) { + const [open, setOpen] = useState(false) + const [value, setValue] = useState(cultivations.b_lu_catalogue ?? "") + const name = "b_lu" + + return ( + + + + + + + + + Geen gewas gevonden + + {cultivationOptions.map((cultivation: CultivationOption) => ( + { + setValue(currentValue === value ? "" : currentValue) + setOpen(false) + }} + > + {cultivation.label} + + + ))} + + + + + + ) +} + export function Fields(props: fieldsType) { return ( -
+
{props.fields.map(field => { return (
@@ -88,20 +174,35 @@ function Field(props: fieldType) { setIsSubmitting(true); } + const defaultCultivationValue = props.cultivations.b_lu_catalogue; // Access the correct property containing the cultivation value + const defaultCultivationLabel = props.cultivationOptions.find(option => option.value === defaultCultivationValue)?.label; return (
- +
+ onSubmit={(e) => { + const form = e.currentTarget; + if (!form.b_lu.value || !form.b_soiltype_agr.value) { + e.preventDefault(); + toast({ + title: "Fout", + description: "Hoofdgewas en bodemtype zijn verplicht", + variant: "destructive", + }); + return; + } + handleSubmit(); + }} + > - {/* {props.b_name} - {props.b_area} ha */} + {props.b_name} + {props.b_area} ha
-
+
@@ -111,21 +212,35 @@ function Field(props: fieldType) {
- - + - Apple - Banana - Blueberry - Grapes - Pineapple + Moerige klei + Rivierklei + Dekzand + Zeeklei + Veen + Löss + Duinzand + Maasklei
-
+
diff --git a/fdm-app/app/components/custom/combobox-cultivations.tsx b/fdm-app/app/components/custom/combobox-cultivations.tsx new file mode 100644 index 000000000..eeba691bd --- /dev/null +++ b/fdm-app/app/components/custom/combobox-cultivations.tsx @@ -0,0 +1,65 @@ + + +import { Button } from "@/components/ui/button" +import { Separator } from "../ui/separator" +import { Input } from "../ui/input" +import { Label } from "../ui/label" + +import { Combobox } from "../custom/combobox" + +export function ComboboxCultivations(props: { options: { value: string, label: string }[], defaultValue?: string }) { + + return ( +
+
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+ +
+ {/*
Meststoffen
*/} +
+
+
+

+ Gele mosterd +

+ {/*

m@example.com

*/} +
+
+

+ 2024-10-05 +

+
+
+

+ 2025-03-01 +

+
+
+ +
+ {/*
*/} +
+
+
+
+
+ ) +} \ No newline at end of file diff --git a/fdm-app/app/components/custom/combobox-fertilizers.tsx b/fdm-app/app/components/custom/combobox-fertilizers.tsx new file mode 100644 index 000000000..3a2d755bf --- /dev/null +++ b/fdm-app/app/components/custom/combobox-fertilizers.tsx @@ -0,0 +1,86 @@ + + +import { Button } from "@/components/ui/button" +import { Separator } from "../ui/separator" +import { Input } from "../ui/input" +import { Label } from "../ui/label" + +import { Combobox } from "../custom/combobox" + +export function ComboboxFertilizers(props: { options: { value: string, label: string }[], defaultValue?: string }) { + + return ( +
+
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+ +
+ {/*
Meststoffen
*/} +
+
+
+

+ Runderdrijfmest +

+ {/*

m@example.com

*/} +
+
+

+ 30 ton / ha +

+
+
+

+ 2024-04-01 +

+
+
+ +
+ {/*
*/} +
+
+
+

+ Runderdrijfmest +

+ {/*

m@example.com

*/} +
+
+

+ 30 ton / ha +

+
+
+

+ 2024-04-01 +

+
+
+ +
+
+
+
+
+
+ ) +} \ No newline at end of file diff --git a/fdm-app/app/components/custom/combobox.tsx b/fdm-app/app/components/custom/combobox.tsx new file mode 100644 index 000000000..7c88e51be --- /dev/null +++ b/fdm-app/app/components/custom/combobox.tsx @@ -0,0 +1,94 @@ +import { useState } from "react" + +import { Button } from "@/components/ui/button" +import { + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, +} from "@/components/ui/command" +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui/popover" +import { ChevronsUpDown, Check } from "lucide-react" +import { cn } from "@/lib/utils" + +type optionType = { + value: string + label: string +} + +interface ComboboxProps { + options: { value: string, label: string }[] + value?: string + defaultValue?: string + onChange?: (value: string) => void + onOpenChange?: (open: boolean) => void +} + +export function Combobox({ + options, + value: controlledValue, + defaultValue, + onChange, + onOpenChange +}: ComboboxProps) { + const [open, setOpen] = useState(false) + const [internalValue, setInternalValue] = useState(defaultValue ?? "") + + const value = controlledValue ?? internalValue + const handleValueChange = (newValue: string) => { + setInternalValue(newValue) + onChange?.(newValue) + } + const name = "combobox" + + return ( + + + + + + + + + Niks gevonden + + {options.map((option: optionType) => ( + { + setInternalValue(currentValue === value ? "" : currentValue) + setOpen(false) + }} + > +

{option.label}

+ +
+ ))} +
+
+
+
+
+ ) +} \ No newline at end of file diff --git a/fdm-app/app/components/ui/calendar.tsx b/fdm-app/app/components/ui/calendar.tsx new file mode 100644 index 000000000..fd79dc38d --- /dev/null +++ b/fdm-app/app/components/ui/calendar.tsx @@ -0,0 +1,70 @@ +import * as React from "react" +import { DayPicker } from "react-day-picker" + +import { cn } from "~/lib/utils" +import { buttonVariants } from "~/components/ui/button" +import { ChevronLeftIcon, ChevronRightIcon } from "@radix-ui/react-icons" + +export type CalendarProps = React.ComponentProps + +function Calendar({ + className, + classNames, + showOutsideDays = true, + ...props +}: CalendarProps) { + return ( + .day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md" + : "[&:has([aria-selected])]:rounded-md" + ), + day: cn( + buttonVariants({ variant: "ghost" }), + "h-8 w-8 p-0 font-normal aria-selected:opacity-100" + ), + day_range_start: "day-range-start", + day_range_end: "day-range-end", + day_selected: + "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground", + day_today: "bg-accent text-accent-foreground", + day_outside: + "day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground", + day_disabled: "text-muted-foreground opacity-50", + day_range_middle: + "aria-selected:bg-accent aria-selected:text-accent-foreground", + day_hidden: "invisible", + ...classNames, + }} + components={{ + IconLeft: ({ ...props }) => , + IconRight: ({ ...props }) => , + }} + {...props} + /> + ) +} +Calendar.displayName = "Calendar" + +export { Calendar } diff --git a/fdm-app/app/components/ui/sidebar.tsx b/fdm-app/app/components/ui/sidebar.tsx index d8ada44c2..87ab81983 100644 --- a/fdm-app/app/components/ui/sidebar.tsx +++ b/fdm-app/app/components/ui/sidebar.tsx @@ -19,7 +19,7 @@ import { const SIDEBAR_COOKIE_NAME = "sidebar:state" const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7 -const SIDEBAR_WIDTH = "16rem" +const SIDEBAR_WIDTH = "18rem" const SIDEBAR_WIDTH_MOBILE = "18rem" const SIDEBAR_WIDTH_ICON = "3rem" const SIDEBAR_KEYBOARD_SHORTCUT = "b" diff --git a/fdm-app/app/components/ui/tabs.tsx b/fdm-app/app/components/ui/tabs.tsx new file mode 100644 index 000000000..93f291412 --- /dev/null +++ b/fdm-app/app/components/ui/tabs.tsx @@ -0,0 +1,53 @@ +import * as React from "react" +import * as TabsPrimitive from "@radix-ui/react-tabs" + +import { cn } from "~/lib/utils" + +const Tabs = TabsPrimitive.Root + +const TabsList = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsList.displayName = TabsPrimitive.List.displayName + +const TabsTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsTrigger.displayName = TabsPrimitive.Trigger.displayName + +const TabsContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsContent.displayName = TabsPrimitive.Content.displayName + +export { Tabs, TabsList, TabsTrigger, TabsContent } diff --git a/fdm-app/app/routes/app.addfarm.$b_id_farm.cultivations.$b_lu_catalogue.tsx b/fdm-app/app/routes/app.addfarm.$b_id_farm.cultivations.$b_lu_catalogue.tsx new file mode 100644 index 000000000..92c6865e6 --- /dev/null +++ b/fdm-app/app/routes/app.addfarm.$b_id_farm.cultivations.$b_lu_catalogue.tsx @@ -0,0 +1,136 @@ +import { type MetaFunction, type LoaderFunctionArgs, json } from "@remix-run/node"; +import { useLoaderData } from "@remix-run/react"; + +// Components +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" +import { ComboboxFertilizers } from "@/components/custom/combobox-fertilizers"; +import { ComboboxCultivations } from "@/components/custom/combobox-cultivations"; + +// Blocks +import Cultivation from "@/components/blocks/cultivation-plan"; + +// FDM +import { fdm } from "../services/fdm.server"; +import { getCultivationPlan, getCultivationsFromCatalogue, getFertilizersFromCatalogue } from "@svenvw/fdm-core"; + +// Meta +export const meta: MetaFunction = () => { + return [ + { title: "FDM App" }, + { name: "description", content: "Welcome to FDM!" }, + ]; +}; + +// Loader +export async function loader({ + request, params +}: LoaderFunctionArgs) { + + // Get the Id of the farm + const b_id_farm = params.b_id_farm + if (!b_id_farm) { + throw new Response("Farm ID is required", { status: 400, statusText: "Farm ID is required" }); + } + + // Get the cultivation + const b_lu_catalogue = params.b_lu_catalogue + if (!b_lu_catalogue) { + throw new Response("Cultivation catalogue ID is required", { status: 400, statusText: "Cultivation catalogue ID is required" }); + } + + // Get the cultivation details for this cultivation + const cultivationPlan = await getCultivationPlan(fdm, b_id_farm).catch(error => { + throw new Response("Failed to fetch cultivation plan", { status: 500, statusText: error.message }); + }); + + const cultivation = cultivationPlan.find(cultivation => cultivation.b_lu_catalogue === b_lu_catalogue); + if (!cultivation) { + throw new Response("Cultivation not found", { status: 404, statusText: "Cultivation not found" }); + } + + // Cultivation options + const cultivationsCatalogue = await getCultivationsFromCatalogue(fdm) + const cultivationOptions = cultivationsCatalogue.map(cultivation => { + return { + value: cultivation.b_lu_catalogue, + label: cultivation.b_lu_name + } + }) + + // Fertilizer options + const fertilizersCatalogue = await getFertilizersFromCatalogue(fdm) + const fertilizerOptions = fertilizersCatalogue.map(fertilizer => { + return { + value: fertilizer.p_id_catalogue, + label: fertilizer.p_name_nl + } + }) + + return json({ + b_lu_catalogue: b_lu_catalogue, + b_id_farm: b_id_farm, + cultivation: cultivation, + fertilizerOptions: fertilizerOptions, + cultivationOptions: cultivationOptions + }) + +} + +// Main +export default function Index() { + const loaderData = useLoaderData(); + + // Get field names + let fieldNames = loaderData.cultivation.fields.map(field => field.b_name) + if (fieldNames.length > 1) { + fieldNames = fieldNames.join(", ") + fieldNames = fieldNames.replace(/,(?=[^,]+$)/, ', en') //Replace last comma with and + } + + + return ( +
+
+

{loaderData.cultivation.b_lu_name}

+

+ {fieldNames} +

+
+ + + Hoofdgewas + Bemesting + Vanggewas + + + + + +
+

+ Vul de bemesting op bouwplanniveau in voor dit gewas. +

+ +
+
+ +
+

+ Teelt je een vanggewas na dit gewas? Voeg dat hier toe. +

+ +
+
+
+
+ + ); +} \ No newline at end of file diff --git a/fdm-app/app/routes/app.addfarm.$b_id_farm.cultivations.tsx b/fdm-app/app/routes/app.addfarm.$b_id_farm.cultivations.tsx new file mode 100644 index 000000000..4d6efce92 --- /dev/null +++ b/fdm-app/app/routes/app.addfarm.$b_id_farm.cultivations.tsx @@ -0,0 +1,127 @@ +import { type MetaFunction, type LoaderFunctionArgs, json } from "@remix-run/node"; +import { Outlet, useLoaderData } from "@remix-run/react"; + +// Components +import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbSeparator } from "@/components/ui/breadcrumb"; +import { Separator } from "@/components/ui/separator"; +import { SidebarInset, SidebarTrigger } from "@/components/ui/sidebar"; +import { Toaster } from "@/components/ui/toaster" + +// Blocks + + +// FDM +import { fdm } from "../services/fdm.server"; +import { getCultivationPlan, getFarm } from "@svenvw/fdm-core"; +import { Button } from "@/components/ui/button"; +import { SidebarNav } from "@/components/blocks/cultivation-plan"; + +// Meta +export const meta: MetaFunction = () => { + return [ + { title: "FDM App" }, + { name: "description", content: "Welcome to FDM!" }, + ]; +}; + +// Loader +export async function loader({ + request, params +}: LoaderFunctionArgs) { + + // Get the Id of the farm + const b_id_farm = params.b_id_farm + if (!b_id_farm) { + throw new Response("Farm ID is required", { status: 400 }); + } + const farm = await getFarm(fdm, b_id_farm) + .catch(error => { + throw new Response(`Failed to fetch farm: ${error.message}`, { + status: 404 + }); + }); + + if (!farm) { + throw new Response("Farm not found", { status: 404 }); + } + + // Get the cultivationPlan + const cultivationPlan = await getCultivationPlan(fdm, b_id_farm) + + // Create the sidenav + const sidebarNavItems = cultivationPlan.map(cultivation => { + return { + title: cultivation.b_lu_name, + href: `/app/addfarm/${b_id_farm}/cultivations/${cultivation.b_lu_catalogue}` + } + }) + + return json({ + cultivationPlan: cultivationPlan, + sidebarNavItems: sidebarNavItems, + b_id_farm: b_id_farm, + b_name_farm: farm.b_name_farm, + }) + +} + +// Main +export default function Index() { + const loaderData = useLoaderData(); + + return ( + +
+ + + + + + + Maak een bedrijf + + + + + + {loaderData.b_name_farm} + + + + + + Vul gewasinformatie in + + + + +
+
+
+
+
+

Bouwplan

+

+ Werk de eigenschappen per gewas in je bouwplan bij. +

+
+ + +
+ +
+ +
+
+
+
+ +
+ ); +} \ No newline at end of file diff --git a/fdm-app/app/routes/app.addfarm.$b_id_farm.fields.tsx b/fdm-app/app/routes/app.addfarm.$b_id_farm.fields.tsx index 7d9a6389b..a4ca707f6 100644 --- a/fdm-app/app/routes/app.addfarm.$b_id_farm.fields.tsx +++ b/fdm-app/app/routes/app.addfarm.$b_id_farm.fields.tsx @@ -1,5 +1,5 @@ -import { type MetaFunction, type ActionFunctionArgs, type LoaderFunctionArgs, redirect, json } from "@remix-run/node"; -import { useNavigation, useLoaderData } from "@remix-run/react"; +import { type MetaFunction, type LoaderFunctionArgs, json } from "@remix-run/node"; +import { useLoaderData } from "@remix-run/react"; import wkx from 'wkx' // Components @@ -13,7 +13,7 @@ import { Fields } from "@/components/blocks/fields"; // FDM import { fdm } from "../services/fdm.server"; -import { getFields, updateField } from "@svenvw/fdm-core"; +import { getCultivations, getCultivationsFromCatalogue, getFarm, getFields, updateField } from "@svenvw/fdm-core"; import { Button } from "@/components/ui/button"; // Meta @@ -28,33 +28,63 @@ export const meta: MetaFunction = () => { export async function loader({ request, params }: LoaderFunctionArgs) { + + // Get the Id and name of the farm const b_id_farm = params.b_id_farm if (!b_id_farm) { throw new Response("Farm ID is required", { status: 400 }); } + const farm = await getFarm(fdm, b_id_farm) + // Get the fields const fields = await getFields(fdm, b_id_farm) - const fieldsWithGeojson = fields.map(field => { + const fieldsWithGeojson = await Promise.all(fields.map(async field => { if (!field.b_geometry) { return field; } field.b_geojson = wkx.Geometry.parse(field.b_geometry).toGeoJSON() + + // Get cultivation of field + const cultivations = await getCultivations(fdm, field.b_id) + field.cultivations = cultivations[0] ?? { b_lu: "" }; + return field - }); + })); // Sort by created fieldsWithGeojson.sort((a, b) => new Date(a.created).getTime() - new Date(b.created).getTime()) + // Get the Mapbox Token const mapboxToken = process.env.MAPBOX_TOKEN; if (!mapboxToken) { throw new Error("MAPBOX_TOKEN environment variable is not set"); } + // Get the available cultivations + let cultivationOptions = []; + try { + const cultivationsCatalogue = await getCultivationsFromCatalogue(fdm) + cultivationOptions = cultivationsCatalogue + .filter(cultivation => cultivation?.b_lu_catalogue && cultivation?.b_lu_name) + .map(cultivation => ({ + value: cultivation.b_lu_catalogue, + label: `${cultivation.b_lu_name} (${cultivation.b_lu_catalogue.split('_')[1]})` + })); + } catch (error) { + console.error('Failed to fetch cultivations:', error); + throw new Response( + 'Failed to load cultivation options', + { status: 500 } + ); + } + return json({ fields: fieldsWithGeojson, + cultivationOptions: cultivationOptions, mapboxToken: mapboxToken, b_id_farm: b_id_farm, + b_name_farm: farm.b_name_farm, action: `/app/addfarm/${b_id_farm}/fields` }) @@ -64,7 +94,6 @@ export async function loader({ export default function Index() { const loaderData = useLoaderData(); - return (
@@ -78,6 +107,12 @@ export default function Index() { + + + {loaderData.b_name_farm} + + + Vul perceelsinformatie in @@ -85,17 +120,33 @@ export default function Index() { - - - -
- +
+
+
+

Percelen

+

+ Pas de naam aan, controleer het gewas en bodemtype +

+
+ + +
+ +
+ +
+
diff --git a/fdm-app/app/routes/app.addfarm.$b_farm_id.map.tsx b/fdm-app/app/routes/app.addfarm.$b_id_farm.map.tsx similarity index 54% rename from fdm-app/app/routes/app.addfarm.$b_farm_id.map.tsx rename to fdm-app/app/routes/app.addfarm.$b_id_farm.map.tsx index b0d7e02b0..b69ae3c5a 100644 --- a/fdm-app/app/routes/app.addfarm.$b_farm_id.map.tsx +++ b/fdm-app/app/routes/app.addfarm.$b_id_farm.map.tsx @@ -14,7 +14,7 @@ import { FieldsMap } from "@/components/blocks/fields-map"; // FDM import { fdm } from "../services/fdm.server"; -import { addField } from "@svenvw/fdm-core"; +import { addCultivation, addField, getFarm } from "@svenvw/fdm-core"; // Meta @@ -27,13 +27,25 @@ export const meta: MetaFunction = () => { // Loader export async function loader({ - request, + request, params }: LoaderFunctionArgs) { + // Get the Id and name of the farm + const b_id_farm = params.b_id_farm + if (!b_id_farm) { + throw new Response("Farm ID is required", { status: 400 }); + } + const farm = await getFarm(fdm, b_id_farm) + + if (!farm) { + throw new Response("Farm not found", { status: 404 }); + } + // Get the Mapbox token const mapboxToken = String(process.env.MAPBOX_TOKEN) return json({ + b_name_farm: farm.b_name_farm, mapboxToken: mapboxToken }) @@ -57,6 +69,12 @@ export default function Index() { + + + {loaderData.b_name_farm} + + + Selecteer percelen @@ -66,15 +84,35 @@ export default function Index() {
- - } > - {() => - } - +
+
+
+

Kaart

+

+ Zoom in en selecteer je percelen +

+
+ +
+ {/* + + */} +
+
+ +
+
+ + } > + {() => + } + +
+
); @@ -116,19 +154,42 @@ export async function action({ const data = await responseApi.json() response = data.data } else if (question === 'submit_selected_fields') { - const b_id_farm = params.b_farm_id + const b_id_farm = params.b_id_farm + + if (!b_id_farm) { + throw new Response("Farm ID is required", { status: 400 }); + } const selectedFields = JSON.parse(String(formData.get('selected_fields'))) // Add fields to farm - await selectedFields.map(async field => { - const b_id_name = 'Perceel ' + Number(parseInt(selectedFields.findIndex(x => x.properties.reference_id === field.properties.reference_id)) + parseInt("1")) + await Promise.all(selectedFields.map(async (field, index) => { + const b_id_name = 'Perceel ' + (index + 1) const b_id_source = field.properties.reference_id + const b_lu_catalogue = field.properties.b_lu + const currentYear = new Date().getFullYear() + const defaultDate = new Date(currentYear, 0, 1) + const b_manage_start = defaultDate.toISOString().split('T')[0] + const b_date_sowing = defaultDate.toISOString().split('T')[0] + + // Validate dates + if (new Date(b_manage_start) > new Date() || new Date(b_date_sowing) > new Date()) { + throw new Error('Future dates are not allowed') + } + if (new Date(b_date_sowing) < new Date(b_manage_start)) { + throw new Error('Sowing should happen after field started to be managed') + } const fieldGeometry = wkx.Geometry.parseGeoJSON(field.geometry) const b_geometry = fieldGeometry.toWkt() - const b_id = await addField(fdm, b_id_farm, b_id_name, b_id_source, b_geometry, null, null, null) - return b_id - }) + try { + const b_id = await addField(fdm, b_id_farm, b_id_name, b_id_source, b_geometry, b_manage_start, null, null) + const b_lu = await addCultivation(fdm, b_lu_catalogue, b_id, b_date_sowing) + return { b_id, b_lu } + } catch (error) { + console.error(`Failed to process field ${b_id_name}:`, error) + throw new Error(`Failed to add field ${b_id_name}: ${error.message}`) + } + })) return redirect(`../addfarm/${b_id_farm}/fields`) diff --git a/fdm-app/app/routes/signup.tsx b/fdm-app/app/routes/signup.tsx index 97b037666..aadc117e2 100644 --- a/fdm-app/app/routes/signup.tsx +++ b/fdm-app/app/routes/signup.tsx @@ -66,16 +66,16 @@ export default function SignUp() {

- MINAS2 + Nutriëntenbalans

- Mineralenbalans op bedrijfsniveau + Aanvoer en afvoer van nutriënten op bedrijfsniveau

diff --git a/fdm-app/app/services/fdm.server.tsx b/fdm-app/app/services/fdm.server.tsx index 8b31ce6a9..318d1d944 100644 --- a/fdm-app/app/services/fdm.server.tsx +++ b/fdm-app/app/services/fdm.server.tsx @@ -2,7 +2,7 @@ import { drizzle } from 'drizzle-orm/postgres-js' import { migrate } from 'drizzle-orm/postgres-js/migrator' import { fdmSchema as schema } from '@svenvw/fdm-core' -import {extendFertilizersCatalogue} from '@svenvw/fdm-data' +import {extendFertilizersCatalogue, extendCultivationsCatalogue} from '@svenvw/fdm-data' // Get credentials to connect to db const host = process.env.POSTGRES_HOST ?? @@ -33,4 +33,15 @@ export const fdm = drizzle({ await migrate(fdm, { migrationsFolder: migrationsFolderPath, migrationsSchema: 'fdm-migrations' }) // Add SRM fertilzers to catalogue -await extendFertilizersCatalogue(fdm, 'srm') \ No newline at end of file +const FERTILIZERS_CATALOGUE = 'srm' +const CULTIVATIONS_CATALOGUE = 'brp' + +try { + await Promise.all([ + extendFertilizersCatalogue(fdm, FERTILIZERS_CATALOGUE), + extendCultivationsCatalogue(fdm, CULTIVATIONS_CATALOGUE) + ]); +} catch (error) { + console.error('Failed to extend catalogues:', error); + throw error; +} \ No newline at end of file diff --git a/fdm-app/eslint.config.js b/fdm-app/eslint.config.js new file mode 100644 index 000000000..0d2237d34 --- /dev/null +++ b/fdm-app/eslint.config.js @@ -0,0 +1,10 @@ +import globals from 'globals' +import pluginJs from '@eslint/js' +import tseslint from 'typescript-eslint' + +export default [ + { files: ['app/**/*.{js,mjs,cjs,ts}'] }, + { languageOptions: { globals: { ...globals.browser, ...globals.node } } }, + pluginJs.configs.recommended, + ...tseslint.configs.recommended +] diff --git a/fdm-app/package.json b/fdm-app/package.json index e8846f1e8..e3b0a05d5 100644 --- a/fdm-app/package.json +++ b/fdm-app/package.json @@ -1,6 +1,6 @@ { "name": "@svenvw/fdm-app", - "version": "0.1.0", + "version": "0.2.0", "private": true, "sideEffects": false, "type": "module", @@ -24,20 +24,21 @@ "@radix-ui/react-select": "^2.1.2", "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-tabs": "^1.1.1", "@radix-ui/react-toast": "^1.2.2", "@radix-ui/react-tooltip": "^1.1.3", "@remix-run/node": "^2.13.1", "@remix-run/react": "^2.13.1", "@remix-run/serve": "^2.13.1", - "@types/geojson": "^7946.0.14", - "@types/mapbox-gl": "^3.4.1", "class-variance-authority": "^0.7.0", "clsx": "^2.0.0", "cmdk": "1.0.0", + "date-fns": "^4.1.0", "isbot": "^4.1.0", "lucide-react": "^0.453.0", "mapbox-gl": "^3.7.0", "react": "^18.2.0", + "react-day-picker": "8.10.1", "react-dom": "^18.2.0", "react-map-gl": "^7.1.7", "remix-utils": "^7.7.0", @@ -46,34 +47,31 @@ "wkx": "^0.5.0" }, "devDependencies": { - "@dotenvx/dotenvx": "^1.20.0", + "@dotenvx/dotenvx": "^1.20.1", + "@eslint/js": "^9.13.0", "@remix-run/dev": "^2.13.1", "@svenvw/fdm-core": "workspace:*", "@svenvw/fdm-data": "workspace:*", + "@types/geojson": "^7946.0.14", + "@types/mapbox-gl": "^3.4.1", "@types/mapbox__geojson-extent": "^1.0.3", "@types/react": "^18.2.20", "@types/react-dom": "^18.2.7", - "@typescript-eslint/eslint-plugin": "^6.7.4", - "@typescript-eslint/parser": "^6.7.4", "autoprefixer": "^10.4.19", "drizzle-orm": "catalog:", - "eslint": "^8.38.0", - "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-jsx-a11y": "^6.7.1", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", + "eslint": "^9.13.0", "postcss": "^8.4.38", "tailwindcss": "^3.4.4", - "typescript": "^5.1.6", - "vite": "^5.1.0", + "typescript": "^5.6.3", + "typescript-eslint": "^8.11.0", + "vite": "^5.4.10", "vite-tsconfig-paths": "^4.2.1" }, "peerDependencies": { - "@svenvw/fdm-core": "workspace:>=0.5.0", - "@svenvw/fdm-data": "workspace:>=0.3.0" + "@svenvw/fdm-core": "workspace:>=0.6.0", + "@svenvw/fdm-data": "workspace:>=0.4.0" }, "engines": { "node": ">=20.0.0" } -} \ No newline at end of file +} diff --git a/fdm-calculator/package.json b/fdm-calculator/package.json index 443b6aede..5da7f6149 100644 --- a/fdm-calculator/package.json +++ b/fdm-calculator/package.json @@ -55,5 +55,5 @@ "peerDependencies": { "@svenvw/fdm-core": "workspace:>=0.3.1" }, - "packageManager": "pnpm@9.12.2" + "packageManager": "pnpm@9.14.2" } \ No newline at end of file diff --git a/fdm-core/.env.example b/fdm-core/.env.example new file mode 100644 index 000000000..1a24edd44 --- /dev/null +++ b/fdm-core/.env.example @@ -0,0 +1,15 @@ +# DB configuration +# The hostname or IP address of the PostgreSQL database server. +POSTGRES_HOST= + +# The port number on which the PostgreSQL database server is listening. Defaults to 5432 if not specified. +POSTGRES_PORT= + +# The name of the PostgreSQL database to connect to. +POSTGRES_DB= + +# The username used to authenticate with the PostgreSQL database server. +POSTGRES_USER= + +# The password used to authenticate with the PostgreSQL database server. Ensure this is stored securely and not exposed in version control. +POSTGRES_PASSWORD= \ No newline at end of file diff --git a/fdm-core/CHANGELOG.md b/fdm-core/CHANGELOG.md index 0134a7c1b..58e5d10d3 100644 --- a/fdm-core/CHANGELOG.md +++ b/fdm-core/CHANGELOG.md @@ -1,5 +1,37 @@ # Changelog fdm-core +## 0.6.0 + +### Minor Changes + +- c316d5c: Add `b_area` with the area of the field in hectares to the output of `getField` and `getFields` +- b1dea77: Export type `FdmServerType` +- 49aa60c: Add cultivation management functionality with the following features: + + - Catalogue Management: + + - `addCultivationToCatalogue`: Adds new cultivation entries to the catalogue + - `getCultivationsFromCatalogue`: Retrieves available cultivations + - `extendCultivationsCatalogue`: Extends catalogue with BRP data (partially implemented) + + - Field Operations: + - `addCultivation`: Associates a cultivation with a field + - `removeCultivation`: Removes a cultivation association + - `getCultivation`: Retrieves specific cultivation details + - `getCultivations`: Lists cultivations for a field + - `getCultivationPlan`: Retrieves farm-level cultivation planning + + Known limitations: + + - BRP catalogue integration needs additional work (see index.test.ts) + - Edge case handling for duplicate entries and invalid data pending + - Test coverage to be expanded for error scenarios + +### Patch Changes + +- 35c55e1: Add example configuration file as `.env.example` +- 6694029: Upgrade `pnpm` to 9.14.2 + ## 0.5.0 ### Minor Changes diff --git a/fdm-core/package.json b/fdm-core/package.json index e79609201..9f85eea3f 100644 --- a/fdm-core/package.json +++ b/fdm-core/package.json @@ -1,7 +1,7 @@ { "name": "@svenvw/fdm-core", "private": false, - "version": "0.5.0", + "version": "0.6.0", "description": "Interface for the Farm Data Model", "license": "MIT", "homepage": "https://svenvw.github.io/fdm/", @@ -74,8 +74,8 @@ "postgres": "^3.4.4", "wkx": "^0.5.0" }, - "packageManager": "pnpm@9.12.2", + "packageManager": "pnpm@9.14.2", "publishConfig": { "registry": "https://npm.pkg.github.com" } -} \ No newline at end of file +} diff --git a/fdm-core/pnpm-lock.yaml b/fdm-core/pnpm-lock.yaml deleted file mode 100644 index 411d55593..000000000 --- a/fdm-core/pnpm-lock.yaml +++ /dev/null @@ -1,3448 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@electric-sql/pglite': - specifier: ^0.2.11 - version: 0.2.12 - drizzle-graphql: - specifier: ^0.8.5 - version: 0.8.5(drizzle-orm@0.35.1(@electric-sql/pglite@0.2.12)(postgres@3.4.4))(graphql@16.9.0) - drizzle-orm: - specifier: ^0.35.1 - version: 0.35.1(@electric-sql/pglite@0.2.12)(postgres@3.4.4) - graphql: - specifier: ^16.9.0 - version: 16.9.0 - nanoid: - specifier: ^5.0.7 - version: 5.0.7 - postgres: - specifier: ^3.4.4 - version: 3.4.4 - devDependencies: - '@eslint/js': - specifier: ^9.9.0 - version: 9.12.0 - '@types/node': - specifier: ^22.7.2 - version: 22.7.5 - dotenv: - specifier: ^16.4.5 - version: 16.4.5 - drizzle-kit: - specifier: ^0.26.2 - version: 0.26.2 - eslint: - specifier: ^9.9.0 - version: 9.12.0 - fs-extra: - specifier: ^11.2.0 - version: 11.2.0 - globals: - specifier: ^15.9.0 - version: 15.11.0 - typedoc: - specifier: ^0.26.5 - version: 0.26.10(typescript@5.6.3) - typedoc-plugin-missing-exports: - specifier: ^3.0.0 - version: 3.0.0(typedoc@0.26.10(typescript@5.6.3)) - typescript: - specifier: ^5.5.3 - version: 5.6.3 - typescript-eslint: - specifier: ^8.1.0 - version: 8.9.0(eslint@9.12.0)(typescript@5.6.3) - vite: - specifier: ^5.4.0 - version: 5.4.9(@types/node@22.7.5) - vite-plugin-dts: - specifier: ^4.0.2 - version: 4.2.4(@types/node@22.7.5)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@22.7.5)) - vitest: - specifier: ^2.0.5 - version: 2.1.3(@types/node@22.7.5) - -packages: - - '@babel/helper-string-parser@7.25.7': - resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.25.7': - resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.25.8': - resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/types@7.25.8': - resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} - engines: {node: '>=6.9.0'} - - '@drizzle-team/brocli@0.10.1': - resolution: {integrity: sha512-AHy0vjc+n/4w/8Mif+w86qpppHuF3AyXbcWW+R/W7GNA3F5/p2nuhlkCJaTXSLZheB4l1rtHzOfr9A7NwoR/Zg==} - - '@electric-sql/pglite@0.2.12': - resolution: {integrity: sha512-J/X42ujcoFEbOkgRyoNqZB5qcqrnJRWVlwpH3fKYoJkTz49N91uAK/rDSSG/85WRas9nC9mdV4FnMTxnQWE/rw==} - - '@esbuild-kit/core-utils@3.3.2': - resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} - deprecated: 'Merged into tsx: https://tsx.is' - - '@esbuild-kit/esm-loader@2.6.5': - resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} - deprecated: 'Merged into tsx: https://tsx.is' - - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.18.20': - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.18.20': - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.18.20': - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.18.20': - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.18.20': - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.18.20': - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.18.20': - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.18.20': - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.18.20': - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.18.20': - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.18.20': - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.18.20': - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.18.20': - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.18.20': - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.18.20': - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.18.20': - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.18.20': - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.18.20': - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.18.20': - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.18.20': - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.18.20': - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.18.20': - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.11.1': - resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/config-array@0.18.0': - resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.6.0': - resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/eslintrc@3.1.0': - resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.12.0': - resolution: {integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.4': - resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.2.0': - resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@humanfs/core@0.19.0': - resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.5': - resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} - engines: {node: '>=18.18.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@microsoft/api-extractor-model@7.29.6': - resolution: {integrity: sha512-gC0KGtrZvxzf/Rt9oMYD2dHvtN/1KPEYsrQPyMKhLHnlVuO/f4AFN3E4toqZzD2pt4LhkKoYmL2H9tX3yCOyRw==} - - '@microsoft/api-extractor@7.47.7': - resolution: {integrity: sha512-fNiD3G55ZJGhPOBPMKD/enozj8yxJSYyVJWxRWdcUtw842rvthDHJgUWq9gXQTensFlMHv2wGuCjjivPv53j0A==} - hasBin: true - - '@microsoft/tsdoc-config@0.17.0': - resolution: {integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==} - - '@microsoft/tsdoc@0.15.0': - resolution: {integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@rollup/pluginutils@5.1.2': - resolution: {integrity: sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/rollup-android-arm-eabi@4.24.0': - resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.24.0': - resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.24.0': - resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.24.0': - resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.24.0': - resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.24.0': - resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.24.0': - resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': - resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.24.0': - resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.24.0': - resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.24.0': - resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.24.0': - resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.24.0': - resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.24.0': - resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.24.0': - resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} - cpu: [x64] - os: [win32] - - '@rushstack/node-core-library@5.7.0': - resolution: {integrity: sha512-Ff9Cz/YlWu9ce4dmqNBZpA45AEya04XaBFIjV7xTVeEf+y/kTjEasmozqFELXlNG4ROdevss75JrrZ5WgufDkQ==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/rig-package@0.5.3': - resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} - - '@rushstack/terminal@0.14.0': - resolution: {integrity: sha512-juTKMAMpTIJKudeFkG5slD8Z/LHwNwGZLtU441l/u82XdTBfsP+LbGKJLCNwP5se+DMCT55GB8x9p6+C4UL7jw==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/ts-command-line@4.22.6': - resolution: {integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==} - - '@shikijs/core@1.22.0': - resolution: {integrity: sha512-S8sMe4q71TJAW+qG93s5VaiihujRK6rqDFqBnxqvga/3LvqHEnxqBIOPkt//IdXVtHkQWKu4nOQNk0uBGicU7Q==} - - '@shikijs/engine-javascript@1.22.0': - resolution: {integrity: sha512-AeEtF4Gcck2dwBqCFUKYfsCq0s+eEbCEbkUuFou53NZ0sTGnJnJ/05KHQFZxpii5HMXbocV9URYVowOP2wH5kw==} - - '@shikijs/engine-oniguruma@1.22.0': - resolution: {integrity: sha512-5iBVjhu/DYs1HB0BKsRRFipRrD7rqjxlWTj4F2Pf+nQSPqc3kcyqFFeZXnBMzDf0HdqaFVvhDRAGiYNvyLP+Mw==} - - '@shikijs/types@1.22.0': - resolution: {integrity: sha512-Fw/Nr7FGFhlQqHfxzZY8Cwtwk5E9nKDUgeLjZgt3UuhcM3yJR9xj3ZGNravZZok8XmEZMiYkSMTPlPkULB8nww==} - - '@shikijs/vscode-textmate@9.3.0': - resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} - - '@types/argparse@1.0.38': - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - - '@types/node@22.7.5': - resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} - - '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - - '@typescript-eslint/eslint-plugin@8.9.0': - resolution: {integrity: sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@8.9.0': - resolution: {integrity: sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@8.9.0': - resolution: {integrity: sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/type-utils@8.9.0': - resolution: {integrity: sha512-JD+/pCqlKqAk5961vxCluK+clkppHY07IbV3vett97KOV+8C6l+CPEPwpUuiMwgbOz/qrN3Ke4zzjqbT+ls+1Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@8.9.0': - resolution: {integrity: sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.9.0': - resolution: {integrity: sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@8.9.0': - resolution: {integrity: sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - - '@typescript-eslint/visitor-keys@8.9.0': - resolution: {integrity: sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@vitest/expect@2.1.3': - resolution: {integrity: sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==} - - '@vitest/mocker@2.1.3': - resolution: {integrity: sha512-eSpdY/eJDuOvuTA3ASzCjdithHa+GIF1L4PqtEELl6Qa3XafdMLBpBlZCIUCX2J+Q6sNmjmxtosAG62fK4BlqQ==} - peerDependencies: - '@vitest/spy': 2.1.3 - msw: ^2.3.5 - vite: ^5.0.0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - - '@vitest/pretty-format@2.1.3': - resolution: {integrity: sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==} - - '@vitest/runner@2.1.3': - resolution: {integrity: sha512-JGzpWqmFJ4fq5ZKHtVO3Xuy1iF2rHGV4d/pdzgkYHm1+gOzNZtqjvyiaDGJytRyMU54qkxpNzCx+PErzJ1/JqQ==} - - '@vitest/snapshot@2.1.3': - resolution: {integrity: sha512-qWC2mWc7VAXmjAkEKxrScWHWFyCQx/cmiZtuGqMi+WwqQJ2iURsVY4ZfAK6dVo6K2smKRU6l3BPwqEBvhnpQGg==} - - '@vitest/spy@2.1.3': - resolution: {integrity: sha512-Nb2UzbcUswzeSP7JksMDaqsI43Sj5+Kry6ry6jQJT4b5gAK+NS9NED6mDb8FlMRCX8m5guaHCDZmqYMMWRy5nQ==} - - '@vitest/utils@2.1.3': - resolution: {integrity: sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==} - - '@volar/language-core@2.4.6': - resolution: {integrity: sha512-FxUfxaB8sCqvY46YjyAAV6c3mMIq/NWQMVvJ+uS4yxr1KzOvyg61gAuOnNvgCvO4TZ7HcLExBEsWcDu4+K4E8A==} - - '@volar/source-map@2.4.6': - resolution: {integrity: sha512-Nsh7UW2ruK+uURIPzjJgF0YRGP5CX9nQHypA2OMqdM2FKy7rh+uv3XgPnWPw30JADbKvZ5HuBzG4gSbVDYVtiw==} - - '@volar/typescript@2.4.6': - resolution: {integrity: sha512-NMIrA7y5OOqddL9VtngPWYmdQU03htNKFtAYidbYfWA0TOhyGVd9tfcP4TsLWQ+RBWDZCbBqsr8xzU0ZOxYTCQ==} - - '@vue/compiler-core@3.5.12': - resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==} - - '@vue/compiler-dom@3.5.12': - resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==} - - '@vue/compiler-vue2@2.7.16': - resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} - - '@vue/language-core@2.1.6': - resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@vue/shared@3.5.12': - resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@8.13.0: - resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} - engines: {node: '>=0.4.0'} - hasBin: true - - ajv-draft-04@1.0.0: - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} - peerDependencies: - ajv: ^8.5.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-formats@3.0.1: - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - - ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - - chai@5.1.1: - resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} - engines: {node: '>=12'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - - check-error@2.1.1: - resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} - engines: {node: '>= 16'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - - compare-versions@6.1.1: - resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} - - computeds@0.0.1: - resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - de-indent@1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - deep-eql@5.0.2: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} - engines: {node: '>=6'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} - - drizzle-graphql@0.8.5: - resolution: {integrity: sha512-MAqBwmj/kSZWIUQdYCsYtoZWxxVRcXWkhsqt0b6fY1XC171WHBK/jZiVWepO04tDsdaDuTvzlufDHJqNl3VVWQ==} - peerDependencies: - drizzle-orm: '>=0.30.9' - graphql: '>=16.3.0' - - drizzle-kit@0.26.2: - resolution: {integrity: sha512-cMq8omEKywjIy5KcqUo6LvEFxkl8/zYHsgYjFVXjmPWWtuW4blcz+YW9+oIhoaALgs2ebRjzXwsJgN9i6P49Dw==} - hasBin: true - - drizzle-orm@0.35.1: - resolution: {integrity: sha512-HQxDdYuXlZFuvDPztlUIzrX8TqWa/Ej6uN6L0hkbuGL4slexOUMc3u4nXVU15RQ5QYbk+uLQnR6v1+OIrdCTXQ==} - peerDependencies: - '@aws-sdk/client-rds-data': '>=3' - '@cloudflare/workers-types': '>=3' - '@electric-sql/pglite': '>=0.1.1' - '@libsql/client': '>=0.10.0' - '@neondatabase/serverless': '>=0.1' - '@op-engineering/op-sqlite': '>=2' - '@opentelemetry/api': ^1.4.1 - '@planetscale/database': '>=1' - '@prisma/client': '*' - '@tidbcloud/serverless': '*' - '@types/better-sqlite3': '*' - '@types/pg': '*' - '@types/react': '>=18' - '@types/sql.js': '*' - '@vercel/postgres': '>=0.8.0' - '@xata.io/client': '*' - better-sqlite3: '>=7' - bun-types: '*' - expo-sqlite: '>=13.2.0' - knex: '*' - kysely: '*' - mysql2: '>=2' - pg: '>=8' - postgres: '>=3' - prisma: '*' - react: '>=18' - sql.js: '>=1' - sqlite3: '>=5' - peerDependenciesMeta: - '@aws-sdk/client-rds-data': - optional: true - '@cloudflare/workers-types': - optional: true - '@electric-sql/pglite': - optional: true - '@libsql/client': - optional: true - '@neondatabase/serverless': - optional: true - '@op-engineering/op-sqlite': - optional: true - '@opentelemetry/api': - optional: true - '@planetscale/database': - optional: true - '@prisma/client': - optional: true - '@tidbcloud/serverless': - optional: true - '@types/better-sqlite3': - optional: true - '@types/pg': - optional: true - '@types/react': - optional: true - '@types/sql.js': - optional: true - '@vercel/postgres': - optional: true - '@xata.io/client': - optional: true - better-sqlite3: - optional: true - bun-types: - optional: true - expo-sqlite: - optional: true - knex: - optional: true - kysely: - optional: true - mysql2: - optional: true - pg: - optional: true - postgres: - optional: true - prisma: - optional: true - react: - optional: true - sql.js: - optional: true - sqlite3: - optional: true - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - esbuild-register@3.6.0: - resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} - peerDependencies: - esbuild: '>=0.12 <1' - - esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-scope@8.1.0: - resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@4.1.0: - resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@9.12.0: - resolution: {integrity: sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - espree@10.2.0: - resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - - fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - get-tsconfig@4.8.1: - resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - - globals@15.11.0: - resolution: {integrity: sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==} - engines: {node: '>=18'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - graphql-parse-resolve-info@4.13.0: - resolution: {integrity: sha512-VVJ1DdHYcR7hwOGQKNH+QTzuNgsLA8l/y436HtP9YHoX6nmwXRWq3xWthU3autMysXdm0fQUbhTZCx0W9ICozw==} - engines: {node: '>=8.6'} - peerDependencies: - graphql: '>=0.9 <0.14 || ^14.0.2 || ^15.4.0 || ^16.3.0' - - graphql@16.9.0: - resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} - engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hast-util-to-html@9.0.3: - resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} - - hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - is-core-module@2.15.1: - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} - engines: {node: '>= 0.4'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - loupe@3.1.2: - resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - lunr@2.3.9: - resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} - - magic-string@0.30.12: - resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} - - markdown-it@14.1.0: - resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} - hasBin: true - - mdast-util-to-hast@13.2.0: - resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} - - mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} - - micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - - micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} - - micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - - micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - mlly@1.7.2: - resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nanoid@5.0.7: - resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} - engines: {node: ^18 || >=20} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - oniguruma-to-js@0.4.3: - resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} - - picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pkg-types@1.2.1: - resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} - - postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} - engines: {node: ^10 || ^12 || >=14} - - postgres@3.4.4: - resolution: {integrity: sha512-IbyN+9KslkqcXa8AO9fxpk97PA4pzewvpi2B3Dwy9u4zpV32QicaEdgmF3eSQUzdRk7ttDHQejNgAEr4XoeH4A==} - engines: {node: '>=12'} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - - punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} - engines: {node: '>=6'} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - regex@4.3.3: - resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rollup@4.24.0: - resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shiki@1.22.0: - resolution: {integrity: sha512-/t5LlhNs+UOKQCYBtl5ZsH/Vclz73GIqT2yQsCBygr8L/ppTdmpL4w3kPLoZJbMKVWtoG77Ue1feOjZfDxvMkw==} - - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - - string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - - stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - - tinyexec@0.3.1: - resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} - - tinypool@1.0.1: - resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==} - engines: {node: ^18.0.0 || >=20.0.0} - - tinyrainbow@1.2.0: - resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} - engines: {node: '>=14.0.0'} - - tinyspy@3.0.2: - resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} - engines: {node: '>=14.0.0'} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - tslib@2.8.0: - resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - typedoc-plugin-missing-exports@3.0.0: - resolution: {integrity: sha512-R7D8fYrK34mBFZSlF1EqJxfqiUSlQSmyrCiQgTQD52nNm6+kUtqwiaqaNkuJ2rA2wBgWFecUA8JzHT7x2r7ePg==} - peerDependencies: - typedoc: 0.26.x - - typedoc@0.26.10: - resolution: {integrity: sha512-xLmVKJ8S21t+JeuQLNueebEuTVphx6IrP06CdV7+0WVflUSW3SPmR+h1fnWVdAR/FQePEgsSWCUHXqKKjzuUAw==} - engines: {node: '>= 18'} - hasBin: true - peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x - - typescript-eslint@8.9.0: - resolution: {integrity: sha512-AuD/FXGYRQyqyOBCpNLldMlsCGvmDNxptQ3Dp58/NXeB+FqyvTfXmMyba3PYa0Vi9ybnj7G8S/yd/4Cw8y47eA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - typescript@5.4.2: - resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} - engines: {node: '>=14.17'} - hasBin: true - - typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} - engines: {node: '>=14.17'} - hasBin: true - - uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - - ufo@1.5.4: - resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - - unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - - vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - - vite-node@2.1.3: - resolution: {integrity: sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - - vite-plugin-dts@4.2.4: - resolution: {integrity: sha512-REcYoxO90Pi8c0P1J7XAa/nVwNVGkX2eYkBEIfFSfcKE4g1W8sB0R23a7SU3aLEMfdOdb0SVHq3JlJ+Qb6gjgA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - typescript: '*' - vite: '*' - peerDependenciesMeta: - vite: - optional: true - - vite@5.4.9: - resolution: {integrity: sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vitest@2.1.3: - resolution: {integrity: sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.1.3 - '@vitest/ui': 2.1.3 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yaml@2.6.0: - resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} - engines: {node: '>= 14'} - hasBin: true - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -snapshots: - - '@babel/helper-string-parser@7.25.7': {} - - '@babel/helper-validator-identifier@7.25.7': {} - - '@babel/parser@7.25.8': - dependencies: - '@babel/types': 7.25.8 - - '@babel/types@7.25.8': - dependencies: - '@babel/helper-string-parser': 7.25.7 - '@babel/helper-validator-identifier': 7.25.7 - to-fast-properties: 2.0.0 - - '@drizzle-team/brocli@0.10.1': {} - - '@electric-sql/pglite@0.2.12': {} - - '@esbuild-kit/core-utils@3.3.2': - dependencies: - esbuild: 0.18.20 - source-map-support: 0.5.21 - - '@esbuild-kit/esm-loader@2.6.5': - dependencies: - '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.8.1 - - '@esbuild/aix-ppc64@0.19.12': - optional: true - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.18.20': - optional: true - - '@esbuild/android-arm64@0.19.12': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm@0.18.20': - optional: true - - '@esbuild/android-arm@0.19.12': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-x64@0.18.20': - optional: true - - '@esbuild/android-x64@0.19.12': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.18.20': - optional: true - - '@esbuild/darwin-arm64@0.19.12': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.18.20': - optional: true - - '@esbuild/darwin-x64@0.19.12': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.18.20': - optional: true - - '@esbuild/freebsd-arm64@0.19.12': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.18.20': - optional: true - - '@esbuild/freebsd-x64@0.19.12': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.18.20': - optional: true - - '@esbuild/linux-arm64@0.19.12': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm@0.18.20': - optional: true - - '@esbuild/linux-arm@0.19.12': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.18.20': - optional: true - - '@esbuild/linux-ia32@0.19.12': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.18.20': - optional: true - - '@esbuild/linux-loong64@0.19.12': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.18.20': - optional: true - - '@esbuild/linux-mips64el@0.19.12': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.18.20': - optional: true - - '@esbuild/linux-ppc64@0.19.12': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.18.20': - optional: true - - '@esbuild/linux-riscv64@0.19.12': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-s390x@0.18.20': - optional: true - - '@esbuild/linux-s390x@0.19.12': - optional: true - - '@esbuild/linux-s390x@0.21.5': - optional: true - - '@esbuild/linux-x64@0.18.20': - optional: true - - '@esbuild/linux-x64@0.19.12': - optional: true - - '@esbuild/linux-x64@0.21.5': - optional: true - - '@esbuild/netbsd-x64@0.18.20': - optional: true - - '@esbuild/netbsd-x64@0.19.12': - optional: true - - '@esbuild/netbsd-x64@0.21.5': - optional: true - - '@esbuild/openbsd-x64@0.18.20': - optional: true - - '@esbuild/openbsd-x64@0.19.12': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - - '@esbuild/sunos-x64@0.18.20': - optional: true - - '@esbuild/sunos-x64@0.19.12': - optional: true - - '@esbuild/sunos-x64@0.21.5': - optional: true - - '@esbuild/win32-arm64@0.18.20': - optional: true - - '@esbuild/win32-arm64@0.19.12': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - - '@esbuild/win32-ia32@0.18.20': - optional: true - - '@esbuild/win32-ia32@0.19.12': - optional: true - - '@esbuild/win32-ia32@0.21.5': - optional: true - - '@esbuild/win32-x64@0.18.20': - optional: true - - '@esbuild/win32-x64@0.19.12': - optional: true - - '@esbuild/win32-x64@0.21.5': - optional: true - - '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0)': - dependencies: - eslint: 9.12.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.11.1': {} - - '@eslint/config-array@0.18.0': - dependencies: - '@eslint/object-schema': 2.1.4 - debug: 4.3.7 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/core@0.6.0': {} - - '@eslint/eslintrc@3.1.0': - dependencies: - ajv: 6.12.6 - debug: 4.3.7 - espree: 10.2.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@9.12.0': {} - - '@eslint/object-schema@2.1.4': {} - - '@eslint/plugin-kit@0.2.0': - dependencies: - levn: 0.4.1 - - '@humanfs/core@0.19.0': {} - - '@humanfs/node@0.16.5': - dependencies: - '@humanfs/core': 0.19.0 - '@humanwhocodes/retry': 0.3.1 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.3.1': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@microsoft/api-extractor-model@7.29.6(@types/node@22.7.5)': - dependencies: - '@microsoft/tsdoc': 0.15.0 - '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.7.0(@types/node@22.7.5) - transitivePeerDependencies: - - '@types/node' - - '@microsoft/api-extractor@7.47.7(@types/node@22.7.5)': - dependencies: - '@microsoft/api-extractor-model': 7.29.6(@types/node@22.7.5) - '@microsoft/tsdoc': 0.15.0 - '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.7.0(@types/node@22.7.5) - '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.0(@types/node@22.7.5) - '@rushstack/ts-command-line': 4.22.6(@types/node@22.7.5) - lodash: 4.17.21 - minimatch: 3.0.8 - resolve: 1.22.8 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.4.2 - transitivePeerDependencies: - - '@types/node' - - '@microsoft/tsdoc-config@0.17.0': - dependencies: - '@microsoft/tsdoc': 0.15.0 - ajv: 8.12.0 - jju: 1.4.0 - resolve: 1.22.8 - - '@microsoft/tsdoc@0.15.0': {} - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@rollup/pluginutils@5.1.2(rollup@4.24.0)': - dependencies: - '@types/estree': 1.0.6 - estree-walker: 2.0.2 - picomatch: 2.3.1 - optionalDependencies: - rollup: 4.24.0 - - '@rollup/rollup-android-arm-eabi@4.24.0': - optional: true - - '@rollup/rollup-android-arm64@4.24.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.24.0': - optional: true - - '@rollup/rollup-darwin-x64@4.24.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.24.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.24.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.24.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.24.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.24.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.24.0': - optional: true - - '@rushstack/node-core-library@5.7.0(@types/node@22.7.5)': - dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.8 - semver: 7.5.4 - optionalDependencies: - '@types/node': 22.7.5 - - '@rushstack/rig-package@0.5.3': - dependencies: - resolve: 1.22.8 - strip-json-comments: 3.1.1 - - '@rushstack/terminal@0.14.0(@types/node@22.7.5)': - dependencies: - '@rushstack/node-core-library': 5.7.0(@types/node@22.7.5) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 22.7.5 - - '@rushstack/ts-command-line@4.22.6(@types/node@22.7.5)': - dependencies: - '@rushstack/terminal': 0.14.0(@types/node@22.7.5) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - - '@shikijs/core@1.22.0': - dependencies: - '@shikijs/engine-javascript': 1.22.0 - '@shikijs/engine-oniguruma': 1.22.0 - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.3 - - '@shikijs/engine-javascript@1.22.0': - dependencies: - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 - oniguruma-to-js: 0.4.3 - - '@shikijs/engine-oniguruma@1.22.0': - dependencies: - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 - - '@shikijs/types@1.22.0': - dependencies: - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 - - '@shikijs/vscode-textmate@9.3.0': {} - - '@types/argparse@1.0.38': {} - - '@types/estree@1.0.6': {} - - '@types/hast@3.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/json-schema@7.0.15': {} - - '@types/mdast@4.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/node@22.7.5': - dependencies: - undici-types: 6.19.8 - - '@types/unist@3.0.3': {} - - '@typescript-eslint/eslint-plugin@8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3)': - dependencies: - '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.9.0(eslint@9.12.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.9.0 - '@typescript-eslint/type-utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.9.0 - eslint: 9.12.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.9.0 - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.9.0 - debug: 4.3.7 - eslint: 9.12.0 - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.9.0': - dependencies: - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/visitor-keys': 8.9.0 - - '@typescript-eslint/type-utils@8.9.0(eslint@9.12.0)(typescript@5.6.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) - debug: 4.3.7 - ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - eslint - - supports-color - - '@typescript-eslint/types@8.9.0': {} - - '@typescript-eslint/typescript-estree@8.9.0(typescript@5.6.3)': - dependencies: - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/visitor-keys': 8.9.0 - debug: 4.3.7 - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.9.0(eslint@9.12.0)(typescript@5.6.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) - '@typescript-eslint/scope-manager': 8.9.0 - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) - eslint: 9.12.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@8.9.0': - dependencies: - '@typescript-eslint/types': 8.9.0 - eslint-visitor-keys: 3.4.3 - - '@ungap/structured-clone@1.2.0': {} - - '@vitest/expect@2.1.3': - dependencies: - '@vitest/spy': 2.1.3 - '@vitest/utils': 2.1.3 - chai: 5.1.1 - tinyrainbow: 1.2.0 - - '@vitest/mocker@2.1.3(@vitest/spy@2.1.3)(vite@5.4.9(@types/node@22.7.5))': - dependencies: - '@vitest/spy': 2.1.3 - estree-walker: 3.0.3 - magic-string: 0.30.12 - optionalDependencies: - vite: 5.4.9(@types/node@22.7.5) - - '@vitest/pretty-format@2.1.3': - dependencies: - tinyrainbow: 1.2.0 - - '@vitest/runner@2.1.3': - dependencies: - '@vitest/utils': 2.1.3 - pathe: 1.1.2 - - '@vitest/snapshot@2.1.3': - dependencies: - '@vitest/pretty-format': 2.1.3 - magic-string: 0.30.12 - pathe: 1.1.2 - - '@vitest/spy@2.1.3': - dependencies: - tinyspy: 3.0.2 - - '@vitest/utils@2.1.3': - dependencies: - '@vitest/pretty-format': 2.1.3 - loupe: 3.1.2 - tinyrainbow: 1.2.0 - - '@volar/language-core@2.4.6': - dependencies: - '@volar/source-map': 2.4.6 - - '@volar/source-map@2.4.6': {} - - '@volar/typescript@2.4.6': - dependencies: - '@volar/language-core': 2.4.6 - path-browserify: 1.0.1 - vscode-uri: 3.0.8 - - '@vue/compiler-core@3.5.12': - dependencies: - '@babel/parser': 7.25.8 - '@vue/shared': 3.5.12 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - - '@vue/compiler-dom@3.5.12': - dependencies: - '@vue/compiler-core': 3.5.12 - '@vue/shared': 3.5.12 - - '@vue/compiler-vue2@2.7.16': - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - - '@vue/language-core@2.1.6(typescript@5.6.3)': - dependencies: - '@volar/language-core': 2.4.6 - '@vue/compiler-dom': 3.5.12 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.12 - computeds: 0.0.1 - minimatch: 9.0.5 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 5.6.3 - - '@vue/shared@3.5.12': {} - - acorn-jsx@5.3.2(acorn@8.13.0): - dependencies: - acorn: 8.13.0 - - acorn@8.13.0: {} - - ajv-draft-04@1.0.0(ajv@8.13.0): - optionalDependencies: - ajv: 8.13.0 - - ajv-formats@3.0.1(ajv@8.13.0): - optionalDependencies: - ajv: 8.13.0 - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ajv@8.12.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ajv@8.13.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - argparse@2.0.1: {} - - assertion-error@2.0.1: {} - - balanced-match@1.0.2: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - buffer-from@1.1.2: {} - - cac@6.7.14: {} - - callsites@3.1.0: {} - - ccount@2.0.1: {} - - chai@5.1.1: - dependencies: - assertion-error: 2.0.1 - check-error: 2.1.1 - deep-eql: 5.0.2 - loupe: 3.1.2 - pathval: 2.0.0 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - character-entities-html4@2.1.0: {} - - character-entities-legacy@3.0.0: {} - - check-error@2.1.1: {} - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - comma-separated-tokens@2.0.3: {} - - compare-versions@6.1.1: {} - - computeds@0.0.1: {} - - concat-map@0.0.1: {} - - confbox@0.1.8: {} - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - de-indent@1.0.2: {} - - debug@4.3.7: - dependencies: - ms: 2.1.3 - - deep-eql@5.0.2: {} - - deep-is@0.1.4: {} - - dequal@2.0.3: {} - - devlop@1.1.0: - dependencies: - dequal: 2.0.3 - - dotenv@16.4.5: {} - - drizzle-graphql@0.8.5(drizzle-orm@0.35.1(@electric-sql/pglite@0.2.12)(postgres@3.4.4))(graphql@16.9.0): - dependencies: - drizzle-orm: 0.35.1(@electric-sql/pglite@0.2.12)(postgres@3.4.4) - graphql: 16.9.0 - graphql-parse-resolve-info: 4.13.0(graphql@16.9.0) - transitivePeerDependencies: - - supports-color - - drizzle-kit@0.26.2: - dependencies: - '@drizzle-team/brocli': 0.10.1 - '@esbuild-kit/esm-loader': 2.6.5 - esbuild: 0.19.12 - esbuild-register: 3.6.0(esbuild@0.19.12) - transitivePeerDependencies: - - supports-color - - drizzle-orm@0.35.1(@electric-sql/pglite@0.2.12)(postgres@3.4.4): - optionalDependencies: - '@electric-sql/pglite': 0.2.12 - postgres: 3.4.4 - - entities@4.5.0: {} - - esbuild-register@3.6.0(esbuild@0.19.12): - dependencies: - debug: 4.3.7 - esbuild: 0.19.12 - transitivePeerDependencies: - - supports-color - - esbuild@0.18.20: - optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 - - esbuild@0.19.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - escape-string-regexp@4.0.0: {} - - eslint-scope@8.1.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.1.0: {} - - eslint@9.12.0: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) - '@eslint-community/regexpp': 4.11.1 - '@eslint/config-array': 0.18.0 - '@eslint/core': 0.6.0 - '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.12.0 - '@eslint/plugin-kit': 0.2.0 - '@humanfs/node': 0.16.5 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.1 - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.7 - escape-string-regexp: 4.0.0 - eslint-scope: 8.1.0 - eslint-visitor-keys: 4.1.0 - espree: 10.2.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - espree@10.2.0: - dependencies: - acorn: 8.13.0 - acorn-jsx: 5.3.2(acorn@8.13.0) - eslint-visitor-keys: 4.1.0 - - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - - estree-walker@2.0.2: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.6 - - esutils@2.0.3: {} - - fast-deep-equal@3.1.3: {} - - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fastq@1.17.1: - dependencies: - reusify: 1.0.4 - - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@4.0.1: - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - - flatted@3.3.1: {} - - fs-extra@11.2.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-extra@7.0.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - get-tsconfig@4.8.1: - dependencies: - resolve-pkg-maps: 1.0.0 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - globals@14.0.0: {} - - globals@15.11.0: {} - - graceful-fs@4.2.11: {} - - graphemer@1.4.0: {} - - graphql-parse-resolve-info@4.13.0(graphql@16.9.0): - dependencies: - debug: 4.3.7 - graphql: 16.9.0 - tslib: 2.8.0 - transitivePeerDependencies: - - supports-color - - graphql@16.9.0: {} - - has-flag@4.0.0: {} - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - hast-util-to-html@9.0.3: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - comma-separated-tokens: 2.0.3 - hast-util-whitespace: 3.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.0 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - stringify-entities: 4.0.4 - zwitch: 2.0.4 - - hast-util-whitespace@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - he@1.2.0: {} - - html-void-elements@3.0.0: {} - - ignore@5.3.2: {} - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-lazy@4.0.0: {} - - imurmurhash@0.1.4: {} - - is-core-module@2.15.1: - dependencies: - hasown: 2.0.2 - - is-extglob@2.1.1: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - isexe@2.0.0: {} - - jju@1.4.0: {} - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - json-buffer@3.0.1: {} - - json-schema-traverse@0.4.1: {} - - json-schema-traverse@1.0.0: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 - - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - kolorist@1.8.0: {} - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - linkify-it@5.0.0: - dependencies: - uc.micro: 2.1.0 - - local-pkg@0.5.0: - dependencies: - mlly: 1.7.2 - pkg-types: 1.2.1 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash.merge@4.6.2: {} - - lodash@4.17.21: {} - - loupe@3.1.2: {} - - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - lunr@2.3.9: {} - - magic-string@0.30.12: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - markdown-it@14.1.0: - dependencies: - argparse: 2.0.1 - entities: 4.5.0 - linkify-it: 5.0.0 - mdurl: 2.0.0 - punycode.js: 2.3.1 - uc.micro: 2.1.0 - - mdast-util-to-hast@13.2.0: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.2.0 - devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.0 - trim-lines: 3.0.1 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - - mdurl@2.0.0: {} - - merge2@1.4.1: {} - - micromark-util-character@2.1.0: - dependencies: - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-util-encode@2.0.0: {} - - micromark-util-sanitize-uri@2.0.0: - dependencies: - micromark-util-character: 2.1.0 - micromark-util-encode: 2.0.0 - micromark-util-symbol: 2.0.0 - - micromark-util-symbol@2.0.0: {} - - micromark-util-types@2.0.0: {} - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - minimatch@3.0.8: - dependencies: - brace-expansion: 1.1.11 - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.1 - - mlly@1.7.2: - dependencies: - acorn: 8.13.0 - pathe: 1.1.2 - pkg-types: 1.2.1 - ufo: 1.5.4 - - ms@2.1.3: {} - - muggle-string@0.4.1: {} - - nanoid@3.3.7: {} - - nanoid@5.0.7: {} - - natural-compare@1.4.0: {} - - oniguruma-to-js@0.4.3: - dependencies: - regex: 4.3.3 - - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - path-browserify@1.0.1: {} - - path-exists@4.0.0: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - pathe@1.1.2: {} - - pathval@2.0.0: {} - - picocolors@1.1.0: {} - - picomatch@2.3.1: {} - - pkg-types@1.2.1: - dependencies: - confbox: 0.1.8 - mlly: 1.7.2 - pathe: 1.1.2 - - postcss@8.4.47: - dependencies: - nanoid: 3.3.7 - picocolors: 1.1.0 - source-map-js: 1.2.1 - - postgres@3.4.4: {} - - prelude-ls@1.2.1: {} - - property-information@6.5.0: {} - - punycode.js@2.3.1: {} - - punycode@2.3.1: {} - - queue-microtask@1.2.3: {} - - regex@4.3.3: {} - - require-from-string@2.0.2: {} - - resolve-from@4.0.0: {} - - resolve-pkg-maps@1.0.0: {} - - resolve@1.22.8: - dependencies: - is-core-module: 2.15.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - reusify@1.0.4: {} - - rollup@4.24.0: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.24.0 - '@rollup/rollup-android-arm64': 4.24.0 - '@rollup/rollup-darwin-arm64': 4.24.0 - '@rollup/rollup-darwin-x64': 4.24.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 - '@rollup/rollup-linux-arm-musleabihf': 4.24.0 - '@rollup/rollup-linux-arm64-gnu': 4.24.0 - '@rollup/rollup-linux-arm64-musl': 4.24.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 - '@rollup/rollup-linux-riscv64-gnu': 4.24.0 - '@rollup/rollup-linux-s390x-gnu': 4.24.0 - '@rollup/rollup-linux-x64-gnu': 4.24.0 - '@rollup/rollup-linux-x64-musl': 4.24.0 - '@rollup/rollup-win32-arm64-msvc': 4.24.0 - '@rollup/rollup-win32-ia32-msvc': 4.24.0 - '@rollup/rollup-win32-x64-msvc': 4.24.0 - fsevents: 2.3.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 - - semver@7.6.3: {} - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - shiki@1.22.0: - dependencies: - '@shikijs/core': 1.22.0 - '@shikijs/engine-javascript': 1.22.0 - '@shikijs/engine-oniguruma': 1.22.0 - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 - - siginfo@2.0.0: {} - - source-map-js@1.2.1: {} - - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map@0.6.1: {} - - space-separated-tokens@2.0.2: {} - - sprintf-js@1.0.3: {} - - stackback@0.0.2: {} - - std-env@3.7.0: {} - - string-argv@0.3.2: {} - - stringify-entities@4.0.4: - dependencies: - character-entities-html4: 2.1.0 - character-entities-legacy: 3.0.0 - - strip-json-comments@3.1.1: {} - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - text-table@0.2.0: {} - - tinybench@2.9.0: {} - - tinyexec@0.3.1: {} - - tinypool@1.0.1: {} - - tinyrainbow@1.2.0: {} - - tinyspy@3.0.2: {} - - to-fast-properties@2.0.0: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - trim-lines@3.0.1: {} - - ts-api-utils@1.3.0(typescript@5.6.3): - dependencies: - typescript: 5.6.3 - - tslib@2.8.0: {} - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - typedoc-plugin-missing-exports@3.0.0(typedoc@0.26.10(typescript@5.6.3)): - dependencies: - typedoc: 0.26.10(typescript@5.6.3) - - typedoc@0.26.10(typescript@5.6.3): - dependencies: - lunr: 2.3.9 - markdown-it: 14.1.0 - minimatch: 9.0.5 - shiki: 1.22.0 - typescript: 5.6.3 - yaml: 2.6.0 - - typescript-eslint@8.9.0(eslint@9.12.0)(typescript@5.6.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.6.3))(eslint@9.12.0)(typescript@5.6.3) - '@typescript-eslint/parser': 8.9.0(eslint@9.12.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - eslint - - supports-color - - typescript@5.4.2: {} - - typescript@5.6.3: {} - - uc.micro@2.1.0: {} - - ufo@1.5.4: {} - - undici-types@6.19.8: {} - - unist-util-is@6.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-position@5.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-stringify-position@4.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-visit-parents@6.0.1: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - - unist-util-visit@5.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - - universalify@0.1.2: {} - - universalify@2.0.1: {} - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - vfile-message@4.0.2: - dependencies: - '@types/unist': 3.0.3 - unist-util-stringify-position: 4.0.0 - - vfile@6.0.3: - dependencies: - '@types/unist': 3.0.3 - vfile-message: 4.0.2 - - vite-node@2.1.3(@types/node@22.7.5): - dependencies: - cac: 6.7.14 - debug: 4.3.7 - pathe: 1.1.2 - vite: 5.4.9(@types/node@22.7.5) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - vite-plugin-dts@4.2.4(@types/node@22.7.5)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@22.7.5)): - dependencies: - '@microsoft/api-extractor': 7.47.7(@types/node@22.7.5) - '@rollup/pluginutils': 5.1.2(rollup@4.24.0) - '@volar/typescript': 2.4.6 - '@vue/language-core': 2.1.6(typescript@5.6.3) - compare-versions: 6.1.1 - debug: 4.3.7 - kolorist: 1.8.0 - local-pkg: 0.5.0 - magic-string: 0.30.12 - typescript: 5.6.3 - optionalDependencies: - vite: 5.4.9(@types/node@22.7.5) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - - vite@5.4.9(@types/node@22.7.5): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.24.0 - optionalDependencies: - '@types/node': 22.7.5 - fsevents: 2.3.3 - - vitest@2.1.3(@types/node@22.7.5): - dependencies: - '@vitest/expect': 2.1.3 - '@vitest/mocker': 2.1.3(@vitest/spy@2.1.3)(vite@5.4.9(@types/node@22.7.5)) - '@vitest/pretty-format': 2.1.3 - '@vitest/runner': 2.1.3 - '@vitest/snapshot': 2.1.3 - '@vitest/spy': 2.1.3 - '@vitest/utils': 2.1.3 - chai: 5.1.1 - debug: 4.3.7 - magic-string: 0.30.12 - pathe: 1.1.2 - std-env: 3.7.0 - tinybench: 2.9.0 - tinyexec: 0.3.1 - tinypool: 1.0.1 - tinyrainbow: 1.2.0 - vite: 5.4.9(@types/node@22.7.5) - vite-node: 2.1.3(@types/node@22.7.5) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 22.7.5 - transitivePeerDependencies: - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - vscode-uri@3.0.8: {} - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - why-is-node-running@2.3.0: - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - - word-wrap@1.2.5: {} - - yallist@4.0.0: {} - - yaml@2.6.0: {} - - yocto-queue@0.1.0: {} - - zwitch@2.0.4: {} diff --git a/fdm-core/src/cultivation.d.ts b/fdm-core/src/cultivation.d.ts new file mode 100644 index 000000000..6b6c19d91 --- /dev/null +++ b/fdm-core/src/cultivation.d.ts @@ -0,0 +1,13 @@ +import * as schema from './db/schema' + +export interface getCultivationType { + b_lu: schema.cultivationsTypeSelect['b_lu'], + b_lu_catalogue: schema.cultivationsTypeSelect['b_lu_catalogue'], + b_lu_source: schema.cultivationsCatalogueTypeSelect['b_lu_source'], + b_lu_name: schema.cultivationsCatalogueTypeSelect['b_lu_name'], + b_lu_name_en: schema.cultivationsCatalogueTypeSelect['b_lu_name_en'], + b_lu_hcat3: schema.cultivationsCatalogueTypeSelect['b_lu_hcat3'], + b_lu_hcat3_name: schema.cultivationsCatalogueTypeSelect['b_lu_hcat3_name'], + b_sowing_date: schema.fieldSowingTypeSelect['b_sowing_date'], + b_id: schema.fieldSowingTypeSelect['b_id'], +} diff --git a/fdm-core/src/cultivation.test.ts b/fdm-core/src/cultivation.test.ts new file mode 100644 index 000000000..057ca1a31 --- /dev/null +++ b/fdm-core/src/cultivation.test.ts @@ -0,0 +1,266 @@ +import { describe, expect, it, afterAll, beforeEach } from 'vitest' +import { createFdmServer, migrateFdmServer } from './fdm-server' +import { type FdmServerType } from './fdm-server.d' +import { addCultivationToCatalogue, getCultivationsFromCatalogue, addCultivation, removeCultivation, getCultivation, getCultivations, getCultivationPlan } from './cultivation' +import { addFarm } from './farm' +import { addField } from './field' +import { nanoid } from 'nanoid' + +describe('Cultivation Data Model', () => { + let fdm: FdmServerType + let b_lu_catalogue: string + let b_id_farm: string + let b_id: string + + beforeEach(async () => { + const requiredEnvVars = ['POSTGRES_HOST', 'POSTGRES_PORT', 'POSTGRES_USER', 'POSTGRES_PASSWORD', 'POSTGRES_DB']; + for (const envVar of requiredEnvVars) { + if (!process.env[envVar]) { + throw new Error(`Missing required environment variable: ${envVar}`); + } + } + + const host = process.env.POSTGRES_HOST + const port = Number(process.env.POSTGRES_PORT) + if (Number.isNaN(port)) { + throw new Error('POSTGRES_PORT must be a valid number'); + } + const user = process.env.POSTGRES_USER + const password = process.env.POSTGRES_PASSWORD + const database = process.env.POSTGRES_DB + const migrationsFolderPath = 'src/db/migrations' + + fdm = await createFdmServer(host, port, user, password, database) + await migrateFdmServer(fdm, migrationsFolderPath) + + b_lu_catalogue = nanoid() + b_id_farm = await addFarm(fdm, 'test farm', 'arable') + b_id = await addField( + fdm, + b_id_farm, + 'test field', + 'test source', + 'POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))', + '2023-01-01', + '2023-12-31', + 'owner' + ) + }) + + afterAll(async () => { + // No specific afterAll tasks needed for this suite. Individual tests handle necessary cleanup. + }) + + describe('Cultivation CRUD', () => { + it('should get cultivations from catalogue', async () => { + const cultivations = await getCultivationsFromCatalogue(fdm) + expect(cultivations).toBeDefined() + }) + + it('should add a new cultivation to the catalogue', async () => { + const b_lu_source = 'custom' + const b_lu_name = 'Test Cultivation' + const b_lu_name_en = 'Test Cultivation (EN)' + const b_lu_hcat3 = 'test-hcat3' + const b_lu_hcat3_name = 'Test HCAT3 Name' + + await addCultivationToCatalogue(fdm, { + b_lu_catalogue, b_lu_source, b_lu_name, b_lu_name_en, b_lu_hcat3, b_lu_hcat3_name + }) + + const cultivations = await getCultivationsFromCatalogue(fdm) + expect(cultivations.length).toBeGreaterThanOrEqual(1) + + const cultivation = cultivations.find((c) => c.b_lu_catalogue === b_lu_catalogue) + expect(cultivation).toBeDefined() + expect(cultivation?.b_lu_source).toBe(b_lu_source) + expect(cultivation?.b_lu_name).toBe(b_lu_name) + expect(cultivation?.b_lu_name_en).toBe(b_lu_name_en) + expect(cultivation?.b_lu_hcat3).toBe(b_lu_hcat3) + expect(cultivation?.b_lu_hcat3_name).toBe(b_lu_hcat3_name) + }) + + it('should throw an error when adding a cultivation with an invalid catalogue ID', async () => { + const invalid_b_lu_catalogue = 'invalid-catalogue-id'; + const b_sowing_date = '2024-01-01'; + + await expect( + addCultivation(fdm, invalid_b_lu_catalogue, b_id, b_sowing_date) + ).rejects.toThrow('Cultivation in catalogue does not exist'); + }); + + it('should add a new cultivation', async () => { + await addCultivationToCatalogue(fdm, { + b_lu_catalogue, + b_lu_source: 'test-source', + b_lu_name: 'test-name', + b_lu_name_en: 'test-name-en', + b_lu_hcat3: 'test-hcat3', + b_lu_hcat3_name: 'test-hcat3-name' + }) + + const b_sowing_date = '2024-01-01' + const b_lu = await addCultivation(fdm, b_lu_catalogue, b_id, b_sowing_date) + expect(b_lu).toBeDefined() + + const cultivation = await getCultivation(fdm, b_lu) + expect(cultivation.b_lu).toBeDefined() // Check existence + expect(cultivation.b_sowing_date).toEqual(b_sowing_date) // Check value + + }) + + it('should handle duplicate cultivation gracefully', async () => { + await addCultivationToCatalogue(fdm, { + b_lu_catalogue, + b_lu_source: 'test-source', + b_lu_name: 'test-name', + b_lu_name_en: 'test-name-en', + b_lu_hcat3: 'test-hcat3', + b_lu_hcat3_name: 'test-hcat3-name' + }); + + const b_sowing_date = '2024-01-01'; + await addCultivation(fdm, b_lu_catalogue, b_id, b_sowing_date); + + // Attempt to add the same cultivation again + await expect( + addCultivation(fdm, b_lu_catalogue, b_id, b_sowing_date) + ).rejects.toThrow('Cultivation already exists'); + }); + + it('should throw an error when adding a cultivation with an invalid field ID', async () => { + await addCultivationToCatalogue(fdm, { + b_lu_catalogue, + b_lu_source: 'test-source', + b_lu_name: 'test-name', + b_lu_name_en: 'test-name-en', + b_lu_hcat3: 'test-hcat3', + b_lu_hcat3_name: 'test-hcat3-name' + }); + + const b_sowing_date = '2024-01-01'; + const invalid_b_id = 'invalid-field-id'; + + await expect( + addCultivation(fdm, b_lu_catalogue, invalid_b_id, b_sowing_date) + ).rejects.toThrow('Field does not exist'); + }); + + it('should throw an error when adding a cultivation with an invalid sowing date', async () => { + await addCultivationToCatalogue(fdm, { + b_lu_catalogue, + b_lu_source: 'test-source', + b_lu_name: 'test-name', + b_lu_name_en: 'test-name-en', + b_lu_hcat3: 'test-hcat3', + b_lu_hcat3_name: 'test-hcat3-name' + }); + + const invalid_b_sowing_date = 'invalid-date'; + + await expect( + addCultivation(fdm, b_lu_catalogue, b_id, invalid_b_sowing_date) + ).rejects.toThrow('Invalid sowing date'); + }); + + it('should get cultivations by field ID', async () => { + await addCultivationToCatalogue(fdm, { + b_lu_catalogue, + b_lu_source: 'test-source', + b_lu_name: 'test-name', + b_lu_name_en: 'test-name-en', + b_lu_hcat3: 'test-hcat3', + b_lu_hcat3_name: 'test-hcat3-name' + }) + + await addCultivation(fdm, b_lu_catalogue, b_id, '2024-01-01') + await addCultivation(fdm, b_lu_catalogue, b_id, '2024-03-01') + + const cultivations = await getCultivations(fdm, b_id) + expect(cultivations.length).toBe(2) + }) + + it('should remove a cultivation', async () => { + + await addCultivationToCatalogue(fdm, { + b_lu_catalogue, + b_lu_source: 'test-source', + b_lu_name: 'test-name', + b_lu_name_en: 'test-name-en', + b_lu_hcat3: 'test-hcat3', + b_lu_hcat3_name: 'test-hcat3-name' + }) + + const b_sowing_date = '2024-01-01' + const b_lu = await addCultivation(fdm, b_lu_catalogue, b_id, b_sowing_date) + + + await removeCultivation(fdm, b_lu) + + await expect(getCultivation(fdm, b_lu)).rejects.toThrowError('Cultivation does not exist') + }) + + + }) + + describe('getCultivationPlan', () => { + it('should return an empty array if no cultivations are found', async () => { + const cultivationPlan = await getCultivationPlan(fdm, b_id_farm); + expect(cultivationPlan).toEqual([]); + }); + + it('should return a cultivation plan with unique cultivations and their fields', async () => { + const catalogueItem1 = nanoid() + const catalogueItem2 = nanoid() + + + await addCultivationToCatalogue(fdm, { + b_lu_catalogue: catalogueItem1, + b_lu_source: 'test-source-1', + b_lu_name: 'test-name-1', + b_lu_name_en: 'test-name-en-1', + b_lu_hcat3: 'test-hcat3-1', + b_lu_hcat3_name: 'test-hcat3-name-1' + }) + await addCultivationToCatalogue(fdm, { + b_lu_catalogue: catalogueItem2, + b_lu_source: 'test-source-2', + b_lu_name: 'test-name-2', + b_lu_name_en: 'test-name-en-2', + b_lu_hcat3: 'test-hcat3-2', + b_lu_hcat3_name: 'test-hcat3-name-2' + }) + + + const b_sowing_date = '2024-01-01' + await addCultivation(fdm, catalogueItem1, b_id, b_sowing_date) + const b_id2 = await addField( + fdm, + b_id_farm, + 'test field 2', + 'test source 2', + 'POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))', + '2023-01-01', + '2023-12-31', + 'owner' + ) + await addCultivation(fdm, catalogueItem1, b_id2, b_sowing_date) + await addCultivation(fdm, catalogueItem2, b_id, b_sowing_date) + + + const cultivationPlan = await getCultivationPlan(fdm, b_id_farm); + + expect(cultivationPlan.length).toBe(2); + + + const cultivation1 = cultivationPlan.find(item => item.b_lu_catalogue === catalogueItem1); + expect(cultivation1).toBeDefined(); + expect(cultivation1?.fields.length).toBe(2); + + const cultivation2 = cultivationPlan.find(item => item.b_lu_catalogue === catalogueItem2); + expect(cultivation2).toBeDefined(); + expect(cultivation2?.fields.length).toBe(1); + + }); + }); +}) \ No newline at end of file diff --git a/fdm-core/src/cultivation.ts b/fdm-core/src/cultivation.ts new file mode 100644 index 000000000..b4c742d9c --- /dev/null +++ b/fdm-core/src/cultivation.ts @@ -0,0 +1,351 @@ +import { and, eq, isNotNull, or } from 'drizzle-orm' +import { nanoid } from 'nanoid' + +import * as schema from './db/schema' +import { type FdmType } from './fdm' +import { getCultivationType } from './cultivation.d' +import { b } from 'vitest/dist/chunks/suite.BMWOKiTe.js' + +/** + * Retrieves cultivations available in the catalogue. + * + * @param fdm The FDM instance. + * @returns A Promise that resolves with an array of cultivation catalogue entries. + * @alpha + */ +export async function getCultivationsFromCatalogue(fdm: FdmType): Promise { + + const cultivationsCatalogue = await fdm + .select() + .from(schema.cultivationsCatalogue) + + return cultivationsCatalogue +} + +/** + * Adds a new cultivation to the catalogue. + * + * @param fdm The FDM instance. + * @param properties The properties of the cultivation to add. + * @returns A Promise that resolves when the cultivation is added. + * @throws If the insertion fails. + * @alpha + */ +export async function addCultivationToCatalogue( + fdm: FdmType, + properties: { + b_lu_catalogue: schema.cultivationsCatalogueTypeInsert['b_lu_catalogue'], + b_lu_source: schema.cultivationsCatalogueTypeInsert['b_lu_source'], + b_lu_name: schema.cultivationsCatalogueTypeInsert['b_lu_name'], + b_lu_name_en: schema.cultivationsCatalogueTypeInsert['b_lu_name_en'], + b_lu_hcat3: schema.cultivationsCatalogueTypeInsert['b_lu_hcat3'], + b_lu_hcat3_name: schema.cultivationsCatalogueTypeInsert['b_lu_hcat3_name'] + } +): Promise { + await fdm.transaction(async (tx) => { + // Check for existing cultivation + const existing = await tx + .select() + .from(schema.cultivationsCatalogue) + .where(eq(schema.cultivationsCatalogue.b_lu_catalogue, properties.b_lu_catalogue)) + .limit(1) + + if (existing.length > 0) { + throw new Error('Cultivation already exists in catalogue') + } + + // Insert the cultivation in the db + await tx + .insert(schema.cultivationsCatalogue) + .values(properties) + }) +} + + +/** + * Adds a cultivation to a field. + * + * @param fdm The FDM instance. + * @param b_lu_catalogue The catalogue ID of the cultivation. + * @param b_id The ID of the field. + * @param b_sowing_date The sowing date of the cultivation. + * @returns A Promise that resolves with the ID of the new cultivation. + * @throws If the field does not exist or if the insertion fails. + * @alpha + */ +export async function addCultivation( + fdm: FdmType, + b_lu_catalogue: schema.cultivationsTypeInsert['b_lu_catalogue'], + b_id: schema.fieldSowingTypeInsert['b_id'], + b_sowing_date: schema.fieldSowingTypeInsert['b_sowing_date'], +): Promise { + + // Generate an ID for the cultivation + const b_lu = nanoid() + + await fdm.transaction(async (tx: FdmType) => { + try { + + // Validate if b_sowing_date is a string with date format + if (typeof b_sowing_date !== 'string' || !/^\d{4}-\d{2}-\d{2}$/.test(b_sowing_date)) { + throw new Error('Invalid sowing date') + } + + // Validate if field exists + const field = await tx + .select() + .from(schema.fields) + .where(eq(schema.fields.b_id, b_id)) + .limit(1) + if (field.length === 0) { + throw new Error('Field does not exist') + } + + // Validate if cultivation exists in catalogue + const cultivation = await tx + .select() + .from(schema.cultivationsCatalogue) + .where(eq(schema.cultivationsCatalogue.b_lu_catalogue, b_lu_catalogue)) + .limit(1) + if (cultivation.length === 0) { + throw new Error('Cultivation in catalogue does not exist') + } + + // Validate if cultivation is not an duplicate of already existing cultivation + const existingCultivation = await tx + .select() + .from(schema.fieldSowing) + .leftJoin(schema.cultivations, eq(schema.fieldSowing.b_lu, schema.cultivations.b_lu)) + .where(and( + eq(schema.fieldSowing.b_id, b_id), + or( + eq(schema.fieldSowing.b_lu, b_lu), + and( + eq(schema.fieldSowing.b_sowing_date, b_sowing_date), + eq(schema.cultivations.b_lu_catalogue, b_lu_catalogue) + ) + ) + )) + .limit(1) + + if (existingCultivation.length > 0) { + throw new Error('Cultivation already exists') + } + + await tx + .insert(schema.cultivations) + .values({ + b_lu: b_lu, + b_lu_catalogue: b_lu_catalogue + }) + + await tx + .insert(schema.fieldSowing) + .values({ + b_id: b_id, + b_lu: b_lu, + b_sowing_date: b_sowing_date + }) + + } catch (error) { + throw new Error(`addCultivation failed: ${error instanceof Error ? error.message : String(error)}`, { cause: error }) + } + }) + + return b_lu +} + +/** + * Retrieves the details of a specific cultivation. + * + * @param fdm The FDM instance. + * @param b_lu The ID of the cultivation. + * @returns A promise that resolves with the cultivation details. + * @throws If the cultivation does not exist. + */ +export async function getCultivation(fdm: FdmType, b_lu: schema.cultivationsTypeSelect['b_lu']): Promise { + + // Get properties of the requested cultivation + const cultivation = await fdm + .select({ + b_lu: schema.cultivations.b_lu, + b_lu_catalogue: schema.cultivationsCatalogue.b_lu_catalogue, + b_lu_source: schema.cultivationsCatalogue.b_lu_source, + b_lu_name: schema.cultivationsCatalogue.b_lu_name, + b_lu_name_en: schema.cultivationsCatalogue.b_lu_name_en, + b_lu_hcat3: schema.cultivationsCatalogue.b_lu_hcat3, + b_lu_hcat3_name: schema.cultivationsCatalogue.b_lu_hcat3_name, + b_sowing_date: schema.fieldSowing.b_sowing_date, + b_id: schema.fieldSowing.b_id + }) + .from(schema.cultivations) + .leftJoin(schema.fieldSowing, eq(schema.fieldSowing.b_lu, schema.cultivations.b_lu)) + .leftJoin(schema.cultivationsCatalogue, eq(schema.cultivations.b_lu_catalogue, schema.cultivationsCatalogue.b_lu_catalogue)) + .where(eq(schema.cultivations.b_lu, b_lu)) + .limit(1) + + // If no cultivation is found return an error + if (cultivation.length === 0) { + throw new Error('Cultivation does not exist') + } + + return cultivation[0] +} + +/** + * Retrieves all cultivations for a given field. + * + * @param fdm The FDM instance. + * @param b_id The ID of the field. + * @returns A Promise that resolves with an array of cultivation details. + */ +export async function getCultivations(fdm: FdmType, b_id: schema.fieldSowingTypeSelect['b_id']): Promise { + + const cultivations = await fdm + .select({ + b_lu: schema.cultivations.b_lu, + b_lu_catalogue: schema.cultivationsCatalogue.b_lu_catalogue, + b_lu_source: schema.cultivationsCatalogue.b_lu_source, + b_lu_name: schema.cultivationsCatalogue.b_lu_name, + b_lu_name_en: schema.cultivationsCatalogue.b_lu_name_en, + b_lu_hcat3: schema.cultivationsCatalogue.b_lu_hcat3, + b_lu_hcat3_name: schema.cultivationsCatalogue.b_lu_hcat3_name, + b_sowing_date: schema.fieldSowing.b_sowing_date, + b_id: schema.fieldSowing.b_id + }) + .from(schema.cultivations) + .leftJoin(schema.fieldSowing, eq(schema.fieldSowing.b_lu, schema.cultivations.b_lu)) + .leftJoin(schema.cultivationsCatalogue, eq(schema.cultivations.b_lu_catalogue, schema.cultivationsCatalogue.b_lu_catalogue)) + .where(eq(schema.fieldSowing.b_id, b_id)) + + return cultivations +} + +/** + * Retrieves a cultivation plan for a specific farm. + * + * The cultivation plan is an array of objects, where each object represents a unique cultivation + * identified by its `b_lu_catalogue`. Each cultivation object also contains a `fields` array, + * listing the fields associated with that specific cultivation. The `fields` array contains objects, + * each specifying the `b_lu` (cultivation ID) and `b_id` (field ID) combination. + * + * @param fdm The FDM instance. + * @param b_id_farm The ID of the farm for which to retrieve the cultivation plan. + * @returns A Promise that resolves with an array representing the cultivation plan. + * Each element in the array is an object with the following structure: + * ``` + * { + * b_lu_catalogue: string; // Unique ID of the cultivation catalogue item + * b_lu_name: string; // Name of the cultivation + * fields: { // Array of fields associated with this cultivation + * b_lu: string; // Unique ID of the cultivation + * b_id: string; // Unique ID of the field + * }[]; + * } + * ``` + * Returns an empty array if no cultivations are found for the specified farm. + * @example + * ```typescript + * const cultivationPlan = await getCultivationPlan(fdm, 'farm123'); + * if (cultivationPlan.length > 0) { + * console.log("Cultivation Plan:", cultivationPlan); + * } else { + * console.log("No cultivations found for this farm."); + * } + * ``` + * @alpha + */ +export async function getCultivationPlan(fdm: FdmType, b_id_farm: schema.farmsTypeSelect['b_id_farm']): Promise; +}>> { + if (!b_id_farm) { + throw new Error('Farm ID is required') + } + + try { + const cultivations = await fdm + .select({ + b_lu_catalogue: schema.cultivationsCatalogue.b_lu_catalogue, + b_lu_name: schema.cultivationsCatalogue.b_lu_name, + b_lu: schema.cultivations.b_lu, + b_id: schema.fields.b_id, + b_name: schema.fields.b_name + }) + .from(schema.farms) + .leftJoin(schema.farmManaging, eq(schema.farms.b_id_farm, schema.farmManaging.b_id_farm)) + .leftJoin(schema.fields, eq(schema.farmManaging.b_id, schema.fields.b_id)) + .leftJoin(schema.fieldSowing, eq(schema.fields.b_id, schema.fieldSowing.b_id)) + .leftJoin(schema.cultivations, eq(schema.fieldSowing.b_lu, schema.cultivations.b_lu)) + .leftJoin(schema.cultivationsCatalogue, eq(schema.cultivations.b_lu_catalogue, schema.cultivationsCatalogue.b_lu_catalogue)) + .where(and( + eq(schema.farms.b_id_farm, b_id_farm), + isNotNull(schema.cultivationsCatalogue.b_lu_catalogue)) + ) + + const cultivationPlan = cultivations.reduce((acc, curr) => { + const existingCultivation = acc.find(item => item.b_lu_catalogue === curr.b_lu_catalogue) + if (existingCultivation) { + existingCultivation.fields.push({ b_lu: curr.b_lu, b_id: curr.b_id, b_name: curr.b_name }) + } else { + acc.push({ + b_lu_catalogue: curr.b_lu_catalogue, + b_lu_name: curr.b_lu_name, + fields: [{ b_lu: curr.b_lu, b_id: curr.b_id, b_name: curr.b_name }] + }); + } + return acc + }, []); + + return cultivationPlan + } catch (error) { + throw new Error(`Failed to get cultivation plan: ${error}`) + } +} + +/** + * Removes a cultivation from a field. + * + * @param fdm The FDM instance. + * @param b_lu The ID of the cultivation to remove. + * @returns A Promise that resolves when the cultivation is removed. + * @throws If the deletion fails. + * @alpha + */ +export async function removeCultivation( + fdm: FdmType, + b_lu: schema.cultivationsTypeInsert['b_lu'] +): Promise { + + await fdm.transaction(async (tx: FdmType) => { + try { + const existing = await tx + .select() + .from(schema.cultivations) + .where(eq(schema.cultivations.b_lu, b_lu)) + .limit(1) + + if (existing.length === 0) { + throw new Error(`Cultivation with b_lu ${b_lu} does not exist`) + } + + + await tx + .delete(schema.fieldSowing) + .where(eq(schema.fieldSowing.b_lu, b_lu)) + + await tx + .delete(schema.cultivations) + .where(eq(schema.cultivations.b_lu, b_lu)) + + } + catch (error) { + + throw new Error(`Failed to remove cultivation: ${error}`); + } + }) +} \ No newline at end of file diff --git a/fdm-core/src/db/migrations/0001_ambiguous_golden_guardian.sql b/fdm-core/src/db/migrations/0001_needy_thena.sql similarity index 78% rename from fdm-core/src/db/migrations/0001_ambiguous_golden_guardian.sql rename to fdm-core/src/db/migrations/0001_needy_thena.sql index ef99b069a..926df34b5 100644 --- a/fdm-core/src/db/migrations/0001_ambiguous_golden_guardian.sql +++ b/fdm-core/src/db/migrations/0001_needy_thena.sql @@ -2,6 +2,22 @@ CREATE SCHEMA "fdm-dev"; --> statement-breakpoint CREATE TYPE "fdm-dev"."b_manage_type" AS ENUM('owner', 'lease');--> statement-breakpoint CREATE TYPE "fdm-dev"."b_sector" AS ENUM('diary', 'arable', 'tree_nursery', 'bulbs');--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "fdm-dev"."cultivations" ( + "b_lu" text PRIMARY KEY NOT NULL, + "b_lu_catalogue" text NOT NULL, + "created" timestamp with time zone DEFAULT now() NOT NULL, + "updated" timestamp with time zone +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "fdm-dev"."cultivations_catalogue" ( + "b_lu_catalogue" text PRIMARY KEY NOT NULL, + "b_lu_source" text NOT NULL, + "b_lu_name" text NOT NULL, + "b_lu_name_en" text, + "b_lu_hcat3" text, + "b_lu_hcat3_name" text +); +--> statement-breakpoint CREATE TABLE IF NOT EXISTS "fdm-dev"."farm_managing" ( "b_id" text NOT NULL, "b_id_farm" text NOT NULL, @@ -97,6 +113,17 @@ CREATE TABLE IF NOT EXISTS "fdm-dev"."fertilizers_catalogue" ( "updated" timestamp with time zone ); --> statement-breakpoint +CREATE TABLE IF NOT EXISTS "fdm-dev"."field_sowing" ( + "b_id" text NOT NULL, + "b_lu" text NOT NULL, + "b_sowing_date" date, + "b_sowing_amount" numeric, + "b_sowing_method" text, + "created" timestamp with time zone DEFAULT now() NOT NULL, + "updated" timestamp with time zone, + CONSTRAINT "field_sowing_b_id_b_lu_pk" PRIMARY KEY("b_id","b_lu") +); +--> statement-breakpoint CREATE TABLE IF NOT EXISTS "fdm-dev"."fields" ( "b_id" text PRIMARY KEY NOT NULL, "b_name" text, @@ -129,6 +156,12 @@ CREATE TABLE IF NOT EXISTS "fdm-dev"."users" ( "updated" timestamp with time zone ); --> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "fdm-dev"."cultivations" ADD CONSTRAINT "cultivations_b_lu_catalogue_cultivations_catalogue_b_lu_catalogue_fk" FOREIGN KEY ("b_lu_catalogue") REFERENCES "fdm-dev"."cultivations_catalogue"("b_lu_catalogue") ON DELETE no action ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint DO $$ BEGIN ALTER TABLE "fdm-dev"."farm_managing" ADD CONSTRAINT "farm_managing_b_id_fields_b_id_fk" FOREIGN KEY ("b_id") REFERENCES "fdm-dev"."fields"("b_id") ON DELETE no action ON UPDATE no action; EXCEPTION @@ -165,6 +198,18 @@ EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "fdm-dev"."field_sowing" ADD CONSTRAINT "field_sowing_b_id_fields_b_id_fk" FOREIGN KEY ("b_id") REFERENCES "fdm-dev"."fields"("b_id") ON DELETE no action ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "fdm-dev"."field_sowing" ADD CONSTRAINT "field_sowing_b_lu_cultivations_b_lu_fk" FOREIGN KEY ("b_lu") REFERENCES "fdm-dev"."cultivations"("b_lu") ON DELETE no action ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint DO $$ BEGIN ALTER TABLE "fdm-dev"."grants" ADD CONSTRAINT "grants_b_farm_id_farms_b_id_farm_fk" FOREIGN KEY ("b_farm_id") REFERENCES "fdm-dev"."farms"("b_id_farm") ON DELETE no action ON UPDATE no action; EXCEPTION @@ -183,6 +228,8 @@ EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint +CREATE UNIQUE INDEX IF NOT EXISTS "b_lu_idx" ON "fdm-dev"."cultivations" USING btree ("b_lu");--> statement-breakpoint +CREATE UNIQUE INDEX IF NOT EXISTS "b_lu_catalogue_idx" ON "fdm-dev"."cultivations_catalogue" USING btree ("b_lu_catalogue");--> statement-breakpoint CREATE UNIQUE INDEX IF NOT EXISTS "b_id_farm_idx" ON "fdm-dev"."farms" USING btree ("b_id_farm");--> statement-breakpoint CREATE UNIQUE INDEX IF NOT EXISTS "p_id_idx" ON "fdm-dev"."fertilizers" USING btree ("p_id");--> statement-breakpoint CREATE UNIQUE INDEX IF NOT EXISTS "p_id_catalogue_idx" ON "fdm-dev"."fertilizers_catalogue" USING btree ("p_id_catalogue");--> statement-breakpoint diff --git a/fdm-core/src/db/migrations/meta/0001_snapshot.json b/fdm-core/src/db/migrations/meta/0001_snapshot.json index f361ec1b3..2ebb62e65 100644 --- a/fdm-core/src/db/migrations/meta/0001_snapshot.json +++ b/fdm-core/src/db/migrations/meta/0001_snapshot.json @@ -1,9 +1,139 @@ { - "id": "1c3a0a34-c816-49a1-a809-484f60720e3c", + "id": "3e245459-8868-4bb8-916c-287ad9d0b80a", "prevId": "a835be94-9cd8-4b1f-88c0-749e8bd36b22", "version": "7", "dialect": "postgresql", "tables": { + "fdm-dev.cultivations": { + "name": "cultivations", + "schema": "fdm-dev", + "columns": { + "b_lu": { + "name": "b_lu", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "b_lu_catalogue": { + "name": "b_lu_catalogue", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "created": { + "name": "created", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated": { + "name": "updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "b_lu_idx": { + "name": "b_lu_idx", + "columns": [ + { + "expression": "b_lu", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "cultivations_b_lu_catalogue_cultivations_catalogue_b_lu_catalogue_fk": { + "name": "cultivations_b_lu_catalogue_cultivations_catalogue_b_lu_catalogue_fk", + "tableFrom": "cultivations", + "tableTo": "cultivations_catalogue", + "schemaTo": "fdm-dev", + "columnsFrom": [ + "b_lu_catalogue" + ], + "columnsTo": [ + "b_lu_catalogue" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "fdm-dev.cultivations_catalogue": { + "name": "cultivations_catalogue", + "schema": "fdm-dev", + "columns": { + "b_lu_catalogue": { + "name": "b_lu_catalogue", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "b_lu_source": { + "name": "b_lu_source", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "b_lu_name": { + "name": "b_lu_name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "b_lu_name_en": { + "name": "b_lu_name_en", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "b_lu_hcat3": { + "name": "b_lu_hcat3", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "b_lu_hcat3_name": { + "name": "b_lu_hcat3_name", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "b_lu_catalogue_idx": { + "name": "b_lu_catalogue_idx", + "columns": [ + { + "expression": "b_lu_catalogue", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, "fdm-dev.farm_managing": { "name": "farm_managing", "schema": "fdm-dev", @@ -677,6 +807,97 @@ "uniqueConstraints": {}, "checkConstraints": {} }, + "fdm-dev.field_sowing": { + "name": "field_sowing", + "schema": "fdm-dev", + "columns": { + "b_id": { + "name": "b_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "b_lu": { + "name": "b_lu", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "b_sowing_date": { + "name": "b_sowing_date", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "b_sowing_amount": { + "name": "b_sowing_amount", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "b_sowing_method": { + "name": "b_sowing_method", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created": { + "name": "created", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated": { + "name": "updated", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "field_sowing_b_id_fields_b_id_fk": { + "name": "field_sowing_b_id_fields_b_id_fk", + "tableFrom": "field_sowing", + "tableTo": "fields", + "schemaTo": "fdm-dev", + "columnsFrom": [ + "b_id" + ], + "columnsTo": [ + "b_id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "field_sowing_b_lu_cultivations_b_lu_fk": { + "name": "field_sowing_b_lu_cultivations_b_lu_fk", + "tableFrom": "field_sowing", + "tableTo": "cultivations", + "schemaTo": "fdm-dev", + "columnsFrom": [ + "b_lu" + ], + "columnsTo": [ + "b_lu" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "field_sowing_b_id_b_lu_pk": { + "name": "field_sowing_b_id_b_lu_pk", + "columns": [ + "b_id", + "b_lu" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, "fdm-dev.fields": { "name": "fields", "schema": "fdm-dev", diff --git a/fdm-core/src/db/migrations/meta/_journal.json b/fdm-core/src/db/migrations/meta/_journal.json index 6e77981cd..f7a5efd12 100644 --- a/fdm-core/src/db/migrations/meta/_journal.json +++ b/fdm-core/src/db/migrations/meta/_journal.json @@ -12,8 +12,8 @@ { "idx": 1, "version": "7", - "when": 1731415851157, - "tag": "0001_ambiguous_golden_guardian", + "when": 1732783245788, + "tag": "0001_needy_thena", "breakpoints": true } ] diff --git a/fdm-core/src/db/schema.ts b/fdm-core/src/db/schema.ts index c4f9b6ed8..3166cc4da 100644 --- a/fdm-core/src/db/schema.ts +++ b/fdm-core/src/db/schema.ts @@ -29,8 +29,8 @@ export const manageTypeEnum = fdmSchema.enum('b_manage_type', ['owner', 'lease'] export const farmManaging = fdmSchema.table('farm_managing', { b_id: text().notNull().references(() => fields.b_id), b_id_farm: text().notNull().references(() => farms.b_id_farm), - b_manage_start: date({ mode: 'date' }), - b_manage_end: date({ mode: 'date' }), + b_manage_start: date({ mode: 'string' }), + b_manage_end: date({ mode: 'string' }), b_manage_type: manageTypeEnum(), created: timestamp({ withTimezone: true }).notNull().defaultNow(), updated: timestamp({ withTimezone: true }) @@ -68,7 +68,7 @@ export const fertilizers = fdmSchema.table('fertilizers', { updated: timestamp({ withTimezone: true }) }, (table) => { return { - b_id_idx: uniqueIndex('p_id_idx').on(table.p_id) + p_id_idx: uniqueIndex('p_id_idx').on(table.p_id) } }) @@ -161,6 +161,56 @@ export const fertilizerPicking = fdmSchema.table('fertilizer_picking', { export type fertilizerPickingTypeSelect = typeof fertilizerPicking.$inferSelect export type fertilizerPickingTypeInsert = typeof fertilizerPicking.$inferInsert +// Define cultivations table +export const cultivations = fdmSchema.table('cultivations', { + b_lu: text().primaryKey(), + b_lu_catalogue: text().notNull().references(() => cultivationsCatalogue.b_lu_catalogue), + created: timestamp({ withTimezone: true }).notNull().defaultNow(), + updated: timestamp({ withTimezone: true }) +}, (table) => { + return { + b_lu_idx: uniqueIndex('b_lu_idx').on(table.b_lu) + } +}) + +export type cultivationsTypeSelect = typeof cultivations.$inferSelect +export type cultivationsTypeInsert = typeof cultivations.$inferInsert + +// Define field_sowing table +export const fieldSowing = fdmSchema.table('field_sowing', { + b_id: text().notNull().references(() => fields.b_id), + b_lu: text().notNull().references(() => cultivations.b_lu), + b_sowing_date: date({ mode: 'string' }), + b_sowing_amount: numericCasted(), + b_sowing_method: text(), + created: timestamp({ withTimezone: true }).notNull().defaultNow(), + updated: timestamp({ withTimezone: true }) +}, (table) => { + return { + pk: primaryKey({ columns: [table.b_id, table.b_lu] }) + } +}) + +export type fieldSowingTypeSelect = typeof fieldSowing.$inferSelect +export type fieldSowingTypeInsert = typeof fieldSowing.$inferInsert + +// Define cultivations_catalogue table +export const cultivationsCatalogue = fdmSchema.table('cultivations_catalogue', { + b_lu_catalogue: text().primaryKey(), + b_lu_source: text().notNull(), + b_lu_name: text().notNull(), + b_lu_name_en: text(), + b_lu_hcat3: text(), + b_lu_hcat3_name: text() +}, (table) => { + return { + b_lu_catalogue_idx: uniqueIndex('b_lu_catalogue_idx').on(table.b_lu_catalogue) + } +}) + +export type cultivationsCatalogueTypeSelect = typeof cultivationsCatalogue.$inferSelect +export type cultivationsCatalogueTypeInsert = typeof cultivationsCatalogue.$inferInsert + // IAM part // IN DEVELOPMENT!! // Will be more advanced in future updates diff --git a/fdm-core/src/fertilizer.ts b/fdm-core/src/fertilizer.ts index 4ded110f0..3830043a9 100644 --- a/fdm-core/src/fertilizer.ts +++ b/fdm-core/src/fertilizer.ts @@ -141,8 +141,7 @@ export async function addFertilizer( .insert(schema.fertilizerPicking) .values(fertilizerPickingData) - } catch (error) { - tx.rollback() + } catch (error) { throw new Error('Add fertilizer failed with error ' + error) } }) @@ -249,8 +248,7 @@ export async function removeFertilizer( .delete(schema.fertilizers) .where(eq(schema.fertilizers.p_id, p_id)) } - catch (error) { - tx.rollback() + catch (error) { throw new Error('Remove fertilizer failed with error ' + error) } }) diff --git a/fdm-core/src/field.d.ts b/fdm-core/src/field.d.ts index 57ff26a96..58b09ebec 100644 --- a/fdm-core/src/field.d.ts +++ b/fdm-core/src/field.d.ts @@ -5,6 +5,7 @@ export interface getFieldType { b_id_farm: string b_id_source: string | null b_geometry: string | null + b_area: number | null b_manage_start: Date | null b_manage_end: Date | null b_manage_type: 'owner' | 'lease' | null diff --git a/fdm-core/src/field.test.ts b/fdm-core/src/field.test.ts index 1ffcbaf03..068f557f4 100644 --- a/fdm-core/src/field.test.ts +++ b/fdm-core/src/field.test.ts @@ -35,8 +35,8 @@ describe('Farm Data Model', () => { const fieldName = 'Test Field' const fieldIDSource = 'test-field-id' const fieldGeometry = 'POLYGON((30 10,40 40,20 40,10 20,30 10))' - const manageStart = new Date('2023-01-01') - const manageEnd = new Date('2023-12-31') + const manageStart = '2023-01-01' + const manageEnd = '2023-12-31' const manageType = 'owner' const b_id = await addField(fdm, b_id_farm, fieldName, fieldIDSource, fieldGeometry, manageStart, manageEnd, manageType) expect(b_id).toBeDefined() @@ -46,6 +46,7 @@ describe('Farm Data Model', () => { expect(field.b_id_farm).toBe(b_id_farm) expect(field.b_id_source).toBe(fieldIDSource) expect(field.b_geometry).toBe(fieldGeometry) + expect(field.b_area).toBeGreaterThan(0) expect(field.b_manage_start).toEqual(manageStart) expect(field.b_manage_end).toEqual(manageEnd) expect(field.b_manage_type).toBe(manageType) @@ -59,8 +60,8 @@ describe('Farm Data Model', () => { const fieldName = 'Test Field' const fieldIDSource = 'test-field-id' const fieldGeometry = 'POLYGON((30 10,40 40,20 40,10 20,30 10))' - const manageStart = new Date('2023-01-01') - const manageEnd = new Date('2023-12-31') + const manageStart = '2023-01-01' + const manageEnd = '2023-12-31' const manageType = 'owner' const b_id = await addField(fdm, b_id_farm, fieldName, fieldIDSource, fieldGeometry, manageStart, manageEnd, manageType) @@ -69,6 +70,7 @@ describe('Farm Data Model', () => { expect(field.b_id_farm).toBe(b_id_farm) expect(field.b_id_source).toBe(fieldIDSource) expect(field.b_geometry).toBe(fieldGeometry) + expect(field.b_area).toBeGreaterThan(0) expect(field.b_manage_start).toEqual(manageStart) expect(field.b_manage_end).toEqual(manageEnd) expect(field.b_manage_type).toBe(manageType) @@ -82,16 +84,16 @@ describe('Farm Data Model', () => { const fieldName1 = 'Test Field 1' const fieldIDSource1 = 'test-field-id-1' const fieldGeometry1 = 'POLYGON((30 10,40 40,20 40,10 20,30 10))' - const manageStart1 = new Date('2023-01-01') - const manageEnd1 = new Date('2023-12-31') + const manageStart1 = '2023-01-01' + const manageEnd1 = '2023-12-31' const manageType1 = 'owner' const b_id1 = await addField(fdm, b_id_farm, fieldName1, fieldIDSource1, fieldGeometry1, manageStart1, manageEnd1, manageType1) const fieldName2 = 'Test Field 2' const fieldIDSource2 = 'test-field-id-2' const fieldGeometry2 = 'POLYGON((50 50,60 60,40 60,30 40,50 50))' - const manageStart2 = new Date('2024-01-01') - const manageEnd2 = new Date('2024-12-31') + const manageStart2 = '2024-01-01' + const manageEnd2 = '2024-12-31' const manageType2 = 'lease' const b_id2 = await addField(fdm, b_id_farm, fieldName2, fieldIDSource2, fieldGeometry2, manageStart2, manageEnd2, manageType2) @@ -103,6 +105,7 @@ describe('Farm Data Model', () => { expect(field1?.b_id_farm).toBe(b_id_farm) expect(field1?.b_id_source).toBe(fieldIDSource1) expect(field1?.b_geometry).toBe(fieldGeometry1) + expect(field1?.b_area).toBeGreaterThan(0) expect(field1?.b_manage_start).toEqual(manageStart1) expect(field1?.b_manage_end).toEqual(manageEnd1) expect(field1?.b_manage_type).toBe(manageType1) @@ -112,6 +115,7 @@ describe('Farm Data Model', () => { expect(field2?.b_id_farm).toBe(b_id_farm) expect(field2?.b_id_source).toBe(fieldIDSource2) expect(field2?.b_geometry).toBe(fieldGeometry2) + expect(field2?.b_area).toBeGreaterThan(0) expect(field2?.b_manage_start).toEqual(manageStart2) expect(field2?.b_manage_end).toEqual(manageEnd2) expect(field2?.b_manage_type).toBe(manageType2) @@ -125,21 +129,21 @@ describe('Farm Data Model', () => { const fieldName = 'Test Field' const fieldIDSource = 'test-field-id' const fieldGeometry = 'POLYGON((30 10,40 40,20 40,10 20,30 10))' - const manageStart = new Date('2023-01-01') - const manageEnd = new Date('2023-12-31') + const manageStart = '2023-01-01' + const manageEnd = '2023-12-31' const manageType = 'owner' const b_id = await addField(fdm, b_id_farm, fieldName, fieldIDSource, fieldGeometry, manageStart, manageEnd, manageType) const updatedFieldName = 'Updated Test Field' const updatedFieldIDSource = 'updated-test-field-id' const updatedFieldGeometry = 'POLYGON((30 10,40 40,20 40,10 20,30 10))' - const updatedManageStart = new Date('2024-01-01') - const updatedManageEnd = new Date('2024-12-31') + const updatedManageStart = '2024-01-01' + const updatedManageEnd = '2024-12-31' const updatedManageType = 'lease' const updatedField = await updateField(fdm, b_id, updatedFieldName, updatedFieldIDSource, updatedFieldGeometry, updatedManageStart, updatedManageEnd, updatedManageType) expect(updatedField.b_name).toBe(updatedFieldName) expect(updatedField.b_id_source).toBe(updatedFieldIDSource) - expect(updatedField.b_geometry).toBe(fieldGeometry) + expect(updatedField.b_geometry).toBe(fieldGeometry) expect(updatedField.b_manage_start).toEqual(updatedManageStart) expect(updatedField.b_manage_end).toEqual(updatedManageEnd) expect(updatedField.b_manage_type).toBe(updatedManageType) @@ -153,8 +157,8 @@ describe('Farm Data Model', () => { const fieldName = 'Test Field' const fieldIDSource = 'test-field-id' const fieldGeometry = 'POLYGON((30 10,40 40,20 40,10 20,30 10))' - const manageStart = new Date('2023-01-01') - const manageEnd = new Date('2023-12-31') + const manageStart = '2023-01-01' + const manageEnd = '2023-12-31' const manageType = 'owner' const b_id = await addField(fdm, b_id_farm, fieldName, fieldIDSource, fieldGeometry, manageStart, manageEnd, manageType) @@ -192,7 +196,7 @@ describe('Farm Data Model', () => { expect(updatedField3.b_manage_type).toBe(updatedManageType) // Should remain the same // Partial updates for `farmManaging` table - const updatedManageStart = new Date('2024-01-01') + const updatedManageStart = '2024-01-01' const updatedField4 = await updateField(fdm, b_id, undefined, undefined, undefined, updatedManageStart, undefined, undefined) expect(updatedField4.b_name).toBe(updatedFieldName) // Should remain the same expect(updatedField4.b_id_source).toBe(updatedFieldIDSource) // Should remain the same diff --git a/fdm-core/src/field.ts b/fdm-core/src/field.ts index 62c238ad2..52b46ce3d 100644 --- a/fdm-core/src/field.ts +++ b/fdm-core/src/field.ts @@ -67,6 +67,7 @@ export async function getField(fdm: FdmType, b_id: schema.fieldsTypeSelect['b_id b_id_farm: schema.farmManaging.b_id_farm, b_id_source: schema.fields.b_id_source, b_geometry: schema.fields.b_geometry, + b_area: sql`ST_Area(b_geometry::geography)/10000`, b_manage_start: schema.farmManaging.b_manage_start, b_manage_end: schema.farmManaging.b_manage_end, b_manage_type: schema.farmManaging.b_manage_type, @@ -97,6 +98,7 @@ export async function getFields(fdm: FdmType, b_id_farm: schema.farmsTypeSelect[ b_id_farm: schema.farms.b_id_farm, b_id_source: schema.fields.b_id_source, b_geometry: schema.fields.b_geometry, + b_area: sql`ST_Area(b_geometry::geography)/10000`, b_manage_start: schema.farmManaging.b_manage_start, b_manage_end: schema.farmManaging.b_manage_end, b_manage_type: schema.farmManaging.b_manage_type, @@ -182,8 +184,7 @@ export async function updateField(fdm: FdmType, b_id: schema.fieldsTypeInsert['b .where(eq(schema.fields.b_id, b_id)) .limit(1) return field[0] - } catch (error) { - tx.rollback() + } catch (error) { throw new Error('Update of field failed with error ' + error) } }) diff --git a/fdm-core/src/iam.ts b/fdm-core/src/iam.ts index 98628660d..56a4280ca 100644 --- a/fdm-core/src/iam.ts +++ b/fdm-core/src/iam.ts @@ -30,9 +30,8 @@ export async function signUpUser(fdm: FdmType, firstname: schema.usersTypeInsert user_id: user_id }) - } catch (error) { - tx.rollback() - throw new Error('Faild to sign up user with error ' + error) + } catch (error) { + throw new Error(`Failed to sign up user: ${error instanceof Error ? error.message : String(error)}`) } }) diff --git a/fdm-core/src/index.ts b/fdm-core/src/index.ts index 5456b567b..681188cd2 100644 --- a/fdm-core/src/index.ts +++ b/fdm-core/src/index.ts @@ -16,9 +16,11 @@ import * as fdmSchema from './db/schema' export { fdmSchema } export {type FdmType } from './fdm.d' +export {type FdmServerType } from './fdm-server.d' export { createFdmServer, migrateFdmServer } from './fdm-server' // export { createFdmLocal, migrateFdmLocal } from './fdm-local' export { addFarm, getFarm, updateFarm, } from './farm' export { addField, getField, getFields, updateField } from './field' export { addFertilizerToCatalogue, getFertilizersFromCatalogue, addFertilizer, removeFertilizer } from './fertilizer' +export { addCultivationToCatalogue, getCultivationsFromCatalogue, addCultivation, removeCultivation, getCultivation, getCultivations, getCultivationPlan } from './cultivation' export { signUpUser, getUserFromSession} from './iam' \ No newline at end of file diff --git a/fdm-data/.env.example b/fdm-data/.env.example new file mode 100644 index 000000000..3643625c9 --- /dev/null +++ b/fdm-data/.env.example @@ -0,0 +1,15 @@ +# DB configuration +# The hostname or IP address of the PostgreSQL database server. +POSTGRES_HOST= + +# The port number on which the PostgreSQL database server is listening. Defaults to 5432 if not specified. +POSTGRES_PORT= + +# The name of the PostgreSQL database to connect to. +POSTGRES_DB= + +# The username used to authenticate with the PostgreSQL database server. +POSTGRES_USER= + +# The password used to authenticate with the PostgreSQL database server. Ensure this is stored securely and not exposed in version control. +POSTGRES_PASSWORD= diff --git a/fdm-data/CHANGELOG.md b/fdm-data/CHANGELOG.md index 0d5b3132d..34d7a6b0a 100644 --- a/fdm-data/CHANGELOG.md +++ b/fdm-data/CHANGELOG.md @@ -1,5 +1,23 @@ # fdm-data +## 0.4.0 + +### Minor Changes + +- d39b097: Add `extendCultivationsCatalogue` to extend the `cultivations_catalogue` table +- d39b097: Add `brp` as catalogue for cultivations + +### Patch Changes + +- 35c55e1: Add example configuration file as `.env.example` +- 6694029: Upgrade `pnpm` to 9.14.2 +- Updated dependencies [35c55e1] +- Updated dependencies [6694029] +- Updated dependencies [c316d5c] +- Updated dependencies [b1dea77] +- Updated dependencies [49aa60c] + - @svenvw/fdm-core@0.6.0 + ## 0.3.0 ### Patch Changes diff --git a/fdm-data/package.json b/fdm-data/package.json index b7e6f6ddc..025b77c5c 100644 --- a/fdm-data/package.json +++ b/fdm-data/package.json @@ -1,7 +1,7 @@ { "name": "@svenvw/fdm-data", "private": false, - "version": "0.3.0", + "version": "0.4.0", "description": "Extend Farm Data Model with catalogue data", "license": "MIT", "homepage": "https://github.com/SvenVw/fdm", @@ -49,19 +49,19 @@ "lint": "eslint ." }, "devDependencies": { - "@dotenvx/dotenvx": "^1.20.0", + "@dotenvx/dotenvx": "^1.20.1", "@svenvw/fdm-core": "workspace:*", "drizzle-orm": "catalog:", - "typescript": "^5.5.3", - "vite": "^5.4.8", - "vite-plugin-dts": "^4.0.2", - "vitest": "^2.0.5" + "typescript": "^5.6.3", + "vite": "^5.4.10", + "vite-plugin-dts": "^4.3.0", + "vitest": "^2.1.3" }, "peerDependencies": { - "@svenvw/fdm-core": "workspace:>=0.5.0" + "@svenvw/fdm-core": "workspace:>=0.6.0" }, - "packageManager": "pnpm@9.12.2", + "packageManager": "pnpm@9.14.2", "publishConfig": { "registry": "https://npm.pkg.github.com" } -} \ No newline at end of file +} diff --git a/fdm-data/src/cultivations/catalogues/brp.json b/fdm-data/src/cultivations/catalogues/brp.json new file mode 100644 index 000000000..22fb06317 --- /dev/null +++ b/fdm-data/src/cultivations/catalogues/brp.json @@ -0,0 +1,3649 @@ +[ + { + "b_lu_catalogue": "nl_172", + "b_lu_name": "tuinbouwzaden", + "b_lu_name_en": "Horticultural Seeds", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_174", + "b_lu_name": "bloemzaden open grond", + "b_lu_name_en": "Flower seeds open ground", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_175", + "b_lu_name": "bloemkwekerijgewassen (inclusief bloemzaden)", + "b_lu_name_en": "Flower nursery crops (including flower seeds)", + "b_lu_hcat3": "3301089800", + "b_lu_hcat3_name": "unspecified_flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_176", + "b_lu_name": "bloembollen en - knollen", + "b_lu_name_en": "Flower bulbs and tubers", + "b_lu_hcat3": "3301089800", + "b_lu_hcat3_name": "unspecified_flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_212", + "b_lu_name": "fruit", + "b_lu_name_en": "Fruit", + "b_lu_hcat3": "3303019800", + "b_lu_hcat3_name": "unspecified_orchards_fruits" + }, + { + "b_lu_catalogue": "nl_229", + "b_lu_name": "boomkwekerij en vaste planten", + "b_lu_name_en": "Tree nursery and perennials", + "b_lu_hcat3": "3306980000", + "b_lu_hcat3_name": "unspecified_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_233", + "b_lu_name": "tarwe, winter-", + "b_lu_name_en": "wheat winter", + "b_lu_hcat3": "3301010101", + "b_lu_hcat3_name": "winter_common_soft_wheat" + }, + { + "b_lu_catalogue": "nl_234", + "b_lu_name": "tarwe, zomer-", + "b_lu_name_en": "wheat summer", + "b_lu_hcat3": "3301010102", + "b_lu_hcat3_name": "spring_common_soft_wheat" + }, + { + "b_lu_catalogue": "nl_235", + "b_lu_name": "gerst, winter-", + "b_lu_name_en": "barley winter", + "b_lu_hcat3": "3301010401", + "b_lu_hcat3_name": "winter_barley" + }, + { + "b_lu_catalogue": "nl_236", + "b_lu_name": "gerst, zomer-", + "b_lu_name_en": "barley summer", + "b_lu_hcat3": "3301010402", + "b_lu_hcat3_name": "spring_barley" + }, + { + "b_lu_catalogue": "nl_237", + "b_lu_name": "rogge (geen snijrogge)", + "b_lu_name_en": "Rye (not cut rye)", + "b_lu_hcat3": "3301010399", + "b_lu_hcat3_name": "unspecified_season_rye" + }, + { + "b_lu_catalogue": "nl_238", + "b_lu_name": "haver", + "b_lu_name_en": "Oats", + "b_lu_hcat3": "3301010599", + "b_lu_hcat3_name": "unspecified_season_oats" + }, + { + "b_lu_catalogue": "nl_239", + "b_lu_name": "erwten, groene, droog te oogsten (geen conserven)", + "b_lu_name_en": "Peas, green, dry harvest (no canned)", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_240", + "b_lu_name": "schokkers", + "b_lu_name_en": "Shockers", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_241", + "b_lu_name": "kapucijners (en grauwe erwten)", + "b_lu_name_en": "Capuchins (and gray peas)", + "b_lu_hcat3": "3301020600", + "b_lu_hcat3_name": "peas" + }, + { + "b_lu_catalogue": "nl_242", + "b_lu_name": "bonen, bruine-", + "b_lu_name_en": "beans brown", + "b_lu_hcat3": "3301020100", + "b_lu_hcat3_name": "beans" + }, + { + "b_lu_catalogue": "nl_243", + "b_lu_name": "bonen, veld-(oa duive-, paarde-, wierbonen)(droog te oogsten", + "b_lu_name_en": "Beans, field (including pigeon, horse, weed beans) (can be harvested dry", + "b_lu_hcat3": "3301020600", + "b_lu_hcat3_name": "peas" + }, + { + "b_lu_catalogue": "nl_244", + "b_lu_name": "erwten, groene/gele (groen te oogsten)", + "b_lu_name_en": "Peas green/yellow (green to be harvested)", + "b_lu_hcat3": "3301020600", + "b_lu_hcat3_name": "peas" + }, + { + "b_lu_catalogue": "nl_246", + "b_lu_name": "karwijzaad", + "b_lu_name_en": "Caraway seed (harvest this year)", + "b_lu_hcat3": "3301061211", + "b_lu_hcat3_name": "caraway" + }, + { + "b_lu_catalogue": "nl_247", + "b_lu_name": "blauwmaanzaad", + "b_lu_name_en": "Blue moonseed", + "b_lu_hcat3": "3301083100", + "b_lu_hcat3_name": "moonseed" + }, + { + "b_lu_catalogue": "nl_249", + "b_lu_name": "vlas, vezel- (niet voor zaaizaad)", + "b_lu_name_en": "Flax, fiber (not for seed)", + "b_lu_hcat3": "3301060701", + "b_lu_hcat3_name": "flax_linen" + }, + { + "b_lu_catalogue": "nl_256", + "b_lu_name": "bieten, suiker-", + "b_lu_name_en": "beets sugar", + "b_lu_hcat3": "3301290700", + "b_lu_hcat3_name": "sugar_beet" + }, + { + "b_lu_catalogue": "nl_257", + "b_lu_name": "bieten, voeder-", + "b_lu_name_en": "beets", + "b_lu_hcat3": "3301290200", + "b_lu_hcat3_name": "beetroot_beets" + }, + { + "b_lu_catalogue": "nl_258", + "b_lu_name": "luzerne", + "b_lu_name_en": "Lucerne", + "b_lu_hcat3": "3301090301", + "b_lu_hcat3_name": "alfalfa_lucerne" + }, + { + "b_lu_catalogue": "nl_259", + "b_lu_name": "mais, snij-", + "b_lu_name_en": "maize cut", + "b_lu_hcat3": "3301090400", + "b_lu_hcat3_name": "green_silo_maize" + }, + { + "b_lu_catalogue": "nl_262", + "b_lu_name": "uien, zaai-", + "b_lu_name_en": "onions sowing", + "b_lu_hcat3": "3301220400", + "b_lu_hcat3_name": "onions" + }, + { + "b_lu_catalogue": "nl_263", + "b_lu_name": "uien, zilver-", + "b_lu_name_en": "onions silver", + "b_lu_hcat3": "3301220400", + "b_lu_hcat3_name": "onions" + }, + { + "b_lu_catalogue": "nl_265", + "b_lu_name": "grasland, blijvend", + "b_lu_name_en": "Grassland permanent", + "b_lu_hcat3": "3302000000", + "b_lu_hcat3_name": "pasture_meadow_grassland_grass" + }, + { + "b_lu_catalogue": "nl_266", + "b_lu_name": "grasland, tijdelijk", + "b_lu_name_en": "Grassland temporary", + "b_lu_hcat3": "3302000000", + "b_lu_hcat3_name": "pasture_meadow_grassland_grass" + }, + { + "b_lu_catalogue": "nl_294", + "b_lu_name": "boomkwekerijgewassen en vaste planten, pot- en containerveld", + "b_lu_name_en": "Nursery crops and perennials, pot and container field", + "b_lu_hcat3": "3399000000", + "b_lu_hcat3_name": "not_known_and_other" + }, + { + "b_lu_catalogue": "nl_308", + "b_lu_name": "erwten (droog te oogsten)", + "b_lu_name_en": "Peas (to harvest dry)", + "b_lu_hcat3": "3301020600", + "b_lu_hcat3_name": "peas" + }, + { + "b_lu_catalogue": "nl_311", + "b_lu_name": "bonen, veld- (onder andere duiven-, paarden-, wierbonen)", + "b_lu_name_en": "Beans field (including pigeon-", + "b_lu_hcat3": "3301020100", + "b_lu_hcat3_name": "beans" + }, + { + "b_lu_catalogue": "nl_314", + "b_lu_name": "triticale", + "b_lu_name_en": "Triticale", + "b_lu_hcat3": "3301010899", + "b_lu_hcat3_name": "unspecified_season_triticale" + }, + { + "b_lu_catalogue": "nl_316", + "b_lu_name": "mais, korrel-", + "b_lu_name_en": "corn grain", + "b_lu_hcat3": "3301010600", + "b_lu_hcat3_name": "grain_maize_corn_popcorn" + }, + { + "b_lu_catalogue": "nl_317", + "b_lu_name": "mais, corncob mix", + "b_lu_name_en": "Corn corncob mix", + "b_lu_hcat3": "3301010600", + "b_lu_hcat3_name": "grain_maize_corn_popcorn" + }, + { + "b_lu_catalogue": "nl_331", + "b_lu_name": "grasland, natuurlijk. met landbouwactiviteiten.", + "b_lu_name_en": "Grassland natural. Main function agriculture.", + "b_lu_hcat3": "3302000000", + "b_lu_hcat3_name": "pasture_meadow_grassland_grass" + }, + { + "b_lu_catalogue": "nl_332", + "b_lu_name": "grasland, natuurlijk. hoofdfunctie natuur.", + "b_lu_name_en": "Grassland of course. Main function nature.", + "b_lu_hcat3": "3302000000", + "b_lu_hcat3_name": "pasture_meadow_grassland_grass" + }, + { + "b_lu_catalogue": "nl_333", + "b_lu_name": "rand, grenzend aan blijvend grasland of een blijvende teelt, hoofdzakelijk bestaand uit blijvend gras", + "b_lu_name_en": "Border adjacent to permanent grassland or a permanent crop consisting mainly of permanent grass", + "b_lu_hcat3": "3302000000", + "b_lu_hcat3_name": "pasture_meadow_grassland_grass" + }, + { + "b_lu_catalogue": "nl_334", + "b_lu_name": "rand, grenzend aan bouwland, hoofdzakelijk bestaand uit blijvend gras", + "b_lu_name_en": "Edge adjacent to arable land consisting mainly of permanent grass", + "b_lu_hcat3": "3302000000", + "b_lu_hcat3_name": "pasture_meadow_grassland_grass" + }, + { + "b_lu_catalogue": "nl_335", + "b_lu_name": "natuurterreinen (incl. heide)", + "b_lu_name_en": "Natural areas (incl. heath)", + "b_lu_hcat3": "3399000000", + "b_lu_hcat3_name": "not_known_and_other" + }, + { + "b_lu_catalogue": "nl_336", + "b_lu_name": "grasland, natuurlijk. areaal met een natuurbeheertype dat overwegend voor landbouwactiviteiten-glb wordt gebruikt", + "b_lu_name_en": "Grassland, of course. Area with a nature management type mainly used for agricultural activities-CAP", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_337", + "b_lu_name": "bufferstrook, rand (inclusief eventuele oevervegetatie)", + "b_lu_name_en": "Buffer strip edge (including any riparian vegetation)", + "b_lu_hcat3": "3399000000", + "b_lu_hcat3_name": "not_known_and_other" + }, + { + "b_lu_catalogue": "nl_338", + "b_lu_name": "rand, liggend op bouwland en direct grenzend aan bos. geen landbouwproductie.", + "b_lu_name_en": "Edge lying on arable land and directly adjacent to forest. No agricultural production.", + "b_lu_hcat3": "3301100000", + "b_lu_hcat3_name": "arable_land_seed_seedlings" + }, + { + "b_lu_catalogue": "nl_343", + "b_lu_name": "sloot", + "b_lu_name_en": "Ditch adjacent to managed field edge", + "b_lu_hcat3": "3399000000", + "b_lu_hcat3_name": "not_known_and_other" + }, + { + "b_lu_catalogue": "nl_344", + "b_lu_name": "rand, grenzend aan blijvend grasland of een blijvende teelt, hoofdzakelijk bestaand uit een ander gewas dan gras", + "b_lu_name_en": "Border adjacent to permanent pasture or permanent crop consisting mainly of a crop other than grass", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_345", + "b_lu_name": "rand, grenzend aan bouwland, hoofdzakelijk bestaand uit een ander gewas dan gras", + "b_lu_name_en": "Border, adjacent to arable land, consisting mainly of a crop other than grass", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_346", + "b_lu_name": "tagetes erecta (afrikaantje)", + "b_lu_name_en": "Tagetes erecta (marigold)", + "b_lu_hcat3": "3301061210", + "b_lu_hcat3_name": "calendula_marigold" + }, + { + "b_lu_catalogue": "nl_347", + "b_lu_name": "tagetes patula (afrikaantje)", + "b_lu_name_en": "Tagetes patula (tagetes)", + "b_lu_hcat3": "3301084700", + "b_lu_hcat3_name": "tagetes" + }, + { + "b_lu_catalogue": "nl_370", + "b_lu_name": "rand, grenzend aan blijvend grasland of een blijvende teelt, hoofdzakelijk bestaand uit tijdelijk gras", + "b_lu_name_en": "Border adjacent to permanent pasture or a permanent crop consisting mainly of temporary grass", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_372", + "b_lu_name": "rand, grenzend aan bouwland, hoofdzakelijk bestaand uit tijdelijk gras", + "b_lu_name_en": "Edge adjacent to arable land consisting mainly of temporary grass", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_375", + "b_lu_name": "hop", + "b_lu_name_en": "Hop", + "b_lu_hcat3": "3301060200", + "b_lu_hcat3_name": "hops" + }, + { + "b_lu_catalogue": "nl_381", + "b_lu_name": "teff", + "b_lu_name_en": "teff", + "b_lu_hcat3": "3301010904", + "b_lu_hcat3_name": "teff" + }, + { + "b_lu_catalogue": "nl_382", + "b_lu_name": "spelt", + "b_lu_name_en": "Spelt", + "b_lu_hcat3": "3301011000", + "b_lu_hcat3_name": "spelt" + }, + { + "b_lu_catalogue": "nl_383", + "b_lu_name": "graszaad", + "b_lu_name_en": "grass seed", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_426", + "b_lu_name": "overige groenbemesters, vlinderbloemige-", + "b_lu_name_en": "Other green manures leguminous plants", + "b_lu_hcat3": "3301090398", + "b_lu_hcat3_name": "unspecified_legumes_harvested_green" + }, + { + "b_lu_catalogue": "nl_427", + "b_lu_name": "overige groenbemesters, niet-vlinderbloemige-", + "b_lu_name_en": "Other green manures non-butterfly-", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_428", + "b_lu_name": "gele mosterd", + "b_lu_name_en": "Yellow mustard", + "b_lu_hcat3": "3301210100", + "b_lu_hcat3_name": "mustard" + }, + { + "b_lu_catalogue": "nl_511", + "b_lu_name": "cichorei", + "b_lu_name_en": "Chicory", + "b_lu_hcat3": "3301310200", + "b_lu_hcat3_name": "chicory_chicories" + }, + { + "b_lu_catalogue": "nl_513", + "b_lu_name": "kanariezaad", + "b_lu_name_en": "canary seed", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_515", + "b_lu_name": "zonnebloemen", + "b_lu_name_en": "sunflowers", + "b_lu_hcat3": "3301060500", + "b_lu_hcat3_name": "sunflower" + }, + { + "b_lu_catalogue": "nl_516", + "b_lu_name": "miscanthus (olifantsgras)", + "b_lu_name_en": "Miscanthus (elephant grass)", + "b_lu_hcat3": "3301083000", + "b_lu_hcat3_name": "miscanthus_silvergrass" + }, + { + "b_lu_catalogue": "nl_636", + "b_lu_name": "saffloer", + "b_lu_name_en": "safflower", + "b_lu_hcat3": "3301083900", + "b_lu_hcat3_name": "safflower" + }, + { + "b_lu_catalogue": "nl_637", + "b_lu_name": "vrouwenmantel", + "b_lu_name_en": "lady's mantle", + "b_lu_hcat3": "3301061202", + "b_lu_hcat3_name": "alchemilla_ladys_mantle" + }, + { + "b_lu_catalogue": "nl_652", + "b_lu_name": "meekrap", + "b_lu_name_en": "Madder", + "b_lu_hcat3": "3301061231", + "b_lu_hcat3_name": "rubia_tinctorum_common_madder" + }, + { + "b_lu_catalogue": "nl_653", + "b_lu_name": "teunisbloem", + "b_lu_name_en": "evening primrose", + "b_lu_hcat3": "3301083500", + "b_lu_hcat3_name": "primrose" + }, + { + "b_lu_catalogue": "nl_654", + "b_lu_name": "brandnetel", + "b_lu_name_en": "Nettle", + "b_lu_hcat3": "3301061225", + "b_lu_hcat3_name": "nettles" + }, + { + "b_lu_catalogue": "nl_655", + "b_lu_name": "zwarte mosterd", + "b_lu_name_en": "black mustard", + "b_lu_hcat3": "3301210100", + "b_lu_hcat3_name": "mustard" + }, + { + "b_lu_catalogue": "nl_656", + "b_lu_name": "zonnekroon", + "b_lu_name_en": "Sunflower", + "b_lu_hcat3": "3301060500", + "b_lu_hcat3_name": "sunflower" + }, + { + "b_lu_catalogue": "nl_657", + "b_lu_name": "drachtplanten", + "b_lu_name_en": "Perennial plants", + "b_lu_hcat3": "3303120000", + "b_lu_hcat3_name": "unspecified_permanent_crops" + }, + { + "b_lu_catalogue": "nl_658", + "b_lu_name": "graansorgho", + "b_lu_name_en": "grain sorghum", + "b_lu_hcat3": "3301010999", + "b_lu_hcat3_name": "unspecified_season_millet_sorghum" + }, + { + "b_lu_catalogue": "nl_659", + "b_lu_name": "boekweit", + "b_lu_name_en": "Buckwheat", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_660", + "b_lu_name": "gierst", + "b_lu_name_en": "Millet", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_661", + "b_lu_name": "overige granen", + "b_lu_name_en": "Other grains", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_662", + "b_lu_name": "bos (sbl-regeling)", + "b_lu_name_en": "Forest (SBL scheme)", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_663", + "b_lu_name": "lupinen, niet bittere", + "b_lu_name_en": "Lupins not bitter", + "b_lu_hcat3": "3301020700", + "b_lu_hcat3_name": "sweet_lupins" + }, + { + "b_lu_catalogue": "nl_664", + "b_lu_name": "raapzaad", + "b_lu_name_en": "Rapeseed", + "b_lu_hcat3": "3301060499", + "b_lu_hcat3_name": "unspecified_season_rapeseed_rape" + }, + { + "b_lu_catalogue": "nl_665", + "b_lu_name": "sojabonen", + "b_lu_name_en": "soybeans", + "b_lu_hcat3": "3301160000", + "b_lu_hcat3_name": "soy_soybeans" + }, + { + "b_lu_catalogue": "nl_666", + "b_lu_name": "vlas, olie-. lijnzaad niet van vezelvlas", + "b_lu_name_en": "Flax oil. Linseed not from fiber flax", + "b_lu_hcat3": "3301060702", + "b_lu_hcat3_name": "flax_linseed_oil" + }, + { + "b_lu_catalogue": "nl_669", + "b_lu_name": "zwaardherik (aaltjesvanggewas)", + "b_lu_name_en": "Arugula (nematode-catching crop)", + "b_lu_hcat3": "3301319900", + "b_lu_hcat3_name": "other_salads_lettuce_leaf_vegetables" + }, + { + "b_lu_catalogue": "nl_670", + "b_lu_name": "japanse haver", + "b_lu_name_en": "Japanese oats", + "b_lu_hcat3": "3301010599", + "b_lu_hcat3_name": "unspecified_season_oats" + }, + { + "b_lu_catalogue": "nl_671", + "b_lu_name": "raketblad (aaltjesvanggewas)", + "b_lu_name_en": "Rocket leaf (nematode catch crop)", + "b_lu_hcat3": "3301310600", + "b_lu_hcat3_name": "rocket_arugula" + }, + { + "b_lu_catalogue": "nl_672", + "b_lu_name": "groenten open grond (inclusief groentezaden)", + "b_lu_name_en": "Vegetables open ground (including vegetable seeds)", + "b_lu_hcat3": "3399000000", + "b_lu_hcat3_name": "not_known_and_other" + }, + { + "b_lu_catalogue": "nl_794", + "b_lu_name": "woudbomen met korte omlooptijd (excl. wilgenhakhout)", + "b_lu_name_en": "Short rotation forest trees (excl. willow coppice)", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_795", + "b_lu_name": "wilgenhakhout", + "b_lu_name_en": "Willow coppice", + "b_lu_hcat3": "3306080000", + "b_lu_hcat3_name": "willows_osiers" + }, + { + "b_lu_catalogue": "nl_796", + "b_lu_name": "kerstbomen", + "b_lu_name_en": "Christmas trees", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_799", + "b_lu_name": "klaver, rode", + "b_lu_name_en": "clover red", + "b_lu_hcat3": "3301090303", + "b_lu_hcat3_name": "clover" + }, + { + "b_lu_catalogue": "nl_800", + "b_lu_name": "rolklaver", + "b_lu_name_en": "scroll clover", + "b_lu_hcat3": "3301090303", + "b_lu_hcat3_name": "clover" + }, + { + "b_lu_catalogue": "nl_801", + "b_lu_name": "esparcette", + "b_lu_name_en": "esparcette", + "b_lu_hcat3": "3301020300", + "b_lu_hcat3_name": "esparsette_onobrychis" + }, + { + "b_lu_catalogue": "nl_802", + "b_lu_name": "wikke, bonte", + "b_lu_name_en": "Vetch variegated", + "b_lu_hcat3": "3301090305", + "b_lu_hcat3_name": "vetches" + }, + { + "b_lu_catalogue": "nl_803", + "b_lu_name": "wikke, voeder-", + "b_lu_name_en": "vetch feed", + "b_lu_hcat3": "3301090305", + "b_lu_hcat3_name": "vetches" + }, + { + "b_lu_catalogue": "nl_804", + "b_lu_name": "klaverzaad", + "b_lu_name_en": "clover seed", + "b_lu_hcat3": "3301090303", + "b_lu_hcat3_name": "clover" + }, + { + "b_lu_catalogue": "nl_814", + "b_lu_name": "mais, suiker-", + "b_lu_name_en": "corn sugar", + "b_lu_hcat3": "3301010600", + "b_lu_hcat3_name": "grain_maize_corn_popcorn" + }, + { + "b_lu_catalogue": "nl_853", + "b_lu_name": "bonen, tuin- (droog te oogsten) (geen consumptie)", + "b_lu_name_en": "Beans garden (dry harvest) (no consumption)", + "b_lu_hcat3": "3301020100", + "b_lu_hcat3_name": "beans" + }, + { + "b_lu_catalogue": "nl_854", + "b_lu_name": "bonen, tuin- (groen te oogsten)", + "b_lu_name_en": "Beans garden (green to be harvested)", + "b_lu_hcat3": "3301020100", + "b_lu_hcat3_name": "beans" + }, + { + "b_lu_catalogue": "nl_859", + "b_lu_name": "aardappelen, zetmeel geleverd aan buitenland", + "b_lu_name_en": "Potatoes, starch delivered abroad", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_863", + "b_lu_name": "bos zonder herplantplicht", + "b_lu_name_en": "Forest without obligation to replant", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_864", + "b_lu_name": "bos (set aside regeling)", + "b_lu_name_en": "Forest (set aside arrangement)", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_944", + "b_lu_name": "hennep, vezel-", + "b_lu_name_en": "hemp", + "b_lu_hcat3": "3301061000", + "b_lu_hcat3_name": "hemp_cannabis" + }, + { + "b_lu_catalogue": "nl_964", + "b_lu_name": "dahlia, overige bloemkwekerijgewassen", + "b_lu_name_en": "Dahlia other flower nursery crops", + "b_lu_hcat3": "3301081200", + "b_lu_hcat3_name": "dahlia" + }, + { + "b_lu_catalogue": "nl_965", + "b_lu_name": "dahlia, droogbloemen", + "b_lu_name_en": "Dahlia dried flowers", + "b_lu_hcat3": "3301081200", + "b_lu_hcat3_name": "dahlia" + }, + { + "b_lu_catalogue": "nl_967", + "b_lu_name": "gladiool, overige bloemkwekerijgewassen", + "b_lu_name_en": "Gladiolus other flower nursery crops", + "b_lu_hcat3": "3301082100", + "b_lu_hcat3_name": "gladiolus_gladioli" + }, + { + "b_lu_catalogue": "nl_968", + "b_lu_name": "gladiool, droogbloemen", + "b_lu_name_en": "Gladiolus dried flowers", + "b_lu_hcat3": "3301082100", + "b_lu_hcat3_name": "gladiolus_gladioli" + }, + { + "b_lu_catalogue": "nl_970", + "b_lu_name": "hyacint, overige bloemkwekerijgewassen", + "b_lu_name_en": "Hyacinth other flower nursery crops", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_971", + "b_lu_name": "hyacint, droogbloemen", + "b_lu_name_en": "Hyacinth dried flowers", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_973", + "b_lu_name": "iris, overige bloemkwekerijgewassen", + "b_lu_name_en": "Iris other flower nursery crops", + "b_lu_hcat3": "3301082200", + "b_lu_hcat3_name": "iris" + }, + { + "b_lu_catalogue": "nl_974", + "b_lu_name": "iris, droogbloemen", + "b_lu_name_en": "Iris dried flowers", + "b_lu_hcat3": "3301082200", + "b_lu_hcat3_name": "iris" + }, + { + "b_lu_catalogue": "nl_976", + "b_lu_name": "krokus, overige bloemkwekerijgewassen", + "b_lu_name_en": "Crocus other flower nursery crops", + "b_lu_hcat3": "3301061232", + "b_lu_hcat3_name": "saffron_crocus_sativus" + }, + { + "b_lu_catalogue": "nl_977", + "b_lu_name": "krokus, droogbloemen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_979", + "b_lu_name": "lelie, overige bloemkwekerijgewassen", + "b_lu_name_en": "Lily other flower nursery crops", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_980", + "b_lu_name": "lelie, droogbloemen", + "b_lu_name_en": "Lily, dried flowers", + "b_lu_hcat3": "3301082500", + "b_lu_hcat3_name": "lilies" + }, + { + "b_lu_catalogue": "nl_982", + "b_lu_name": "narcis, overige bloemkwekerijgewassen", + "b_lu_name_en": "Narcissus other flower nursery crops", + "b_lu_hcat3": "3301083300", + "b_lu_hcat3_name": "narcissus_daffodil" + }, + { + "b_lu_catalogue": "nl_983", + "b_lu_name": "narcis, droogbloemen", + "b_lu_name_en": "Narcissus, dried flowers", + "b_lu_hcat3": "3301083300", + "b_lu_hcat3_name": "narcissus_daffodil" + }, + { + "b_lu_catalogue": "nl_985", + "b_lu_name": "tulp, overige bloemkwekerijgewassen", + "b_lu_name_en": "Tulip other flower nursery crops", + "b_lu_hcat3": "3301084900", + "b_lu_hcat3_name": "tulips" + }, + { + "b_lu_catalogue": "nl_986", + "b_lu_name": "tulp, droogbloemen", + "b_lu_name_en": "Tulip, dried flowers", + "b_lu_hcat3": "3301084900", + "b_lu_hcat3_name": "tulips" + }, + { + "b_lu_catalogue": "nl_988", + "b_lu_name": "zantedeschia, overige bloemkwekerijgewassen", + "b_lu_name_en": "Zantedeschia other flower nursery crops", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_989", + "b_lu_name": "zantedeschia, droogbloemen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_991", + "b_lu_name": "overige bloemen, overige bloemkwekerijgewassen", + "b_lu_name_en": "Other flowers other flower nursery crops", + "b_lu_hcat3": "3303070000", + "b_lu_hcat3_name": "nurseries_nursery" + }, + { + "b_lu_catalogue": "nl_992", + "b_lu_name": "overige bloemen, droogbloemen", + "b_lu_name_en": "Other flowers dried flowers", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_994", + "b_lu_name": "amaryllis, overige bloemkwekerijgewassen", + "b_lu_name_en": "Amaryllis other flower nursery crops", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_995", + "b_lu_name": "amaryllis, droogbloemen", + "b_lu_name_en": "Amaryllis, dried flowers", + "b_lu_hcat3": "3301089900", + "b_lu_hcat3_name": "other_flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_997", + "b_lu_name": "dahlia, bloembollen en - knollen", + "b_lu_name_en": "Dahlia", + "b_lu_hcat3": "3301081200", + "b_lu_hcat3_name": "dahlia" + }, + { + "b_lu_catalogue": "nl_998", + "b_lu_name": "gladiool, bloembollen en - knollen", + "b_lu_name_en": "Gladiolus flower bulbs and tubers", + "b_lu_hcat3": "3301082100", + "b_lu_hcat3_name": "gladiolus_gladioli" + }, + { + "b_lu_catalogue": "nl_999", + "b_lu_name": "hyacint, bloembollen en - knollen", + "b_lu_name_en": "Hyacinth flower bulbs and tubers", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1000", + "b_lu_name": "iris, bloembollen en -knollen", + "b_lu_name_en": "Iris, flower bulbs and tubers", + "b_lu_hcat3": "3301082300", + "b_lu_hcat3_name": "iris" + }, + { + "b_lu_catalogue": "nl_1001", + "b_lu_name": "krokus, bloembollen en - knollen", + "b_lu_name_en": "Crocus flower bulbs and tubers", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1002", + "b_lu_name": "lelie, bloembollen en -knollen", + "b_lu_name_en": "Lily flower bulbs and tubers", + "b_lu_hcat3": "3301082500", + "b_lu_hcat3_name": "lilies" + }, + { + "b_lu_catalogue": "nl_1003", + "b_lu_name": "narcis, bloembollen en -knollen", + "b_lu_name_en": "Daffodil flower bulbs and tubers", + "b_lu_hcat3": "3301083300", + "b_lu_hcat3_name": "narcissus_daffodil" + }, + { + "b_lu_catalogue": "nl_1004", + "b_lu_name": "tulp, bloembollen en -knollen", + "b_lu_name_en": "Tulip flower bulbs and tubers", + "b_lu_hcat3": "3301084900", + "b_lu_hcat3_name": "tulips" + }, + { + "b_lu_catalogue": "nl_1005", + "b_lu_name": "zantedeschia, bloembollen en -knollen", + "b_lu_name_en": "Zantedeschia flower bulbs and tubers", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1006", + "b_lu_name": "overige bloemen, bloembollen en -knollen", + "b_lu_name_en": "Other flowers bulbs and tubers", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1007", + "b_lu_name": "amaryllis, bloembollen en -knollen", + "b_lu_name_en": "Amaryllis flower bulbs and tubers", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1010", + "b_lu_name": "sierui, overige bloemkwekerijgewassen", + "b_lu_name_en": "Ornamental onions other flower nursery crops", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1011", + "b_lu_name": "sierui, droogbloemen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_1012", + "b_lu_name": "sierui, bloembollen en -knollen", + "b_lu_name_en": "Ornamental onions flower bulbs and tubers", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1013", + "b_lu_name": "blauw druifje, overige bloemkwekerijgewassen", + "b_lu_name_en": "Grape hyacinth other flower nursery crops", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1014", + "b_lu_name": "blauw druifje, droogbloemen", + "b_lu_name_en": "Blue grape dried flowers", + "b_lu_hcat3": "3303060000", + "b_lu_hcat3_name": "vineyards_wine_vine_rebland_grapes" + }, + { + "b_lu_catalogue": "nl_1015", + "b_lu_name": "blauw druifje, bloembollen en -knollen", + "b_lu_name_en": "Grape hyacinth flower bulbs and tubers", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1016", + "b_lu_name": "kuifhyacint, overige bloemkwekerijgewassen", + "b_lu_name_en": "Crested hyacinth other flower nursery crops", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1017", + "b_lu_name": "kuifhyacint, droogbloemen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_1018", + "b_lu_name": "kuifhyacint, bloembollen en -knollen", + "b_lu_name_en": "Crested hyacinth, bulbs and tubers", + "b_lu_hcat3": "3301089900", + "b_lu_hcat3_name": "other_flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1019", + "b_lu_name": "valeriaan, productie", + "b_lu_name_en": "Valerian production", + "b_lu_hcat3": "3301061238", + "b_lu_hcat3_name": "valerian" + }, + { + "b_lu_catalogue": "nl_1020", + "b_lu_name": "valeriaan, zaden en opkweekmateriaal", + "b_lu_name_en": "Valerian seeds and propagation material", + "b_lu_hcat3": "3301061238", + "b_lu_hcat3_name": "valerian" + }, + { + "b_lu_catalogue": "nl_1021", + "b_lu_name": "knoflook", + "b_lu_name_en": "Garlic", + "b_lu_hcat3": "3301220200", + "b_lu_hcat3_name": "garlic" + }, + { + "b_lu_catalogue": "nl_1022", + "b_lu_name": "quinoa", + "b_lu_name_en": "Quinoa", + "b_lu_hcat3": "3301150300", + "b_lu_hcat3_name": "quinoa" + }, + { + "b_lu_catalogue": "nl_1023", + "b_lu_name": "pastinaak, productie", + "b_lu_name_en": "Parsnip production", + "b_lu_hcat3": "3301290500", + "b_lu_hcat3_name": "parsnips" + }, + { + "b_lu_catalogue": "nl_1024", + "b_lu_name": "pastinaak, zaden en opkweekmateriaal", + "b_lu_name_en": "Parsnips seeds and propagation material", + "b_lu_hcat3": "3301290500", + "b_lu_hcat3_name": "parsnips" + }, + { + "b_lu_catalogue": "nl_1025", + "b_lu_name": "pioenroos, overige bloemkwekerijgewassen", + "b_lu_name_en": "Peony other flower nursery crops", + "b_lu_hcat3": "3301083400", + "b_lu_hcat3_name": "peony_peonies" + }, + { + "b_lu_catalogue": "nl_1026", + "b_lu_name": "pioenroos, droogbloemen", + "b_lu_name_en": "Peony dried flowers", + "b_lu_hcat3": "3301083400", + "b_lu_hcat3_name": "peony_peonies" + }, + { + "b_lu_catalogue": "nl_1027", + "b_lu_name": "pioenroos, bloembollen en -knollen", + "b_lu_name_en": "Peony, flower bulbs and tubers", + "b_lu_hcat3": "3301083400", + "b_lu_hcat3_name": "peony_peonies" + }, + { + "b_lu_catalogue": "nl_1028", + "b_lu_name": "lavas (maggiplant), productie", + "b_lu_name_en": "Lovage (Maggiplant) production", + "b_lu_hcat3": "3301061221", + "b_lu_hcat3_name": "lovage_maggiplant" + }, + { + "b_lu_catalogue": "nl_1029", + "b_lu_name": "lavas (maggiplant), zaden en opkweekmateriaal", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_1030", + "b_lu_name": "wilde marjolein (oregano), productie", + "b_lu_name_en": "Wild Marjoram (Oregano) production", + "b_lu_hcat3": "3301061226", + "b_lu_hcat3_name": "oregano" + }, + { + "b_lu_catalogue": "nl_1031", + "b_lu_name": "wilde marjolein (oregano), zaden en opkweekmateriaal", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_1032", + "b_lu_name": "goudsbloem", + "b_lu_name_en": "Marigold", + "b_lu_hcat3": "3301061210", + "b_lu_hcat3_name": "calendula_marigold" + }, + { + "b_lu_catalogue": "nl_1033", + "b_lu_name": "igniscum candy", + "b_lu_name_en": "Igniscum Candy", + "b_lu_hcat3": "3304020100", + "b_lu_hcat3_name": "igniscum_candy" + }, + { + "b_lu_catalogue": "nl_1034", + "b_lu_name": "kanariezaad", + "b_lu_name_en": "canary seed", + "b_lu_hcat3": "3301011400", + "b_lu_hcat3_name": "canary_seed_canaryseed" + }, + { + "b_lu_catalogue": "nl_1035", + "b_lu_name": "naaldaar (setaria)", + "b_lu_name_en": "Needle (Setaria)", + "b_lu_hcat3": "3301090206", + "b_lu_hcat3_name": "setaria" + }, + { + "b_lu_catalogue": "nl_1036", + "b_lu_name": "wortelpeterselie", + "b_lu_name_en": "carrot parsley", + "b_lu_hcat3": "3301290300", + "b_lu_hcat3_name": "carrots_daucus" + }, + { + "b_lu_catalogue": "nl_1037", + "b_lu_name": "peterselie, productie", + "b_lu_name_en": "Parsley production", + "b_lu_hcat3": "3301061227", + "b_lu_hcat3_name": "parsly" + }, + { + "b_lu_catalogue": "nl_1038", + "b_lu_name": "peterselie, zaden en opkweekmateriaal", + "b_lu_name_en": "Parsley, seeds and growing material", + "b_lu_hcat3": "3301061227", + "b_lu_hcat3_name": "parsly" + }, + { + "b_lu_catalogue": "nl_1039", + "b_lu_name": "chrysant, overige bloemkwekerijgewassen", + "b_lu_name_en": "Chrysanthemum other flower nursery crops", + "b_lu_hcat3": "3301080900", + "b_lu_hcat3_name": "chrysanthemum" + }, + { + "b_lu_catalogue": "nl_1040", + "b_lu_name": "chrysant, droogbloemen", + "b_lu_name_en": "Chrysanthemum, dried flowers", + "b_lu_hcat3": "3301080900", + "b_lu_hcat3_name": "chrysanthemum" + }, + { + "b_lu_catalogue": "nl_1042", + "b_lu_name": "angelica, productie", + "b_lu_name_en": "Angelica production", + "b_lu_hcat3": "3301061204", + "b_lu_hcat3_name": "angelica" + }, + { + "b_lu_catalogue": "nl_1043", + "b_lu_name": "angelica, zaden en opkweekmateriaal", + "b_lu_name_en": "Angelica, seeds and propagation material", + "b_lu_hcat3": "3301061204", + "b_lu_hcat3_name": "angelica" + }, + { + "b_lu_catalogue": "nl_1044", + "b_lu_name": "papaver (klaproos)", + "b_lu_name_en": "Poppy", + "b_lu_hcat3": "3301060600", + "b_lu_hcat3_name": "poppy" + }, + { + "b_lu_catalogue": "nl_1045", + "b_lu_name": "adonis", + "b_lu_name_en": "Adonis", + "b_lu_hcat3": "3301080100", + "b_lu_hcat3_name": "adonis" + }, + { + "b_lu_catalogue": "nl_1046", + "b_lu_name": "vergeet mij nietje", + "b_lu_name_en": "forget me not", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1047", + "b_lu_name": "cranberry", + "b_lu_name_en": "cranberry", + "b_lu_hcat3": "3303020500", + "b_lu_hcat3_name": "cranberry" + }, + { + "b_lu_catalogue": "nl_1048", + "b_lu_name": "echinacea (zonnehoed), productie", + "b_lu_name_en": "Echinacea (coneflower) production", + "b_lu_hcat3": "3301081500", + "b_lu_hcat3_name": "echinacea_sun_hat" + }, + { + "b_lu_catalogue": "nl_1049", + "b_lu_name": "echinacea (zonnehoed), zaden en opkweekmateriaal", + "b_lu_name_en": "Echinacea (coneflower), seeds and propagation material", + "b_lu_hcat3": "3301081500", + "b_lu_hcat3_name": "echinacea_sun_hat" + }, + { + "b_lu_catalogue": "nl_1050", + "b_lu_name": "leeuwenbekjes", + "b_lu_name_en": "Snapdragons", + "b_lu_hcat3": "3301084500", + "b_lu_hcat3_name": "snapdragons" + }, + { + "b_lu_catalogue": "nl_1051", + "b_lu_name": "iris, bolvormend", + "b_lu_name_en": "Iris Spherical", + "b_lu_hcat3": "3301082200", + "b_lu_hcat3_name": "iris" + }, + { + "b_lu_catalogue": "nl_1052", + "b_lu_name": "iris, rhizoomvormend", + "b_lu_name_en": "Iris Rhizomatous", + "b_lu_hcat3": "3301082200", + "b_lu_hcat3_name": "iris" + }, + { + "b_lu_catalogue": "nl_1053", + "b_lu_name": "palmen, pot- en containervelden", + "b_lu_name_en": "Palms pot and container fields", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_1054", + "b_lu_name": "pioenroos, vermeerdering", + "b_lu_name_en": "Peony propagation", + "b_lu_hcat3": "3301083400", + "b_lu_hcat3_name": "peony_peonies" + }, + { + "b_lu_catalogue": "nl_1055", + "b_lu_name": "chrysant, vermeerdering", + "b_lu_name_en": "Chrysanthemum, propagation", + "b_lu_hcat3": "3301080900", + "b_lu_hcat3_name": "chrysanthemum" + }, + { + "b_lu_catalogue": "nl_1067", + "b_lu_name": "bos- en haagplanten, open grond", + "b_lu_name_en": "Forest and hedge plants open ground", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_1068", + "b_lu_name": "buxus, open grond", + "b_lu_name_en": "boxwood open ground", + "b_lu_hcat3": "3303080000", + "b_lu_hcat3_name": "shrubberries_shrubs" + }, + { + "b_lu_catalogue": "nl_1069", + "b_lu_name": "ericaceae (zoals erica, calluna, rododendron, azalea), open grond", + "b_lu_name_en": "Ericaceae (Like erica calluna rhododendron azalea) open ground", + "b_lu_hcat3": "3301061216", + "b_lu_hcat3_name": "ericaceae_heather" + }, + { + "b_lu_catalogue": "nl_1070", + "b_lu_name": "laanbomen/parkbomen, onderstammen, open grond", + "b_lu_name_en": "Avenue trees/park trees", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_1071", + "b_lu_name": "laanbomen/parkbomen, opzetters, open grond", + "b_lu_name_en": "Avenue trees/park trees erectors open ground", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_1072", + "b_lu_name": "laanbomen/parkbomen, spillen, open grond", + "b_lu_name_en": "avenue trees/park trees spindles open ground", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_1073", + "b_lu_name": "rozenstruiken (incl, zaailingen en onderstammen), open grond", + "b_lu_name_en": "Rose bushes (incl seedlings and rootstocks) open ground", + "b_lu_hcat3": "3301083700", + "b_lu_hcat3_name": "roses" + }, + { + "b_lu_catalogue": "nl_1074", + "b_lu_name": "sierconiferen, open grond", + "b_lu_name_en": "Ornamental conifers open ground", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1075", + "b_lu_name": "sierheesters en klimplanten, open grond", + "b_lu_name_en": "Ornamental shrubs and creepers open ground", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1076", + "b_lu_name": "trek- en besheesters, open grond", + "b_lu_name_en": "Draft and berry shrubs", + "b_lu_hcat3": "3303029800", + "b_lu_hcat3_name": "unspecified_berries_berry_species" + }, + { + "b_lu_catalogue": "nl_1077", + "b_lu_name": "vruchtbomen, moerbomen, open grond", + "b_lu_name_en": "Fruit trees nut trees open ground", + "b_lu_hcat3": "3303019800", + "b_lu_hcat3_name": "unspecified_orchards_fruits" + }, + { + "b_lu_catalogue": "nl_1078", + "b_lu_name": "vruchtbomen, onderstammen, open grond", + "b_lu_name_en": "Fruit trees rootstocks open ground", + "b_lu_hcat3": "3303019800", + "b_lu_hcat3_name": "unspecified_orchards_fruits" + }, + { + "b_lu_catalogue": "nl_1079", + "b_lu_name": "vruchtbomen, overig, open grond", + "b_lu_name_en": "Fruit trees other open ground", + "b_lu_hcat3": "3303019800", + "b_lu_hcat3_name": "unspecified_orchards_fruits" + }, + { + "b_lu_catalogue": "nl_1080", + "b_lu_name": "vaste planten, open grond", + "b_lu_name_en": "Perennials open ground", + "b_lu_hcat3": "3303120000", + "b_lu_hcat3_name": "unspecified_permanent_crops" + }, + { + "b_lu_catalogue": "nl_1081", + "b_lu_name": "bos- en haagplanten, pot- en containerveld", + "b_lu_name_en": "Forest and hedge plants pot and container field", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_1082", + "b_lu_name": "buxus, pot- en containerveld", + "b_lu_name_en": "Boxwood pot and container field", + "b_lu_hcat3": "3303080000", + "b_lu_hcat3_name": "shrubberries_shrubs" + }, + { + "b_lu_catalogue": "nl_1083", + "b_lu_name": "ericaceae (zoals erica, calluna, rododendron, azalea), pot- en containerveld", + "b_lu_name_en": "Ericaceae (Like erica calluna rhododendron azalea) pot and container field", + "b_lu_hcat3": "3301061216", + "b_lu_hcat3_name": "ericaceae_heather" + }, + { + "b_lu_catalogue": "nl_1084", + "b_lu_name": "laanbomen/parkbomen, onderstammen, pot- en containerveld", + "b_lu_name_en": "Avenue trees/park trees rootstocks pot and container fields", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_1085", + "b_lu_name": "laanbomen/parkbomen, opzetters, pot- en containerveld", + "b_lu_name_en": "Avenue trees/park trees erectors pot and container fields", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_1086", + "b_lu_name": "laanbomen/parkbomen, spillen, pot- en containerveld", + "b_lu_name_en": "Avenue trees/park trees spindles pot and container fields", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_1087", + "b_lu_name": "rozenstruiken (incl, zaailingen en onderstammen), pot- en containerveld", + "b_lu_name_en": "Rose bushes (incl seedlings and rootstocks) pot and container field", + "b_lu_hcat3": "3301083700", + "b_lu_hcat3_name": "roses" + }, + { + "b_lu_catalogue": "nl_1088", + "b_lu_name": "sierconiferen, pot- en containerveld", + "b_lu_name_en": "Ornamental conifers pot and container field", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1089", + "b_lu_name": "sierheesters en klimplanten, pot- en containerveld", + "b_lu_name_en": "Ornamental shrubs and climbing plants pot and container field", + "b_lu_hcat3": "3301080000", + "b_lu_hcat3_name": "flowers_ornamental_plants" + }, + { + "b_lu_catalogue": "nl_1090", + "b_lu_name": "trek- en besheesters, pot- en containerveld", + "b_lu_name_en": "Tensile and berry shrubs pot and container field", + "b_lu_hcat3": "3303080000", + "b_lu_hcat3_name": "shrubberries_shrubs" + }, + { + "b_lu_catalogue": "nl_1091", + "b_lu_name": "vruchtbomen, moerbomen, pot- en containerveld", + "b_lu_name_en": "Fruit trees nut trees pot and container field", + "b_lu_hcat3": "3303019800", + "b_lu_hcat3_name": "unspecified_orchards_fruits" + }, + { + "b_lu_catalogue": "nl_1092", + "b_lu_name": "vruchtbomen, onderstammen, pot- en containerveld", + "b_lu_name_en": "Fruit trees rootstocks pot and container fields", + "b_lu_hcat3": "3303019800", + "b_lu_hcat3_name": "unspecified_orchards_fruits" + }, + { + "b_lu_catalogue": "nl_1093", + "b_lu_name": "vruchtbomen, overig, pot- en containerveld", + "b_lu_name_en": "Fruit trees other pot and container field", + "b_lu_hcat3": "3303019800", + "b_lu_hcat3_name": "unspecified_orchards_fruits" + }, + { + "b_lu_catalogue": "nl_1094", + "b_lu_name": "vaste planten, pot- en containerteelt", + "b_lu_name_en": "Perennials pot and container cultivation", + "b_lu_hcat3": "3303120000", + "b_lu_hcat3_name": "unspecified_permanent_crops" + }, + { + "b_lu_catalogue": "nl_1095", + "b_lu_name": "appels. aangeplant lopende seizoen.", + "b_lu_name_en": "Apples. Planted current season.", + "b_lu_hcat3": "3303010200", + "b_lu_hcat3_name": "apples" + }, + { + "b_lu_catalogue": "nl_1096", + "b_lu_name": "appels. aangeplant voorafgaande aan lopende seizoen.", + "b_lu_name_en": "apples. Planted prior to current season.", + "b_lu_hcat3": "3303010200", + "b_lu_hcat3_name": "apples" + }, + { + "b_lu_catalogue": "nl_1097", + "b_lu_name": "peren. aangeplant lopende seizoen.", + "b_lu_name_en": "pears. Planted current season.", + "b_lu_hcat3": "3303011200", + "b_lu_hcat3_name": "pears" + }, + { + "b_lu_catalogue": "nl_1098", + "b_lu_name": "peren. aangeplant voorafgaande aan lopende seizoen.", + "b_lu_name_en": "pears. Planted prior to current season.", + "b_lu_hcat3": "3303011200", + "b_lu_hcat3_name": "pears" + }, + { + "b_lu_catalogue": "nl_1099", + "b_lu_name": "wijndruiven", + "b_lu_name_en": "Wine grapes", + "b_lu_hcat3": "3303060000", + "b_lu_hcat3_name": "vineyards_wine_vine_rebland_grapes" + }, + { + "b_lu_catalogue": "nl_1100", + "b_lu_name": "overige pit- en steenvruchten (zoals perziken, tafeldruiven)", + "b_lu_name_en": "Other pome and stone fruits (such as peaches table grapes)", + "b_lu_hcat3": "3303019800", + "b_lu_hcat3_name": "unspecified_orchards_fruits" + }, + { + "b_lu_catalogue": "nl_1570", + "b_lu_name": "klaverzaad", + "b_lu_name_en": "clover seed", + "b_lu_hcat3": "3301090303", + "b_lu_hcat3_name": "clover" + }, + { + "b_lu_catalogue": "nl_1574", + "b_lu_name": "definitief aan de landbouw onttrokken cultuurgrond", + "b_lu_name_en": "Agricultural land permanently withdrawn from agriculture", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_1575", + "b_lu_name": "faunaranden", + "b_lu_name_en": "Fauna Edges", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_1697", + "b_lu_name": "hazelnoten", + "b_lu_name_en": "hazelnuts", + "b_lu_hcat3": "3303030200", + "b_lu_hcat3_name": "hazelnuts_hazel" + }, + { + "b_lu_catalogue": "nl_1698", + "b_lu_name": "walnoten", + "b_lu_name_en": "walnuts", + "b_lu_hcat3": "3303030600", + "b_lu_hcat3_name": "walnuts" + }, + { + "b_lu_catalogue": "nl_1869", + "b_lu_name": "bessen, blauwe", + "b_lu_name_en": "Berries blue", + "b_lu_hcat3": "3303020400", + "b_lu_hcat3_name": "blueberry" + }, + { + "b_lu_catalogue": "nl_1870", + "b_lu_name": "pruimen", + "b_lu_name_en": "plums", + "b_lu_hcat3": "3303011300", + "b_lu_hcat3_name": "plums" + }, + { + "b_lu_catalogue": "nl_1872", + "b_lu_name": "kersen, zuur (opbrengst bestemd voor verwerkende industrie)", + "b_lu_name_en": "Cherries sour (yield intended for processing industry)", + "b_lu_hcat3": "3303010400", + "b_lu_hcat3_name": "cherry_cherries" + }, + { + "b_lu_catalogue": "nl_1873", + "b_lu_name": "bessen, zwarte (opbrengst verwerkt voor verwerkende industrie)", + "b_lu_name_en": "Berries black (yield processed for processing industry)", + "b_lu_hcat3": "3303020200", + "b_lu_hcat3_name": "blackberry" + }, + { + "b_lu_catalogue": "nl_1874", + "b_lu_name": "overig kleinfruit (zoals kruisbessen, kiwi's)", + "b_lu_name_en": "Other small fruit (such as gooseberries kiwis)", + "b_lu_hcat3": "3303019800", + "b_lu_hcat3_name": "unspecified_orchards_fruits" + }, + { + "b_lu_catalogue": "nl_1876", + "b_lu_name": "snijgroen", + "b_lu_name_en": "cut green", + "b_lu_hcat3": "3399000000", + "b_lu_hcat3_name": "not_known_and_other" + }, + { + "b_lu_catalogue": "nl_1909", + "b_lu_name": "aardappelen, consumptie- op kleigrond", + "b_lu_name_en": "Potatoes, consumption on clay soil", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_1910", + "b_lu_name": "aardappelen, consumptie- op zand-/veengrond", + "b_lu_name_en": "Potatoes, consumption on sandy/peat soil", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_1911", + "b_lu_name": "aardappelen, cons. op kleigrond (vroeg, loofver voor 15-07)", + "b_lu_name_en": "Potatoes, cons. on clay soil (early, leaves before 15-07)", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_1912", + "b_lu_name": "aardappelen, cons. op zand/veen (vroeg, loofver voor 15-07)", + "b_lu_name_en": "Potatoes, cons. on sand/peat (early, leaves before 15-07)", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_1914", + "b_lu_name": "graszaad, overig", + "b_lu_name_en": "Grass seed, other", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_1915", + "b_lu_name": "graszaad, rietzwenkgras", + "b_lu_name_en": "Grass seed, reed fescue", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_1916", + "b_lu_name": "graszaad, veldbeemd", + "b_lu_name_en": "Grass seed, meadowsweet", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_1917", + "b_lu_name": "graszaad, roodzwenkgras, 1e jaar", + "b_lu_name_en": "Grass seed, red fescue, 1st year", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_1918", + "b_lu_name": "graszaad, roodzwenkgras, overjarig", + "b_lu_name_en": "Grass seed, red fescue, perennial", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_1919", + "b_lu_name": "graszaad, westerwolds", + "b_lu_name_en": "Grass seed, westerwolds", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_1920", + "b_lu_name": "graszaad, italiaans", + "b_lu_name_en": "Grass Seed, Italian", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_1921", + "b_lu_name": "graszoden", + "b_lu_name_en": "Grass turf", + "b_lu_hcat3": "3302000000", + "b_lu_hcat3_name": "pasture_meadow_grassland_grass" + }, + { + "b_lu_catalogue": "nl_1922", + "b_lu_name": "koolzaad, winter (incl. boterzaad)", + "b_lu_name_en": "Rapeseed winter (incl. butter seed)", + "b_lu_hcat3": "3301060401", + "b_lu_hcat3_name": "winter_rapeseed_rape" + }, + { + "b_lu_catalogue": "nl_1923", + "b_lu_name": "koolzaad, zomer (incl. boterzaad)", + "b_lu_name_en": "Rapeseed summer (incl. butter seed)", + "b_lu_hcat3": "3301060402", + "b_lu_hcat3_name": "spring_rapeseed_rape" + }, + { + "b_lu_catalogue": "nl_1925", + "b_lu_name": "overige akkerbouwgewassen", + "b_lu_name_en": "Other arable crops", + "b_lu_hcat3": "3399000000", + "b_lu_hcat3_name": "not_known_and_other" + }, + { + "b_lu_catalogue": "nl_1926", + "b_lu_name": "agrarisch natuurmengsel", + "b_lu_name_en": "Agricultural nature mixture", + "b_lu_hcat3": "3399000000", + "b_lu_hcat3_name": "not_known_and_other" + }, + { + "b_lu_catalogue": "nl_1927", + "b_lu_name": "overige akkerbouwgewassen", + "b_lu_name_en": "Other arable crops", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_1928", + "b_lu_name": "aardappelrassen, poot- op kleigrond", + "b_lu_name_en": "Potato varieties, seed on clay soil", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_1929", + "b_lu_name": "aardappelrassen, poot- op zand-/veengrond", + "b_lu_name_en": "Potato varieties, seed on sandy/peat soil", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_1930", + "b_lu_name": "tagetes (zand, loss) (geen groene braak)", + "b_lu_name_en": "Tagetes (sand, loess) (no green fallow)", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_1931", + "b_lu_name": "uien, poot- en plant- (incl. sjalotten)", + "b_lu_name_en": "Onions, plant and plant (incl. shallots)", + "b_lu_hcat3": "3301220400", + "b_lu_hcat3_name": "onions" + }, + { + "b_lu_catalogue": "nl_1932", + "b_lu_name": "uien, poot en plant, 1e jaars", + "b_lu_name_en": "Onions leg and plant first year", + "b_lu_hcat3": "3301220400", + "b_lu_hcat3_name": "onions" + }, + { + "b_lu_catalogue": "nl_1933", + "b_lu_name": "uien, poot en plant, 2e jaars", + "b_lu_name_en": "Onions leg and plant second year", + "b_lu_hcat3": "3301220400", + "b_lu_hcat3_name": "onions" + }, + { + "b_lu_catalogue": "nl_1934", + "b_lu_name": "sjalotten", + "b_lu_name_en": "shallots", + "b_lu_hcat3": "3301220600", + "b_lu_hcat3_name": "shallot" + }, + { + "b_lu_catalogue": "nl_1935", + "b_lu_name": "maiskolvensilage", + "b_lu_name_en": "Corn silage", + "b_lu_hcat3": "3301090400", + "b_lu_hcat3_name": "green_silo_maize" + }, + { + "b_lu_catalogue": "nl_1936", + "b_lu_name": "bos, blijvend, met herplantplicht", + "b_lu_name_en": "Forest permanent with replanting obligation", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_1940", + "b_lu_name": "voedselbos", + "b_lu_name_en": "food forest", + "b_lu_hcat3": "3306990000", + "b_lu_hcat3_name": "other_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_1949", + "b_lu_name": "aardperen", + "b_lu_name_en": "Topinambur", + "b_lu_hcat3": "3301290900", + "b_lu_hcat3_name": "topinambur_jerusalem_artichoke" + }, + { + "b_lu_catalogue": "nl_1950", + "b_lu_name": "onbekend/gewas niet opgegeven", + "b_lu_name_en": "Unknown/crop not specified", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_1959", + "b_lu_name": "dummycode voor dummypercelen", + "b_lu_name_en": "Dummy code for dummy plots", + "b_lu_hcat3": "3399000000", + "b_lu_hcat3_name": "not_known_and_other" + }, + { + "b_lu_catalogue": "nl_2014", + "b_lu_name": "aardappelen, consumptie", + "b_lu_name_en": "Potatoes consumption", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_2015", + "b_lu_name": "aardappelen, poot nak", + "b_lu_name_en": "Potatoes leg NAK", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_2016", + "b_lu_name": "aardappelen, poot tbm", + "b_lu_name_en": "Potatoes leg TBM", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_2017", + "b_lu_name": "aardappelen, zetmeel", + "b_lu_name_en": "Potatoes starch", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_2025", + "b_lu_name": "aardappelen, bestrijdingsmaatregel am", + "b_lu_name_en": "Potatoes AM . control measure", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_2026", + "b_lu_name": "braak met bos (sbl-regeling na 28 juni 1995)", + "b_lu_name_en": "Clearing the forest (SBL scheme after June 28, 1995)", + "b_lu_hcat3": "3399000000", + "b_lu_hcat3_name": "not_known_and_other" + }, + { + "b_lu_catalogue": "nl_2027", + "b_lu_name": "bos (sbl-regeling)", + "b_lu_name_en": "Forest (SBL scheme)", + "b_lu_hcat3": "3306980000", + "b_lu_hcat3_name": "unspecified_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_2029", + "b_lu_name": "braak, natuur-", + "b_lu_name_en": "vomiting, natural", + "b_lu_hcat3": "3301110000", + "b_lu_hcat3_name": "fallow_land_not_crop" + }, + { + "b_lu_catalogue": "nl_2030", + "b_lu_name": "graszaad, engels raai 1e jaar", + "b_lu_name_en": "Grass seed, English row 1st year", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_2031", + "b_lu_name": "graszaad, engels raai overjarig", + "b_lu_name_en": "Grass seed, perennial perennial", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_2032", + "b_lu_name": "mais, energie-", + "b_lu_name_en": "corn energy", + "b_lu_hcat3": "3301010600", + "b_lu_hcat3_name": "grain_maize_corn_popcorn" + }, + { + "b_lu_catalogue": "nl_2033", + "b_lu_name": "onbeteelde grond, tijdelijk", + "b_lu_name_en": "Uncultivated land, temporary", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_2297", + "b_lu_name": "woudbomen met korte omlooptijd", + "b_lu_name_en": "Short rotation forest trees", + "b_lu_hcat3": "3306980000", + "b_lu_hcat3_name": "unspecified_tree_wood_forest" + }, + { + "b_lu_catalogue": "nl_2298", + "b_lu_name": "groenbemesters, vlinderbloemige", + "b_lu_name_en": "Green manures, leguminous plants", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_2299", + "b_lu_name": "groenbemesters, niet-vlinderbloemige", + "b_lu_name_en": "Green manures, non-butterfly flowered", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_2300", + "b_lu_name": "onbeteelde grond vanwege een teeltverbod/ontheffing", + "b_lu_name_en": "Uncultivated land due to a cultivation ban/exemption", + "b_lu_hcat3": "3308000000", + "b_lu_hcat3_name": "unmaintained" + }, + { + "b_lu_catalogue": "nl_2301", + "b_lu_name": "natuurlijk grasland met hoofdfunctie landbouw", + "b_lu_name_en": "Natural grassland with main function agriculture", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_2302", + "b_lu_name": "natuurlijk grasland (begraasd) met beperkte landbouwact.", + "b_lu_name_en": "Natural grassland (grazed) with limited agricultural act.", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_2303", + "b_lu_name": "overige natuurterreinen", + "b_lu_name_en": "Other nature areas", + "b_lu_hcat3": "3399000000", + "b_lu_hcat3_name": "not_known_and_other" + }, + { + "b_lu_catalogue": "nl_2304", + "b_lu_name": "heide, begraasd", + "b_lu_name_en": "heath, grazed", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_2325", + "b_lu_name": "bessen, rode", + "b_lu_name_en": "Berries red", + "b_lu_hcat3": "3303021100", + "b_lu_hcat3_name": "redcurrant" + }, + { + "b_lu_catalogue": "nl_2326", + "b_lu_name": "frambozen", + "b_lu_name_en": "Raspberries", + "b_lu_hcat3": "3303021000", + "b_lu_hcat3_name": "raspberry_raspberries" + }, + { + "b_lu_catalogue": "nl_2327", + "b_lu_name": "bramen", + "b_lu_name_en": "blackberries", + "b_lu_hcat3": "3303020200", + "b_lu_hcat3_name": "blackberry" + }, + { + "b_lu_catalogue": "nl_2328", + "b_lu_name": "kersen, zoet", + "b_lu_name_en": "Cherries sweet", + "b_lu_hcat3": "3303010400", + "b_lu_hcat3_name": "cherry_cherries" + }, + { + "b_lu_catalogue": "nl_2617", + "b_lu_name": "boomgroep", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2618", + "b_lu_name": "windhaag, in een perceel fruitteelt", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2619", + "b_lu_name": "bossingel", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2620", + "b_lu_name": "poel en klein historisch water", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2621", + "b_lu_name": "houtwal en houtsingel", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2622", + "b_lu_name": "elzensingel", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2624", + "b_lu_name": "knip- of scheerheg", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2625", + "b_lu_name": "struweelhaag", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2626", + "b_lu_name": "laan", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2628", + "b_lu_name": "hoogstamboomgaard", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2629", + "b_lu_name": "struweelrand", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2630", + "b_lu_name": "hakhoutbosje", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2631", + "b_lu_name": "griendje", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2633", + "b_lu_name": "rietzoom en klein rietperceel", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2634", + "b_lu_name": "natuurvriendelijke oever", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2635", + "b_lu_name": "wandelpad over boerenland", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2636", + "b_lu_name": "leibomen", + "b_lu_name_en": "Other landscape element", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_2637", + "b_lu_name": "schurvelingen en zandwallen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2638", + "b_lu_name": "landschapselement, overig", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2639", + "b_lu_name": "water, overig", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2640", + "b_lu_name": "geisoleerde boom (anders dan knotboom)", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2641", + "b_lu_name": "bomenrij (anders dan knotboom)", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2642", + "b_lu_name": "bosje", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2643", + "b_lu_name": "knotboom, bomen in rij", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2644", + "b_lu_name": "knotboom, geisloleerde boom", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2645", + "b_lu_name": "notenbomen", + "b_lu_name_en": "walnut trees", + "b_lu_hcat3": "3303030600", + "b_lu_hcat3_name": "walnuts" + }, + { + "b_lu_catalogue": "nl_2650", + "b_lu_name": "erwten inclusief schokkers (droog te oogsten)", + "b_lu_name_en": "Peas including shockers (harvest dry)", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_2651", + "b_lu_name": "bieten, voeder- (inclusief aardperen)", + "b_lu_name_en": "Beets, fodder (including Jerusalem artichokes)", + "b_lu_hcat3": "3301299800", + "b_lu_hcat3_name": "unspecified_root_vegetables" + }, + { + "b_lu_catalogue": "nl_2652", + "b_lu_name": "granen, overig", + "b_lu_name_en": "Other grains", + "b_lu_hcat3": "3301010600", + "b_lu_hcat3_name": "grain_maize_corn_popcorn" + }, + { + "b_lu_catalogue": "nl_2653", + "b_lu_name": "graszaad (inclusief klaverzaad)", + "b_lu_name_en": "Grass seed (including clover seed)", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_2700", + "b_lu_name": "aardbeien open grond, vermeerdering", + "b_lu_name_en": "Strawberries open ground propagation", + "b_lu_hcat3": "3301130000", + "b_lu_hcat3_name": "strawberries" + }, + { + "b_lu_catalogue": "nl_2701", + "b_lu_name": "aardbeien open grond, wachtbed", + "b_lu_name_en": "Strawberry open ground waiting bed", + "b_lu_hcat3": "3301130000", + "b_lu_hcat3_name": "strawberries" + }, + { + "b_lu_catalogue": "nl_2702", + "b_lu_name": "aardbeien open grond, productie", + "b_lu_name_en": "Strawberries open ground production", + "b_lu_hcat3": "3301130000", + "b_lu_hcat3_name": "strawberries" + }, + { + "b_lu_catalogue": "nl_2703", + "b_lu_name": "aardbeien open grond, zaden en opkweekmateriaal", + "b_lu_name_en": "Strawberries open ground seeds and propagation material", + "b_lu_hcat3": "3301130000", + "b_lu_hcat3_name": "strawberries" + }, + { + "b_lu_catalogue": "nl_2704", + "b_lu_name": "aardbeien op stellingen, vermeerdering", + "b_lu_name_en": "Strawberries on racks propagation", + "b_lu_hcat3": "3301130000", + "b_lu_hcat3_name": "strawberries" + }, + { + "b_lu_catalogue": "nl_2705", + "b_lu_name": "aardbeien op stellingen, wachtbed", + "b_lu_name_en": "Strawberries on racks waiting bed", + "b_lu_hcat3": "3301130000", + "b_lu_hcat3_name": "strawberries" + }, + { + "b_lu_catalogue": "nl_2706", + "b_lu_name": "aardbeien op stellingen, productie", + "b_lu_name_en": "Strawberries on racks production", + "b_lu_hcat3": "3301130000", + "b_lu_hcat3_name": "strawberries" + }, + { + "b_lu_catalogue": "nl_2707", + "b_lu_name": "aardbeien op stellingen, zaden en opkweekmateriaal", + "b_lu_name_en": "Strawberries on racks seeds and propagation material", + "b_lu_hcat3": "3301130000", + "b_lu_hcat3_name": "strawberries" + }, + { + "b_lu_catalogue": "nl_2708", + "b_lu_name": "andijvie, productie", + "b_lu_name_en": "Endive production", + "b_lu_hcat3": "3301310300", + "b_lu_hcat3_name": "endive" + }, + { + "b_lu_catalogue": "nl_2709", + "b_lu_name": "andijvie, zaden en opkweekmateriaal", + "b_lu_name_en": "Endive seeds and propagation material", + "b_lu_hcat3": "3301310300", + "b_lu_hcat3_name": "endive" + }, + { + "b_lu_catalogue": "nl_2710", + "b_lu_name": "asperges, oppervlakte die productie oplevert", + "b_lu_name_en": "Asparagus area yielding production", + "b_lu_hcat3": "3301200000", + "b_lu_hcat3_name": "asparagus" + }, + { + "b_lu_catalogue": "nl_2711", + "b_lu_name": "asperges, oppervlakte die nog geen productie oplevert", + "b_lu_name_en": "Asparagus area that does not yet yield production", + "b_lu_hcat3": "3301200000", + "b_lu_hcat3_name": "asparagus" + }, + { + "b_lu_catalogue": "nl_2712", + "b_lu_name": "asperges, zaden en opkweekmateriaal", + "b_lu_name_en": "Asparagus seeds and propagation material", + "b_lu_hcat3": "3301200000", + "b_lu_hcat3_name": "asparagus" + }, + { + "b_lu_catalogue": "nl_2713", + "b_lu_name": "bloemkool, productie", + "b_lu_name_en": "Cauliflower, production", + "b_lu_hcat3": "3301210204", + "b_lu_hcat3_name": "cauliflower" + }, + { + "b_lu_catalogue": "nl_2714", + "b_lu_name": "bloemkool, zaden en opkweekmateriaal", + "b_lu_name_en": "Cauliflower, seeds and growing material", + "b_lu_hcat3": "3301210204", + "b_lu_hcat3_name": "cauliflower" + }, + { + "b_lu_catalogue": "nl_2715", + "b_lu_name": "boerenkool, productie", + "b_lu_name_en": "Kale production", + "b_lu_hcat3": "3301210208", + "b_lu_hcat3_name": "kale" + }, + { + "b_lu_catalogue": "nl_2716", + "b_lu_name": "boerenkool, zaden en opkweekmateriaal", + "b_lu_name_en": "Kale seeds and propagation material", + "b_lu_hcat3": "3301210208", + "b_lu_hcat3_name": "kale" + }, + { + "b_lu_catalogue": "nl_2717", + "b_lu_name": "bospeen, productie", + "b_lu_name_en": "Carrot production", + "b_lu_hcat3": "3301290300", + "b_lu_hcat3_name": "carrots_daucus" + }, + { + "b_lu_catalogue": "nl_2718", + "b_lu_name": "bospeen, zaden en opkweekmateriaal", + "b_lu_name_en": "Carrots seeds and propagation material", + "b_lu_hcat3": "3301290300", + "b_lu_hcat3_name": "carrots_daucus" + }, + { + "b_lu_catalogue": "nl_2719", + "b_lu_name": "broccoli, productie", + "b_lu_name_en": "Broccoli production", + "b_lu_hcat3": "3301210202", + "b_lu_hcat3_name": "broccoli" + }, + { + "b_lu_catalogue": "nl_2720", + "b_lu_name": "broccoli, zaden en opkweekmateriaal", + "b_lu_name_en": "Brocolli seeds and growing material", + "b_lu_hcat3": "3301210202", + "b_lu_hcat3_name": "broccoli" + }, + { + "b_lu_catalogue": "nl_2721", + "b_lu_name": "chinese kool, productie", + "b_lu_name_en": "Chinese cabbage production", + "b_lu_hcat3": "3301210205", + "b_lu_hcat3_name": "chinese_cabbage" + }, + { + "b_lu_catalogue": "nl_2722", + "b_lu_name": "chinese kool, zaden en opkweekmateriaal", + "b_lu_name_en": "Chinese cabbage seeds and propagation material", + "b_lu_hcat3": "3301210205", + "b_lu_hcat3_name": "chinese_cabbage" + }, + { + "b_lu_catalogue": "nl_2723", + "b_lu_name": "courgette, productie", + "b_lu_name_en": "Zucchini production", + "b_lu_hcat3": "3301140600", + "b_lu_hcat3_name": "zucchini_courgette" + }, + { + "b_lu_catalogue": "nl_2724", + "b_lu_name": "courgette, zaden en opkweekmateriaal", + "b_lu_name_en": "Zucchini seeds and propagation material", + "b_lu_hcat3": "3301140600", + "b_lu_hcat3_name": "zucchini_courgette" + }, + { + "b_lu_catalogue": "nl_2725", + "b_lu_name": "knolselderij, productie", + "b_lu_name_en": "Celeriac production", + "b_lu_hcat3": "3301250100", + "b_lu_hcat3_name": "celeriac" + }, + { + "b_lu_catalogue": "nl_2726", + "b_lu_name": "knolselderij, zaden en opkweekmateriaal", + "b_lu_name_en": "Celeriac seeds and propagation material", + "b_lu_hcat3": "3301250100", + "b_lu_hcat3_name": "celeriac" + }, + { + "b_lu_catalogue": "nl_2727", + "b_lu_name": "knolvenkel/venkel, productie", + "b_lu_name_en": "Fennel/fennel production", + "b_lu_hcat3": "3301170000", + "b_lu_hcat3_name": "fennel" + }, + { + "b_lu_catalogue": "nl_2728", + "b_lu_name": "knolvenkel/venkel, zaden en opkweekmateriaal", + "b_lu_name_en": "Fennel/fennel seeds and propagation material", + "b_lu_hcat3": "3301170000", + "b_lu_hcat3_name": "fennel" + }, + { + "b_lu_catalogue": "nl_2729", + "b_lu_name": "komkommer, productie", + "b_lu_name_en": "Cucumber production", + "b_lu_hcat3": "3301140100", + "b_lu_hcat3_name": "cucumber_pickle" + }, + { + "b_lu_catalogue": "nl_2730", + "b_lu_name": "komkommer, zaden en opkweekmateriaal", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_2731", + "b_lu_name": "augurk, productie", + "b_lu_name_en": "Pickle production", + "b_lu_hcat3": "3301140100", + "b_lu_hcat3_name": "cucumber_pickle" + }, + { + "b_lu_catalogue": "nl_2732", + "b_lu_name": "augurk, zaden en opkweekmateriaal", + "b_lu_name_en": "Pickle seeds and propagation material", + "b_lu_hcat3": "3301140100", + "b_lu_hcat3_name": "cucumber_pickle" + }, + { + "b_lu_catalogue": "nl_2733", + "b_lu_name": "meloen, productie", + "b_lu_name_en": "Melon, production", + "b_lu_hcat3": "3301140300", + "b_lu_hcat3_name": "melon" + }, + { + "b_lu_catalogue": "nl_2734", + "b_lu_name": "meloen, zaden en opkweekmateriaal", + "b_lu_name_en": "Melon, seeds and propagation material", + "b_lu_hcat3": "3301140300", + "b_lu_hcat3_name": "melon" + }, + { + "b_lu_catalogue": "nl_2735", + "b_lu_name": "pompoen, productie", + "b_lu_name_en": "Pumpkin production", + "b_lu_hcat3": "3301140400", + "b_lu_hcat3_name": "pumpkin_squash_gourd" + }, + { + "b_lu_catalogue": "nl_2736", + "b_lu_name": "pompoen, zaden en opkweekmateriaal", + "b_lu_name_en": "Pumpkin seeds and propagation material", + "b_lu_hcat3": "3301140400", + "b_lu_hcat3_name": "pumpkin_squash_gourd" + }, + { + "b_lu_catalogue": "nl_2737", + "b_lu_name": "koolraap, productie", + "b_lu_name_en": "Kohlrabi production", + "b_lu_hcat3": "3301210209", + "b_lu_hcat3_name": "kohlrabi" + }, + { + "b_lu_catalogue": "nl_2738", + "b_lu_name": "koolraap, zaden en opkweekmateriaal", + "b_lu_name_en": "Kohlrabi, seeds and propagation material", + "b_lu_hcat3": "3301210209", + "b_lu_hcat3_name": "kohlrabi" + }, + { + "b_lu_catalogue": "nl_2739", + "b_lu_name": "koolrabi, productie", + "b_lu_name_en": "Kohlrabi production", + "b_lu_hcat3": "3301210209", + "b_lu_hcat3_name": "kohlrabi" + }, + { + "b_lu_catalogue": "nl_2740", + "b_lu_name": "koolrabi, zaden en opkweekmateriaal", + "b_lu_name_en": "Kohlrabi, seeds and propagation material", + "b_lu_hcat3": "3301210209", + "b_lu_hcat3_name": "kohlrabi" + }, + { + "b_lu_catalogue": "nl_2741", + "b_lu_name": "kroten/rode bieten, productie", + "b_lu_name_en": "Beets/red beets production", + "b_lu_hcat3": "3301290200", + "b_lu_hcat3_name": "beetroot_beets" + }, + { + "b_lu_catalogue": "nl_2742", + "b_lu_name": "kroten/rode bieten, zaden en opkweekmateriaal", + "b_lu_name_en": "Beets/red beets seeds and propagation material", + "b_lu_hcat3": "3301290200", + "b_lu_hcat3_name": "beetroot_beets" + }, + { + "b_lu_catalogue": "nl_2743", + "b_lu_name": "kruiden, productie", + "b_lu_name_en": "Herbs production", + "b_lu_hcat3": "3301061298", + "b_lu_hcat3_name": "unspecified_aromatic_medicinal_culinary_plants_spices_herbs" + }, + { + "b_lu_catalogue": "nl_2744", + "b_lu_name": "kruiden, zaden en opkweekmateriaal", + "b_lu_name_en": "Herbs seeds and propagation material", + "b_lu_hcat3": "3301061298", + "b_lu_hcat3_name": "unspecified_aromatic_medicinal_culinary_plants_spices_herbs" + }, + { + "b_lu_catalogue": "nl_2745", + "b_lu_name": "paksoi, productie", + "b_lu_name_en": "Bok choy production", + "b_lu_hcat3": "3301210201", + "b_lu_hcat3_name": "bok_choy_pak_choi" + }, + { + "b_lu_catalogue": "nl_2746", + "b_lu_name": "paksoi, zaden en opkweekmateriaal", + "b_lu_name_en": "Pak choi, seeds and propagation material", + "b_lu_hcat3": "3301210201", + "b_lu_hcat3_name": "bok_choy_pak_choi" + }, + { + "b_lu_catalogue": "nl_2747", + "b_lu_name": "peulen, productie", + "b_lu_name_en": "Pulses, production", + "b_lu_hcat3": "3301029800", + "b_lu_hcat3_name": "unspecified_legumes_dried_pulses_protein_crops" + }, + { + "b_lu_catalogue": "nl_2748", + "b_lu_name": "peulen, zaden en opkweekmateriaal", + "b_lu_name_en": "Pulses, seeds and propagation material", + "b_lu_hcat3": "3301029800", + "b_lu_hcat3_name": "unspecified_legumes_dried_pulses_protein_crops" + }, + { + "b_lu_catalogue": "nl_2749", + "b_lu_name": "prei, productie", + "b_lu_name_en": "Leek, production", + "b_lu_hcat3": "3301220300", + "b_lu_hcat3_name": "leek" + }, + { + "b_lu_catalogue": "nl_2750", + "b_lu_name": "prei, zaden en opkweekmateriaal", + "b_lu_name_en": "Leek, seeds and propagation material", + "b_lu_hcat3": "3301220300", + "b_lu_hcat3_name": "leek" + }, + { + "b_lu_catalogue": "nl_2751", + "b_lu_name": "pronkbonen, productie", + "b_lu_name_en": "Runner beans production", + "b_lu_hcat3": "3301020100", + "b_lu_hcat3_name": "beans" + }, + { + "b_lu_catalogue": "nl_2752", + "b_lu_name": "pronkbonen, zaden en opkweekmateriaal", + "b_lu_name_en": "Runner beans seeds and propagation material", + "b_lu_hcat3": "3301020100", + "b_lu_hcat3_name": "beans" + }, + { + "b_lu_catalogue": "nl_2753", + "b_lu_name": "raapstelen, productie", + "b_lu_name_en": "Turnip greens production", + "b_lu_hcat3": "3301290800", + "b_lu_hcat3_name": "turnips" + }, + { + "b_lu_catalogue": "nl_2754", + "b_lu_name": "raapstelen, zaden en opkweekmateriaal", + "b_lu_name_en": "Turnip greens seeds and propagation material", + "b_lu_hcat3": "3301290800", + "b_lu_hcat3_name": "turnips" + }, + { + "b_lu_catalogue": "nl_2755", + "b_lu_name": "rabarber, productie", + "b_lu_name_en": "Rhubarb production", + "b_lu_hcat3": "3301230000", + "b_lu_hcat3_name": "rhubarb" + }, + { + "b_lu_catalogue": "nl_2756", + "b_lu_name": "rabarber, zaden en opkweekmateriaal", + "b_lu_name_en": "Rhubarb seeds and propagation material", + "b_lu_hcat3": "3301230000", + "b_lu_hcat3_name": "rhubarb" + }, + { + "b_lu_catalogue": "nl_2757", + "b_lu_name": "radijs, productie", + "b_lu_name_en": "Radish production", + "b_lu_hcat3": "3301290600", + "b_lu_hcat3_name": "radish" + }, + { + "b_lu_catalogue": "nl_2758", + "b_lu_name": "radijs, zaden en opkweekmateriaal", + "b_lu_name_en": "Radish seeds and propagation material", + "b_lu_hcat3": "3301290600", + "b_lu_hcat3_name": "radish" + }, + { + "b_lu_catalogue": "nl_2759", + "b_lu_name": "rodekool, productie", + "b_lu_name_en": "Red cabbage production", + "b_lu_hcat3": "3301210210", + "b_lu_hcat3_name": "red_cabbage" + }, + { + "b_lu_catalogue": "nl_2760", + "b_lu_name": "rodekool, zaden en opkweekmateriaal", + "b_lu_name_en": "Red cabbage seeds and propagation material", + "b_lu_hcat3": "3301210210", + "b_lu_hcat3_name": "red_cabbage" + }, + { + "b_lu_catalogue": "nl_2761", + "b_lu_name": "savooiekool, productie", + "b_lu_name_en": "Savoy cabbage production", + "b_lu_hcat3": "3301210211", + "b_lu_hcat3_name": "savoy_cabbage" + }, + { + "b_lu_catalogue": "nl_2762", + "b_lu_name": "savooiekool, zaden en opkweekmateriaal", + "b_lu_name_en": "Savoy cabbage seeds and propagation material", + "b_lu_hcat3": "3301210211", + "b_lu_hcat3_name": "savoy_cabbage" + }, + { + "b_lu_catalogue": "nl_2763", + "b_lu_name": "schorseneren, productie", + "b_lu_name_en": "salsify; production", + "b_lu_hcat3": "3301084000", + "b_lu_hcat3_name": "salsify" + }, + { + "b_lu_catalogue": "nl_2764", + "b_lu_name": "schorseneren, zaden en opkweekmateriaal", + "b_lu_name_en": "Salsify seeds and propagation material", + "b_lu_hcat3": "3301084000", + "b_lu_hcat3_name": "salsify" + }, + { + "b_lu_catalogue": "nl_2765", + "b_lu_name": "selderij, bleek- en groen-, productie", + "b_lu_name_en": "Celery bleach and green production", + "b_lu_hcat3": "3301250200", + "b_lu_hcat3_name": "leaf_celery" + }, + { + "b_lu_catalogue": "nl_2766", + "b_lu_name": "selderij, bleek- en groen-, zaden en opkweekmateriaal", + "b_lu_name_en": "Celery bleach and greens seeds and propagation material", + "b_lu_hcat3": "3301250200", + "b_lu_hcat3_name": "leaf_celery" + }, + { + "b_lu_catalogue": "nl_2767", + "b_lu_name": "sla, ijsberg-, productie", + "b_lu_name_en": "Lettuce iceberg production", + "b_lu_hcat3": "3301310400", + "b_lu_hcat3_name": "iceberg" + }, + { + "b_lu_catalogue": "nl_2768", + "b_lu_name": "sla, ijsberg-, zaden en opkweekmateriaal", + "b_lu_name_en": "Lettuce iceberg seeds and propagation material", + "b_lu_hcat3": "3301310400", + "b_lu_hcat3_name": "iceberg" + }, + { + "b_lu_catalogue": "nl_2769", + "b_lu_name": "sla, radicchio rosso, productie", + "b_lu_name_en": "Salad; radicchio rosso production", + "b_lu_hcat3": "3301319900", + "b_lu_hcat3_name": "other_salads_lettuce_leaf_vegetables" + }, + { + "b_lu_catalogue": "nl_2770", + "b_lu_name": "sla; radicchio rosso, zaden en opkweekmateriaal", + "b_lu_name_en": "Salad; radicchio rosso seeds and propagation material", + "b_lu_hcat3": "3301319900", + "b_lu_hcat3_name": "other_salads_lettuce_leaf_vegetables" + }, + { + "b_lu_catalogue": "nl_2771", + "b_lu_name": "sla, overig, productie", + "b_lu_name_en": "Salad; other production", + "b_lu_hcat3": "3301319900", + "b_lu_hcat3_name": "other_salads_lettuce_leaf_vegetables" + }, + { + "b_lu_catalogue": "nl_2772", + "b_lu_name": "sla, overig, zaden en opkweekmateriaal", + "b_lu_name_en": "Salad; other seeds and propagation material", + "b_lu_hcat3": "3301319900", + "b_lu_hcat3_name": "other_salads_lettuce_leaf_vegetables" + }, + { + "b_lu_catalogue": "nl_2773", + "b_lu_name": "spinazie, productie", + "b_lu_name_en": "Spinach production", + "b_lu_hcat3": "3301310800", + "b_lu_hcat3_name": "spinach" + }, + { + "b_lu_catalogue": "nl_2774", + "b_lu_name": "spinazie, zaden en opkweekmateriaal", + "b_lu_name_en": "Spinach seeds and propagation material", + "b_lu_hcat3": "3301310800", + "b_lu_hcat3_name": "spinach" + }, + { + "b_lu_catalogue": "nl_2775", + "b_lu_name": "spitskool, productie", + "b_lu_name_en": "pointed cabbage production", + "b_lu_hcat3": "3301210299", + "b_lu_hcat3_name": "other_brassica_oleracea_cabbage" + }, + { + "b_lu_catalogue": "nl_2776", + "b_lu_name": "spitskool, zaden en opkweekmateriaal", + "b_lu_name_en": "Pointed cabbage seeds and propagation material", + "b_lu_hcat3": "3301210200", + "b_lu_hcat3_name": "brassica_oleracea_cabbage" + }, + { + "b_lu_catalogue": "nl_2777", + "b_lu_name": "spruitkool/spruitjes, productie", + "b_lu_name_en": "Brussels sprouts production", + "b_lu_hcat3": "3301210203", + "b_lu_hcat3_name": "brussels_sprouts" + }, + { + "b_lu_catalogue": "nl_2778", + "b_lu_name": "spruitkool/spruitjes, zaden en opkweekmateriaal", + "b_lu_name_en": "Brussels sprouts/brussels sprouts seeds and propagation material", + "b_lu_hcat3": "3301210203", + "b_lu_hcat3_name": "brussels_sprouts" + }, + { + "b_lu_catalogue": "nl_2779", + "b_lu_name": "stamsperziebonen (=stamslabonen), productie", + "b_lu_name_en": "Main green beans (= main green beans) production", + "b_lu_hcat3": "3301020100", + "b_lu_hcat3_name": "beans" + }, + { + "b_lu_catalogue": "nl_2780", + "b_lu_name": "stamsperziebonen (=stamslabonen), zaden en opkweekmateriaal", + "b_lu_name_en": "Main green beans (= main green beans) seeds and propagation material", + "b_lu_hcat3": "3301020100", + "b_lu_hcat3_name": "beans" + }, + { + "b_lu_catalogue": "nl_2781", + "b_lu_name": "stoksnijbonen en stokslabonen, productie", + "b_lu_name_en": "French French beans and French green beans production", + "b_lu_hcat3": "3301020100", + "b_lu_hcat3_name": "beans" + }, + { + "b_lu_catalogue": "nl_2782", + "b_lu_name": "stoksnijbonen en stokslabonen, zaden en opkweekmateriaal", + "b_lu_name_en": "French haricot beans and French green beans seeds and propagating material", + "b_lu_hcat3": "3301020100", + "b_lu_hcat3_name": "beans" + }, + { + "b_lu_catalogue": "nl_2783", + "b_lu_name": "waspeen, productie", + "b_lu_name_en": "Carrot, production", + "b_lu_hcat3": "3301290300", + "b_lu_hcat3_name": "carrots_daucus" + }, + { + "b_lu_catalogue": "nl_2784", + "b_lu_name": "waspeen, zaden en opkweekmateriaal", + "b_lu_name_en": "Carrot, seeds and propagating material", + "b_lu_hcat3": "3301290300", + "b_lu_hcat3_name": "carrots_daucus" + }, + { + "b_lu_catalogue": "nl_2785", + "b_lu_name": "winterpeen, productie", + "b_lu_name_en": "Carrot production", + "b_lu_hcat3": "3301290300", + "b_lu_hcat3_name": "carrots_daucus" + }, + { + "b_lu_catalogue": "nl_2786", + "b_lu_name": "winterpeen, zaden en opkweekmateriaal", + "b_lu_name_en": "Winter carrots seeds and propagation material", + "b_lu_hcat3": "3301290300", + "b_lu_hcat3_name": "carrots_daucus" + }, + { + "b_lu_catalogue": "nl_2787", + "b_lu_name": "witlofwortel, productie", + "b_lu_name_en": "Chicory root production", + "b_lu_hcat3": "3301310200", + "b_lu_hcat3_name": "chicory_chicories" + }, + { + "b_lu_catalogue": "nl_2788", + "b_lu_name": "witlofwortel, zaden en opkweekmateriaal", + "b_lu_name_en": "Chicory root seeds and propagation material", + "b_lu_hcat3": "3301310200", + "b_lu_hcat3_name": "chicory_chicories" + }, + { + "b_lu_catalogue": "nl_2789", + "b_lu_name": "witte kool, productie", + "b_lu_name_en": "White cabbage production", + "b_lu_hcat3": "3301210212", + "b_lu_hcat3_name": "white_cabbage" + }, + { + "b_lu_catalogue": "nl_2790", + "b_lu_name": "witte kool, zaden en opkweekmateriaal", + "b_lu_name_en": "White cabbage seeds and propagation material", + "b_lu_hcat3": "3301210212", + "b_lu_hcat3_name": "white_cabbage" + }, + { + "b_lu_catalogue": "nl_2791", + "b_lu_name": "overige niet genoemde bladgewassen, productie", + "b_lu_name_en": "Other leaf crops not mentioned production", + "b_lu_hcat3": "3301319900", + "b_lu_hcat3_name": "other_salads_lettuce_leaf_vegetables" + }, + { + "b_lu_catalogue": "nl_2792", + "b_lu_name": "overige niet genoemde bladgewassen, zaden en opkweekmateriaal", + "b_lu_name_en": "Other not mentioned leaf crops seeds and propagation material", + "b_lu_hcat3": "3301319900", + "b_lu_hcat3_name": "other_salads_lettuce_leaf_vegetables" + }, + { + "b_lu_catalogue": "nl_2793", + "b_lu_name": "overige niet genoemde groenten, productie", + "b_lu_name_en": "Other vegetables not mentioned production", + "b_lu_hcat3": "3301070000", + "b_lu_hcat3_name": "fresh_vegetables" + }, + { + "b_lu_catalogue": "nl_2794", + "b_lu_name": "overige niet genoemde groenten, zaden en opkweekmateriaal", + "b_lu_name_en": "Other vegetables seeds and propagation material not mentioned", + "b_lu_hcat3": "3301070000", + "b_lu_hcat3_name": "fresh_vegetables" + }, + { + "b_lu_catalogue": "nl_2795", + "b_lu_name": "bloemkool, winter, productie", + "b_lu_name_en": "Cauliflower winter production", + "b_lu_hcat3": "3301210204", + "b_lu_hcat3_name": "cauliflower" + }, + { + "b_lu_catalogue": "nl_2796", + "b_lu_name": "bloemkool, winter, zaden en opkweekmateriaal", + "b_lu_name_en": "Cauliflower winter seeds and propagation material", + "b_lu_hcat3": "3301210204", + "b_lu_hcat3_name": "cauliflower" + }, + { + "b_lu_catalogue": "nl_2797", + "b_lu_name": "bloemkool, zomer, productie", + "b_lu_name_en": "Cauliflower summer production", + "b_lu_hcat3": "3301210204", + "b_lu_hcat3_name": "cauliflower" + }, + { + "b_lu_catalogue": "nl_2798", + "b_lu_name": "bloemkool, zomer, zaden en opkweekmateriaal", + "b_lu_name_en": "Cauliflower summer seeds and growing material", + "b_lu_hcat3": "3301210204", + "b_lu_hcat3_name": "cauliflower" + }, + { + "b_lu_catalogue": "nl_2799", + "b_lu_name": "prei, winter, productie", + "b_lu_name_en": "Leek winter production", + "b_lu_hcat3": "3301220300", + "b_lu_hcat3_name": "leek" + }, + { + "b_lu_catalogue": "nl_2800", + "b_lu_name": "prei, winter, zaden en opkweekmateriaal", + "b_lu_name_en": "Leek winter seeds and propagation material", + "b_lu_hcat3": "3301220300", + "b_lu_hcat3_name": "leek" + }, + { + "b_lu_catalogue": "nl_2801", + "b_lu_name": "prei, zomer, productie", + "b_lu_name_en": "Leek summer production", + "b_lu_hcat3": "3301220300", + "b_lu_hcat3_name": "leek" + }, + { + "b_lu_catalogue": "nl_2802", + "b_lu_name": "prei, zomer, zaden en opkweekmateriaal", + "b_lu_name_en": "Leek summer seeds and propagation material", + "b_lu_hcat3": "3301220300", + "b_lu_hcat3_name": "leek" + }, + { + "b_lu_catalogue": "nl_2951", + "b_lu_name": "aardappelen, consumptie op klei/loessgrond", + "b_lu_name_en": "Potatoes, consumption on clay/lss soil", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_3055", + "b_lu_name": "lisdodde", + "b_lu_name_en": "bulrush", + "b_lu_hcat3": "3301080600", + "b_lu_hcat3_name": "bulrush" + }, + { + "b_lu_catalogue": "nl_3500", + "b_lu_name": "klaver, alexandrijnse", + "b_lu_name_en": "Clover Alexandrian", + "b_lu_hcat3": "3301090303", + "b_lu_hcat3_name": "clover" + }, + { + "b_lu_catalogue": "nl_3501", + "b_lu_name": "beemdlangbloem", + "b_lu_name_en": "meadow long flower", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_3502", + "b_lu_name": "bladkool", + "b_lu_name_en": "cabbage leaf", + "b_lu_hcat3": "3301210200", + "b_lu_hcat3_name": "brassica_oleracea_cabbage" + }, + { + "b_lu_catalogue": "nl_3503", + "b_lu_name": "bladraap", + "b_lu_name_en": "turnip", + "b_lu_hcat3": "3301290800", + "b_lu_hcat3_name": "turnips" + }, + { + "b_lu_catalogue": "nl_3504", + "b_lu_name": "bladrammenas", + "b_lu_name_en": "fodder radish", + "b_lu_hcat3": "3301290600", + "b_lu_hcat3_name": "radish" + }, + { + "b_lu_catalogue": "nl_3505", + "b_lu_name": "deder", + "b_lu_name_en": "Camelina sativa", + "b_lu_hcat3": "3301210000", + "b_lu_hcat3_name": "brassicaceae_cruciferae" + }, + { + "b_lu_catalogue": "nl_3506", + "b_lu_name": "engels raaigras", + "b_lu_name_en": "perennial ryegrass", + "b_lu_hcat3": "3301090205", + "b_lu_hcat3_name": "lolium_ryegrass" + }, + { + "b_lu_catalogue": "nl_3507", + "b_lu_name": "ethiopische mosterd", + "b_lu_name_en": "Ethiopian mustard", + "b_lu_hcat3": "3301210100", + "b_lu_hcat3_name": "mustard" + }, + { + "b_lu_catalogue": "nl_3508", + "b_lu_name": "facelia", + "b_lu_name_en": "Facelia", + "b_lu_hcat3": "3301061400", + "b_lu_hcat3_name": "phacelia" + }, + { + "b_lu_catalogue": "nl_3509", + "b_lu_name": "festulolium", + "b_lu_name_en": "Festulolium", + "b_lu_hcat3": "3301090204", + "b_lu_hcat3_name": "festulolium" + }, + { + "b_lu_catalogue": "nl_3510", + "b_lu_name": "boekweit", + "b_lu_name_en": "French buckwheat", + "b_lu_hcat3": "3301150200", + "b_lu_hcat3_name": "buckwheat" + }, + { + "b_lu_catalogue": "nl_3511", + "b_lu_name": "klaver, incarnaat", + "b_lu_name_en": "Clover incarnate", + "b_lu_hcat3": "3301090303", + "b_lu_hcat3_name": "clover" + }, + { + "b_lu_catalogue": "nl_3512", + "b_lu_name": "italiaans raaigras", + "b_lu_name_en": "Italian ryegrass", + "b_lu_hcat3": "3301090205", + "b_lu_hcat3_name": "lolium_ryegrass" + }, + { + "b_lu_catalogue": "nl_3513", + "b_lu_name": "westerwolds raaigras", + "b_lu_name_en": "Westerwolds ryegrass", + "b_lu_hcat3": "3301090205", + "b_lu_hcat3_name": "lolium_ryegrass" + }, + { + "b_lu_catalogue": "nl_3514", + "b_lu_name": "niger", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_3515", + "b_lu_name": "klaver, perzische", + "b_lu_name_en": "Clover Persian", + "b_lu_hcat3": "3301090303", + "b_lu_hcat3_name": "clover" + }, + { + "b_lu_catalogue": "nl_3516", + "b_lu_name": "rietzwenkgras", + "b_lu_name_en": "reed fescue", + "b_lu_hcat3": "3301090303", + "b_lu_hcat3_name": "clover" + }, + { + "b_lu_catalogue": "nl_3517", + "b_lu_name": "sarepta mosterd/caliente", + "b_lu_name_en": "Sarepta mustard/Caliente", + "b_lu_hcat3": "3301210100", + "b_lu_hcat3_name": "mustard" + }, + { + "b_lu_catalogue": "nl_3518", + "b_lu_name": "seradelle", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_3519", + "b_lu_name": "soedangras/sorghum", + "b_lu_name_en": "Sudan grass/Sorghum", + "b_lu_hcat3": "3301010999", + "b_lu_hcat3_name": "unspecified_season_millet_sorghum" + }, + { + "b_lu_catalogue": "nl_3520", + "b_lu_name": "spurrie", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_3521", + "b_lu_name": "stoppelknollen", + "b_lu_name_en": "Stubble Tubers", + "b_lu_hcat3": "3301290800", + "b_lu_hcat3_name": "turnips" + }, + { + "b_lu_catalogue": "nl_3522", + "b_lu_name": "timothee", + "b_lu_name_en": "Timothy", + "b_lu_hcat3": "3301090209", + "b_lu_hcat3_name": "timothy" + }, + { + "b_lu_catalogue": "nl_3523", + "b_lu_name": "veldbeemdgras", + "b_lu_name_en": "Field meadow grass", + "b_lu_hcat3": "3302000000", + "b_lu_hcat3_name": "pasture_meadow_grassland_grass" + }, + { + "b_lu_catalogue": "nl_3524", + "b_lu_name": "klaver, witte", + "b_lu_name_en": "clover white", + "b_lu_hcat3": "3301090303", + "b_lu_hcat3_name": "clover" + }, + { + "b_lu_catalogue": "nl_3718", + "b_lu_name": "grasland, natuurlijk", + "b_lu_name_en": "Grassland, of course", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_3719", + "b_lu_name": "heide", + "b_lu_name_en": "heath", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_3720", + "b_lu_name": "faunaranden, grasland", + "b_lu_name_en": "Fauna margins, grassland", + "b_lu_hcat3": "3301090100", + "b_lu_hcat3_name": "temporary_grass" + }, + { + "b_lu_catalogue": "nl_3721", + "b_lu_name": "faunaranden, bouwland", + "b_lu_name_en": "Fauna margins, arable land", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_3722", + "b_lu_name": "overige natuurterreinen", + "b_lu_name_en": "Other natural areas", + "b_lu_hcat3": "3399000000", + "b_lu_hcat3_name": "not_known_and_other" + }, + { + "b_lu_catalogue": "nl_3730", + "b_lu_name": "aardappelen, poot op klei/loessgrond (nak)", + "b_lu_name_en": "Potatoes, seed on clay/lss soil (NAK)", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_3731", + "b_lu_name": "aardappelen, poot op zand/veengrond (nak)", + "b_lu_name_en": "Potatoes, seed on sand/peat soil (NAK)", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_3732", + "b_lu_name": "aardappelen, zetmeel (incl. tbm-pootgoed)", + "b_lu_name_en": "Potatoes, starch (incl. TBM seed potatoes)", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_3736", + "b_lu_name": "vlas, vezel-", + "b_lu_name_en": "flax fiber", + "b_lu_hcat3": "3301060701", + "b_lu_hcat3_name": "flax_linen" + }, + { + "b_lu_catalogue": "nl_3792", + "b_lu_name": "aardappelen, consumptie op zand/veengrond", + "b_lu_name_en": "potatoes, starch", + "b_lu_hcat3": "3301030000", + "b_lu_hcat3_name": "potatoes" + }, + { + "b_lu_catalogue": "nl_3801", + "b_lu_name": "tijdelijk onbeteelde grond, i.v.m. publieke werken", + "b_lu_name_en": "Temporarily uncultivated land due to public works", + "b_lu_hcat3": "3308000000", + "b_lu_hcat3_name": "unmaintained" + }, + { + "b_lu_catalogue": "nl_3802", + "b_lu_name": "tijdelijk onbeteelde grond, anders dan voor publieke werken", + "b_lu_name_en": "Temporary uncultivated land other than for public works", + "b_lu_hcat3": "3308000000", + "b_lu_hcat3_name": "unmaintained" + }, + { + "b_lu_catalogue": "nl_3803", + "b_lu_name": "rand, grenzend aan bouwland, hoofdzakelijk bestaand uit een ander gewas dan gras. (ea: beheer)", + "b_lu_name_en": "Border adjacent to arable land consisting mainly of a crop other than grass. (EA: management)", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_3804", + "b_lu_name": "rand, grenzend aan bouwland, hoofdzakelijk bestaand uit een ander gewas dan gras. (ea: onbeheerd)", + "b_lu_name_en": "Border adjacent to arable land consisting mainly of a crop other than grass. (EA: unattended)", + "b_lu_hcat3": "3301990000", + "b_lu_hcat3_name": "other_arable_land_crops" + }, + { + "b_lu_catalogue": "nl_3805", + "b_lu_name": "rietzwenkgras, industriegras", + "b_lu_name_en": "Reed fescue industrial grass", + "b_lu_hcat3": "3301090202", + "b_lu_hcat3_name": "festuca_fescue" + }, + { + "b_lu_catalogue": "nl_3806", + "b_lu_name": "boomkwekerijgewassen en vaste planten, open grond", + "b_lu_name_en": "Nursery crops and perennials, open ground", + "b_lu_hcat3": "3303120000", + "b_lu_hcat3_name": "unspecified_permanent_crops" + }, + { + "b_lu_catalogue": "nl_3807", + "b_lu_name": "rietzwenkgras, anders dan voor industriegras", + "b_lu_name_en": "Reed fescue other than for industrial grass", + "b_lu_hcat3": "3301090202", + "b_lu_hcat3_name": "festuca_fescue" + }, + { + "b_lu_catalogue": "nl_3808", + "b_lu_name": "roodzwenkgras", + "b_lu_name_en": "red fescue", + "b_lu_hcat3": "3301090202", + "b_lu_hcat3_name": "festuca_fescue" + }, + { + "b_lu_catalogue": "nl_6520", + "b_lu_name": "azolla", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6521", + "b_lu_name": "wilde rijst", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6522", + "b_lu_name": "riet", + "b_lu_name_en": "reed", + "b_lu_hcat3": "3301090200", + "b_lu_hcat3_name": "poaceae_grasses" + }, + { + "b_lu_catalogue": "nl_6632", + "b_lu_name": "zoete aardappelen", + "b_lu_name_en": "Sweet potatoes", + "b_lu_hcat3": "3301040000", + "b_lu_hcat3_name": "sweet_potatoes" + }, + { + "b_lu_catalogue": "nl_6636", + "b_lu_name": "naakte haver", + "b_lu_name_en": "Naked oats", + "b_lu_hcat3": "3301010599", + "b_lu_hcat3_name": "unspecified_season_oats" + }, + { + "b_lu_catalogue": "nl_6660", + "b_lu_name": "uien, gele zaai-", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6664", + "b_lu_name": "uien, rode zaai-", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6746", + "b_lu_name": "beemdlangbloem, graszaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6748", + "b_lu_name": "beemdlangbloem, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6749", + "b_lu_name": "bieslook", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6750", + "b_lu_name": "engels raaigras, graszaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6751", + "b_lu_name": "engels raaigras, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6752", + "b_lu_name": "festulolium, graszaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6753", + "b_lu_name": "festulolium, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6754", + "b_lu_name": "italiaans raaigras, graszaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6755", + "b_lu_name": "italiaans raaigras, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6756", + "b_lu_name": "klaver, alexandrijnse, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6757", + "b_lu_name": "klaver, alexandrijnse, klaverzaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6758", + "b_lu_name": "klaver, incarnaat, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6759", + "b_lu_name": "klaver, incarnaat, klaverzaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6760", + "b_lu_name": "klaver, perzische, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6761", + "b_lu_name": "klaver, perzische, klaverzaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6762", + "b_lu_name": "klaver, rode, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6763", + "b_lu_name": "klaver, rode, klaverzaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6764", + "b_lu_name": "klaver, witte, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6765", + "b_lu_name": "klaver, witte, klaverzaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6766", + "b_lu_name": "lamsoor", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6767", + "b_lu_name": "linzen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6768", + "b_lu_name": "overig graszaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6769", + "b_lu_name": "overig klaverzaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6782", + "b_lu_name": "rietzwenkgras, graszaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6783", + "b_lu_name": "rietzwenkgras, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6784", + "b_lu_name": "roodzwenkgras, graszaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6785", + "b_lu_name": "roodzwenkgras, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6786", + "b_lu_name": "timothee, graszaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6787", + "b_lu_name": "timothee, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6788", + "b_lu_name": "veldbeemdgras, graszaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6789", + "b_lu_name": "veldbeemdgras, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6790", + "b_lu_name": "westerwolds raaigras, graszaad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6791", + "b_lu_name": "westerwolds raaigras, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6792", + "b_lu_name": "zeekraal", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6793", + "b_lu_name": "graften", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6794", + "b_lu_name": "groene braak, spontane opkomst", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6795", + "b_lu_name": "liatris, bloembollen en -knollen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6796", + "b_lu_name": "liatris, droogbloemen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6797", + "b_lu_name": "liatris, overige bloemkwekerijgewassen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6798", + "b_lu_name": "perceel bedekt met gewasresten (mulching)", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6799", + "b_lu_name": "rijst", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6800", + "b_lu_name": "ruigtes op landbouwpercelen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6801", + "b_lu_name": "schouwpad", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6802", + "b_lu_name": "sedum", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6803", + "b_lu_name": "sneeuwklokje, bloembollen en -knollen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6804", + "b_lu_name": "sneeuwklokje, droogbloemen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6805", + "b_lu_name": "sneeuwklokje, overige bloemkwekerijgewassen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6806", + "b_lu_name": "snijrogge", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6807", + "b_lu_name": "stroken wild gras", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6808", + "b_lu_name": "tuunwallen", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_6809", + "b_lu_name": "voederhaag", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_7121", + "b_lu_name": "bonen, witte-", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_7122", + "b_lu_name": "yacon", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_7124", + "b_lu_name": "raapzaad, winter", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_7125", + "b_lu_name": "overige groenbemesters, niet-vlinderbloemige-, niet zijnde gras", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_7126", + "b_lu_name": "overige gras, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_7127", + "b_lu_name": "rietland", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_7128", + "b_lu_name": "rietkraag/rietzoom", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_7129", + "b_lu_name": "rogge, groenvoedergewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_7130", + "b_lu_name": "rogge, korrelgewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + }, + { + "b_lu_catalogue": "nl_7131", + "b_lu_name": "rogge, groenbemesting, vanggewas", + "b_lu_name_en": null, + "b_lu_hcat3": null, + "b_lu_hcat3_name": null + } +] \ No newline at end of file diff --git a/fdm-data/src/cultivations/catalogues/brp.ts b/fdm-data/src/cultivations/catalogues/brp.ts new file mode 100644 index 000000000..e6a191ad2 --- /dev/null +++ b/fdm-data/src/cultivations/catalogues/brp.ts @@ -0,0 +1,19 @@ +import brp from './brp.json' +import { fdmSchema } from '@svenvw/fdm-core' + +/** + * Retrieves the BRP cultivation catalogue. + * + * @returns An array of cultivation catalogue entries conforming to the `cultivationsCatalogueTypeInsert` schema. + */ +export function getCatalogueBrp(): fdmSchema.cultivationsCatalogueTypeInsert[] { + + const catalogueBrp = brp.map(cultivation => { + return { + b_lu_source: 'brp', + ...cultivation + } + }) + + return catalogueBrp +} diff --git a/fdm-data/src/cultivations/index.test.ts b/fdm-data/src/cultivations/index.test.ts new file mode 100644 index 000000000..7bdf397b9 --- /dev/null +++ b/fdm-data/src/cultivations/index.test.ts @@ -0,0 +1,113 @@ +import { describe, expect, it, beforeEach, afterAll } from 'vitest' +import { extendCultivationsCatalogue } from './index' +import { getCatalogueBrp } from './catalogues/brp' +import { getCultivationsFromCatalogue, fdmSchema as schema, type FdmServerType } from '@svenvw/fdm-core' + +import { drizzle } from 'drizzle-orm/postgres-js' +import { migrate } from 'drizzle-orm/postgres-js/migrator' + +describe('Cultivations Catalogue', () => { + let fdm: FdmServerType + + beforeEach(async () => { + const requiredEnvVars = ['POSTGRES_HOST', 'POSTGRES_PORT', 'POSTGRES_USER', 'POSTGRES_PASSWORD', 'POSTGRES_DB']; + for (const envVar of requiredEnvVars) { + if (!process.env[envVar]) { + throw new Error(`Missing required environment variable: ${envVar}`); + } + } + + const host = process.env.POSTGRES_HOST + const port = Number(process.env.POSTGRES_PORT) + if (Number.isNaN(port)) { + throw new Error('POSTGRES_PORT must be a valid number'); + } + const user = process.env.POSTGRES_USER + const password = process.env.POSTGRES_PASSWORD + const database = process.env.POSTGRES_DB + const migrationsFolderPath = 'node_modules/@svenvw/fdm-core/dist/db/migrations' + + try { + // TODO: Replace workaround with createFdmServer once issue is resolved + // Current blocker: Migration does not work with fdmServer + // const fdm = await createFdmServer( + // host, + // port, + // user, + // password, + // database + // ) + // await migrateFdmServer(fdm) + + // Workaround + fdm = drizzle({ + connection: { + user: user, + password: password, + host: host, + port: port, + database: database + }, + logger: false, + schema: schema + }) + + // Run migration + await migrate(fdm, { migrationsFolder: migrationsFolderPath, migrationsSchema: 'fdm-migrations' }) + } catch (error) { + console.error('Failed to setup database:', error); + throw error; + } + }) + + afterAll(async () => { + try { + // Clean up test data + await fdm.delete(schema.fieldSowing).execute(); + await fdm.delete(schema.cultivations).execute(); + await fdm.delete(schema.cultivationsCatalogue).execute(); + } catch (error) { + console.error('Failed to cleanup:', error); + throw error; + } + }) + + + it('should extend cultivations catalogue with brp', async () => { + // Verify initial state + const initialCatalogue = await getCultivationsFromCatalogue(fdm) + expect(initialCatalogue).toHaveLength(0) + + const catalogueName = 'brp' + await extendCultivationsCatalogue(fdm, catalogueName) + + // Retrieve the catalogue from the database to verify + const dbCatalogue = await getCultivationsFromCatalogue(fdm) + + // Get the expected catalogue + const expectedCatalogue = getCatalogueBrp() + + // Check if all expected entries are in the database + expect(dbCatalogue.length).toBeGreaterThanOrEqual(expectedCatalogue.length) + + for (const expectedItem of expectedCatalogue) { + const dbItem = dbCatalogue.find((item: schema.cultivationsCatalogueTypeSelect) => item.b_lu_catalogue === expectedItem.b_lu_catalogue) + expect(dbItem).toBeDefined() + expect(dbItem!.b_lu_source).toBe(expectedItem.b_lu_source) + expect(dbItem!.b_lu_name).toBe(expectedItem.b_lu_name) + expect(dbItem!.b_lu_name_en).toBe(expectedItem.b_lu_name_en) + expect(dbItem!.b_lu_hcat3).toBe(expectedItem.b_lu_hcat3) + expect(dbItem!.b_lu_hcat3_name).toBe(expectedItem.b_lu_hcat3_name) + } + + }) + + it('should throw error if catalogue name is not recognized', async () => { + + const catalogueName = 'invalid_catalogue_name' + await expect(extendCultivationsCatalogue(fdm, catalogueName)).rejects.toThrowError(`catalogue ${catalogueName} is not recognized`) + + }) + +}) + diff --git a/fdm-data/src/cultivations/index.ts b/fdm-data/src/cultivations/index.ts new file mode 100644 index 000000000..7c36edcb7 --- /dev/null +++ b/fdm-data/src/cultivations/index.ts @@ -0,0 +1,58 @@ +import { addCultivationToCatalogue, getCultivationsFromCatalogue, type FdmType, fdmSchema } from "@svenvw/fdm-core"; +import { getCatalogueBrp } from "./catalogues/brp"; + +/** + * Extends the cultivations catalogue in the Farm Data Model (FDM) with data from a specified source. + * + * @param fdm - An instance of the FDM, providing database access. + * @param catalogueName - The name of the catalogue to extend. Currently, only 'brp' is supported. + * + * @throws An error if the specified catalogue name is not recognized. + */ +export async function extendCultivationsCatalogue(fdm: FdmType, catalogueName: string): Promise { + + // Get the specified catalogue + let catalogue: fdmSchema.cultivationsCatalogueTypeInsert[] = [] + if (catalogueName == 'brp') { + catalogue = getCatalogueBrp() + } + + // Check if specified catalogue exist + if (catalogue.length === 0) { + throw new Error(`catalogue ${catalogueName} is not recognized`) + } + + // Get list of cultivations from catalogue + const cultivationsCatalogue = await getCultivationsFromCatalogue(fdm) + + // Add cultivations to catalogue + try { + await Promise.all(catalogue.map(async cultivation => { + + // Check if cultivation is already present in catalogue + const cultivationInCatalogue = cultivationsCatalogue.find( + (x: fdmSchema.cultivationsCatalogueTypeSelect) => + x.b_lu_catalogue === cultivation.b_lu_catalogue + ); + + // If cultivation is not present in catalogue, add it to fdm instance + // TODO: Update values if they differ + if (!cultivationInCatalogue) { + await addCultivationToCatalogue( + fdm, + { + b_lu_catalogue: cultivation.b_lu_catalogue, + b_lu_source: cultivation.b_lu_source, + b_lu_name: cultivation.b_lu_name, + b_lu_name_en: cultivation.b_lu_name_en, + b_lu_hcat3: cultivation.b_lu_hcat3, + b_lu_hcat3_name: cultivation.b_lu_hcat3_name + } + ) + } + })) + } catch (error) { + throw new Error(`Failed to extend cultivations catalogue: ${(error as Error).message}`); + } +} + diff --git a/fdm-data/src/fertilizers/index.test.ts b/fdm-data/src/fertilizers/index.test.ts index 49fc546b0..17fe582f2 100644 --- a/fdm-data/src/fertilizers/index.test.ts +++ b/fdm-data/src/fertilizers/index.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it, beforeEach } from 'vitest' +import { describe, expect, it, beforeEach, afterAll } from 'vitest' import { getFertilizersFromCatalogue, fdmSchema as schema, type FdmType } from '@svenvw/fdm-core' import { extendFertilizersCatalogue } from '.' @@ -16,33 +16,52 @@ describe('Fertilizers Data [server]', () => { const password = process.env.POSTGRES_PASSWORD const database = process.env.POSTGRES_DB const migrationsFolderPath = 'node_modules/@svenvw/fdm-core/dist/db/migrations' - - // Does not work yet :( - // const fdm = await createFdmServer( - // host, - // port, - // user, - // password, - // database - // ) - // await migrateFdmServer(fdm) - - // Workaround - fdm = drizzle({ - connection : { - user : user, - password : password, - host : host, - port : port, - database : database - }, - logger: false, - schema: schema - }) - - // Run migration - await migrate(fdm, { migrationsFolder: migrationsFolderPath, migrationsSchema: 'fdm-migrations' }) - + + try { + // TODO: Replace workaround with createFdmServer once issue is resolved + // Current blocker: Migration does not work with fdmServer + // const fdm = await createFdmServer( + // host, + // port, + // user, + // password, + // database + // ) + // await migrateFdmServer(fdm) + + // Workaround + fdm = drizzle({ + connection: { + user: user, + password: password, + host: host, + port: port, + database: database + }, + logger: false, + schema: schema + }) + + // Run migration + await migrate(fdm, { migrationsFolder: migrationsFolderPath, migrationsSchema: 'fdm-migrations' }) + } catch (error) { + console.error('Failed to setup database:', error); + throw error; + } + + }) + + afterAll(async () => { + try { + // Clean up test data + await fdm.transaction(async (tx: FdmType) => { + await tx.delete(schema.fertilizerPicking).execute(); + await tx.delete(schema.fertilizersCatalogue).execute(); + }); + } catch (error) { + console.error('Failed to cleanup:', error); + throw error; + } }) it('should throw error if dataset is not recognized', async () => { diff --git a/fdm-data/src/index.ts b/fdm-data/src/index.ts index 4645afd21..5b99698dd 100644 --- a/fdm-data/src/index.ts +++ b/fdm-data/src/index.ts @@ -11,4 +11,5 @@ * @packageDocumentation */ -export { extendFertilizersCatalogue} from './fertilizers' \ No newline at end of file +export { extendFertilizersCatalogue } from './fertilizers' +export { extendCultivationsCatalogue } from './cultivations' \ No newline at end of file diff --git a/fdm-docs/CHANGELOG.md b/fdm-docs/CHANGELOG.md index e95a1e5c9..ae5c4fb53 100644 --- a/fdm-docs/CHANGELOG.md +++ b/fdm-docs/CHANGELOG.md @@ -1,5 +1,11 @@ # fdm-docs +## 0.1.3 + +### Patch Changes + +- 6694029: Upgrade `pnpm` to 9.14.2 + ## 0.1.2 ### Patch Changes diff --git a/fdm-docs/package.json b/fdm-docs/package.json index d6e9c8dd2..5431223fc 100644 --- a/fdm-docs/package.json +++ b/fdm-docs/package.json @@ -1,6 +1,6 @@ { "name": "fdm-docs", - "version": "0.1.2", + "version": "0.1.3", "private": true, "scripts": { "docusaurus": "docusaurus", @@ -24,14 +24,14 @@ "clsx": "^2.0.0", "lucide-react": "^0.453.0", "prism-react-renderer": "^2.3.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.2.0", + "react-dom": "^18.2.0" }, "devDependencies": { "@docusaurus/module-type-aliases": "3.5.2", "@docusaurus/tsconfig": "3.5.2", "@docusaurus/types": "3.5.2", - "typescript": "~5.5.2" + "typescript": "^5.6.3" }, "browserslist": { "production": [ @@ -48,5 +48,5 @@ "engines": { "node": ">=18.0" }, - "packageManager": "pnpm@9.12.2" -} \ No newline at end of file + "packageManager": "pnpm@9.14.2" +} diff --git a/package.json b/package.json index fe476884f..bfdcc8cd6 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,10 @@ "type": "module", "private": true, "workspaces": [ - "fdm-core", "fdm-data", "fdm-docs", "fdm-app" + "fdm-core", + "fdm-data", + "fdm-docs", + "fdm-app" ], "scripts": { "test": "turbo run test", @@ -18,10 +21,10 @@ "prerelease": "turbo build --filter=@svenvw/fdm-core --filter=@svenvw/fdm-data && changeset publish " }, "devDependencies": { - "@changesets/cli": "^2.27.9", - "turbo": "^2.2.3" + "@changesets/cli": "^2.27.10", + "turbo": "^2.3.2" }, - "packageManager": "pnpm@9.12.2", + "packageManager": "pnpm@9.14.2", "pnpm": { "packageExtensions": { "vite-plugin-dts": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 611640ba1..5ad1516b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,11 +17,11 @@ importers: .: devDependencies: '@changesets/cli': - specifier: ^2.27.9 - version: 2.27.9 + specifier: ^2.27.10 + version: 2.27.10 turbo: - specifier: ^2.2.3 - version: 2.2.3 + specifier: ^2.3.2 + version: 2.3.2 fdm-app: dependencies: @@ -58,6 +58,9 @@ importers: '@radix-ui/react-slot': specifier: ^1.1.0 version: 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-tabs': + specifier: ^1.1.1 + version: 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-toast': specifier: ^1.2.2 version: 1.2.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -73,12 +76,6 @@ importers: '@remix-run/serve': specifier: ^2.13.1 version: 2.13.1(typescript@5.6.3) - '@types/geojson': - specifier: ^7946.0.14 - version: 7946.0.14 - '@types/mapbox-gl': - specifier: ^3.4.1 - version: 3.4.1 class-variance-authority: specifier: ^0.7.0 version: 0.7.0 @@ -88,6 +85,9 @@ importers: cmdk: specifier: 1.0.0 version: 1.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + date-fns: + specifier: ^4.1.0 + version: 4.1.0 isbot: specifier: ^4.1.0 version: 4.4.0 @@ -100,6 +100,9 @@ importers: react: specifier: ^18.2.0 version: 18.3.1 + react-day-picker: + specifier: 8.10.1 + version: 8.10.1(date-fns@4.1.0)(react@18.3.1) react-dom: specifier: ^18.2.0 version: 18.3.1(react@18.3.1) @@ -120,8 +123,11 @@ importers: version: 0.5.0 devDependencies: '@dotenvx/dotenvx': - specifier: ^1.20.0 + specifier: ^1.20.1 version: 1.20.1 + '@eslint/js': + specifier: ^9.13.0 + version: 9.13.0 '@remix-run/dev': specifier: ^2.13.1 version: 2.13.1(@remix-run/react@2.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@remix-run/serve@2.13.1(typescript@5.6.3))(@types/node@22.7.9)(terser@5.36.0)(typescript@5.6.3)(vite@5.4.10(@types/node@22.7.9)(terser@5.36.0)) @@ -131,6 +137,12 @@ importers: '@svenvw/fdm-data': specifier: workspace:* version: link:../fdm-data + '@types/geojson': + specifier: ^7946.0.14 + version: 7946.0.14 + '@types/mapbox-gl': + specifier: ^3.4.1 + version: 3.4.1 '@types/mapbox__geojson-extent': specifier: ^1.0.3 version: 1.0.3 @@ -140,12 +152,6 @@ importers: '@types/react-dom': specifier: ^18.2.7 version: 18.3.1 - '@typescript-eslint/eslint-plugin': - specifier: ^6.7.4 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) - '@typescript-eslint/parser': - specifier: ^6.7.4 - version: 6.21.0(eslint@8.57.1)(typescript@5.6.3) autoprefixer: specifier: ^10.4.19 version: 10.4.20(postcss@8.4.47) @@ -153,23 +159,8 @@ importers: specifier: 'catalog:' version: 0.35.3(@electric-sql/pglite@0.2.12)(@libsql/client-wasm@0.14.0)(@types/react@18.3.11)(postgres@3.4.4)(react@18.3.1) eslint: - specifier: ^8.38.0 - version: 8.57.1 - eslint-import-resolver-typescript: - specifier: ^3.6.1 - version: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: - specifier: ^2.28.1 - version: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) - eslint-plugin-jsx-a11y: - specifier: ^6.7.1 - version: 6.10.2(eslint@8.57.1) - eslint-plugin-react: - specifier: ^7.33.2 - version: 7.37.2(eslint@8.57.1) - eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.2(eslint@8.57.1) + specifier: ^9.13.0 + version: 9.13.0(jiti@1.21.6) postcss: specifier: ^8.4.38 version: 8.4.47 @@ -177,10 +168,13 @@ importers: specifier: ^3.4.4 version: 3.4.14 typescript: - specifier: ^5.1.6 + specifier: ^5.6.3 version: 5.6.3 + typescript-eslint: + specifier: ^8.11.0 + version: 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3) vite: - specifier: ^5.1.0 + specifier: ^5.4.10 version: 5.4.10(@types/node@22.7.9)(terser@5.36.0) vite-tsconfig-paths: specifier: ^4.2.1 @@ -259,8 +253,8 @@ importers: fdm-data: devDependencies: '@dotenvx/dotenvx': - specifier: ^1.20.0 - version: 1.20.0 + specifier: ^1.20.1 + version: 1.20.1 '@svenvw/fdm-core': specifier: workspace:* version: link:../fdm-core @@ -268,26 +262,26 @@ importers: specifier: 'catalog:' version: 0.35.3(@electric-sql/pglite@0.2.12)(@libsql/client-wasm@0.14.0)(@types/react@18.3.11)(postgres@3.4.4)(react@18.3.1) typescript: - specifier: ^5.5.3 + specifier: ^5.6.3 version: 5.6.3 vite: - specifier: ^5.4.8 - version: 5.4.9(@types/node@22.7.9)(terser@5.36.0) + specifier: ^5.4.10 + version: 5.4.10(@types/node@22.7.9)(terser@5.36.0) vite-plugin-dts: - specifier: ^4.0.2 - version: 4.2.4(@types/node@22.7.9)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@22.7.9)(terser@5.36.0)) + specifier: ^4.3.0 + version: 4.3.0(@types/node@22.7.9)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.10(@types/node@22.7.9)(terser@5.36.0)) vitest: - specifier: ^2.0.5 + specifier: ^2.1.3 version: 2.1.3(@types/node@22.7.9)(terser@5.36.0) fdm-docs: dependencies: '@docusaurus/core': specifier: 3.5.2 - version: 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + version: 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/preset-classic': specifier: 3.5.2 - version: 3.5.2(@algolia/client-search@4.24.0)(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.5.4) + version: 3.5.2(@algolia/client-search@4.24.0)(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3) '@mdx-js/react': specifier: ^3.0.0 version: 3.1.0(@types/react@18.3.11)(react@18.3.1) @@ -301,10 +295,10 @@ importers: specifier: ^2.3.0 version: 2.4.0(react@18.3.1) react: - specifier: ^18.0.0 + specifier: ^18.2.0 version: 18.3.1 react-dom: - specifier: ^18.0.0 + specifier: ^18.2.0 version: 18.3.1(react@18.3.1) devDependencies: '@docusaurus/module-type-aliases': @@ -317,8 +311,8 @@ importers: specifier: 3.5.2 version: 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) typescript: - specifier: ~5.5.2 - version: 5.5.4 + specifier: ^5.6.3 + version: 5.6.3 packages: @@ -978,21 +972,21 @@ packages: resolution: {integrity: sha512-OwS2CM5KocvQ/k7dFJa8i5bNGJP0hXWfVCfDkqRFP1IreH1JDC7wG6eCYCi0+McbfT8OR/kNqsI0UU0xP9H6PQ==} engines: {node: '>=6.9.0'} - '@changesets/apply-release-plan@7.0.5': - resolution: {integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==} + '@changesets/apply-release-plan@7.0.6': + resolution: {integrity: sha512-TKhVLtiwtQOgMAC0fCJfmv93faiViKSDqr8oMEqrnNs99gtSC1sZh/aEMS9a+dseU1ESZRCK+ofLgGY7o0fw/Q==} - '@changesets/assemble-release-plan@6.0.4': - resolution: {integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==} + '@changesets/assemble-release-plan@6.0.5': + resolution: {integrity: sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ==} '@changesets/changelog-git@0.2.0': resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} - '@changesets/cli@2.27.9': - resolution: {integrity: sha512-q42a/ZbDnxPpCb5Wkm6tMVIxgeI9C/bexntzTeCFBrQEdpisQqk8kCHllYZMDjYtEc1ZzumbMJAG8H0Z4rdvjg==} + '@changesets/cli@2.27.10': + resolution: {integrity: sha512-PfeXjvs9OfQJV8QSFFHjwHX3QnUL9elPEQ47SgkiwzLgtKGyuikWjrdM+lO9MXzOE22FO9jEGkcs4b+B6D6X0Q==} hasBin: true - '@changesets/config@3.0.3': - resolution: {integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==} + '@changesets/config@3.0.4': + resolution: {integrity: sha512-+DiIwtEBpvvv1z30f8bbOsUQGuccnZl9KRKMM/LxUHuDu5oEjmN+bJQ1RIBKNJjfYMQn8RZzoPiX0UgPaLQyXw==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} @@ -1000,14 +994,14 @@ packages: '@changesets/get-dependents-graph@2.1.2': resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} - '@changesets/get-release-plan@4.0.4': - resolution: {integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==} + '@changesets/get-release-plan@4.0.5': + resolution: {integrity: sha512-E6wW7JoSMcctdVakut0UB76FrrN3KIeJSXvB+DHMFo99CnC3ZVnNYDCVNClMlqAhYGmLmAj77QfApaI3ca4Fkw==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - '@changesets/git@3.0.1': - resolution: {integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==} + '@changesets/git@3.0.2': + resolution: {integrity: sha512-r1/Kju9Y8OxRRdvna+nxpQIsMsRQn9dhhAZt94FLDeu0Hij2hnOozW8iqnHBgvu+KdnJppCveQwK4odwfw/aWQ==} '@changesets/logger@0.1.1': resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} @@ -1018,8 +1012,8 @@ packages: '@changesets/pre@2.0.1': resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} - '@changesets/read@0.6.1': - resolution: {integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==} + '@changesets/read@0.6.2': + resolution: {integrity: sha512-wjfQpJvryY3zD61p8jR87mJdyx2FIhEcdXhKUqkja87toMrP/3jtg/Yg29upN+N4Ckf525/uvV7a4tzBlpk6gg==} '@changesets/should-skip-package@0.1.1': resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} @@ -1217,10 +1211,6 @@ packages: '@docusaurus/types': optional: true - '@dotenvx/dotenvx@1.20.0': - resolution: {integrity: sha512-Zepr4dxvbTw1PKVa5i0HFP59wy1L6LXD+I9HcXnvugDevLOIA8mwwIH1ZqKDF6TrwRS4AHZy2lP9hKLBqib1EQ==} - hasBin: true - '@dotenvx/dotenvx@1.20.1': resolution: {integrity: sha512-BkUNp2YdlH0XuzsceTtobFZBkOvxdCUxgv8kDGUEBoU9sfeYmzpDuzTm8QAgsDiusyy9ET1zaEK1s7ojXTnz5w==} hasBin: true @@ -1806,18 +1796,10 @@ packages: resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/eslintrc@3.1.0': resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@9.13.0': resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1859,19 +1841,10 @@ packages: resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} engines: {node: '>=18.18.0'} - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - '@humanwhocodes/retry@0.3.1': resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} @@ -1982,9 +1955,6 @@ packages: '@types/react': '>=16' react: '>=16' - '@microsoft/api-extractor-model@7.29.6': - resolution: {integrity: sha512-gC0KGtrZvxzf/Rt9oMYD2dHvtN/1KPEYsrQPyMKhLHnlVuO/f4AFN3E4toqZzD2pt4LhkKoYmL2H9tX3yCOyRw==} - '@microsoft/api-extractor-model@7.29.8': resolution: {integrity: sha512-t3Z/xcO6TRbMcnKGVMs4uMzv/gd5j0NhMiJIGjD4cJMeFJ1Hf8wnLSx37vxlRlL0GWlGJhnFgxvnaL6JlS+73g==} @@ -1992,10 +1962,6 @@ packages: resolution: {integrity: sha512-lrudfbPub5wzBhymfFtgZKuBvXxoSIAdrvS2UbHjoMT2TjIEddq6Z13pcve7A03BAouw0x8sW8G4txdgfiSwpQ==} hasBin: true - '@microsoft/api-extractor@7.47.7': - resolution: {integrity: sha512-fNiD3G55ZJGhPOBPMKD/enozj8yxJSYyVJWxRWdcUtw842rvthDHJgUWq9gXQTensFlMHv2wGuCjjivPv53j0A==} - hasBin: true - '@microsoft/tsdoc-config@0.17.0': resolution: {integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==} @@ -2026,10 +1992,6 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@nolyfill/is-core-module@1.0.39': - resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} - engines: {node: '>=12.4.0'} - '@npmcli/fs@3.1.1': resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2499,6 +2461,19 @@ packages: '@types/react': optional: true + '@radix-ui/react-tabs@1.1.1': + resolution: {integrity: sha512-3GBUDmP2DvzmtYLMsHmpA1GtR46ZDZ+OreXM/N+kkQJOPIgytFWWTfDQmBQKBvaFS0Vno0FktdbVzN28KGrMdw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-toast@1.2.2': resolution: {integrity: sha512-Z6pqSzmAP/bFJoqMAston4eSNa+ud44NSZTiZUmUen+IOZ5nBY8kzuU5WDBVyFXPtcW6yUalOHsxM/BP6Sv8ww==} peerDependencies: @@ -2724,15 +2699,6 @@ packages: '@remix-run/web-stream@1.1.0': resolution: {integrity: sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==} - '@rollup/pluginutils@5.1.2': - resolution: {integrity: sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/pluginutils@5.1.3': resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} engines: {node: '>=14.0.0'} @@ -2822,17 +2788,6 @@ packages: cpu: [x64] os: [win32] - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - - '@rushstack/node-core-library@5.7.0': - resolution: {integrity: sha512-Ff9Cz/YlWu9ce4dmqNBZpA45AEya04XaBFIjV7xTVeEf+y/kTjEasmozqFELXlNG4ROdevss75JrrZ5WgufDkQ==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - '@rushstack/node-core-library@5.9.0': resolution: {integrity: sha512-MMsshEWkTbXqxqFxD4gcIUWQOCeBChlGczdZbHfqmNZQFLHB3yWxDFSMHFUdu2/OB9NUk7Awn5qRL+rws4HQNg==} peerDependencies: @@ -2844,14 +2799,6 @@ packages: '@rushstack/rig-package@0.5.3': resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} - '@rushstack/terminal@0.14.0': - resolution: {integrity: sha512-juTKMAMpTIJKudeFkG5slD8Z/LHwNwGZLtU441l/u82XdTBfsP+LbGKJLCNwP5se+DMCT55GB8x9p6+C4UL7jw==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - '@rushstack/terminal@0.14.2': resolution: {integrity: sha512-2fC1wqu1VCExKC0/L+0noVcFQEXEnoBOtCIex1TOjBzEDWcw8KzJjjj7aTP6mLxepG0XIyn9OufeFb6SFsa+sg==} peerDependencies: @@ -2860,9 +2807,6 @@ packages: '@types/node': optional: true - '@rushstack/ts-command-line@4.22.6': - resolution: {integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==} - '@rushstack/ts-command-line@4.23.0': resolution: {integrity: sha512-jYREBtsxduPV6ptNq8jOKp9+yx0ld1Tb/Tkdnlj8gTjazl1sF3DwX2VbluyYrNd0meWIL0bNeer7WDf5tKFjaQ==} @@ -3071,9 +3015,6 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/mapbox-gl@3.4.1': resolution: {integrity: sha512-NsGKKtgW93B+UaLPti6B7NwlxYlES5DpV5Gzj9F75rK5ALKsqSk15CiEHbOnTr09RGbr6ZYiCdI+59NNNcAImg==} @@ -3152,9 +3093,6 @@ packages: '@types/sax@1.2.7': resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -3185,17 +3123,6 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@6.21.0': - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/eslint-plugin@8.11.0': resolution: {integrity: sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3207,16 +3134,6 @@ packages: typescript: optional: true - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/parser@8.11.0': resolution: {integrity: sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3227,24 +3144,10 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/scope-manager@8.11.0': resolution: {integrity: sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@6.21.0': - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/type-utils@8.11.0': resolution: {integrity: sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3254,23 +3157,10 @@ packages: typescript: optional: true - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/types@8.11.0': resolution: {integrity: sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/typescript-estree@8.11.0': resolution: {integrity: sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3280,22 +3170,12 @@ packages: typescript: optional: true - '@typescript-eslint/utils@6.21.0': - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@8.11.0': resolution: {integrity: sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/visitor-keys@8.11.0': resolution: {integrity: sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3569,10 +3449,6 @@ packages: resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} engines: {node: '>=10'} - aria-query@5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} - engines: {node: '>= 0.4'} - arr-union@3.1.0: resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} engines: {node: '>=0.10.0'} @@ -3584,34 +3460,10 @@ packages: array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - - array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.3: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} @@ -3624,9 +3476,6 @@ packages: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} engines: {node: '>=0.10.0'} - ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true @@ -3646,14 +3495,6 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.10.2: - resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} - engines: {node: '>=4'} - - axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - babel-loader@9.2.1: resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} engines: {node: '>= 14.15.0'} @@ -4088,13 +3929,14 @@ packages: typescript: optional: true - cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} - cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + crypto-random-string@4.0.0: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} engines: {node: '>=12'} @@ -4199,9 +4041,6 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - data-uri-to-buffer@3.0.1: resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} engines: {node: '>= 6'} @@ -4218,6 +4057,9 @@ packages: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -4232,14 +4074,6 @@ packages: supports-color: optional: true - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -4366,14 +4200,6 @@ packages: resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} engines: {node: '>=6'} - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-converter@0.2.0: resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} @@ -4527,10 +4353,6 @@ packages: resolution: {integrity: sha512-dYAgdXAC7/d9fEC0w6kpRWj5vHah2BQgMM639g78JI0FUUffMN2Mq60HEHPkyH8ah+FX+cQd6ouDK4kWiatzyw==} engines: {node: '>=16.0.0'} - eciesjs@0.4.8: - resolution: {integrity: sha512-U2wAn6yEOVBP9lOVh3nryufg3hQTKVicG+qjEfqB/70m/mU9DzwWNdK0mC5zuxlJH42EGAezFlHVWI0snwg1nw==} - engines: {node: '>=16.0.0'} - ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -4597,10 +4419,6 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.2.0: - resolution: {integrity: sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==} - engines: {node: '>= 0.4'} - es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} @@ -4612,9 +4430,6 @@ packages: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - es-to-primitive@1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} @@ -4679,79 +4494,10 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-import-resolver-typescript@3.6.3: - resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' - peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: - optional: true - - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-jsx-a11y@6.10.2: - resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - - eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - - eslint-plugin-react@7.37.2: - resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-scope@8.1.0: resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4764,12 +4510,6 @@ packages: resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - eslint@9.13.0: resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4784,10 +4524,6 @@ packages: resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -4950,10 +4686,6 @@ packages: resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} engines: {node: '>=0.4.0'} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -4996,10 +4728,6 @@ packages: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -5196,10 +4924,6 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -5537,10 +5261,6 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} - is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -5556,9 +5276,6 @@ packages: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} - is-bun-module@1.2.1: - resolution: {integrity: sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==} - is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -5602,9 +5319,6 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -5632,10 +5346,6 @@ packages: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -5695,10 +5405,6 @@ packages: resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} engines: {node: '>=6'} - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} @@ -5730,17 +5436,9 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} - is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -5777,10 +5475,6 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} - iterator.prototype@1.1.3: - resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==} - engines: {node: '>= 0.4'} - jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -5850,10 +5544,6 @@ packages: json-stringify-pretty-compact@3.0.0: resolution: {integrity: sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==} - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -5865,10 +5555,6 @@ packages: jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - kdbush@4.0.2: resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==} @@ -5890,13 +5576,6 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - language-subtag-registry@0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} - - language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - latest-version@7.0.0: resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} engines: {node: '>=14.16'} @@ -6003,9 +5682,6 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -6421,10 +6097,6 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -6609,22 +6281,6 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} - object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - - object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} - obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} @@ -6735,8 +6391,8 @@ packages: resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} engines: {node: '>=14.16'} - package-manager-detector@0.2.2: - resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} + package-manager-detector@0.2.5: + resolution: {integrity: sha512-3dS7y28uua+UDbRCLBqltMBrbI+A5U2mI9YuxHRxIWYmLj3DwntEBmERYzIAQ4DMeuCUOBSak7dBHHoXKpOTYQ==} pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} @@ -7231,9 +6887,6 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - pump@2.0.1: resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} @@ -7291,6 +6944,12 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + react-day-picker@8.10.1: + resolution: {integrity: sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==} + peerDependencies: + date-fns: ^2.28.0 || ^3.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dev-utils@12.0.1: resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} engines: {node: '>=14'} @@ -7470,10 +7129,6 @@ packages: resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} engines: {node: '>=6.0.0'} - reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} - engines: {node: '>= 0.4'} - regenerate-unicode-properties@10.2.0: resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} @@ -7638,10 +7293,6 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - responselike@3.0.0: resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} engines: {node: '>=14.16'} @@ -7810,18 +7461,10 @@ packages: shallowequal@1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} - shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} @@ -7915,8 +7558,8 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spawndamnit@2.0.0: - resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + spawndamnit@3.0.1: + resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -7987,17 +7630,6 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string.prototype.includes@2.0.1: - resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} - engines: {node: '>= 0.4'} - - string.prototype.matchall@4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} - engines: {node: '>= 0.4'} - - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} @@ -8242,9 +7874,6 @@ packages: typescript: optional: true - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -8252,51 +7881,47 @@ packages: tslib@2.8.0: resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} - turbo-darwin-64@2.2.3: - resolution: {integrity: sha512-Rcm10CuMKQGcdIBS3R/9PMeuYnv6beYIHqfZFeKWVYEWH69sauj4INs83zKMTUiZJ3/hWGZ4jet9AOwhsssLyg==} + turbo-darwin-64@2.3.2: + resolution: {integrity: sha512-B1lS/UqjXNsG+kx1uzJNwXMuw2i5wavcyNy8opvSLjfuECdsqQU9B1wPqkSTU+mZjFTJcEfiGKyJ/I2EVk8vdw==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.2.3: - resolution: {integrity: sha512-+EIMHkuLFqUdJYsA3roj66t9+9IciCajgj+DVek+QezEdOJKcRxlvDOS2BUaeN8kEzVSsNiAGnoysFWYw4K0HA==} + turbo-darwin-arm64@2.3.2: + resolution: {integrity: sha512-XHeuEdk9tHaw2Bsr3rTzFtZyldeSyagDZkOSPIJ1zioavMjWEFPA75vdgy4j8ns96EBpZMaPXVEnODuEHfiZfQ==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.2.3: - resolution: {integrity: sha512-UBhJCYnqtaeOBQLmLo8BAisWbc9v9daL9G8upLR+XGj6vuN/Nz6qUAhverN4Pyej1g4Nt1BhROnj6GLOPYyqxQ==} + turbo-linux-64@2.3.2: + resolution: {integrity: sha512-oKDsO5+flqpPx5tNLFGVUYpJ/sBc3KvaGpyNzXl2u3epzyafgblFKWMG5YsSiU1ruouPpcC6YG5SN5chA7Abfg==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.2.3: - resolution: {integrity: sha512-hJYT9dN06XCQ3jBka/EWvvAETnHRs3xuO/rb5bESmDfG+d9yQjeTMlhRXKrr4eyIMt6cLDt1LBfyi+6CQ+VAwQ==} + turbo-linux-arm64@2.3.2: + resolution: {integrity: sha512-luyvTl3wQ1hF+ljK7ljH4TL7rg4pmx5pQ2mzvfMvPo5eaLuKr/tImmbdH6/vr56iffUIISkIsLVhVxgZeAsUOw==} cpu: [arm64] os: [linux] turbo-stream@2.4.0: resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==} - turbo-windows-64@2.2.3: - resolution: {integrity: sha512-NPrjacrZypMBF31b4HE4ROg4P3nhMBPHKS5WTpMwf7wydZ8uvdEHpESVNMOtqhlp857zbnKYgP+yJF30H3N2dQ==} + turbo-windows-64@2.3.2: + resolution: {integrity: sha512-yw7BnTU5cE7GdUnZEW3jIAI98hh4dcWk+Jwza8X7CXpxpill2zteq7VPf+a/B3o/xm+oVXzLmP83YP91Bm0SaA==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.2.3: - resolution: {integrity: sha512-fnNrYBCqn6zgKPKLHu4sOkihBI/+0oYFr075duRxqUZ+1aLWTAGfHZLgjVeLh3zR37CVzuerGIPWAEkNhkWEIw==} + turbo-windows-arm64@2.3.2: + resolution: {integrity: sha512-Hgp6V7jaIYlDcy5xpKN+XXyYCf5afT690GmXcEsMoUawd5dStvZe0QHWcGxuqho497BAlx0XGAWftm0KelNePA==} cpu: [arm64] os: [win32] - turbo@2.2.3: - resolution: {integrity: sha512-5lDvSqIxCYJ/BAd6rQGK/AzFRhBkbu4JHVMLmGh/hCb7U3CqSnr5Tjwfy9vc+/5wG2DJ6wttgAaA7MoCgvBKZQ==} + turbo@2.3.2: + resolution: {integrity: sha512-vCJPoy8/3KkqY3W0cX2nrwhmtBQSZhEyrVgeJ4NlEXwGxu5vNRQDyV6se5VVAQMwfBsBJswlo87B7ai7Dr1MpQ==} hasBin: true type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} @@ -8362,11 +7987,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.6.3: resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} @@ -8598,8 +8218,8 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite-plugin-dts@4.2.4: - resolution: {integrity: sha512-REcYoxO90Pi8c0P1J7XAa/nVwNVGkX2eYkBEIfFSfcKE4g1W8sB0R23a7SU3aLEMfdOdb0SVHq3JlJ+Qb6gjgA==} + vite-plugin-dts@4.3.0: + resolution: {integrity: sha512-LkBJh9IbLwL6/rxh0C1/bOurDrIEmRE7joC+jFdOEEciAFPbpEKOLSAr5nNh5R7CJ45cMbksTrFfy52szzC5eA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -8608,18 +8228,8 @@ packages: vite: optional: true - vite-plugin-dts@4.3.0: - resolution: {integrity: sha512-LkBJh9IbLwL6/rxh0C1/bOurDrIEmRE7joC+jFdOEEciAFPbpEKOLSAr5nNh5R7CJ45cMbksTrFfy52szzC5eA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - typescript: '*' - vite: '*' - peerDependenciesMeta: - vite: - optional: true - - vite-tsconfig-paths@4.3.2: - resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} + vite-tsconfig-paths@4.3.2: + resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} peerDependencies: vite: '*' peerDependenciesMeta: @@ -8657,37 +8267,6 @@ packages: terser: optional: true - vite@5.4.9: - resolution: {integrity: sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - vitest@2.1.3: resolution: {integrity: sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -8798,14 +8377,6 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-builtin-type@1.1.4: - resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - which-typed-array@1.1.15: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} @@ -8898,9 +8469,6 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -9812,11 +9380,11 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@changesets/apply-release-plan@7.0.5': + '@changesets/apply-release-plan@7.0.6': dependencies: - '@changesets/config': 3.0.3 + '@changesets/config': 3.0.4 '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.1 + '@changesets/git': 3.0.2 '@changesets/should-skip-package': 0.1.1 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -9828,7 +9396,7 @@ snapshots: resolve-from: 5.0.0 semver: 7.6.3 - '@changesets/assemble-release-plan@6.0.4': + '@changesets/assemble-release-plan@6.0.5': dependencies: '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.2 @@ -9841,19 +9409,19 @@ snapshots: dependencies: '@changesets/types': 6.0.0 - '@changesets/cli@2.27.9': + '@changesets/cli@2.27.10': dependencies: - '@changesets/apply-release-plan': 7.0.5 - '@changesets/assemble-release-plan': 6.0.4 + '@changesets/apply-release-plan': 7.0.6 + '@changesets/assemble-release-plan': 6.0.5 '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.3 + '@changesets/config': 3.0.4 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.2 - '@changesets/get-release-plan': 4.0.4 - '@changesets/git': 3.0.1 + '@changesets/get-release-plan': 4.0.5 + '@changesets/git': 3.0.2 '@changesets/logger': 0.1.1 '@changesets/pre': 2.0.1 - '@changesets/read': 0.6.1 + '@changesets/read': 0.6.2 '@changesets/should-skip-package': 0.1.1 '@changesets/types': 6.0.0 '@changesets/write': 0.3.2 @@ -9865,14 +9433,14 @@ snapshots: fs-extra: 7.0.1 mri: 1.2.0 p-limit: 2.3.0 - package-manager-detector: 0.2.2 + package-manager-detector: 0.2.5 picocolors: 1.1.1 resolve-from: 5.0.0 semver: 7.6.3 - spawndamnit: 2.0.0 + spawndamnit: 3.0.1 term-size: 2.2.1 - '@changesets/config@3.0.3': + '@changesets/config@3.0.4': dependencies: '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.2 @@ -9893,24 +9461,24 @@ snapshots: picocolors: 1.1.1 semver: 7.6.3 - '@changesets/get-release-plan@4.0.4': + '@changesets/get-release-plan@4.0.5': dependencies: - '@changesets/assemble-release-plan': 6.0.4 - '@changesets/config': 3.0.3 + '@changesets/assemble-release-plan': 6.0.5 + '@changesets/config': 3.0.4 '@changesets/pre': 2.0.1 - '@changesets/read': 0.6.1 + '@changesets/read': 0.6.2 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 '@changesets/get-version-range-type@0.4.0': {} - '@changesets/git@3.0.1': + '@changesets/git@3.0.2': dependencies: '@changesets/errors': 0.2.0 '@manypkg/get-packages': 1.1.3 is-subdir: 1.2.0 micromatch: 4.0.8 - spawndamnit: 2.0.0 + spawndamnit: 3.0.1 '@changesets/logger@0.1.1': dependencies: @@ -9928,9 +9496,9 @@ snapshots: '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - '@changesets/read@0.6.1': + '@changesets/read@0.6.2': dependencies: - '@changesets/git': 3.0.1 + '@changesets/git': 3.0.2 '@changesets/logger': 0.1.1 '@changesets/parse': 0.4.0 '@changesets/types': 6.0.0 @@ -9975,7 +9543,7 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@docusaurus/core@3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/core@3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: '@babel/core': 7.25.8 '@babel/generator': 7.25.7 @@ -9989,10 +9557,10 @@ snapshots: '@babel/traverse': 7.25.7 '@docusaurus/cssnano-preset': 3.5.2 '@docusaurus/logger': 3.5.2 - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) '@mdx-js/react': 3.1.0(@types/react@18.3.11)(react@18.3.1) autoprefixer: 10.4.20(postcss@8.4.47) babel-loader: 9.2.1(@babel/core@7.25.8)(webpack@5.95.0) @@ -10024,10 +9592,10 @@ snapshots: mini-css-extract-plugin: 2.9.1(webpack@5.95.0) p-map: 4.0.0 postcss: 8.4.47 - postcss-loader: 7.3.4(postcss@8.4.47)(typescript@5.5.4)(webpack@5.95.0) + postcss-loader: 7.3.4(postcss@8.4.47)(typescript@5.6.3)(webpack@5.95.0) prompts: 2.4.2 react: 18.3.1 - react-dev-utils: 12.0.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)(webpack@5.95.0) + react-dev-utils: 12.0.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)(webpack@5.95.0) react-dom: 18.3.1(react@18.3.1) react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)' @@ -10080,11 +9648,11 @@ snapshots: chalk: 4.1.2 tslib: 2.8.0 - '@docusaurus/mdx-loader@3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/mdx-loader@3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: '@docusaurus/logger': 3.5.2 - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) '@mdx-js/mdx': 3.1.0(acorn@8.13.0) '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 @@ -10137,17 +9705,17 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-content-blog@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-content-blog@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/logger': 3.5.2 - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) cheerio: 1.0.0-rc.12 feed: 4.2.2 fs-extra: 11.2.0 @@ -10180,17 +9748,17 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/logger': 3.5.2 - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/module-type-aliases': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 fs-extra: 11.2.0 @@ -10221,13 +9789,13 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-pages@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-content-pages@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -10253,11 +9821,11 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-debug@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-debug@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -10283,11 +9851,11 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-analytics@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-google-analytics@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tslib: 2.8.0 @@ -10311,11 +9879,11 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-gtag@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-google-gtag@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) '@types/gtag.js': 0.0.12 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -10340,11 +9908,11 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-google-tag-manager@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tslib: 2.8.0 @@ -10368,14 +9936,14 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-sitemap@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-sitemap@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/logger': 3.5.2 '@docusaurus/types': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -10401,20 +9969,20 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/preset-classic@3.5.2(@algolia/client-search@4.24.0)(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.5.4)': - dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-debug': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-google-analytics': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-google-gtag': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-google-tag-manager': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-sitemap': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/theme-classic': 3.5.2(@types/react@18.3.11)(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/theme-search-algolia': 3.5.2(@algolia/client-search@4.24.0)(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.5.4) + '@docusaurus/preset-classic@3.5.2(@algolia/client-search@4.24.0)(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3)': + dependencies: + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-debug': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-google-analytics': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-google-gtag': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-google-tag-manager': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-sitemap': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-classic': 3.5.2(@types/react@18.3.11)(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-search-algolia': 3.5.2(@algolia/client-search@4.24.0)(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3) '@docusaurus/types': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -10446,20 +10014,20 @@ snapshots: '@types/react': 18.3.11 react: 18.3.1 - '@docusaurus/theme-classic@3.5.2(@types/react@18.3.11)(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/theme-classic@3.5.2(@types/react@18.3.11)(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/module-type-aliases': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/theme-translations': 3.5.2 '@docusaurus/types': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) '@mdx-js/react': 3.1.0(@types/react@18.3.11)(react@18.3.1) clsx: 2.1.1 copy-text-to-clipboard: 3.2.0 @@ -10495,12 +10063,12 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/theme-common@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/theme-common@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/module-type-aliases': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@types/history': 4.7.11 '@types/react': 18.3.11 @@ -10522,16 +10090,16 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-search-algolia@3.5.2(@algolia/client-search@4.24.0)(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.5.4)': + '@docusaurus/theme-search-algolia@3.5.2(@algolia/client-search@4.24.0)(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3)': dependencies: '@docsearch/react': 3.6.2(@algolia/client-search@4.24.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2) - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/logger': 3.5.2 - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1))(acorn@8.13.0)(eslint@9.13.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/theme-translations': 3.5.2 - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) algoliasearch: 4.24.0 algoliasearch-helper: 3.22.5(algoliasearch@4.24.0) clsx: 2.1.1 @@ -10600,10 +10168,10 @@ snapshots: optionalDependencies: '@docusaurus/types': 3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation@3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4)': + '@docusaurus/utils-validation@3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)': dependencies: '@docusaurus/logger': 3.5.2 - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) fs-extra: 11.2.0 joi: 17.13.3 @@ -10619,11 +10187,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4)': + '@docusaurus/utils@3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)': dependencies: '@docusaurus/logger': 3.5.2 '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(acorn@8.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@svgr/webpack': 8.1.0(typescript@5.5.4) + '@svgr/webpack': 8.1.0(typescript@5.6.3) escape-string-regexp: 4.0.0 file-loader: 6.2.0(webpack@5.95.0) fs-extra: 11.2.0 @@ -10651,18 +10219,6 @@ snapshots: - uglify-js - webpack-cli - '@dotenvx/dotenvx@1.20.0': - dependencies: - commander: 11.1.0 - dotenv: 16.4.5 - eciesjs: 0.4.8 - execa: 5.1.1 - fdir: 6.4.2(picomatch@4.0.2) - ignore: 5.3.2 - object-treeify: 1.1.33 - picomatch: 4.0.2 - which: 4.0.0 - '@dotenvx/dotenvx@1.20.1': dependencies: commander: 11.1.0 @@ -10965,11 +10521,6 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@1.21.6))': dependencies: eslint: 9.13.0(jiti@1.21.6) @@ -10987,20 +10538,6 @@ snapshots: '@eslint/core@0.7.0': {} - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.3.7 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 @@ -11015,8 +10552,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.1': {} - '@eslint/js@9.13.0': {} '@eslint/object-schema@2.1.4': {} @@ -11055,18 +10590,8 @@ snapshots: '@humanfs/core': 0.19.0 '@humanwhocodes/retry': 0.3.1 - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.7 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} - '@humanwhocodes/retry@0.3.1': {} '@isaacs/cliui@8.0.2': @@ -11241,14 +10766,6 @@ snapshots: '@types/react': 18.3.11 react: 18.3.1 - '@microsoft/api-extractor-model@7.29.6(@types/node@22.7.9)': - dependencies: - '@microsoft/tsdoc': 0.15.0 - '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.7.0(@types/node@22.7.9) - transitivePeerDependencies: - - '@types/node' - '@microsoft/api-extractor-model@7.29.8(@types/node@22.7.9)': dependencies: '@microsoft/tsdoc': 0.15.0 @@ -11275,24 +10792,6 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.47.7(@types/node@22.7.9)': - dependencies: - '@microsoft/api-extractor-model': 7.29.6(@types/node@22.7.9) - '@microsoft/tsdoc': 0.15.0 - '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.7.0(@types/node@22.7.9) - '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.0(@types/node@22.7.9) - '@rushstack/ts-command-line': 4.22.6(@types/node@22.7.9) - lodash: 4.17.21 - minimatch: 3.0.8 - resolve: 1.22.8 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.4.2 - transitivePeerDependencies: - - '@types/node' - '@microsoft/tsdoc-config@0.17.0': dependencies: '@microsoft/tsdoc': 0.15.0 @@ -11322,8 +10821,6 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@nolyfill/is-core-module@1.0.39': {} - '@npmcli/fs@3.1.1': dependencies: semver: 7.6.3 @@ -11817,6 +11314,22 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 + '@radix-ui/react-tabs@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-context': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.1 + '@radix-ui/react-toast@1.2.2(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.0 @@ -12107,14 +11620,6 @@ snapshots: dependencies: web-streams-polyfill: 3.3.3 - '@rollup/pluginutils@5.1.2(rollup@4.24.0)': - dependencies: - '@types/estree': 1.0.6 - estree-walker: 2.0.2 - picomatch: 2.3.1 - optionalDependencies: - rollup: 4.24.0 - '@rollup/pluginutils@5.1.3(rollup@4.24.0)': dependencies: '@types/estree': 1.0.6 @@ -12171,21 +11676,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true - '@rtsao/scc@1.1.0': {} - - '@rushstack/node-core-library@5.7.0(@types/node@22.7.9)': - dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.8 - semver: 7.5.4 - optionalDependencies: - '@types/node': 22.7.9 - '@rushstack/node-core-library@5.9.0(@types/node@22.7.9)': dependencies: ajv: 8.13.0 @@ -12204,13 +11694,6 @@ snapshots: resolve: 1.22.8 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.14.0(@types/node@22.7.9)': - dependencies: - '@rushstack/node-core-library': 5.7.0(@types/node@22.7.9) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 22.7.9 - '@rushstack/terminal@0.14.2(@types/node@22.7.9)': dependencies: '@rushstack/node-core-library': 5.9.0(@types/node@22.7.9) @@ -12218,15 +11701,6 @@ snapshots: optionalDependencies: '@types/node': 22.7.9 - '@rushstack/ts-command-line@4.22.6(@types/node@22.7.9)': - dependencies: - '@rushstack/terminal': 0.14.0(@types/node@22.7.9) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - '@rushstack/ts-command-line@4.23.0(@types/node@22.7.9)': dependencies: '@rushstack/terminal': 0.14.2(@types/node@22.7.9) @@ -12327,12 +11801,12 @@ snapshots: '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.25.8) '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.25.8) - '@svgr/core@8.1.0(typescript@5.5.4)': + '@svgr/core@8.1.0(typescript@5.6.3)': dependencies: '@babel/core': 7.25.8 '@svgr/babel-preset': 8.1.0(@babel/core@7.25.8) camelcase: 6.3.0 - cosmiconfig: 8.3.6(typescript@5.5.4) + cosmiconfig: 8.3.6(typescript@5.6.3) snake-case: 3.0.4 transitivePeerDependencies: - supports-color @@ -12343,35 +11817,35 @@ snapshots: '@babel/types': 7.25.9 entities: 4.5.0 - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.5.4))': + '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.6.3))': dependencies: '@babel/core': 7.25.8 '@svgr/babel-preset': 8.1.0(@babel/core@7.25.8) - '@svgr/core': 8.1.0(typescript@5.5.4) + '@svgr/core': 8.1.0(typescript@5.6.3) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.5.4))(typescript@5.5.4)': + '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.6.3))(typescript@5.6.3)': dependencies: - '@svgr/core': 8.1.0(typescript@5.5.4) - cosmiconfig: 8.3.6(typescript@5.5.4) + '@svgr/core': 8.1.0(typescript@5.6.3) + cosmiconfig: 8.3.6(typescript@5.6.3) deepmerge: 4.3.1 svgo: 3.3.2 transitivePeerDependencies: - typescript - '@svgr/webpack@8.1.0(typescript@5.5.4)': + '@svgr/webpack@8.1.0(typescript@5.6.3)': dependencies: '@babel/core': 7.25.8 '@babel/plugin-transform-react-constant-elements': 7.25.7(@babel/core@7.25.8) '@babel/preset-env': 7.25.8(@babel/core@7.25.8) '@babel/preset-react': 7.25.7(@babel/core@7.25.8) '@babel/preset-typescript': 7.25.7(@babel/core@7.25.8) - '@svgr/core': 8.1.0(typescript@5.5.4) - '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.5.4)) - '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.5.4))(typescript@5.5.4) + '@svgr/core': 8.1.0(typescript@5.6.3) + '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3)) + '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3))(typescript@5.6.3) transitivePeerDependencies: - supports-color - typescript @@ -12479,8 +11953,6 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/json5@0.0.29': {} - '@types/mapbox-gl@3.4.1': dependencies: '@types/geojson': 7946.0.14 @@ -12567,8 +12039,6 @@ snapshots: dependencies: '@types/node': 22.7.9 - '@types/semver@7.5.8': {} - '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 @@ -12606,26 +12076,6 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)': - dependencies: - '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.6.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.7 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.11.1 @@ -12644,19 +12094,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.3)': - dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.7 - eslint: 8.57.1 - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.11.0 @@ -12670,28 +12107,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - '@typescript-eslint/scope-manager@8.11.0': dependencies: '@typescript-eslint/types': 8.11.0 '@typescript-eslint/visitor-keys': 8.11.0 - '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.6.3)': - dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.6.3) - debug: 4.3.7 - eslint: 8.57.1 - ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/type-utils@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) @@ -12704,25 +12124,8 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@6.21.0': {} - '@typescript-eslint/types@8.11.0': {} - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.6.3)': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.7 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.11.0(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 8.11.0 @@ -12738,20 +12141,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.6.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3) - eslint: 8.57.1 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - typescript - '@typescript-eslint/utils@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) @@ -12763,11 +12152,6 @@ snapshots: - supports-color - typescript - '@typescript-eslint/visitor-keys@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.11.0': dependencies: '@typescript-eslint/types': 8.11.0 @@ -13133,8 +12517,6 @@ snapshots: dependencies: tslib: 2.8.0 - aria-query@5.3.2: {} - arr-union@3.1.0: {} array-buffer-byte-length@1.0.1: @@ -13144,57 +12526,8 @@ snapshots: array-flatten@1.1.1: {} - array-includes@3.1.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - is-string: 1.0.7 - array-union@2.1.0: {} - array.prototype.findlast@1.2.5: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 - - array.prototype.findlastindex@1.2.5: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 - - array.prototype.flat@1.3.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 - - array.prototype.flatmap@1.3.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 - - array.prototype.tosorted@1.1.4: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-shim-unscopables: 1.0.2 - arraybuffer.prototype.slice@1.0.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -13210,8 +12543,6 @@ snapshots: assign-symbols@1.0.0: {} - ast-types-flow@0.0.8: {} - astring@1.9.0: {} at-least-node@1.0.0: {} @@ -13230,10 +12561,6 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - axe-core@4.10.2: {} - - axobject-query@4.1.0: {} - babel-loader@9.2.1(@babel/core@7.25.8)(webpack@5.95.0): dependencies: '@babel/core': 7.25.8 @@ -13695,22 +13022,22 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - cosmiconfig@8.3.6(typescript@5.5.4): + cosmiconfig@8.3.6(typescript@5.6.3): dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.3 - cross-spawn@5.1.0: + cross-spawn@7.0.3: dependencies: - lru-cache: 4.1.5 - shebang-command: 1.2.0 - which: 1.3.1 + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 - cross-spawn@7.0.3: + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -13842,8 +13169,6 @@ snapshots: csstype@3.1.3: {} - damerau-levenshtein@1.0.8: {} - data-uri-to-buffer@3.0.1: {} data-view-buffer@1.0.1: @@ -13864,6 +13189,8 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 + date-fns@4.1.0: {} + de-indent@1.0.2: {} debounce@1.2.1: {} @@ -13872,10 +13199,6 @@ snapshots: dependencies: ms: 2.0.0 - debug@3.2.7: - dependencies: - ms: 2.1.3 - debug@4.3.7: dependencies: ms: 2.1.3 @@ -13981,14 +13304,6 @@ snapshots: dependencies: '@leichtgewicht/ip-codec': 2.0.5 - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-converter@0.2.0: dependencies: utila: 0.4.0 @@ -14084,12 +13399,6 @@ snapshots: '@noble/curves': 1.6.0 '@noble/hashes': 1.5.0 - eciesjs@0.4.8: - dependencies: - '@noble/ciphers': 1.0.0 - '@noble/curves': 1.6.0 - '@noble/hashes': 1.5.0 - ee-first@1.1.1: {} electron-to-chromium@1.5.42: {} @@ -14187,24 +13496,6 @@ snapshots: es-errors@1.3.0: {} - es-iterator-helpers@1.2.0: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - globalthis: 1.0.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - iterator.prototype: 1.1.3 - safe-array-concat: 1.1.2 - es-module-lexer@1.5.4: {} es-object-atoms@1.0.0: @@ -14217,10 +13508,6 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.0.2: - dependencies: - hasown: 2.0.2 - es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 @@ -14369,128 +13656,11 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-import-resolver-node@0.3.9: - dependencies: - debug: 3.2.7 - is-core-module: 2.15.1 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1): - dependencies: - '@nolyfill/is-core-module': 1.0.39 - debug: 4.3.7 - enhanced-resolve: 5.17.1 - eslint: 8.57.1 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) - fast-glob: 3.3.2 - get-tsconfig: 4.8.1 - is-bun-module: 1.2.1 - is-glob: 4.0.3 - optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - - eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.6.3) - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1) - transitivePeerDependencies: - - supports-color - - eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) - hasown: 2.0.2 - is-core-module: 2.15.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.0 - semver: 6.3.1 - string.prototype.trimend: 1.0.8 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.6.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1): - dependencies: - aria-query: 5.3.2 - array-includes: 3.1.8 - array.prototype.flatmap: 1.3.2 - ast-types-flow: 0.0.8 - axe-core: 4.10.2 - axobject-query: 4.1.0 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 8.57.1 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - safe-regex-test: 1.0.3 - string.prototype.includes: 2.0.1 - - eslint-plugin-react-hooks@4.6.2(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-plugin-react@7.37.2(eslint@8.57.1): - dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.0 - eslint: 8.57.1 - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.8 - object.fromentries: 2.0.8 - object.values: 1.2.0 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.11 - string.prototype.repeat: 1.0.0 - eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - eslint-scope@8.1.0: dependencies: esrecurse: 4.3.0 @@ -14500,49 +13670,6 @@ snapshots: eslint-visitor-keys@4.1.0: {} - eslint@8.57.1: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@eslint-community/regexpp': 4.11.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.7 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - eslint@9.13.0(jiti@1.21.6): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) @@ -14559,7 +13686,7 @@ snapshots: '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.7 escape-string-regexp: 4.0.0 eslint-scope: 8.1.0 @@ -14591,12 +13718,6 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.13.0) eslint-visitor-keys: 4.1.0 - espree@9.6.1: - dependencies: - acorn: 8.13.0 - acorn-jsx: 5.3.2(acorn@8.13.0) - eslint-visitor-keys: 3.4.3 - esprima@4.0.1: {} esquery@1.6.0: @@ -14698,7 +13819,7 @@ snapshots: execa@5.1.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -14799,10 +13920,6 @@ snapshots: dependencies: xml-js: 1.6.11 - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -14855,12 +13972,6 @@ snapshots: locate-path: 7.2.0 path-exists: 5.0.0 - flat-cache@3.2.0: - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - rimraf: 3.0.2 - flat-cache@4.0.1: dependencies: flatted: 3.3.1 @@ -14878,10 +13989,10 @@ snapshots: foreground-child@3.3.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@6.5.3(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)(webpack@5.95.0): + fork-ts-checker-webpack-plugin@6.5.3(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)(webpack@5.95.0): dependencies: '@babel/code-frame': 7.25.7 '@types/json-schema': 7.0.15 @@ -14896,7 +14007,7 @@ snapshots: schema-utils: 2.7.0 semver: 7.6.3 tapable: 1.1.3 - typescript: 5.5.4 + typescript: 5.6.3 webpack: 5.95.0 optionalDependencies: eslint: 9.13.0(jiti@1.21.6) @@ -15056,10 +14167,6 @@ snapshots: globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - globals@14.0.0: {} globals@15.11.0: {} @@ -15511,10 +14618,6 @@ snapshots: is-arrayish@0.2.1: {} - is-async-function@2.0.0: - dependencies: - has-tostringtag: 1.0.2 - is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 @@ -15530,10 +14633,6 @@ snapshots: is-buffer@2.0.5: {} - is-bun-module@1.2.1: - dependencies: - semver: 7.6.3 - is-callable@1.2.7: {} is-ci@3.0.1: @@ -15566,10 +14665,6 @@ snapshots: is-extglob@2.1.1: {} - is-finalizationregistry@1.0.2: - dependencies: - call-bind: 1.0.7 - is-fullwidth-code-point@3.0.0: {} is-generator-function@1.0.10: @@ -15591,8 +14686,6 @@ snapshots: is-interactive@1.0.0: {} - is-map@2.0.3: {} - is-negative-zero@2.0.3: {} is-npm@6.0.0: {} @@ -15632,8 +14725,6 @@ snapshots: is-root@2.1.0: {} - is-set@2.0.3: {} - is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 @@ -15660,17 +14751,10 @@ snapshots: is-unicode-supported@0.1.0: {} - is-weakmap@2.0.2: {} - is-weakref@1.0.2: dependencies: call-bind: 1.0.7 - is-weakset@2.0.3: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-windows@1.0.2: {} is-wsl@2.2.0: @@ -15693,14 +14777,6 @@ snapshots: isobject@3.0.1: {} - iterator.prototype@1.1.3: - dependencies: - define-properties: 1.2.1 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.6 - set-function-name: 2.0.2 - jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -15772,10 +14848,6 @@ snapshots: json-stringify-pretty-compact@3.0.0: {} - json5@1.0.2: - dependencies: - minimist: 1.2.8 - json5@2.2.3: {} jsonfile@4.0.0: @@ -15788,13 +14860,6 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsx-ast-utils@3.3.5: - dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.2 - object.assign: 4.1.5 - object.values: 1.2.0 - kdbush@4.0.2: {} keyv@4.5.4: @@ -15809,12 +14874,6 @@ snapshots: kolorist@1.8.0: {} - language-subtag-registry@0.3.23: {} - - language-tags@1.0.9: - dependencies: - language-subtag-registry: 0.3.23 - latest-version@7.0.0: dependencies: package-json: 8.1.1 @@ -15908,11 +14967,6 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@4.1.5: - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 - lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -16835,10 +15889,6 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@9.0.3: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -17004,31 +16054,6 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 - object.entries@1.1.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - - object.groupby@1.0.3: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - - object.values@1.2.0: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - obuf@1.1.2: {} on-finished@2.3.0: @@ -17144,7 +16169,7 @@ snapshots: registry-url: 6.0.1 semver: 7.6.3 - package-manager-detector@0.2.2: {} + package-manager-detector@0.2.5: {} pako@0.2.9: {} @@ -17341,9 +16366,9 @@ snapshots: optionalDependencies: postcss: 8.4.47 - postcss-loader@7.3.4(postcss@8.4.47)(typescript@5.5.4)(webpack@5.95.0): + postcss-loader@7.3.4(postcss@8.4.47)(typescript@5.6.3)(webpack@5.95.0): dependencies: - cosmiconfig: 8.3.6(typescript@5.5.4) + cosmiconfig: 8.3.6(typescript@5.6.3) jiti: 1.21.6 postcss: 8.4.47 semver: 7.6.3 @@ -17593,8 +16618,6 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - pseudomap@1.0.2: {} - pump@2.0.1: dependencies: end-of-stream: 1.4.4 @@ -17655,18 +16678,23 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-dev-utils@12.0.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)(webpack@5.95.0): + react-day-picker@8.10.1(date-fns@4.1.0)(react@18.3.1): + dependencies: + date-fns: 4.1.0 + react: 18.3.1 + + react-dev-utils@12.0.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)(webpack@5.95.0): dependencies: '@babel/code-frame': 7.25.7 address: 1.2.2 browserslist: 4.24.2 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 detect-port-alt: 1.1.6 escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.13.0(jiti@1.21.6))(typescript@5.5.4)(webpack@5.95.0) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)(webpack@5.95.0) global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -17683,7 +16711,7 @@ snapshots: text-table: 0.2.0 webpack: 5.95.0 optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.3 transitivePeerDependencies: - eslint - supports-color @@ -17895,16 +16923,6 @@ snapshots: dependencies: minimatch: 3.1.2 - reflect.getprototypeof@1.0.6: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - globalthis: 1.0.4 - which-builtin-type: 1.1.4 - regenerate-unicode-properties@10.2.0: dependencies: regenerate: 1.4.2 @@ -18114,12 +17132,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.5: - dependencies: - is-core-module: 2.15.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - responselike@3.0.0: dependencies: lowercase-keys: 3.0.0 @@ -18342,16 +17354,10 @@ snapshots: shallowequal@1.1.0: {} - shebang-command@1.2.0: - dependencies: - shebang-regex: 1.0.0 - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - shebang-regex@1.0.0: {} - shebang-regex@3.0.0: {} shell-quote@1.8.1: {} @@ -18446,10 +17452,10 @@ snapshots: space-separated-tokens@2.0.2: {} - spawndamnit@2.0.0: + spawndamnit@3.0.1: dependencies: - cross-spawn: 5.1.0 - signal-exit: 3.0.7 + cross-spawn: 7.0.6 + signal-exit: 4.1.0 spdx-correct@3.2.0: dependencies: @@ -18526,32 +17532,6 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.includes@2.0.1: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - - string.prototype.matchall@4.0.11: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - regexp.prototype.flags: 1.5.3 - set-function-name: 2.0.2 - side-channel: 1.0.6 - - string.prototype.repeat@1.0.0: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.3 - string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 @@ -18808,13 +17788,6 @@ snapshots: optionalDependencies: typescript: 5.6.3 - tsconfig-paths@3.15.0: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -18823,41 +17796,39 @@ snapshots: tslib@2.8.0: {} - turbo-darwin-64@2.2.3: + turbo-darwin-64@2.3.2: optional: true - turbo-darwin-arm64@2.2.3: + turbo-darwin-arm64@2.3.2: optional: true - turbo-linux-64@2.2.3: + turbo-linux-64@2.3.2: optional: true - turbo-linux-arm64@2.2.3: + turbo-linux-arm64@2.3.2: optional: true turbo-stream@2.4.0: {} - turbo-windows-64@2.2.3: + turbo-windows-64@2.3.2: optional: true - turbo-windows-arm64@2.2.3: + turbo-windows-arm64@2.3.2: optional: true - turbo@2.2.3: + turbo@2.3.2: optionalDependencies: - turbo-darwin-64: 2.2.3 - turbo-darwin-arm64: 2.2.3 - turbo-linux-64: 2.2.3 - turbo-linux-arm64: 2.2.3 - turbo-windows-64: 2.2.3 - turbo-windows-arm64: 2.2.3 + turbo-darwin-64: 2.3.2 + turbo-darwin-arm64: 2.3.2 + turbo-linux-64: 2.3.2 + turbo-linux-arm64: 2.3.2 + turbo-windows-64: 2.3.2 + turbo-windows-arm64: 2.3.2 type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - type-fest@0.20.2: {} - type-fest@1.4.0: {} type-fest@2.19.0: {} @@ -18940,8 +17911,6 @@ snapshots: typescript@5.4.2: {} - typescript@5.5.4: {} - typescript@5.6.3: {} typewise-core@1.2.0: {} @@ -19233,25 +18202,6 @@ snapshots: - supports-color - terser - vite-plugin-dts@4.2.4(@types/node@22.7.9)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@22.7.9)(terser@5.36.0)): - dependencies: - '@microsoft/api-extractor': 7.47.7(@types/node@22.7.9) - '@rollup/pluginutils': 5.1.2(rollup@4.24.0) - '@volar/typescript': 2.4.6 - '@vue/language-core': 2.1.6(typescript@5.6.3) - compare-versions: 6.1.1 - debug: 4.3.7 - kolorist: 1.8.0 - local-pkg: 0.5.0 - magic-string: 0.30.12 - typescript: 5.6.3 - optionalDependencies: - vite: 5.4.9(@types/node@22.7.9)(terser@5.36.0) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - vite-plugin-dts@4.3.0(@types/node@22.7.9)(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.10(@types/node@22.7.9)(terser@5.36.0)): dependencies: '@microsoft/api-extractor': 7.47.11(@types/node@22.7.9) @@ -19292,16 +18242,6 @@ snapshots: fsevents: 2.3.3 terser: 5.36.0 - vite@5.4.9(@types/node@22.7.9)(terser@5.36.0): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.24.0 - optionalDependencies: - '@types/node': 22.7.9 - fsevents: 2.3.3 - terser: 5.36.0 - vitest@2.1.3(@types/node@22.7.9)(terser@5.36.0): dependencies: '@vitest/expect': 2.1.3 @@ -19496,28 +18436,6 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-builtin-type@1.1.4: - dependencies: - function.prototype.name: 1.1.6 - has-tostringtag: 1.0.2 - is-async-function: 2.0.0 - is-date-object: 1.0.5 - is-finalizationregistry: 1.0.2 - is-generator-function: 1.0.10 - is-regex: 1.1.4 - is-weakref: 1.0.2 - isarray: 2.0.5 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.2 - which-typed-array: 1.1.15 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.3 - which-typed-array@1.1.15: dependencies: available-typed-arrays: 1.0.7 @@ -19592,8 +18510,6 @@ snapshots: xtend@4.0.2: {} - yallist@2.1.2: {} - yallist@3.1.1: {} yallist@4.0.0: {}