From ac5d94f030f8a54df0604aa688ac3bae6c419f4d Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Tue, 30 Sep 2025 11:52:04 +0200
Subject: [PATCH 001/243] feat: add p_type_rvo
---
.changeset/sixty-snakes-repeat.md | 5 ++
fdm-core/src/db/schema.ts | 79 +++++++++++++++++++++++++++++++
fdm-core/src/fertilizer.d.ts | 11 ++++-
fdm-core/src/fertilizer.test.ts | 9 +++-
fdm-core/src/fertilizer.ts | 13 +++++
5 files changed, 115 insertions(+), 2 deletions(-)
create mode 100644 .changeset/sixty-snakes-repeat.md
diff --git a/.changeset/sixty-snakes-repeat.md b/.changeset/sixty-snakes-repeat.md
new file mode 100644
index 000000000..99397aab8
--- /dev/null
+++ b/.changeset/sixty-snakes-repeat.md
@@ -0,0 +1,5 @@
+---
+"@svenvw/fdm-core": minor
+---
+
+Add `p_type_rvo` as new parameter to fertilizersCatalogue. It describes the 'Mestcode' according to RVO (Dutch government)
diff --git a/fdm-core/src/db/schema.ts b/fdm-core/src/db/schema.ts
index b505daccf..e9c771b72 100644
--- a/fdm-core/src/db/schema.ts
+++ b/fdm-core/src/db/schema.ts
@@ -201,6 +201,84 @@ export type fertilizerApplicationTypeSelect =
export type fertilizerApplicationTypeInsert =
typeof fertilizerApplication.$inferInsert
+// Define farm_managing table
+export const typeRvoOptions = [
+ { value: "10", label: "Rundvee - Vaste mest" },
+ { value: "11", label: "Rundvee - Filtraat na mestscheiding" },
+ { value: "12", label: "Rundvee - Gier" },
+ { value: "13", label: "Rundvee - Koek na mestscheiding" },
+ { value: "14", label: "Rundvee - Drijfmest behalve van vleeskalveren" },
+ { value: "17", label: "Rundvee - Bewerkte kalvergier" },
+ { value: "18", label: "Rundvee - Vleeskalveren, witvlees" },
+ { value: "19", label: "Rundvee - Vleeskalveren, rosevlees" },
+ { value: "23", label: "Kalkoenen - Mest, alle systemen" },
+ { value: "30", label: "Kippen - Drijfmest" },
+ { value: "31", label: "Kippen - Deeppitstal, kanalenstal" },
+ { value: "32", label: "Kippen - Mestband" },
+ { value: "33", label: "Kippen - Mestband + nadroog" },
+ {
+ value: "35",
+ label: "Kippen - Geheel of gedeeltelijk strooiselstal (incl. volièrestal/scharrelstal)",
+ },
+ {
+ value: "39",
+ label: "Vleeskuikens en parelhoenders - Mest, alle systemen",
+ },
+ { value: "40", label: "Varkens - Vaste mest" },
+ { value: "41", label: "Varkens - Filtraat na mestscheiding" },
+ { value: "42", label: "Varkens - Gier" },
+ { value: "43", label: "Varkens - Koek na mestscheiding" },
+ {
+ value: "46",
+ label: "Varkens - Drijfmest fokzeugen, incl. biggen, opfokzeugen/-beren, dekberen",
+ },
+ { value: "50", label: "Varkens - Drijfmest vleesvarkens" },
+ { value: "56", label: "Schapen - Mest, alle systemen" },
+ { value: "60", label: "Geiten - Drijfmest" },
+ { value: "61", label: "Geiten - Vaste mest" },
+ { value: "75", label: "Nertsen - Vaste mest" },
+ { value: "76", label: "Nertsen - Drijfmest" },
+ { value: "80", label: "Eenden - Vaste mest" },
+ { value: "81", label: "Eenden - Drijfmest" },
+ { value: "90", label: "Konijnen - Vaste mest" },
+ {
+ value: "91",
+ label: "Konijnen - Drijfmest met percentage droge stof < 2,5%",
+ },
+ { value: "92", label: "Konijnen - Drijfmest" },
+ { value: "25", label: "Paarden - Vaste mest" },
+ { value: "26", label: "Ezels - Vaste mest" },
+ { value: "27", label: "Pony’s - Vaste mest" },
+ { value: "95", label: "Herten - Vaste mest" },
+ { value: "96", label: "Waterbuffels - Mest, alle systemen" },
+ { value: "97", label: "Knobbelgans - Vaste mest" },
+ { value: "98", label: "Grauwe gans - Vaste mest" },
+ { value: "99", label: "Fazanten en patrijzen - Vaste mest" },
+ { value: "100", label: "Struisvogels, emoes en nandoes - Vaste mest" },
+ { value: "101", label: "Vleesduif - Vaste mest" },
+ { value: "102", label: "Bruine rat - Vaste mest" },
+ { value: "103", label: "Tamme muis - Vaste mest" },
+ { value: "104", label: "Cavia - Vaste mest" },
+ { value: "105", label: "Goudhamster - Vaste mest" },
+ { value: "106", label: "Gerbil - Vaste mest" },
+ { value: "107", label: "Fase 1 substraat" },
+ { value: "108", label: "Fase 2 substraat" },
+ { value: "109", label: "Fase 3 substraat" },
+ { value: "110", label: "Champost" },
+ { value: "111", label: "Compost" },
+ { value: "112", label: "Zeer schone compost" },
+ { value: "113", label: "Zuiveringsslib vloeibaar" },
+ { value: "114", label: "Zuiveringsslib steekvast" },
+ { value: "115", label: "Kunstmest" },
+ { value: "116", label: "Overige mestsoorten" },
+ { value: "117", label: "Gescheiden champost" },
+ { value: "120", label: "Mineralenconcentraat" },
+]
+const typeRvoEnum = fdmSchema.enum(
+ "p_type_rvo",
+ typeRvoOptions.map((x) => x.value) as [string, ...string[]],
+)
+
// Define fertilizers_catalogue table
export const fertilizersCatalogue = fdmSchema.table(
"fertilizers_catalogue",
@@ -257,6 +335,7 @@ export const fertilizersCatalogue = fdmSchema.table(
p_type_manure: boolean(),
p_type_mineral: boolean(),
p_type_compost: boolean(),
+ p_type_rvo: typeRvoEnum(),
hash: text(),
created: timestamp({ withTimezone: true }).notNull().defaultNow(),
updated: timestamp({ withTimezone: true }),
diff --git a/fdm-core/src/fertilizer.d.ts b/fdm-core/src/fertilizer.d.ts
index 8f49ee459..e49103288 100644
--- a/fdm-core/src/fertilizer.d.ts
+++ b/fdm-core/src/fertilizer.d.ts
@@ -1,4 +1,5 @@
import type { ApplicationMethods } from "@svenvw/fdm-data"
+import type * as schema from "./db/schema"
export interface Fertilizer {
p_id: string
@@ -41,6 +42,7 @@ export interface Fertilizer {
p_cl_rt: number | null
p_ef_nh3: number | null
p_type: FertilizerType | null
+ p_type_rvo: schema.fertilizersCatalogueTypeSelect["p_type_rvo"]
}
type FertilizerType = "manure" | "mineral" | "compost"
@@ -105,6 +107,7 @@ export type FertilizerParameters =
| "p_cl_rt"
| "p_ef_nh3"
| "p_type"
+ | "p_type_rvo"
export interface FertilizerParameterDescriptionItem {
parameter: FertilizerParameters
@@ -121,7 +124,13 @@ export interface FertilizerParameterDescriptionItem {
| "physical"
min?: number
max?: number
- options?: { value: FertilizerType | ApplicationMethods; label: string }[]
+ options?: {
+ value:
+ | FertilizerType
+ | ApplicationMethods
+ | schema.fertilizersCatalogueTypeSelect["p_type_rvo"]
+ label: string
+ }[]
}
export type FertilizerParameterDescription =
diff --git a/fdm-core/src/fertilizer.test.ts b/fdm-core/src/fertilizer.test.ts
index f3aa65da0..34936d689 100644
--- a/fdm-core/src/fertilizer.test.ts
+++ b/fdm-core/src/fertilizer.test.ts
@@ -131,6 +131,7 @@ describe("Fertilizer Data Model", () => {
p_cl_rt: 390,
p_ef_nh3: null,
p_type: "manure",
+ p_type_rvo: "10",
},
)
@@ -210,6 +211,7 @@ describe("Fertilizer Data Model", () => {
p_cl_rt: 390,
p_ef_nh3: null,
p_type: "manure",
+ p_type_rvo: "10",
},
)
@@ -287,6 +289,7 @@ describe("Fertilizer Data Model", () => {
p_cl_rt: 390,
p_ef_nh3: null,
p_type: "manure",
+ p_type_rvo: "10",
},
)
@@ -377,6 +380,7 @@ describe("Fertilizer Data Model", () => {
p_cl_rt: 390,
p_ef_nh3: null,
p_type: "manure",
+ p_type_rvo: "10",
},
)
@@ -476,6 +480,7 @@ describe("Fertilizer Data Model", () => {
p_cl_rt: 390,
p_ef_nh3: null,
p_type: "manure",
+ p_type_rvo: "10",
},
)
})
@@ -692,6 +697,7 @@ describe("Fertilizer Data Model", () => {
p_cl_rt: 390,
p_ef_nh3: null,
p_type: "manure",
+ p_type_rvo: "10",
},
)
const updatedProperties = {
@@ -807,6 +813,7 @@ describe("Fertilizer Data Model", () => {
p_cl_rt: 390,
p_ef_nh3: 0.8,
p_type: "mineral",
+ p_type_rvo: "115",
},
)
@@ -992,7 +999,7 @@ describe("Fertilizer Data Model", () => {
b_id,
timeframe,
)
- fertilizerApplications.map((application) => {
+ fertilizerApplications.forEach((application) => {
expect(
application.p_app_date?.getTime(),
).toBeGreaterThanOrEqual(timeframe.start.getTime())
diff --git a/fdm-core/src/fertilizer.ts b/fdm-core/src/fertilizer.ts
index 901dc9410..da5d79622 100644
--- a/fdm-core/src/fertilizer.ts
+++ b/fdm-core/src/fertilizer.ts
@@ -137,6 +137,7 @@ export async function addFertilizerToCatalogue(
p_cl_rt: schema.fertilizersCatalogueTypeInsert["p_cl_rt"]
p_ef_nh3: schema.fertilizersCatalogueTypeInsert["p_ef_nh3"]
p_type: "manure" | "mineral" | "compost" | null
+ p_type_rvo: schema.fertilizersCatalogueTypeInsert["p_type_rvo"]
},
): Promise
- Dit perceel was niet in gebruik voor dit jaar.
- Als dit perceel wel in gebruik was, werk dan de
- startdatum bij in de perceelsinstelling.
-
- Er is een onbekende fout opgetreden. Probeer
- opnieuw of neem contact op met
- Ondersteuning.
-
- Voor niet alle percelen zijn de benodigde
- bodemparameters bekend:
+ Voor dit perceel zijn de benodigde
+ bodemparameters niet bekend:
+ Dit perceel was niet in gebruik voor dit jaar of
+ er is een onbekende fout opgetreden. Als dit
+ perceel wel in gebruik was, werk dan de
+ startdatum bij in de perceelsinstelling.
+
- Er is een onbekende fout opgetreden. Probeer
- opnieuw of neem contact op met
- Ondersteuning.
-
- Voor niet alle percelen zijn de benodigde
- bodemparameters bekend:
-
- Er is helaas wat misgegaan. Probeer opnieuw
- of neem contact op met Ondersteuning en deel
- de volgende foutmelding:
-
{`${resolvedNitrogenBalanceResult.balance} / ${resolvedNitrogenBalanceResult.target}`}
{fieldData?.b_name}
+ {"? / ?"}
+
- {"? / ?"}
-
+ {"Foutdetails:"}
+
+ {
+ fieldResult.errorMessage
+ }
+
- {errorMessage.match(/a_n_rt/) ? (
+ {fieldResult.errorMessage.match(/a_n_rt/) ? (
@@ -237,7 +209,8 @@ function NitrogenBalance({
{JSON.stringify(
{
- message: errorMessage,
+ message:
+ fieldResult.errorMessage,
page: page,
timestamp: new Date(),
},
@@ -254,6 +227,38 @@ function NitrogenBalance({
)
}
+ // If fieldResult.balance is undefined, it means there was an error that was caught
+ // and handled by returning an errorMessage, which is handled above.
+ // If it's still undefined here, it's an unexpected state, so we can return a generic error.
+ if (!fieldResult.balance) {
+ return (
+
-
- {errorMessage.match(/a_n_rt/) ? (
-
-
- {JSON.stringify(
- {
- message: errorMessage,
- page: page,
- timestamp: new Date(),
- },
- null,
- 2,
- )}
-
-
{JSON.stringify(
{
- message:
- fieldResult.errorMessage,
+ // message:
+ // fieldResult.errorMessage,
+ errorId: fieldResult.errorId,
page: page,
timestamp: new Date(),
},
@@ -257,7 +280,7 @@ function NitrogenBalance({
)
}
- const result = fieldResult.balance; // Use the actual balance data
+ const result = fieldResult.balance // Use the actual balance data
return (
<>
diff --git a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
index c069a1218..2b7adcf69 100644
--- a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
+++ b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
@@ -36,6 +36,7 @@ import { getTimeframe } from "~/lib/calendar"
import { clientConfig } from "~/lib/config"
import { fdm } from "~/lib/fdm.server"
import { useFieldFilterStore } from "~/store/field-filter"
+import { handleLoaderError, reportError } from "~/lib/error"
import {
Tooltip,
TooltipContent,
@@ -56,54 +57,84 @@ export const meta: MetaFunction = () => {
}
export async function loader({ request, params }: LoaderFunctionArgs) {
- // Get the farm id
- const b_id_farm = params.b_id_farm
- if (!b_id_farm) {
- throw data("invalid: b_id_farm", {
- status: 400,
- statusText: "invalid: b_id_farm",
- })
- }
+ try {
+ // Get the farm id
+ const b_id_farm = params.b_id_farm
+ if (!b_id_farm) {
+ throw data("invalid: b_id_farm", {
+ status: 400,
+ statusText: "invalid: b_id_farm",
+ })
+ }
- // Get the session
- const session = await getSession(request)
+ // Get the session
+ const session = await getSession(request)
- // Get timeframe from calendar store
- const timeframe = getTimeframe(params)
+ // Get timeframe from calendar store
+ const timeframe = getTimeframe(params)
- // Get details of farm
- const farm = await getFarm(fdm, session.principal_id, b_id_farm)
- if (!farm) {
- throw data("not found: b_id_farm", {
- status: 404,
- statusText: "not found: b_id_farm",
- })
- }
+ // Get details of farm
+ const farm = await getFarm(fdm, session.principal_id, b_id_farm)
+ if (!farm) {
+ throw data("not found: b_id_farm", {
+ status: 404,
+ statusText: "not found: b_id_farm",
+ })
+ }
- // Get details of fields
- const fields = await getFields(fdm, session.principal_id, b_id_farm)
+ // Get details of fields
+ const fields = await getFields(fdm, session.principal_id, b_id_farm)
- const asyncData = (async () => {
- // Collect input data for nutrient balance calculation
- const nitrogenBalanceInput = await collectInputForNitrogenBalance(
- fdm,
- session.principal_id,
- b_id_farm,
- timeframe,
- )
+ const asyncData = (async () => {
+ // Collect input data for nutrient balance calculation
+ const nitrogenBalanceInput = await collectInputForNitrogenBalance(
+ fdm,
+ session.principal_id,
+ b_id_farm,
+ timeframe,
+ )
+
+ let nitrogenBalanceResult =
+ await calculateNitrogenBalance(nitrogenBalanceInput)
- const nitrogenBalanceResult =
- await calculateNitrogenBalance(nitrogenBalanceInput)
+ if (nitrogenBalanceResult.errorMessage) {
+ const errorId = reportError(
+ nitrogenBalanceResult.errorMessage,
+ {
+ page: "farm/{b_id_farm}/{calendar}/balance/nitrogen/_index",
+ },
+ {
+ b_id_farm,
+ timeframe,
+ userId: session.principal_id,
+ },
+ )
+
+ nitrogenBalanceResult = {
+ balance: 0,
+ target: 0,
+ supply: 0,
+ removal: 0,
+ emission: 0,
+ hasErrors: true,
+ fields: [],
+ errorMessage: nitrogenBalanceResult.errorMessage,
+ errorId: errorId,
+ }
+ }
+
+ return {
+ nitrogenBalanceResult: nitrogenBalanceResult,
+ }
+ })()
return {
- nitrogenBalanceResult: nitrogenBalanceResult,
+ farm: farm,
+ fields: fields,
+ asyncData: asyncData,
}
- })()
-
- return {
- farm: farm,
- fields: fields,
- asyncData: asyncData,
+ } catch (error) {
+ throw handleLoaderError(error)
}
}
@@ -140,11 +171,49 @@ function FarmBalanceNitrogenOverview({
const { showProductiveOnly } = useFieldFilterStore()
const resolvedNitrogenBalanceResult = nitrogenBalanceResult
+
+ if (resolvedNitrogenBalanceResult.errorMessage) {
+ return (
+
+
+
+
+ Helaas is het niet mogelijk om je balans uit te
+ rekenen
+
+
+
+
+
+ Er is helaas wat misgegaan. Probeer opnieuw of
+ neem contact op met Ondersteuning en deel de
+ volgende foutmelding:
+
+
+
+ {JSON.stringify(
+ {
+ message:
+ resolvedNitrogenBalanceResult.errorMessage,
+ timestamp: new Date(),
+ },
+ null,
+ 2,
+ )}
+
+
+
+
+
+
+ )
+ }
+
const { hasErrors } = resolvedNitrogenBalanceResult
const fieldsMap = new Map(fields.map((f) => [f.b_id, f]))
const filteredFields = resolvedNitrogenBalanceResult.fields.filter(
- (fieldResult) => {
+ (fieldResult: NitrogenBalanceFieldResultNumeric) => {
if (!showProductiveOnly) return true
const fieldData = fieldsMap.get(fieldResult.b_id)
return fieldData ? fieldData.b_isproductive === true : false
@@ -309,16 +378,15 @@ function FarmBalanceNitrogenOverview({
{fieldResult.balance ? (
`${fieldResult.balance.balance} / ${fieldResult.balance.target}`
) : (
-
-
- {"Foutdetails:"}
-
-
+
+
{
- fieldResult.errorMessage
+ "Bekijk foutmelding"
}
-
+
)}
diff --git a/fdm-app/package.json b/fdm-app/package.json
index fa98e58c9..3bfee5c6c 100644
--- a/fdm-app/package.json
+++ b/fdm-app/package.json
@@ -51,6 +51,7 @@
"lodash.throttle": "^4.1.1",
"lucide-react": "^0.544.0",
"mapbox-gl": "^3.15.0",
+ "nanoid": "^5.1.5",
"next-themes": "^0.4.6",
"postgres": "^3.4.7",
"posthog-js": "^1.266.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index abaf3dcbd..781efd637 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -190,6 +190,9 @@ importers:
mapbox-gl:
specifier: ^3.15.0
version: 3.15.0
+ nanoid:
+ specifier: ^5.1.5
+ version: 5.1.5
next-themes:
specifier: ^0.4.6
version: 0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
From 1a89d67d7a88bb5c458f7ff83dfd3f5e5dfd6e27 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Mon, 13 Oct 2025 11:02:21 +0200
Subject: [PATCH 024/243] feat: Submit "other" errors for loaders and actions
to Sentry
---
.changeset/brown-trees-sin.md | 5 ++++
fdm-app/app/lib/error.ts | 24 +++++++++++++++----
..._farm.$calendar.balance.nitrogen.$b_id.tsx | 1 +
...farm.$calendar.balance.nitrogen._index.tsx | 1 +
4 files changed, 26 insertions(+), 5 deletions(-)
create mode 100644 .changeset/brown-trees-sin.md
diff --git a/.changeset/brown-trees-sin.md b/.changeset/brown-trees-sin.md
new file mode 100644
index 000000000..872a0d13f
--- /dev/null
+++ b/.changeset/brown-trees-sin.md
@@ -0,0 +1,5 @@
+---
+"@svenvw/fdm-app": patch
+---
+
+Submit "other" errors for loaders and actions to Sentry
diff --git a/fdm-app/app/lib/error.ts b/fdm-app/app/lib/error.ts
index c008a09e0..f86c278a1 100644
--- a/fdm-app/app/lib/error.ts
+++ b/fdm-app/app/lib/error.ts
@@ -9,8 +9,15 @@ const errorIdSize = 8 // Number of characters in ID
export const createErrorId = customAlphabet(customErrorAlphabet, errorIdSize)
-export function reportError(error: unknown, tags: Record = {}, context?: Record): string {
- const errorId = createErrorId().match(/.{1,4}/g)?.join("-") || createErrorId() // Format as XXXX-XXXX
+export function reportError(
+ error: unknown,
+ tags: Record = {},
+ context?: Record,
+): string {
+ const errorId =
+ createErrorId()
+ .match(/.{1,4}/g)
+ ?.join("-") || createErrorId() // Format as XXXX-XXXX
if (clientConfig.analytics.sentry?.dsn) {
Sentry.captureException(error, {
@@ -125,14 +132,18 @@ export function handleLoaderError(error: unknown) {
// All other errors
console.error("Loader Error: ", error)
+ // Forward error to Sentry
+ const errorId = reportError(error, {
+ scope: "loader",
+ })
+
return data(
{
warning: error instanceof Error ? error.message : "Unknown error",
},
{
status: 500,
- statusText:
- "Er is helaas iets fout gegaan. Probeer het later opnieuw of neem contact op met Ondersteuning.",
+ statusText: `Er is helaas iets fout gegaan. Probeer het later opnieuw of neem contact op met Ondersteuning en meldt de volgende foutcode: ${errorId}.`,
},
)
}
@@ -227,8 +238,11 @@ export function handleActionError(error: unknown) {
// All other errors
console.error("Error: ", error)
+ const errorId = reportError(error, {
+ scope: "action",
+ })
return dataWithError(
error instanceof Error ? error.message : "Unknown error",
- "Er is helaas iets fout gegaan. Probeer het later opnieuw of neem contact op met Ondersteuning.",
+ `Er is helaas iets fout gegaan. Probeer het later opnieuw of neem contact op met Ondersteuning en meldt de volgende foutcode: ${errorId}.`,
)
}
diff --git a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx
index cc166547d..9d5c46a1a 100644
--- a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx
+++ b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx
@@ -114,6 +114,7 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
fieldResult.errorMessage,
{
page: "farm/{b_id_farm}/{calendar}/balance/nitrogen/{b_id}",
+ scope: "loader",
},
{
b_id,
diff --git a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
index 2b7adcf69..384c8871f 100644
--- a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
+++ b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
@@ -102,6 +102,7 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
nitrogenBalanceResult.errorMessage,
{
page: "farm/{b_id_farm}/{calendar}/balance/nitrogen/_index",
+ scope: "loader",
},
{
b_id_farm,
From dda7111c0e8501467554a7cf13ca8eab57662180 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Mon, 13 Oct 2025 11:06:52 +0200
Subject: [PATCH 025/243] nitpicks
---
fdm-calculator/src/balance/nitrogen/types.d.ts | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/fdm-calculator/src/balance/nitrogen/types.d.ts b/fdm-calculator/src/balance/nitrogen/types.d.ts
index aba90ba12..4ad783272 100644
--- a/fdm-calculator/src/balance/nitrogen/types.d.ts
+++ b/fdm-calculator/src/balance/nitrogen/types.d.ts
@@ -545,10 +545,6 @@ export type NitrogenEmissionAmmoniaFertilizersNumeric = {
total: number
applications: { id: string; value: number }[]
}
- mineral: {
- total: number
- applications: { id: string; value: number }[]
- }
compost: {
total: number
applications: { id: string; value: number }[]
@@ -577,6 +573,7 @@ export type NitrogenEmissionAmmoniaNumeric = {
export type NitrogenEmissionNumeric = {
total: number
ammonia: NitrogenEmissionAmmoniaNumeric
+ nitrate: { total: number }
}
// Numeric version of NitrogenBalanceField
From 917ae5074fa7c9640782de26991c3c986adf6aad Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Mon, 13 Oct 2025 11:22:58 +0200
Subject: [PATCH 026/243] fix: Propagate per-field errors into hasErrors and
fieldErrorMessages
---
fdm-calculator/src/balance/nitrogen/index.ts | 53 ++++++++++++--------
1 file changed, 31 insertions(+), 22 deletions(-)
diff --git a/fdm-calculator/src/balance/nitrogen/index.ts b/fdm-calculator/src/balance/nitrogen/index.ts
index c9bc4a383..a0f42e343 100644
--- a/fdm-calculator/src/balance/nitrogen/index.ts
+++ b/fdm-calculator/src/balance/nitrogen/index.ts
@@ -102,6 +102,12 @@ export async function calculateNitrogenBalance(
})
const batchResults = await Promise.all(batchPromises)
+ for (const r of batchResults) {
+ if (r.errorMessage) {
+ hasErrors = true
+ fieldErrorMessages.push(`[${r.b_id}] ${r.errorMessage}`)
+ }
+ }
fieldsWithBalanceResults.push(...batchResults)
}
@@ -168,8 +174,7 @@ export function calculateNitrogenBalanceField(
? field.b_start
: timeFrame.start,
end:
- field.b_end &&
- field.b_end.getTime() < timeFrame.end.getTime()
+ field.b_end && field.b_end.getTime() < timeFrame.end.getTime()
? field.b_end
: timeFrame.end,
}
@@ -271,9 +276,7 @@ export function calculateNitrogenBalancesFieldToFarm(
let totalFarmArea = new Decimal(0)
for (const fieldResult of successfulFieldBalances) {
- const fieldInput = fields.find(
- (f) => f.field.b_id === fieldResult.b_id,
- )
+ const fieldInput = fields.find((f) => f.field.b_id === fieldResult.b_id)
if (!fieldInput) {
console.warn(
@@ -282,7 +285,7 @@ export function calculateNitrogenBalancesFieldToFarm(
continue
}
const fieldArea = new Decimal(fieldInput.field.b_area ?? 0)
- totalFarmArea = totalFarmArea .add(fieldArea);
+ totalFarmArea = totalFarmArea.add(fieldArea)
totalFarmSupply = totalFarmSupply.add(
fieldResult.balance.supply.total.times(fieldArea),
@@ -299,18 +302,18 @@ export function calculateNitrogenBalancesFieldToFarm(
}
// Calculate average values per hectare for the farm, only considering the area of successfully calculated fields
- const avgFarmSupply = totalFarmArea .isZero()
+ const avgFarmSupply = totalFarmArea.isZero()
? new Decimal(0)
- : totalFarmSupply.dividedBy(totalFarmArea )
- const avgFarmRemoval = totalFarmArea .isZero()
+ : totalFarmSupply.dividedBy(totalFarmArea)
+ const avgFarmRemoval = totalFarmArea.isZero()
? new Decimal(0)
- : totalFarmRemoval.dividedBy(totalFarmArea )
- const avgFarmEmission = totalFarmArea .isZero()
+ : totalFarmRemoval.dividedBy(totalFarmArea)
+ const avgFarmEmission = totalFarmArea.isZero()
? new Decimal(0)
- : totalFarmEmission.dividedBy(totalFarmArea )
- const avgFarmTarget = totalFarmArea .isZero()
+ : totalFarmEmission.dividedBy(totalFarmArea)
+ const avgFarmTarget = totalFarmArea.isZero()
? new Decimal(0)
- : totalFarmTarget.dividedBy(totalFarmArea )
+ : totalFarmTarget.dividedBy(totalFarmArea)
// Calculate the average balance at farm level (Supply + Removal + Emission)
const avgFarmBalance = avgFarmSupply
@@ -325,7 +328,9 @@ export function calculateNitrogenBalancesFieldToFarm(
emission: avgFarmEmission,
target: avgFarmTarget,
fields: fieldsWithBalanceResults,
- hasErrors: hasErrors || (fieldsWithBalanceResults.length !== successfulFieldBalances.length),
+ hasErrors:
+ hasErrors ||
+ fieldsWithBalanceResults.length !== successfulFieldBalances.length,
fieldErrorMessages: fieldErrorMessages,
}
@@ -359,25 +364,29 @@ export function convertNitrogenBalanceToNumeric(
balance: NitrogenBalance, // Input is the original Decimal-based type
): NitrogenBalanceNumeric {
// Output is the new number-based type
- const numericBalance = convertDecimalToNumberRecursive(balance) as NitrogenBalanceNumeric;
+ const numericBalance = convertDecimalToNumberRecursive(
+ balance,
+ ) as NitrogenBalanceNumeric
// Ensure fields are correctly converted, especially handling errorMessage
- numericBalance.fields = balance.fields.map(fieldResult => {
+ numericBalance.fields = balance.fields.map((fieldResult) => {
if (fieldResult.balance) {
return {
b_id: fieldResult.b_id,
b_area: fieldResult.b_area,
- balance: convertDecimalToNumberRecursive(fieldResult.balance) as NitrogenBalanceFieldNumeric,
- };
+ balance: convertDecimalToNumberRecursive(
+ fieldResult.balance,
+ ) as NitrogenBalanceFieldNumeric,
+ }
}
return {
b_id: fieldResult.b_id,
b_area: fieldResult.b_area,
errorMessage: fieldResult.errorMessage,
- };
- });
+ }
+ })
- return numericBalance;
+ return numericBalance
}
/**
From 277cd2cd146f687b7d5dbace3a97df6c7d3e6ebf Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Mon, 13 Oct 2025 11:31:14 +0200
Subject: [PATCH 027/243] test: fix
---
fdm-calculator/src/balance/nitrogen/index.test.ts | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/fdm-calculator/src/balance/nitrogen/index.test.ts b/fdm-calculator/src/balance/nitrogen/index.test.ts
index 480c3aec3..5a4831606 100644
--- a/fdm-calculator/src/balance/nitrogen/index.test.ts
+++ b/fdm-calculator/src/balance/nitrogen/index.test.ts
@@ -129,9 +129,10 @@ describe("calculateNitrogenBalance", () => {
},
}
- await expect(
- calculateNitrogenBalance(mockNitrogenBalanceInput),
- ).rejects.toThrowError()
+ const result = await calculateNitrogenBalance(mockNitrogenBalanceInput)
+
+ expect(result.hasErrors).toBe(true)
+ expect(result.fieldErrorMessages.length).toBeGreaterThan(0)
})
})
From ddbc28f68ac8ef64299aae4bfe18ce0c1d2cfe2e Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Mon, 13 Oct 2025 11:48:35 +0200
Subject: [PATCH 028/243] refactor: remove duplicate error tracking
---
fdm-calculator/src/balance/nitrogen/index.ts | 5 -----
1 file changed, 5 deletions(-)
diff --git a/fdm-calculator/src/balance/nitrogen/index.ts b/fdm-calculator/src/balance/nitrogen/index.ts
index a0f42e343..851f2a6f2 100644
--- a/fdm-calculator/src/balance/nitrogen/index.ts
+++ b/fdm-calculator/src/balance/nitrogen/index.ts
@@ -76,11 +76,6 @@ export async function calculateNitrogenBalance(
const batchPromises = batch.map(async (field: FieldInput) => {
const depositionSupply = depositionByField.get(field.field.b_id)
if (!depositionSupply) {
- // This should not happen if the deposition calculation is correct
- hasErrors = true
- fieldErrorMessages.push(
- `Deposition data not found for field ${field.field.b_id}`,
- )
return {
b_id: field.field.b_id,
b_area: field.field.b_area ?? 0,
From 34057eae08b47ccbffab1e924535532cc837365a Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Mon, 13 Oct 2025 11:51:05 +0200
Subject: [PATCH 029/243] fix: reporting errors
---
.../farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
index 384c8871f..cf9b1d1c0 100644
--- a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
+++ b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
@@ -97,9 +97,9 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
let nitrogenBalanceResult =
await calculateNitrogenBalance(nitrogenBalanceInput)
- if (nitrogenBalanceResult.errorMessage) {
+ if (nitrogenBalanceResult.hasErrors) {
const errorId = reportError(
- nitrogenBalanceResult.errorMessage,
+ nitrogenBalanceResult.fieldErrorMessages.join(",\n"),
{
page: "farm/{b_id_farm}/{calendar}/balance/nitrogen/_index",
scope: "loader",
From 9f691a150108971958917780f4fce44a320ad7d0 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Mon, 13 Oct 2025 12:41:56 +0200
Subject: [PATCH 030/243] fix: showing error message
---
...id_farm.$calendar.balance.nitrogen._index.tsx | 16 ++--------------
1 file changed, 2 insertions(+), 14 deletions(-)
diff --git a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
index cf9b1d1c0..58042bd83 100644
--- a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
+++ b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
@@ -94,11 +94,11 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
timeframe,
)
- let nitrogenBalanceResult =
+ const nitrogenBalanceResult =
await calculateNitrogenBalance(nitrogenBalanceInput)
if (nitrogenBalanceResult.hasErrors) {
- const errorId = reportError(
+ reportError(
nitrogenBalanceResult.fieldErrorMessages.join(",\n"),
{
page: "farm/{b_id_farm}/{calendar}/balance/nitrogen/_index",
@@ -110,18 +110,6 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
userId: session.principal_id,
},
)
-
- nitrogenBalanceResult = {
- balance: 0,
- target: 0,
- supply: 0,
- removal: 0,
- emission: 0,
- hasErrors: true,
- fields: [],
- errorMessage: nitrogenBalanceResult.errorMessage,
- errorId: errorId,
- }
}
return {
From 6bcb5286a399049daaef9217f4a29a53676561a8 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Tue, 14 Oct 2025 15:03:04 +0200
Subject: [PATCH 031/243] feat: Add the missing options for b_acquiring_method:
"In gebuik van een terreinbeherende organisatie" (nl_03), "Tijdelijk gebuik
in het kader van landinrichting" (nl_04), "Pacht van geringe oppervlakten"
(nl_10) and "Natuurpacht" (nl_11)
---
.changeset/wide-apes-hear.md | 5 ++++
fdm-core/src/db/schema.ts | 16 +++++------
fdm-core/src/field.test.ts | 54 ++++++++++++++++++++++++++++++++++--
3 files changed, 65 insertions(+), 10 deletions(-)
create mode 100644 .changeset/wide-apes-hear.md
diff --git a/.changeset/wide-apes-hear.md b/.changeset/wide-apes-hear.md
new file mode 100644
index 000000000..4e429808c
--- /dev/null
+++ b/.changeset/wide-apes-hear.md
@@ -0,0 +1,5 @@
+---
+"@svenvw/fdm-core": patch
+---
+
+Add the missing options for b_acquiring_method: "In gebuik van een terreinbeherende organisatie" (nl_03), "Tijdelijk gebuik in het kader van landinrichting" (nl_04), "Pacht van geringe oppervlakten" (nl_10) and "Natuurpacht" (nl_11)
diff --git a/fdm-core/src/db/schema.ts b/fdm-core/src/db/schema.ts
index b505daccf..80b887ea0 100644
--- a/fdm-core/src/db/schema.ts
+++ b/fdm-core/src/db/schema.ts
@@ -37,22 +37,22 @@ export type farmsTypeInsert = typeof farms.$inferInsert
export const acquiringMethodOptions = [
{ value: "nl_01", label: "Eigendom" },
{ value: "nl_02", label: "Reguliere pacht" },
+ { value: "nl_03", label: "In gebuik van een terreinbeherende organisatie" },
+ {
+ value: "nl_04",
+ label: "Tijdelijk gebuik in het kader van landinrichting",
+ },
{ value: "nl_07", label: "Overige exploitatievormen" },
{ value: "nl_09", label: "Erfpacht" },
+ { value: "nl_10", label: "Pacht van geringe oppervlakten" },
+ { value: "nl_11", label: "Natuurpacht" },
{ value: "nl_12", label: "Geliberaliseerde pacht, langer dan 6 jaar" },
{ value: "nl_13", label: "Geliberaliseerde pacht, 6 jaar of korter" },
{ value: "nl_61", label: "Reguliere pacht kortlopend" },
{ value: "nl_63", label: "Teeltpacht" },
- // { value: "nl_xx", label: "Pacht van geringe oppervlakten" },
- // { value: "nl_xx", label: "Natuurpacht" },
- // { value: "nl_xx", label: "In gebuik van een terreinbeherende organisatie" },
- // {
- // value: "nl_xx",
- // label: "Tijdelijk gebuik in het kader van landinrichting",
- // },
{ value: "unknown", label: "Onbekend" },
]
-const acquiringMethodEnum = fdmSchema.enum(
+export const acquiringMethodEnum = fdmSchema.enum(
"b_acquiring_method",
acquiringMethodOptions.map((x) => x.value) as [string, ...string[]],
)
diff --git a/fdm-core/src/field.test.ts b/fdm-core/src/field.test.ts
index 6e8024d9e..ba0b5b7b2 100644
--- a/fdm-core/src/field.test.ts
+++ b/fdm-core/src/field.test.ts
@@ -36,12 +36,25 @@ describe("Farm Data Model", () => {
})
describe("Field CRUD", () => {
- it("should add a new field", async () => {
+ let fdm: FdmType
+ let principal_id: string
+ let b_id_farm: string
+
+ beforeEach(async () => {
+ const host = inject("host")
+ const port = inject("port")
+ const user = inject("user")
+ const password = inject("password")
+ const database = inject("database")
+ fdm = createFdmServer(host, port, user, password, database)
+ principal_id = "test_principal"
+
+ // Create a test farm
const farmName = "Test Farm"
const farmBusinessId = "123456"
const farmAddress = "123 Farm Lane"
const farmPostalCode = "12345"
- const b_id_farm = await addFarm(
+ b_id_farm = await addFarm(
fdm,
principal_id,
farmName,
@@ -49,7 +62,9 @@ describe("Farm Data Model", () => {
farmAddress,
farmPostalCode,
)
+ })
+ it("should add a new field", async () => {
const fieldName = "Test Field"
const fieldIDSource = "test-field-id"
const fieldGeometry: Polygon = {
@@ -96,6 +111,41 @@ describe("Farm Data Model", () => {
expect(field.b_acquiring_method).toBe(AcquiringMethod)
})
+ it("should add a new field with a later added option for b_acquiring_method", async () => {
+ const fieldName = "Test Field"
+ const fieldIDSource = "test-field-id"
+ const fieldGeometry: Polygon = {
+ type: "Polygon",
+ coordinates: [
+ [
+ [0, 0],
+ [0, 1],
+ [1, 1],
+ [1, 0],
+ [0, 0],
+ ],
+ ],
+ }
+ const AcquireDate = new Date("2023-01-01")
+ const discardingDate = new Date("2023-12-31")
+ const AcquiringMethod = "nl_11"
+ const b_id = await addField(
+ fdm,
+ principal_id,
+ b_id_farm,
+ fieldName,
+ fieldIDSource,
+ fieldGeometry,
+ AcquireDate,
+ AcquiringMethod,
+ discardingDate,
+ )
+ expect(b_id).toBeDefined()
+
+ const field = await getField(fdm, principal_id, b_id)
+ expect(field.b_acquiring_method).toBe(AcquiringMethod)
+ })
+
describe("getFields", () => {
let fdm: FdmType
let principal_id: string
From a8d05daf21d948cd081bb51e1778c67fb9eaf31e Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Tue, 14 Oct 2025 16:00:44 +0200
Subject: [PATCH 032/243] chore: add db migration
---
.../src/db/migrations/0014_smart_malice.sql | 4 +
.../src/db/migrations/meta/0014_snapshot.json | 3115 +++++++++++++++++
fdm-core/src/db/migrations/meta/_journal.json | 213 +-
3 files changed, 3229 insertions(+), 103 deletions(-)
create mode 100644 fdm-core/src/db/migrations/0014_smart_malice.sql
create mode 100644 fdm-core/src/db/migrations/meta/0014_snapshot.json
diff --git a/fdm-core/src/db/migrations/0014_smart_malice.sql b/fdm-core/src/db/migrations/0014_smart_malice.sql
new file mode 100644
index 000000000..83ec7aee3
--- /dev/null
+++ b/fdm-core/src/db/migrations/0014_smart_malice.sql
@@ -0,0 +1,4 @@
+ALTER TYPE fdm.b_acquiring_method ADD VALUE IF NOT EXISTS 'nl_03';--> statement-breakpoint
+ALTER TYPE fdm.b_acquiring_method ADD VALUE IF NOT EXISTS 'nl_04';--> statement-breakpoint
+ALTER TYPE fdm.b_acquiring_method ADD VALUE IF NOT EXISTS 'nl_10';--> statement-breakpoint
+ALTER TYPE fdm.b_acquiring_method ADD VALUE IF NOT EXISTS 'nl_11';
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/0014_snapshot.json b/fdm-core/src/db/migrations/meta/0014_snapshot.json
new file mode 100644
index 000000000..e091317ad
--- /dev/null
+++ b/fdm-core/src/db/migrations/meta/0014_snapshot.json
@@ -0,0 +1,3115 @@
+{
+ "id": "45dcb87d-89c8-4cf7-a504-0db74ba68640",
+ "prevId": "c953a71f-8431-4aea-94b9-e49a5a96cf0c",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "fdm.cultivation_catalogue_selecting": {
+ "name": "cultivation_catalogue_selecting",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_source": {
+ "name": "b_lu_source",
+ "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": {},
+ "foreignKeys": {
+ "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk": {
+ "name": "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "cultivation_catalogue_selecting",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_ending": {
+ "name": "cultivation_ending",
+ "schema": "fdm",
+ "columns": {
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_end": {
+ "name": "b_lu_end",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "m_cropresidue": {
+ "name": "m_cropresidue",
+ "type": "boolean",
+ "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": {
+ "cultivation_ending_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_ending_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_ending",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_harvesting": {
+ "name": "cultivation_harvesting",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvesting": {
+ "name": "b_id_harvesting",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_harvest_date": {
+ "name": "b_lu_harvest_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk": {
+ "name": "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk",
+ "tableFrom": "cultivation_harvesting",
+ "tableTo": "harvestables",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable"
+ ],
+ "columnsTo": [
+ "b_id_harvestable"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "cultivation_harvesting_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_harvesting_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_harvesting",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_starting": {
+ "name": "cultivation_starting",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_start": {
+ "name": "b_lu_start",
+ "type": "timestamp with time zone",
+ "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": {
+ "cultivation_starting_b_id_fields_b_id_fk": {
+ "name": "cultivation_starting_b_id_fields_b_id_fk",
+ "tableFrom": "cultivation_starting",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "cultivation_starting_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_starting_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_starting",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivations": {
+ "name": "cultivations",
+ "schema": "fdm",
+ "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
+ },
+ "b_lu_variety": {
+ "name": "b_lu_variety",
+ "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": {
+ "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",
+ "columnsFrom": [
+ "b_lu_catalogue"
+ ],
+ "columnsTo": [
+ "b_lu_catalogue"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivations_catalogue": {
+ "name": "cultivations_catalogue",
+ "schema": "fdm",
+ "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_harvestable": {
+ "name": "b_lu_harvestable",
+ "type": "b_lu_harvestable",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "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
+ },
+ "b_lu_croprotation": {
+ "name": "b_lu_croprotation",
+ "type": "b_lu_croprotation",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_yield": {
+ "name": "b_lu_yield",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_hi": {
+ "name": "b_lu_hi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_harvestable": {
+ "name": "b_lu_n_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_residue": {
+ "name": "b_lu_n_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_n_fixation": {
+ "name": "b_n_fixation",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_rest_oravib": {
+ "name": "b_lu_rest_oravib",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_variety_options": {
+ "name": "b_lu_variety_options",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "hash": {
+ "name": "hash",
+ "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": {
+ "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": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.derogation_applying": {
+ "name": "derogation_applying",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_derogation": {
+ "name": "b_id_derogation",
+ "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": {},
+ "foreignKeys": {
+ "derogation_applying_b_id_farm_farms_b_id_farm_fk": {
+ "name": "derogation_applying_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "derogation_applying",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk": {
+ "name": "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk",
+ "tableFrom": "derogation_applying",
+ "tableTo": "derogations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_derogation"
+ ],
+ "columnsTo": [
+ "b_id_derogation"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.derogations": {
+ "name": "derogations",
+ "schema": "fdm",
+ "columns": {
+ "b_id_derogation": {
+ "name": "b_id_derogation",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_derogation_year": {
+ "name": "b_derogation_year",
+ "type": "integer",
+ "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": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.farms": {
+ "name": "farms",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_name_farm": {
+ "name": "b_name_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_businessid_farm": {
+ "name": "b_businessid_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_address_farm": {
+ "name": "b_address_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_postalcode_farm": {
+ "name": "b_postalcode_farm",
+ "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": {
+ "b_id_farm_idx": {
+ "name": "b_id_farm_idx",
+ "columns": [
+ {
+ "expression": "b_id_farm",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_acquiring": {
+ "name": "fertilizer_acquiring",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_acquiring_amount": {
+ "name": "p_acquiring_amount",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_acquiring_date": {
+ "name": "p_acquiring_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk": {
+ "name": "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "fertilizer_acquiring",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_acquiring_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_acquiring_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_acquiring",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_applying": {
+ "name": "fertilizer_applying",
+ "schema": "fdm",
+ "columns": {
+ "p_app_id": {
+ "name": "p_app_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_app_amount": {
+ "name": "p_app_amount",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_method": {
+ "name": "p_app_method",
+ "type": "p_app_method",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_date": {
+ "name": "p_app_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "p_app_idx": {
+ "name": "p_app_idx",
+ "columns": [
+ {
+ "expression": "p_app_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "fertilizer_applying_b_id_fields_b_id_fk": {
+ "name": "fertilizer_applying_b_id_fields_b_id_fk",
+ "tableFrom": "fertilizer_applying",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_applying_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_applying_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_applying",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_catalogue_enabling": {
+ "name": "fertilizer_catalogue_enabling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_source": {
+ "name": "p_source",
+ "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": {},
+ "foreignKeys": {
+ "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk": {
+ "name": "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "fertilizer_catalogue_enabling",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_picking": {
+ "name": "fertilizer_picking",
+ "schema": "fdm",
+ "columns": {
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id_catalogue": {
+ "name": "p_id_catalogue",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_picking_date": {
+ "name": "p_picking_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "fertilizer_picking_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_picking_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_picking",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk": {
+ "name": "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk",
+ "tableFrom": "fertilizer_picking",
+ "tableTo": "fertilizers_catalogue",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id_catalogue"
+ ],
+ "columnsTo": [
+ "p_id_catalogue"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizers": {
+ "name": "fertilizers",
+ "schema": "fdm",
+ "columns": {
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": true,
+ "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": {
+ "p_id_idx": {
+ "name": "p_id_idx",
+ "columns": [
+ {
+ "expression": "p_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizers_catalogue": {
+ "name": "fertilizers_catalogue",
+ "schema": "fdm",
+ "columns": {
+ "p_id_catalogue": {
+ "name": "p_id_catalogue",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "p_source": {
+ "name": "p_source",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_name_nl": {
+ "name": "p_name_nl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_name_en": {
+ "name": "p_name_en",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_description": {
+ "name": "p_description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_method_options": {
+ "name": "p_app_method_options",
+ "type": "p_app_method[]",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_dm": {
+ "name": "p_dm",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_density": {
+ "name": "p_density",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_om": {
+ "name": "p_om",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_a": {
+ "name": "p_a",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_hc": {
+ "name": "p_hc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_eom": {
+ "name": "p_eom",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_eoc": {
+ "name": "p_eoc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_rt": {
+ "name": "p_c_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_of": {
+ "name": "p_c_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_if": {
+ "name": "p_c_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_fr": {
+ "name": "p_c_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cn_of": {
+ "name": "p_cn_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_rt": {
+ "name": "p_n_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_if": {
+ "name": "p_n_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_of": {
+ "name": "p_n_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_wc": {
+ "name": "p_n_wc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_no3_rt": {
+ "name": "p_no3_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_nh4_rt": {
+ "name": "p_nh4_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_p_rt": {
+ "name": "p_p_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_k_rt": {
+ "name": "p_k_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mg_rt": {
+ "name": "p_mg_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ca_rt": {
+ "name": "p_ca_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ne": {
+ "name": "p_ne",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_s_rt": {
+ "name": "p_s_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_s_wc": {
+ "name": "p_s_wc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cu_rt": {
+ "name": "p_cu_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_zn_rt": {
+ "name": "p_zn_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_na_rt": {
+ "name": "p_na_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_si_rt": {
+ "name": "p_si_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_b_rt": {
+ "name": "p_b_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mn_rt": {
+ "name": "p_mn_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ni_rt": {
+ "name": "p_ni_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_fe_rt": {
+ "name": "p_fe_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mo_rt": {
+ "name": "p_mo_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_co_rt": {
+ "name": "p_co_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_as_rt": {
+ "name": "p_as_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cd_rt": {
+ "name": "p_cd_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cr_rt": {
+ "name": "p_cr_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cr_vi": {
+ "name": "p_cr_vi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_pb_rt": {
+ "name": "p_pb_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_hg_rt": {
+ "name": "p_hg_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cl_rt": {
+ "name": "p_cl_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ef_nh3": {
+ "name": "p_ef_nh3",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_manure": {
+ "name": "p_type_manure",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_mineral": {
+ "name": "p_type_mineral",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_compost": {
+ "name": "p_type_compost",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "hash": {
+ "name": "hash",
+ "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": {
+ "p_id_catalogue_idx": {
+ "name": "p_id_catalogue_idx",
+ "columns": [
+ {
+ "expression": "p_id_catalogue",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.field_acquiring": {
+ "name": "field_acquiring",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_start": {
+ "name": "b_start",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_acquiring_method": {
+ "name": "b_acquiring_method",
+ "type": "b_acquiring_method",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'unknown'"
+ },
+ "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_acquiring_b_id_fields_b_id_fk": {
+ "name": "field_acquiring_b_id_fields_b_id_fk",
+ "tableFrom": "field_acquiring",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "field_acquiring_b_id_farm_farms_b_id_farm_fk": {
+ "name": "field_acquiring_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "field_acquiring",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.field_discarding": {
+ "name": "field_discarding",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_end": {
+ "name": "b_end",
+ "type": "timestamp with time zone",
+ "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_discarding_b_id_fields_b_id_fk": {
+ "name": "field_discarding_b_id_fields_b_id_fk",
+ "tableFrom": "field_discarding",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fields": {
+ "name": "fields",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_name": {
+ "name": "b_name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_geometry": {
+ "name": "b_geometry",
+ "type": "geometry(Polygon,4326)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_id_source": {
+ "name": "b_id_source",
+ "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": {
+ "b_id_idx": {
+ "name": "b_id_idx",
+ "columns": [
+ {
+ "expression": "b_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "b_geom_idx": {
+ "name": "b_geom_idx",
+ "columns": [
+ {
+ "expression": "b_geometry",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "gist",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestable_analyses": {
+ "name": "harvestable_analyses",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable_analysis": {
+ "name": "b_id_harvestable_analysis",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_lu_yield": {
+ "name": "b_lu_yield",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_harvestable": {
+ "name": "b_lu_n_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_residue": {
+ "name": "b_lu_n_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_p_harvestable": {
+ "name": "b_lu_p_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_p_residue": {
+ "name": "b_lu_p_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_k_harvestable": {
+ "name": "b_lu_k_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_k_residue": {
+ "name": "b_lu_k_residue",
+ "type": "numeric",
+ "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": {
+ "b_id_harvestable_analyses_idx": {
+ "name": "b_id_harvestable_analyses_idx",
+ "columns": [
+ {
+ "expression": "b_id_harvestable_analysis",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestable_sampling": {
+ "name": "harvestable_sampling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_harvestable_analysis": {
+ "name": "b_id_harvestable_analysis",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_sampling_date": {
+ "name": "b_sampling_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk": {
+ "name": "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk",
+ "tableFrom": "harvestable_sampling",
+ "tableTo": "harvestables",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable"
+ ],
+ "columnsTo": [
+ "b_id_harvestable"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk": {
+ "name": "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk",
+ "tableFrom": "harvestable_sampling",
+ "tableTo": "harvestable_analyses",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable_analysis"
+ ],
+ "columnsTo": [
+ "b_id_harvestable_analysis"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestables": {
+ "name": "harvestables",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": true,
+ "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_id_harvestable_idx": {
+ "name": "b_id_harvestable_idx",
+ "columns": [
+ {
+ "expression": "b_id_harvestable",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.soil_analysis": {
+ "name": "soil_analysis",
+ "schema": "fdm",
+ "columns": {
+ "a_id": {
+ "name": "a_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "a_date": {
+ "name": "a_date",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_source": {
+ "name": "a_source",
+ "type": "a_source",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'other'"
+ },
+ "a_al_ox": {
+ "name": "a_al_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_c_of": {
+ "name": "a_c_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ca_co": {
+ "name": "a_ca_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ca_co_po": {
+ "name": "a_ca_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_caco3_if": {
+ "name": "a_caco3_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cec_co": {
+ "name": "a_cec_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_clay_mi": {
+ "name": "a_clay_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cn_fr": {
+ "name": "a_cn_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_com_fr": {
+ "name": "a_com_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cu_cc": {
+ "name": "a_cu_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_density_sa": {
+ "name": "a_density_sa",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_fe_ox": {
+ "name": "a_fe_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_cc": {
+ "name": "a_k_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_co": {
+ "name": "a_k_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_co_po": {
+ "name": "a_k_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_cc": {
+ "name": "a_mg_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_co": {
+ "name": "a_mg_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_co_po": {
+ "name": "a_mg_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_n_pmn": {
+ "name": "a_n_pmn",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_n_rt": {
+ "name": "a_n_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_nh4_cc": {
+ "name": "a_nh4_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_nmin_cc": {
+ "name": "a_nmin_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_no3_cc": {
+ "name": "a_no3_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_al": {
+ "name": "a_p_al",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_cc": {
+ "name": "a_p_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_ox": {
+ "name": "a_p_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_rt": {
+ "name": "a_p_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_sg": {
+ "name": "a_p_sg",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_wa": {
+ "name": "a_p_wa",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ph_cc": {
+ "name": "a_ph_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_s_rt": {
+ "name": "a_s_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_sand_mi": {
+ "name": "a_sand_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_silt_mi": {
+ "name": "a_silt_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_som_loi": {
+ "name": "a_som_loi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_zn_cc": {
+ "name": "a_zn_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_gwl_class": {
+ "name": "b_gwl_class",
+ "type": "b_gwl_class",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_soiltype_agr": {
+ "name": "b_soiltype_agr",
+ "type": "b_soiltype_agr",
+ "typeSchema": "fdm",
+ "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": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.soil_sampling": {
+ "name": "soil_sampling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_sampling": {
+ "name": "b_id_sampling",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "a_id": {
+ "name": "a_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "a_depth_upper": {
+ "name": "a_depth_upper",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ },
+ "a_depth_lower": {
+ "name": "a_depth_lower",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_sampling_date": {
+ "name": "b_sampling_date",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_sampling_geometry": {
+ "name": "b_sampling_geometry",
+ "type": "geometry(MultiPoint,4326)",
+ "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": {
+ "soil_sampling_b_id_fields_b_id_fk": {
+ "name": "soil_sampling_b_id_fields_b_id_fk",
+ "tableFrom": "soil_sampling",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "soil_sampling_a_id_soil_analysis_a_id_fk": {
+ "name": "soil_sampling_a_id_soil_analysis_a_id_fk",
+ "tableFrom": "soil_sampling",
+ "tableTo": "soil_analysis",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "a_id"
+ ],
+ "columnsTo": [
+ "a_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.account": {
+ "name": "account",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "account_id": {
+ "name": "account_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider_id": {
+ "name": "provider_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "id_token": {
+ "name": "id_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token_expires_at": {
+ "name": "access_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token_expires_at": {
+ "name": "refresh_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "account_user_id_user_id_fk": {
+ "name": "account_user_id_user_id_fk",
+ "tableFrom": "account",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.invitation": {
+ "name": "invitation",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "inviter_id": {
+ "name": "inviter_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "invitation_organization_id_organization_id_fk": {
+ "name": "invitation_organization_id_organization_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "organization",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "invitation_inviter_id_user_id_fk": {
+ "name": "invitation_inviter_id_user_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "inviter_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.member": {
+ "name": "member",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "member_organization_id_organization_id_fk": {
+ "name": "member_organization_id_organization_id_fk",
+ "tableFrom": "member",
+ "tableTo": "organization",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "member_user_id_user_id_fk": {
+ "name": "member_user_id_user_id_fk",
+ "tableFrom": "member",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.organization": {
+ "name": "organization",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slug": {
+ "name": "slug",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "logo": {
+ "name": "logo",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "organization_slug_unique": {
+ "name": "organization_slug_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "slug"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.rate_limit": {
+ "name": "rate_limit",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "key": {
+ "name": "key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "count": {
+ "name": "count",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_request": {
+ "name": "last_request",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.session": {
+ "name": "session",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "token": {
+ "name": "token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ip_address": {
+ "name": "ip_address",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_agent": {
+ "name": "user_agent",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "active_organization_id": {
+ "name": "active_organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "session_user_id_user_id_fk": {
+ "name": "session_user_id_user_id_fk",
+ "tableFrom": "session",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "session_token_unique": {
+ "name": "session_token_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "token"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.user": {
+ "name": "user",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email_verified": {
+ "name": "email_verified",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "display_username": {
+ "name": "display_username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "firstname": {
+ "name": "firstname",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "surname": {
+ "name": "surname",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "lang": {
+ "name": "lang",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "farm_active": {
+ "name": "farm_active",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "user_email_unique": {
+ "name": "user_email_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "email"
+ ]
+ },
+ "user_username_unique": {
+ "name": "user_username_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "username"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.verification": {
+ "name": "verification",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "identifier": {
+ "name": "identifier",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authz.audit": {
+ "name": "audit",
+ "schema": "fdm-authz",
+ "columns": {
+ "audit_id": {
+ "name": "audit_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "audit_timestamp": {
+ "name": "audit_timestamp",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "audit_origin": {
+ "name": "audit_origin",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "principal_id": {
+ "name": "principal_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "target_resource": {
+ "name": "target_resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "target_resource_id": {
+ "name": "target_resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "granting_resource": {
+ "name": "granting_resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "granting_resource_id": {
+ "name": "granting_resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "action": {
+ "name": "action",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "allowed": {
+ "name": "allowed",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "duration": {
+ "name": "duration",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authz.role": {
+ "name": "role",
+ "schema": "fdm-authz",
+ "columns": {
+ "role_id": {
+ "name": "role_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "resource": {
+ "name": "resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "resource_id": {
+ "name": "resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "principal_id": {
+ "name": "principal_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created": {
+ "name": "created",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "deleted": {
+ "name": "deleted",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {
+ "role_idx": {
+ "name": "role_idx",
+ "columns": [
+ {
+ "expression": "resource",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "resource_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "principal_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "role",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "deleted",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {
+ "fdm.b_acquiring_method": {
+ "name": "b_acquiring_method",
+ "schema": "fdm",
+ "values": [
+ "nl_01",
+ "nl_02",
+ "nl_03",
+ "nl_04",
+ "nl_07",
+ "nl_09",
+ "nl_10",
+ "nl_11",
+ "nl_12",
+ "nl_13",
+ "nl_61",
+ "nl_63",
+ "unknown"
+ ]
+ },
+ "fdm.p_app_method": {
+ "name": "p_app_method",
+ "schema": "fdm",
+ "values": [
+ "slotted coulter",
+ "incorporation",
+ "incorporation 2 tracks",
+ "injection",
+ "shallow injection",
+ "spraying",
+ "broadcasting",
+ "spoke wheel",
+ "pocket placement",
+ "narrowband"
+ ]
+ },
+ "fdm.b_gwl_class": {
+ "name": "b_gwl_class",
+ "schema": "fdm",
+ "values": [
+ "I",
+ "Ia",
+ "Ic",
+ "II",
+ "IIa",
+ "IIb",
+ "IIc",
+ "III",
+ "IIIa",
+ "IIIb",
+ "IV",
+ "IVu",
+ "IVc",
+ "V",
+ "Va",
+ "Vao",
+ "Vad",
+ "Vb",
+ "Vbo",
+ "Vbd",
+ "sV",
+ "sVb",
+ "VI",
+ "VIo",
+ "VId",
+ "VII",
+ "VIIo",
+ "VIId",
+ "VIII",
+ "VIIIo",
+ "VIIId"
+ ]
+ },
+ "fdm.b_lu_harvestable": {
+ "name": "b_lu_harvestable",
+ "schema": "fdm",
+ "values": [
+ "none",
+ "once",
+ "multiple"
+ ]
+ },
+ "fdm.b_lu_croprotation": {
+ "name": "b_lu_croprotation",
+ "schema": "fdm",
+ "values": [
+ "other",
+ "clover",
+ "nature",
+ "potato",
+ "grass",
+ "rapeseed",
+ "starch",
+ "maize",
+ "cereal",
+ "sugarbeet",
+ "alfalfa",
+ "catchcrop"
+ ]
+ },
+ "fdm.a_source": {
+ "name": "a_source",
+ "schema": "fdm",
+ "values": [
+ "nl-rva-l122",
+ "nl-rva-l136",
+ "nl-rva-l264",
+ "nl-rva-l320",
+ "nl-rva-l335",
+ "nl-rva-l610",
+ "nl-rva-l648",
+ "nl-rva-l697",
+ "nl-other-nmi",
+ "other"
+ ]
+ },
+ "fdm.b_soiltype_agr": {
+ "name": "b_soiltype_agr",
+ "schema": "fdm",
+ "values": [
+ "moerige_klei",
+ "rivierklei",
+ "dekzand",
+ "zeeklei",
+ "dalgrond",
+ "veen",
+ "loess",
+ "duinzand",
+ "maasklei"
+ ]
+ }
+ },
+ "schemas": {
+ "fdm": "fdm",
+ "fdm-authn": "fdm-authn",
+ "fdm-authz": "fdm-authz"
+ },
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/_journal.json b/fdm-core/src/db/migrations/meta/_journal.json
index 7d4a6b8e7..1d8df0db1 100644
--- a/fdm-core/src/db/migrations/meta/_journal.json
+++ b/fdm-core/src/db/migrations/meta/_journal.json
@@ -1,104 +1,111 @@
{
- "version": "7",
- "dialect": "postgresql",
- "entries": [
- {
- "idx": 0,
- "version": "7",
- "when": 1731414293847,
- "tag": "0000_v0",
- "breakpoints": true
- },
- {
- "idx": 1,
- "version": "7",
- "when": 1741267610502,
- "tag": "0001_v0-15-0",
- "breakpoints": true
- },
- {
- "idx": 2,
- "version": "7",
- "when": 1743420907290,
- "tag": "0002_v0-18-0",
- "breakpoints": true
- },
- {
- "idx": 3,
- "version": "7",
- "when": 1744205441260,
- "tag": "0003_v0-20-0-1",
- "breakpoints": true
- },
- {
- "idx": 4,
- "version": "7",
- "when": 1745410821339,
- "tag": "0004_v0-20-0-2",
- "breakpoints": true
- },
- {
- "idx": 5,
- "version": "7",
- "when": 1748353081475,
- "tag": "0005_v0-20-0-3",
- "breakpoints": true
- },
- {
- "idx": 6,
- "version": "7",
- "when": 1748353926519,
- "tag": "0006_v0-20-0-4",
- "breakpoints": true
- },
- {
- "idx": 7,
- "version": "7",
- "when": 1750146397071,
- "tag": "0007_v0-21-0-1",
- "breakpoints": true
- },
- {
- "idx": 8,
- "version": "7",
- "when": 1750751079210,
- "tag": "0008_v0-21-0-2",
- "breakpoints": true
- },
- {
- "idx": 9,
- "version": "7",
- "when": 1752056714510,
- "tag": "0009_v0-22-0-1",
- "breakpoints": true
- },
- {
- "idx": 10,
- "version": "7",
- "when": 1753084974762,
- "tag": "0010_v0-22-0-2",
- "breakpoints": true
- },
- {
- "idx": 11,
- "version": "7",
- "when": 1754396961710,
- "tag": "0011_v0-22-1-1",
- "breakpoints": true
- },
- {
- "idx": 12,
- "version": "7",
- "when": 1754661913554,
- "tag": "0012_v0-24-0-1",
- "breakpoints": true
- },
- {
- "idx": 13,
- "version": "7",
- "when": 1755074095394,
- "tag": "0013_v0-24-0-2",
- "breakpoints": true
- }
- ]
-}
+ "version": "7",
+ "dialect": "postgresql",
+ "entries": [
+ {
+ "idx": 0,
+ "version": "7",
+ "when": 1731414293847,
+ "tag": "0000_v0",
+ "breakpoints": true
+ },
+ {
+ "idx": 1,
+ "version": "7",
+ "when": 1741267610502,
+ "tag": "0001_v0-15-0",
+ "breakpoints": true
+ },
+ {
+ "idx": 2,
+ "version": "7",
+ "when": 1743420907290,
+ "tag": "0002_v0-18-0",
+ "breakpoints": true
+ },
+ {
+ "idx": 3,
+ "version": "7",
+ "when": 1744205441260,
+ "tag": "0003_v0-20-0-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 4,
+ "version": "7",
+ "when": 1745410821339,
+ "tag": "0004_v0-20-0-2",
+ "breakpoints": true
+ },
+ {
+ "idx": 5,
+ "version": "7",
+ "when": 1748353081475,
+ "tag": "0005_v0-20-0-3",
+ "breakpoints": true
+ },
+ {
+ "idx": 6,
+ "version": "7",
+ "when": 1748353926519,
+ "tag": "0006_v0-20-0-4",
+ "breakpoints": true
+ },
+ {
+ "idx": 7,
+ "version": "7",
+ "when": 1750146397071,
+ "tag": "0007_v0-21-0-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 8,
+ "version": "7",
+ "when": 1750751079210,
+ "tag": "0008_v0-21-0-2",
+ "breakpoints": true
+ },
+ {
+ "idx": 9,
+ "version": "7",
+ "when": 1752056714510,
+ "tag": "0009_v0-22-0-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 10,
+ "version": "7",
+ "when": 1753084974762,
+ "tag": "0010_v0-22-0-2",
+ "breakpoints": true
+ },
+ {
+ "idx": 11,
+ "version": "7",
+ "when": 1754396961710,
+ "tag": "0011_v0-22-1-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 12,
+ "version": "7",
+ "when": 1754661913554,
+ "tag": "0012_v0-24-0-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 13,
+ "version": "7",
+ "when": 1755074095394,
+ "tag": "0013_v0-24-0-2",
+ "breakpoints": true
+ },
+ {
+ "idx": 14,
+ "version": "7",
+ "when": 1760450273146,
+ "tag": "0014_smart_malice",
+ "breakpoints": true
+ }
+ ]
+}
\ No newline at end of file
From 028a2bc9b8020fa492c10821200bad8072a468c1 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Tue, 14 Oct 2025 16:08:48 +0200
Subject: [PATCH 033/243] chore: update pnpm
---
.github/workflows/deploy-docs-test.yml | 2 +-
.github/workflows/deploy-docs.yml | 2 +-
.github/workflows/release.yml | 2 +-
.github/workflows/tests.yml | 6 +++---
fdm-app/package.json | 2 +-
fdm-calculator/package.json | 2 +-
fdm-core/package.json | 2 +-
fdm-data/package.json | 2 +-
fdm-docs/package.json | 2 +-
package.json | 2 +-
10 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/.github/workflows/deploy-docs-test.yml b/.github/workflows/deploy-docs-test.yml
index f2f11bc81..01fd4ca6f 100644
--- a/.github/workflows/deploy-docs-test.yml
+++ b/.github/workflows/deploy-docs-test.yml
@@ -35,7 +35,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
- version: 10.17.0
+ version: 10.18.3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml
index aed5acb37..5f57586ae 100644
--- a/.github/workflows/deploy-docs.yml
+++ b/.github/workflows/deploy-docs.yml
@@ -38,7 +38,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
- version: 10.17.0
+ version: 10.18.3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 064206399..8b216c56d 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -37,7 +37,7 @@ jobs:
- name: Setup pnpm 10
uses: pnpm/action-setup@v4
with:
- version: 10.17.0
+ version: 10.18.3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 8b792301c..b8ec75904 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -53,7 +53,7 @@ jobs:
- name: Setup pnpm 10
uses: pnpm/action-setup@v4
with:
- version: 10.17.0
+ version: 10.18.3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
@@ -146,7 +146,7 @@ jobs:
- name: Setup pnpm 10
uses: pnpm/action-setup@v4
with:
- version: 10.17.0
+ version: 10.18.3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
@@ -226,7 +226,7 @@ jobs:
- name: Setup pnpm 10
uses: pnpm/action-setup@v4
with:
- version: 10.17.0
+ version: 10.18.3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
diff --git a/fdm-app/package.json b/fdm-app/package.json
index fa98e58c9..7981c8d11 100644
--- a/fdm-app/package.json
+++ b/fdm-app/package.json
@@ -106,5 +106,5 @@
"engines": {
"node": ">=20.0.0"
},
- "packageManager": "pnpm@10.17.0"
+ "packageManager": "pnpm@10.18.3"
}
diff --git a/fdm-calculator/package.json b/fdm-calculator/package.json
index 7845cb85e..22667b029 100644
--- a/fdm-calculator/package.json
+++ b/fdm-calculator/package.json
@@ -61,5 +61,5 @@
"typescript": "catalog:",
"vitest": "catalog:"
},
- "packageManager": "pnpm@10.17.0"
+ "packageManager": "pnpm@10.18.3"
}
diff --git a/fdm-core/package.json b/fdm-core/package.json
index 2422765bc..8a862bca1 100644
--- a/fdm-core/package.json
+++ b/fdm-core/package.json
@@ -73,7 +73,7 @@
"postgres": "^3.4.7",
"unique-username-generator": "^1.5.1"
},
- "packageManager": "pnpm@10.17.0",
+ "packageManager": "pnpm@10.18.3",
"publishConfig": {
"registry": "https://npm.pkg.github.com"
}
diff --git a/fdm-data/package.json b/fdm-data/package.json
index dba82c157..c820aa5d4 100644
--- a/fdm-data/package.json
+++ b/fdm-data/package.json
@@ -57,7 +57,7 @@
"typescript": "catalog:",
"vitest": "catalog:"
},
- "packageManager": "pnpm@10.17.0",
+ "packageManager": "pnpm@10.18.3",
"publishConfig": {
"registry": "https://npm.pkg.github.com"
},
diff --git a/fdm-docs/package.json b/fdm-docs/package.json
index 880a2da95..5989819e2 100644
--- a/fdm-docs/package.json
+++ b/fdm-docs/package.json
@@ -53,5 +53,5 @@
"engines": {
"node": ">=18.0"
},
- "packageManager": "pnpm@10.14.0"
+ "packageManager": "pnpm@10.18.3"
}
diff --git a/package.json b/package.json
index 01e6c30af..9c78d9202 100644
--- a/package.json
+++ b/package.json
@@ -29,7 +29,7 @@
"@changesets/cli": "^2.29.7",
"turbo": "^2.5.6"
},
- "packageManager": "pnpm@10.17.0",
+ "packageManager": "pnpm@10.18.3",
"pnpm": {
"packageExtensions": {
"vite-plugin-dts": {
From 6cbed2211d10ebc4a963d98ae6110f86e917369b Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Tue, 14 Oct 2025 16:09:40 +0200
Subject: [PATCH 034/243] chore: update turbo
---
package.json | 2 +-
pnpm-lock.yaml | 58 +++++++++++++++++++++++++-------------------------
2 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/package.json b/package.json
index 9c78d9202..e9650deff 100644
--- a/package.json
+++ b/package.json
@@ -27,7 +27,7 @@
"devDependencies": {
"@biomejs/biome": "^2.2.4",
"@changesets/cli": "^2.29.7",
- "turbo": "^2.5.6"
+ "turbo": "^2.5.8"
},
"packageManager": "pnpm@10.18.3",
"pnpm": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index abaf3dcbd..b16aead45 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -74,8 +74,8 @@ importers:
specifier: ^2.29.7
version: 2.29.7(@types/node@24.5.2)
turbo:
- specifier: ^2.5.6
- version: 2.5.6
+ specifier: ^2.5.8
+ version: 2.5.8
fdm-app:
dependencies:
@@ -9972,41 +9972,41 @@ packages:
resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==}
engines: {node: '>= 6.0.0'}
- turbo-darwin-64@2.5.6:
- resolution: {integrity: sha512-3C1xEdo4aFwMJAPvtlPqz1Sw/+cddWIOmsalHFMrsqqydcptwBfu26WW2cDm3u93bUzMbBJ8k3zNKFqxJ9ei2A==}
+ turbo-darwin-64@2.5.8:
+ resolution: {integrity: sha512-Dh5bCACiHO8rUXZLpKw+m3FiHtAp2CkanSyJre+SInEvEr5kIxjGvCK/8MFX8SFRjQuhjtvpIvYYZJB4AGCxNQ==}
cpu: [x64]
os: [darwin]
- turbo-darwin-arm64@2.5.6:
- resolution: {integrity: sha512-LyiG+rD7JhMfYwLqB6k3LZQtYn8CQQUePbpA8mF/hMLPAekXdJo1g0bUPw8RZLwQXUIU/3BU7tXENvhSGz5DPA==}
+ turbo-darwin-arm64@2.5.8:
+ resolution: {integrity: sha512-f1H/tQC9px7+hmXn6Kx/w8Jd/FneIUnvLlcI/7RGHunxfOkKJKvsoiNzySkoHQ8uq1pJnhJ0xNGTlYM48ZaJOQ==}
cpu: [arm64]
os: [darwin]
- turbo-linux-64@2.5.6:
- resolution: {integrity: sha512-GOcUTT0xiT/pSnHL4YD6Yr3HreUhU8pUcGqcI2ksIF9b2/r/kRHwGFcsHgpG3+vtZF/kwsP0MV8FTlTObxsYIA==}
+ turbo-linux-64@2.5.8:
+ resolution: {integrity: sha512-hMyvc7w7yadBlZBGl/bnR6O+dJTx3XkTeyTTH4zEjERO6ChEs0SrN8jTFj1lueNXKIHh1SnALmy6VctKMGnWfw==}
cpu: [x64]
os: [linux]
- turbo-linux-arm64@2.5.6:
- resolution: {integrity: sha512-10Tm15bruJEA3m0V7iZcnQBpObGBcOgUcO+sY7/2vk1bweW34LMhkWi8svjV9iDF68+KJDThnYDlYE/bc7/zzQ==}
+ turbo-linux-arm64@2.5.8:
+ resolution: {integrity: sha512-LQELGa7bAqV2f+3rTMRPnj5G/OHAe2U+0N9BwsZvfMvHSUbsQ3bBMWdSQaYNicok7wOZcHjz2TkESn1hYK6xIQ==}
cpu: [arm64]
os: [linux]
turbo-stream@3.1.0:
resolution: {integrity: sha512-tVI25WEXl4fckNEmrq70xU1XumxUwEx/FZD5AgEcV8ri7Wvrg2o7GEq8U7htrNx3CajciGm+kDyhRf5JB6t7/A==}
- turbo-windows-64@2.5.6:
- resolution: {integrity: sha512-FyRsVpgaj76It0ludwZsNN40ytHN+17E4PFJyeliBEbxrGTc5BexlXVpufB7XlAaoaZVxbS6KT8RofLfDRyEPg==}
+ turbo-windows-64@2.5.8:
+ resolution: {integrity: sha512-3YdcaW34TrN1AWwqgYL9gUqmZsMT4T7g8Y5Azz+uwwEJW+4sgcJkIi9pYFyU4ZBSjBvkfuPZkGgfStir5BBDJQ==}
cpu: [x64]
os: [win32]
- turbo-windows-arm64@2.5.6:
- resolution: {integrity: sha512-j/tWu8cMeQ7HPpKri6jvKtyXg9K1gRyhdK4tKrrchH8GNHscPX/F71zax58yYtLRWTiK04zNzPcUJuoS0+v/+Q==}
+ turbo-windows-arm64@2.5.8:
+ resolution: {integrity: sha512-eFC5XzLmgXJfnAK3UMTmVECCwuBcORrWdewoiXBnUm934DY6QN8YowC/srhNnROMpaKaqNeRpoB5FxCww3eteQ==}
cpu: [arm64]
os: [win32]
- turbo@2.5.6:
- resolution: {integrity: sha512-gxToHmi9oTBNB05UjUsrWf0OyN5ZXtD0apOarC1KIx232Vp3WimRNy3810QzeNSgyD5rsaIDXlxlbnOzlouo+w==}
+ turbo@2.5.8:
+ resolution: {integrity: sha512-5c9Fdsr9qfpT3hA0EyYSFRZj1dVVsb6KIWubA9JBYZ/9ZEAijgUEae0BBR/Xl/wekt4w65/lYLTFaP3JmwSO8w==}
hasBin: true
type-fest@0.18.1:
@@ -22495,35 +22495,35 @@ snapshots:
dependencies:
tslib: 1.14.1
- turbo-darwin-64@2.5.6:
+ turbo-darwin-64@2.5.8:
optional: true
- turbo-darwin-arm64@2.5.6:
+ turbo-darwin-arm64@2.5.8:
optional: true
- turbo-linux-64@2.5.6:
+ turbo-linux-64@2.5.8:
optional: true
- turbo-linux-arm64@2.5.6:
+ turbo-linux-arm64@2.5.8:
optional: true
turbo-stream@3.1.0:
optional: true
- turbo-windows-64@2.5.6:
+ turbo-windows-64@2.5.8:
optional: true
- turbo-windows-arm64@2.5.6:
+ turbo-windows-arm64@2.5.8:
optional: true
- turbo@2.5.6:
+ turbo@2.5.8:
optionalDependencies:
- turbo-darwin-64: 2.5.6
- turbo-darwin-arm64: 2.5.6
- turbo-linux-64: 2.5.6
- turbo-linux-arm64: 2.5.6
- turbo-windows-64: 2.5.6
- turbo-windows-arm64: 2.5.6
+ turbo-darwin-64: 2.5.8
+ turbo-darwin-arm64: 2.5.8
+ turbo-linux-64: 2.5.8
+ turbo-linux-arm64: 2.5.8
+ turbo-windows-64: 2.5.8
+ turbo-windows-arm64: 2.5.8
type-fest@0.18.1: {}
From 7b46b887fcbc612b2dec15e72ef0d456af0b5eca Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Tue, 14 Oct 2025 16:10:21 +0200
Subject: [PATCH 035/243] chore: update root packages
---
package.json | 2 +-
pnpm-lock.yaml | 107 ++++++++++++++++++++++++++-----------------------
2 files changed, 58 insertions(+), 51 deletions(-)
diff --git a/package.json b/package.json
index e9650deff..70ea4212d 100644
--- a/package.json
+++ b/package.json
@@ -25,7 +25,7 @@
"format-and-lint:fix-unsafe": "biome check . --write --unsafe"
},
"devDependencies": {
- "@biomejs/biome": "^2.2.4",
+ "@biomejs/biome": "^2.2.6",
"@changesets/cli": "^2.29.7",
"turbo": "^2.5.8"
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b16aead45..96d3230f3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -68,8 +68,8 @@ importers:
.:
devDependencies:
'@biomejs/biome':
- specifier: ^2.2.4
- version: 2.2.4
+ specifier: ^2.2.6
+ version: 2.2.6
'@changesets/cli':
specifier: ^2.29.7
version: 2.29.7(@types/node@24.5.2)
@@ -1231,55 +1231,55 @@ packages:
'@better-fetch/fetch@1.1.18':
resolution: {integrity: sha512-rEFOE1MYIsBmoMJtQbl32PGHHXuG2hDxvEd7rUHE0vCBoFQVSDqaVs9hkZEtHCxRoY+CljXKFCOuJ8uxqw1LcA==}
- '@biomejs/biome@2.2.4':
- resolution: {integrity: sha512-TBHU5bUy/Ok6m8c0y3pZiuO/BZoY/OcGxoLlrfQof5s8ISVwbVBdFINPQZyFfKwil8XibYWb7JMwnT8wT4WVPg==}
+ '@biomejs/biome@2.2.6':
+ resolution: {integrity: sha512-yKTCNGhek0rL5OEW1jbLeZX8LHaM8yk7+3JRGv08my+gkpmtb5dDE+54r2ZjZx0ediFEn1pYBOJSmOdDP9xtFw==}
engines: {node: '>=14.21.3'}
hasBin: true
- '@biomejs/cli-darwin-arm64@2.2.4':
- resolution: {integrity: sha512-RJe2uiyaloN4hne4d2+qVj3d3gFJFbmrr5PYtkkjei1O9c+BjGXgpUPVbi8Pl8syumhzJjFsSIYkcLt2VlVLMA==}
+ '@biomejs/cli-darwin-arm64@2.2.6':
+ resolution: {integrity: sha512-UZPmn3M45CjTYulgcrFJFZv7YmK3pTxTJDrFYlNElT2FNnkkX4fsxjExTSMeWKQYoZjvekpH5cvrYZZlWu3yfA==}
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [darwin]
- '@biomejs/cli-darwin-x64@2.2.4':
- resolution: {integrity: sha512-cFsdB4ePanVWfTnPVaUX+yr8qV8ifxjBKMkZwN7gKb20qXPxd/PmwqUH8mY5wnM9+U0QwM76CxFyBRJhC9tQwg==}
+ '@biomejs/cli-darwin-x64@2.2.6':
+ resolution: {integrity: sha512-HOUIquhHVgh/jvxyClpwlpl/oeMqntlteL89YqjuFDiZ091P0vhHccwz+8muu3nTyHWM5FQslt+4Jdcd67+xWQ==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [darwin]
- '@biomejs/cli-linux-arm64-musl@2.2.4':
- resolution: {integrity: sha512-7TNPkMQEWfjvJDaZRSkDCPT/2r5ESFPKx+TEev+I2BXDGIjfCZk2+b88FOhnJNHtksbOZv8ZWnxrA5gyTYhSsQ==}
+ '@biomejs/cli-linux-arm64-musl@2.2.6':
+ resolution: {integrity: sha512-TjCenQq3N6g1C+5UT3jE1bIiJb5MWQvulpUngTIpFsL4StVAUXucWD0SL9MCW89Tm6awWfeXBbZBAhJwjyFbRQ==}
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [linux]
- '@biomejs/cli-linux-arm64@2.2.4':
- resolution: {integrity: sha512-M/Iz48p4NAzMXOuH+tsn5BvG/Jb07KOMTdSVwJpicmhN309BeEyRyQX+n1XDF0JVSlu28+hiTQ2L4rZPvu7nMw==}
+ '@biomejs/cli-linux-arm64@2.2.6':
+ resolution: {integrity: sha512-BpGtuMJGN+o8pQjvYsUKZ+4JEErxdSmcRD/JG3mXoWc6zrcA7OkuyGFN1mDggO0Q1n7qXxo/PcupHk8gzijt5g==}
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [linux]
- '@biomejs/cli-linux-x64-musl@2.2.4':
- resolution: {integrity: sha512-m41nFDS0ksXK2gwXL6W6yZTYPMH0LughqbsxInSKetoH6morVj43szqKx79Iudkp8WRT5SxSh7qVb8KCUiewGg==}
+ '@biomejs/cli-linux-x64-musl@2.2.6':
+ resolution: {integrity: sha512-1ZcBux8zVM3JhWN2ZCPaYf0+ogxXG316uaoXJdgoPZcdK/rmRcRY7PqHdAos2ExzvjIdvhQp72UcveI98hgOog==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [linux]
- '@biomejs/cli-linux-x64@2.2.4':
- resolution: {integrity: sha512-orr3nnf2Dpb2ssl6aihQtvcKtLySLta4E2UcXdp7+RTa7mfJjBgIsbS0B9GC8gVu0hjOu021aU8b3/I1tn+pVQ==}
+ '@biomejs/cli-linux-x64@2.2.6':
+ resolution: {integrity: sha512-1HaM/dpI/1Z68zp8ZdT6EiBq+/O/z97a2AiHMl+VAdv5/ELckFt9EvRb8hDHpk8hUMoz03gXkC7VPXOVtU7faA==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [linux]
- '@biomejs/cli-win32-arm64@2.2.4':
- resolution: {integrity: sha512-NXnfTeKHDFUWfxAefa57DiGmu9VyKi0cDqFpdI+1hJWQjGJhJutHPX0b5m+eXvTKOaf+brU+P0JrQAZMb5yYaQ==}
+ '@biomejs/cli-win32-arm64@2.2.6':
+ resolution: {integrity: sha512-h3A88G8PGM1ryTeZyLlSdfC/gz3e95EJw9BZmA6Po412DRqwqPBa2Y9U+4ZSGUAXCsnSQE00jLV8Pyrh0d+jQw==}
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [win32]
- '@biomejs/cli-win32-x64@2.2.4':
- resolution: {integrity: sha512-3Y4V4zVRarVh/B/eSHczR4LYoSVyv3Dfuvm3cWs5w/HScccS0+Wt/lHOcDTRYeHjQmMYVC3rIRWqyN2EI52+zg==}
+ '@biomejs/cli-win32-x64@2.2.6':
+ resolution: {integrity: sha512-yx0CqeOhPjYQ5ZXgPfu8QYkgBhVJyvWe36as7jRuPrKPO5ylVDfwVtPQ+K/mooNTADW0IhxOZm3aPu16dP8yNQ==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [win32]
@@ -6930,8 +6930,8 @@ packages:
resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
engines: {node: '>= 6'}
- human-id@4.1.1:
- resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==}
+ human-id@4.1.2:
+ resolution: {integrity: sha512-v/J+4Z/1eIJovEBdlV5TYj1IR+ZiohcYGRY+qN/oC9dAfKzVT023N/Bgw37hrKCoVRBvk3bqyzpr2PP5YeTMSg==}
hasBin: true
human-signals@2.1.0:
@@ -9467,6 +9467,11 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ semver@7.7.3:
+ resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
+ engines: {node: '>=10'}
+ hasBin: true
+
send@0.19.0:
resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
engines: {node: '>= 0.8.0'}
@@ -11510,39 +11515,39 @@ snapshots:
'@better-fetch/fetch@1.1.18': {}
- '@biomejs/biome@2.2.4':
+ '@biomejs/biome@2.2.6':
optionalDependencies:
- '@biomejs/cli-darwin-arm64': 2.2.4
- '@biomejs/cli-darwin-x64': 2.2.4
- '@biomejs/cli-linux-arm64': 2.2.4
- '@biomejs/cli-linux-arm64-musl': 2.2.4
- '@biomejs/cli-linux-x64': 2.2.4
- '@biomejs/cli-linux-x64-musl': 2.2.4
- '@biomejs/cli-win32-arm64': 2.2.4
- '@biomejs/cli-win32-x64': 2.2.4
-
- '@biomejs/cli-darwin-arm64@2.2.4':
+ '@biomejs/cli-darwin-arm64': 2.2.6
+ '@biomejs/cli-darwin-x64': 2.2.6
+ '@biomejs/cli-linux-arm64': 2.2.6
+ '@biomejs/cli-linux-arm64-musl': 2.2.6
+ '@biomejs/cli-linux-x64': 2.2.6
+ '@biomejs/cli-linux-x64-musl': 2.2.6
+ '@biomejs/cli-win32-arm64': 2.2.6
+ '@biomejs/cli-win32-x64': 2.2.6
+
+ '@biomejs/cli-darwin-arm64@2.2.6':
optional: true
- '@biomejs/cli-darwin-x64@2.2.4':
+ '@biomejs/cli-darwin-x64@2.2.6':
optional: true
- '@biomejs/cli-linux-arm64-musl@2.2.4':
+ '@biomejs/cli-linux-arm64-musl@2.2.6':
optional: true
- '@biomejs/cli-linux-arm64@2.2.4':
+ '@biomejs/cli-linux-arm64@2.2.6':
optional: true
- '@biomejs/cli-linux-x64-musl@2.2.4':
+ '@biomejs/cli-linux-x64-musl@2.2.6':
optional: true
- '@biomejs/cli-linux-x64@2.2.4':
+ '@biomejs/cli-linux-x64@2.2.6':
optional: true
- '@biomejs/cli-win32-arm64@2.2.4':
+ '@biomejs/cli-win32-arm64@2.2.6':
optional: true
- '@biomejs/cli-win32-x64@2.2.4':
+ '@biomejs/cli-win32-x64@2.2.6':
optional: true
'@borewit/text-codec@0.1.1': {}
@@ -11561,7 +11566,7 @@ snapshots:
outdent: 0.5.0
prettier: 2.8.8
resolve-from: 5.0.0
- semver: 7.7.2
+ semver: 7.7.3
'@changesets/assemble-release-plan@6.0.9':
dependencies:
@@ -11570,7 +11575,7 @@ snapshots:
'@changesets/should-skip-package': 0.1.2
'@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
- semver: 7.7.2
+ semver: 7.7.3
'@changesets/changelog-git@0.2.1':
dependencies:
@@ -11603,7 +11608,7 @@ snapshots:
package-manager-detector: 0.2.11
picocolors: 1.1.1
resolve-from: 5.0.0
- semver: 7.7.2
+ semver: 7.7.3
spawndamnit: 3.0.1
term-size: 2.2.1
transitivePeerDependencies:
@@ -11628,7 +11633,7 @@ snapshots:
'@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
picocolors: 1.1.1
- semver: 7.7.2
+ semver: 7.7.3
'@changesets/get-release-plan@4.0.13':
dependencies:
@@ -11688,7 +11693,7 @@ snapshots:
dependencies:
'@changesets/types': 6.1.0
fs-extra: 7.0.1
- human-id: 4.1.1
+ human-id: 4.1.2
prettier: 2.8.8
'@colors/colors@1.5.0':
@@ -13504,7 +13509,7 @@ snapshots:
'@types/shimmer': 1.2.0
import-in-the-middle: 1.14.2
require-in-the-middle: 7.5.2
- semver: 7.7.2
+ semver: 7.7.3
shimmer: 1.2.1
transitivePeerDependencies:
- supports-color
@@ -19066,7 +19071,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- human-id@4.1.1: {}
+ human-id@4.1.2: {}
human-signals@2.1.0: {}
@@ -19615,7 +19620,7 @@ snapshots:
make-dir@4.0.0:
dependencies:
- semver: 7.7.2
+ semver: 7.7.3
map-obj@1.0.1: {}
@@ -20335,7 +20340,7 @@ snapshots:
node-abi@3.77.0:
dependencies:
- semver: 7.7.2
+ semver: 7.7.3
node-emoji@2.2.0:
dependencies:
@@ -20363,7 +20368,7 @@ snapshots:
dependencies:
hosted-git-info: 4.1.0
is-core-module: 2.16.1
- semver: 7.7.2
+ semver: 7.7.3
validate-npm-package-license: 3.0.4
normalize-package-data@5.0.0:
@@ -21950,6 +21955,8 @@ snapshots:
semver@7.7.2: {}
+ semver@7.7.3: {}
+
send@0.19.0:
dependencies:
debug: 2.6.9
From ebecab312f694802b08e57883a585e3e97e10c88 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Tue, 14 Oct 2025 16:16:59 +0200
Subject: [PATCH 036/243] Update .changeset/wide-apes-hear.md
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
---
.changeset/wide-apes-hear.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.changeset/wide-apes-hear.md b/.changeset/wide-apes-hear.md
index 4e429808c..e12eecc4b 100644
--- a/.changeset/wide-apes-hear.md
+++ b/.changeset/wide-apes-hear.md
@@ -2,4 +2,4 @@
"@svenvw/fdm-core": patch
---
-Add the missing options for b_acquiring_method: "In gebuik van een terreinbeherende organisatie" (nl_03), "Tijdelijk gebuik in het kader van landinrichting" (nl_04), "Pacht van geringe oppervlakten" (nl_10) and "Natuurpacht" (nl_11)
+Add the missing options for b_acquiring_method: "In gebruik van een terreinbeherende organisatie" (nl_03), "Tijdelijk gebruik in het kader van landinrichting" (nl_04), "Pacht van geringe oppervlakten" (nl_10) and "Natuurpacht" (nl_11)
From 3933c04852b9dda3e0e2ddcfee69beb0221e2d6a Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Tue, 14 Oct 2025 16:17:09 +0200
Subject: [PATCH 037/243] Update fdm-core/src/db/schema.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
---
fdm-core/src/db/schema.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fdm-core/src/db/schema.ts b/fdm-core/src/db/schema.ts
index 80b887ea0..336b3bd59 100644
--- a/fdm-core/src/db/schema.ts
+++ b/fdm-core/src/db/schema.ts
@@ -37,10 +37,10 @@ export type farmsTypeInsert = typeof farms.$inferInsert
export const acquiringMethodOptions = [
{ value: "nl_01", label: "Eigendom" },
{ value: "nl_02", label: "Reguliere pacht" },
- { value: "nl_03", label: "In gebuik van een terreinbeherende organisatie" },
+ { value: "nl_03", label: "In gebruik van een terreinbeherende organisatie" },
{
value: "nl_04",
- label: "Tijdelijk gebuik in het kader van landinrichting",
+ label: "Tijdelijk gebruik in het kader van landinrichting",
},
{ value: "nl_07", label: "Overige exploitatievormen" },
{ value: "nl_09", label: "Erfpacht" },
From 1d0972cc01656dbee6ff640474c5e7aaf228a802 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Tue, 14 Oct 2025 16:19:47 +0200
Subject: [PATCH 038/243] chore: update minor dependencies
---
fdm-app/package.json | 50 +-
fdm-core/package.json | 6 +-
fdm-docs/package.json | 8 +-
pnpm-lock.yaml | 4745 +++++++++++++++++++++++------------------
pnpm-workspace.yaml | 20 +-
5 files changed, 2666 insertions(+), 2163 deletions(-)
diff --git a/fdm-app/package.json b/fdm-app/package.json
index 7981c8d11..9040c9cff 100644
--- a/fdm-app/package.json
+++ b/fdm-app/package.json
@@ -22,18 +22,18 @@
"@radix-ui/react-icons": "^1.3.2",
"@radix-ui/react-slot": "^1.2.3",
"@radix-ui/react-switch": "^1.2.6",
- "@react-email/components": "^0.5.3",
+ "@react-email/components": "^0.5.6",
"@react-email/tailwind": "1.2.2",
- "@react-router/node": "^7.9.1",
- "@react-router/serve": "^7.9.1",
+ "@react-router/node": "^7.9.4",
+ "@react-router/serve": "^7.9.4",
"@remix-run/file-storage": "^0.9.0",
"@remix-run/form-data-parser": "^0.10.1",
- "@sentry/profiling-node": "^10.12.0",
- "@sentry/react-router": "^10.12.0",
+ "@sentry/profiling-node": "^10.19.0",
+ "@sentry/react-router": "^10.19.0",
"@svenvw/fdm-calculator": "workspace:^",
"@svenvw/fdm-core": "workspace:^",
"@svenvw/fdm-data": "workspace:*",
- "@tailwindcss/vite": "^4.1.13",
+ "@tailwindcss/vite": "^4.1.14",
"@tanstack/react-table": "^8.21.3",
"@turf/centroid": "^7.2.0",
"@turf/turf": "^7.2.0",
@@ -44,34 +44,34 @@
"date-fns": "^4.1.0",
"drizzle-orm": "catalog:",
"file-type": "^21.0.0",
- "flatgeobuf": "^4.2.0",
- "framer-motion": "^12.23.14",
+ "flatgeobuf": "^4.3.1",
+ "framer-motion": "^12.23.24",
"fuzzysort": "^3.1.0",
- "isbot": "^5.1.30",
+ "isbot": "^5.1.31",
"lodash.throttle": "^4.1.1",
"lucide-react": "^0.544.0",
"mapbox-gl": "^3.15.0",
"next-themes": "^0.4.6",
"postgres": "^3.4.7",
- "posthog-js": "^1.266.0",
- "posthog-node": "^5.8.4",
+ "posthog-js": "^1.275.2",
+ "posthog-node": "^5.10.0",
"postmark": "^4.0.5",
"proj4": "^2.19.10",
"radix-ui": "^1.4.3",
- "react": "^19.1.1",
+ "react": "^19.2.0",
"react-day-picker": "9.10.0",
- "react-dom": "^19.1.1",
- "react-hook-form": "^7.62.0",
- "react-map-gl": "^8.0.4",
+ "react-dom": "^19.2.0",
+ "react-hook-form": "^7.65.0",
+ "react-map-gl": "^8.1.0",
"react-markdown": "^10.1.0",
- "react-router": "^7.9.1",
- "react-router-dom": "^7.9.1",
+ "react-router": "^7.9.4",
+ "react-router-dom": "^7.9.4",
"recharts": "^2.15.4",
"remark-gfm": "^4.0.1",
"remix-hook-form": "7.1.0",
- "remix-toast": "^3.2.0",
+ "remix-toast": "^3.3.0",
"remix-utils": "^8.8.0",
- "shpjs": "^6.1.0",
+ "shpjs": "^6.2.0",
"sonner": "^2.0.7",
"tailwind-merge": "^3.3.1",
"tailwindcss-animate": "^1.0.7",
@@ -82,23 +82,23 @@
},
"devDependencies": {
"@dotenvx/dotenvx": "catalog:",
- "@react-router/dev": "^7.9.1",
- "@react-router/fs-routes": "^7.9.1",
+ "@react-router/dev": "^7.9.4",
+ "@react-router/fs-routes": "^7.9.4",
"@svenvw/fdm-calculator": "workspace:*",
"@svenvw/fdm-core": "workspace:*",
"@svenvw/fdm-data": "workspace:*",
- "@tailwindcss/postcss": "^4.1.13",
+ "@tailwindcss/postcss": "^4.1.14",
"@types/geojson": "^7946.0.16",
"@types/lodash.throttle": "^4.1.9",
"@types/mapbox-gl": "^3.4.1",
"@types/mapbox__geojson-extent": "^1.0.3",
"@types/mapbox__mapbox-gl-geocoder": "^5.0.0",
- "@types/react": "^19.1.13",
- "@types/react-dom": "^19.1.9",
+ "@types/react": "^19.2.2",
+ "@types/react-dom": "^19.2.2",
"@types/react-map-gl": "^6.1.7",
"@types/validator": "^13.15.3",
"postcss": "^8.5.6",
- "tailwindcss": "^4.1.13",
+ "tailwindcss": "^4.1.14",
"typescript": "catalog:",
"vite": "catalog:",
"vite-tsconfig-paths": "catalog:"
diff --git a/fdm-core/package.json b/fdm-core/package.json
index 8a862bca1..fc3fe5085 100644
--- a/fdm-core/package.json
+++ b/fdm-core/package.json
@@ -51,7 +51,7 @@
"@rollup/plugin-terser": "catalog:",
"@rollup/plugin-typescript": "catalog:",
"@svenvw/fdm-data": "workspace:^0.17.1",
- "@types/node": "^24.5.2",
+ "@types/node": "^24.7.2",
"@vitest/coverage-v8": "catalog:",
"drizzle-kit": "catalog:",
"fs-extra": "^11.3.2",
@@ -64,12 +64,12 @@
"vitest": "catalog:"
},
"dependencies": {
- "@electric-sql/pglite": "^0.3.8",
+ "@electric-sql/pglite": "^0.3.11",
"@svenvw/fdm-data": "workspace:*",
"@types/geojson": "^7946.0.16",
"better-auth": "catalog:",
"drizzle-orm": "catalog:",
- "nanoid": "^5.1.5",
+ "nanoid": "^5.1.6",
"postgres": "^3.4.7",
"unique-username-generator": "^1.5.1"
},
diff --git a/fdm-docs/package.json b/fdm-docs/package.json
index 5989819e2..c9072fff1 100644
--- a/fdm-docs/package.json
+++ b/fdm-docs/package.json
@@ -20,14 +20,14 @@
},
"dependencies": {
"@docusaurus/core": "3.8.1",
- "@docusaurus/faster": "^3.8.1",
+ "@docusaurus/faster": "^3.9.1",
"@docusaurus/preset-classic": "3.8.1",
"@mdx-js/react": "^3.1.1",
"clsx": "^2.1.1",
"lucide-react": "^0.544.0",
"prism-react-renderer": "^2.4.1",
- "react": "^19.1.1",
- "react-dom": "^19.1.1"
+ "react": "^19.2.0",
+ "react-dom": "^19.2.0"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "3.8.1",
@@ -35,7 +35,7 @@
"@docusaurus/types": "3.8.1",
"docusaurus-plugin-typedoc": "^1.4.2",
"typedoc": "catalog:",
- "typedoc-plugin-markdown": "^4.8.1",
+ "typedoc-plugin-markdown": "^4.9.0",
"typescript": "catalog:"
},
"browserslist": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 96d3230f3..1d4b782ee 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -7,7 +7,7 @@ settings:
catalogs:
default:
'@dotenvx/dotenvx':
- specifier: ^1.49.1
+ specifier: ^1.51.0
version: 1.48.4
'@rollup/plugin-commonjs':
specifier: ^28.0.6
@@ -16,7 +16,7 @@ catalogs:
specifier: ^6.1.0
version: 6.1.0
'@rollup/plugin-node-resolve':
- specifier: ^16.0.1
+ specifier: ^16.0.3
version: 16.0.1
'@rollup/plugin-terser':
specifier: ^0.4.4
@@ -28,32 +28,32 @@ catalogs:
specifier: 3.2.4
version: 3.2.4
better-auth:
- specifier: ^1.3.26
+ specifier: ^1.3.27
version: 1.3.27
drizzle-kit:
- specifier: ^0.31.4
- version: 0.31.4
+ specifier: ^0.31.5
+ version: 0.31.5
drizzle-orm:
- specifier: ^0.44.5
+ specifier: ^0.44.6
version: 0.44.4
rollup:
- specifier: ^4.50.2
+ specifier: ^4.52.4
version: 4.50.2
rollup-plugin-polyfill-node:
specifier: ^0.13.0
version: 0.13.0
typedoc:
- specifier: ^0.28.13
+ specifier: ^0.28.14
version: 0.28.13
typedoc-plugin-missing-exports:
- specifier: ^4.1.0
+ specifier: ^4.1.2
version: 4.1.0
typescript:
- specifier: ^5.9.2
+ specifier: ^5.9.3
version: 5.9.2
vite:
- specifier: ^7.1.6
- version: 7.1.6
+ specifier: ^7.1.10
+ version: 7.1.10
vite-tsconfig-paths:
specifier: ^5.1.4
version: 5.1.4
@@ -72,7 +72,7 @@ importers:
version: 2.2.6
'@changesets/cli':
specifier: ^2.29.7
- version: 2.29.7(@types/node@24.5.2)
+ version: 2.29.7(@types/node@24.7.2)
turbo:
specifier: ^2.5.8
version: 2.5.8
@@ -84,7 +84,7 @@ importers:
version: 1.4.1
'@hookform/resolvers':
specifier: ^5.2.2
- version: 5.2.2(react-hook-form@7.62.0(react@19.1.1))
+ version: 5.2.2(react-hook-form@7.65.0(react@19.2.0))
'@mapbox/geojson-extent':
specifier: ^1.0.1
version: 1.0.1
@@ -93,28 +93,28 @@ importers:
version: 5.1.2
'@radix-ui/react-alert-dialog':
specifier: ^1.1.15
- version: 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ version: 1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@radix-ui/react-icons':
specifier: ^1.3.2
- version: 1.3.2(react@19.1.1)
+ version: 1.3.2(react@19.2.0)
'@radix-ui/react-slot':
specifier: ^1.2.3
- version: 1.2.3(@types/react@19.1.13)(react@19.1.1)
+ version: 1.2.3(@types/react@19.2.2)(react@19.2.0)
'@radix-ui/react-switch':
specifier: ^1.2.6
- version: 1.2.6(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ version: 1.2.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@react-email/components':
- specifier: ^0.5.3
- version: 0.5.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ specifier: ^0.5.6
+ version: 0.5.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@react-email/tailwind':
specifier: 1.2.2
- version: 1.2.2(react@19.1.1)
+ version: 1.2.2(react@19.2.0)
'@react-router/node':
- specifier: ^7.9.1
- version: 7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2)
+ specifier: ^7.9.4
+ version: 7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3)
'@react-router/serve':
- specifier: ^7.9.1
- version: 7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2)
+ specifier: ^7.9.4
+ version: 7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3)
'@remix-run/file-storage':
specifier: ^0.9.0
version: 0.9.0
@@ -122,11 +122,11 @@ importers:
specifier: ^0.10.1
version: 0.10.1
'@sentry/profiling-node':
- specifier: ^10.12.0
- version: 10.12.0
+ specifier: ^10.19.0
+ version: 10.19.0
'@sentry/react-router':
- specifier: ^10.12.0
- version: 10.12.0(@react-router/node@7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)
+ specifier: ^10.19.0
+ version: 10.19.0(@react-router/node@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)
'@svenvw/fdm-calculator':
specifier: workspace:^
version: link:../fdm-calculator
@@ -137,11 +137,11 @@ importers:
specifier: workspace:*
version: link:../fdm-data
'@tailwindcss/vite':
- specifier: ^4.1.13
- version: 4.1.13(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))
+ specifier: ^4.1.14
+ version: 4.1.14(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
'@tanstack/react-table':
specifier: ^8.21.3
- version: 8.21.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ version: 8.21.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@turf/centroid':
specifier: ^7.2.0
version: 7.2.0
@@ -150,7 +150,7 @@ importers:
version: 7.2.0
better-auth:
specifier: 'catalog:'
- version: 1.3.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ version: 1.3.27(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
class-variance-authority:
specifier: ^0.7.1
version: 0.7.1
@@ -159,49 +159,49 @@ importers:
version: 2.1.1
cmdk:
specifier: 1.1.1
- version: 1.1.1(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ version: 1.1.1(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
date-fns:
specifier: ^4.1.0
version: 4.1.0
drizzle-orm:
specifier: 'catalog:'
- version: 0.44.4(@electric-sql/pglite@0.3.8)(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(kysely@0.28.7)(postgres@3.4.7)
+ version: 0.44.6(@electric-sql/pglite@0.3.11)(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(kysely@0.28.8)(postgres@3.4.7)
file-type:
specifier: ^21.0.0
version: 21.0.0
flatgeobuf:
- specifier: ^4.2.0
- version: 4.2.0
+ specifier: ^4.3.1
+ version: 4.3.1
framer-motion:
- specifier: ^12.23.14
- version: 12.23.14(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ specifier: ^12.23.24
+ version: 12.23.24(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
fuzzysort:
specifier: ^3.1.0
version: 3.1.0
isbot:
- specifier: ^5.1.30
- version: 5.1.30
+ specifier: ^5.1.31
+ version: 5.1.31
lodash.throttle:
specifier: ^4.1.1
version: 4.1.1
lucide-react:
specifier: ^0.544.0
- version: 0.544.0(react@19.1.1)
+ version: 0.544.0(react@19.2.0)
mapbox-gl:
specifier: ^3.15.0
version: 3.15.0
next-themes:
specifier: ^0.4.6
- version: 0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ version: 0.4.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
postgres:
specifier: ^3.4.7
version: 3.4.7
posthog-js:
- specifier: ^1.266.0
- version: 1.266.0
+ specifier: ^1.275.2
+ version: 1.275.2
posthog-node:
- specifier: ^5.8.4
- version: 5.8.4
+ specifier: ^5.10.0
+ version: 5.10.0
postmark:
specifier: ^4.0.5
version: 4.0.5
@@ -210,83 +210,83 @@ importers:
version: 2.19.10
radix-ui:
specifier: ^1.4.3
- version: 1.4.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ version: 1.4.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react:
- specifier: ^19.1.1
- version: 19.1.1
+ specifier: ^19.2.0
+ version: 19.2.0
react-day-picker:
specifier: 9.10.0
- version: 9.10.0(react@19.1.1)
+ version: 9.10.0(react@19.2.0)
react-dom:
- specifier: ^19.1.1
- version: 19.1.1(react@19.1.1)
+ specifier: ^19.2.0
+ version: 19.2.0(react@19.2.0)
react-hook-form:
- specifier: ^7.62.0
- version: 7.62.0(react@19.1.1)
+ specifier: ^7.65.0
+ version: 7.65.0(react@19.2.0)
react-map-gl:
- specifier: ^8.0.4
- version: 8.0.4(mapbox-gl@3.15.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ specifier: ^8.1.0
+ version: 8.1.0(mapbox-gl@3.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react-markdown:
specifier: ^10.1.0
- version: 10.1.0(@types/react@19.1.13)(react@19.1.1)
+ version: 10.1.0(@types/react@19.2.2)(react@19.2.0)
react-router:
- specifier: ^7.9.1
- version: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ specifier: ^7.9.4
+ version: 7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react-router-dom:
- specifier: ^7.9.1
- version: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ specifier: ^7.9.4
+ version: 7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
recharts:
specifier: ^2.15.4
- version: 2.15.4(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ version: 2.15.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
remark-gfm:
specifier: ^4.0.1
version: 4.0.1
remix-hook-form:
specifier: 7.1.0
- version: 7.1.0(react-dom@19.1.1(react@19.1.1))(react-hook-form@7.62.0(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)
+ version: 7.1.0(react-dom@19.2.0(react@19.2.0))(react-hook-form@7.65.0(react@19.2.0))(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)
remix-toast:
- specifier: ^3.2.0
- version: 3.2.0(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))
+ specifier: ^3.3.0
+ version: 3.3.0(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))
remix-utils:
specifier: ^8.8.0
- version: 8.8.0(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(zod@3.25.76)
+ version: 8.8.0(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)(zod@3.25.76)
shpjs:
- specifier: ^6.1.0
- version: 6.1.0
+ specifier: ^6.2.0
+ version: 6.2.0
sonner:
specifier: ^2.0.7
- version: 2.0.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ version: 2.0.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
tailwind-merge:
specifier: ^3.3.1
version: 3.3.1
tailwindcss-animate:
specifier: ^1.0.7
- version: 1.0.7(tailwindcss@4.1.13)
+ version: 1.0.7(tailwindcss@4.1.14)
validator:
specifier: ^13.15.15
version: 13.15.15
vite-node:
specifier: ^3.2.4
- version: 3.2.4(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
+ version: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
zod:
specifier: ^3.25.76
version: 3.25.76
zustand:
specifier: ^5.0.8
- version: 5.0.8(@types/react@19.1.13)(react@19.1.1)(use-sync-external-store@1.5.0(react@19.1.1))
+ version: 5.0.8(@types/react@19.2.2)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0))
devDependencies:
'@dotenvx/dotenvx':
specifier: 'catalog:'
- version: 1.48.4
+ version: 1.51.0
'@react-router/dev':
- specifier: ^7.9.1
- version: 7.9.1(@react-router/serve@7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2))(@types/node@24.5.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.5.1)(lightningcss@1.30.1)(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(terser@5.44.0)(typescript@5.9.2)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1)
+ specifier: ^7.9.4
+ version: 7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1)
'@react-router/fs-routes':
- specifier: ^7.9.1
- version: 7.9.1(@react-router/dev@7.9.1(@react-router/serve@7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2))(@types/node@24.5.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.5.1)(lightningcss@1.30.1)(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(terser@5.44.0)(typescript@5.9.2)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.2)
+ specifier: ^7.9.4
+ version: 7.9.4(@react-router/dev@7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.3)
'@tailwindcss/postcss':
- specifier: ^4.1.13
- version: 4.1.13
+ specifier: ^4.1.14
+ version: 4.1.14
'@types/geojson':
specifier: ^7946.0.16
version: 7946.0.16
@@ -303,11 +303,11 @@ importers:
specifier: ^5.0.0
version: 5.0.0
'@types/react':
- specifier: ^19.1.13
- version: 19.1.13
+ specifier: ^19.2.2
+ version: 19.2.2
'@types/react-dom':
- specifier: ^19.1.9
- version: 19.1.9(@types/react@19.1.13)
+ specifier: ^19.2.2
+ version: 19.2.2(@types/react@19.2.2)
'@types/react-map-gl':
specifier: ^6.1.7
version: 6.1.7
@@ -318,17 +318,17 @@ importers:
specifier: ^8.5.6
version: 8.5.6
tailwindcss:
- specifier: ^4.1.13
- version: 4.1.13
+ specifier: ^4.1.14
+ version: 4.1.14
typescript:
specifier: 'catalog:'
- version: 5.9.2
+ version: 5.9.3
vite:
specifier: 'catalog:'
- version: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
+ version: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
vite-tsconfig-paths:
specifier: 'catalog:'
- version: 5.1.4(typescript@5.9.2)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))
+ version: 5.1.4(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
fdm-calculator:
dependencies:
@@ -362,7 +362,7 @@ importers:
version: 12.1.4(rollup@4.50.2)(tslib@2.8.1)(typescript@5.9.2)
'@vitest/coverage-v8':
specifier: 'catalog:'
- version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))
+ version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
postgres:
specifier: ^3.4.7
version: 3.4.7
@@ -383,13 +383,13 @@ importers:
version: 5.9.2
vitest:
specifier: 'catalog:'
- version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
fdm-core:
dependencies:
'@electric-sql/pglite':
- specifier: ^0.3.8
- version: 0.3.8
+ specifier: ^0.3.11
+ version: 0.3.11
'@svenvw/fdm-data':
specifier: workspace:*
version: link:../fdm-data
@@ -398,13 +398,13 @@ importers:
version: 7946.0.16
better-auth:
specifier: 'catalog:'
- version: 1.3.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ version: 1.3.27(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
drizzle-orm:
specifier: 'catalog:'
- version: 0.44.4(@electric-sql/pglite@0.3.8)(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(kysely@0.28.7)(postgres@3.4.7)
+ version: 0.44.4(@electric-sql/pglite@0.3.11)(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(kysely@0.28.8)(postgres@3.4.7)
nanoid:
- specifier: ^5.1.5
- version: 5.1.5
+ specifier: ^5.1.6
+ version: 5.1.6
postgres:
specifier: ^3.4.7
version: 3.4.7
@@ -428,14 +428,14 @@ importers:
specifier: 'catalog:'
version: 12.1.4(rollup@4.50.2)(tslib@2.8.1)(typescript@5.9.2)
'@types/node':
- specifier: ^24.5.2
- version: 24.5.2
+ specifier: ^24.7.2
+ version: 24.7.2
'@vitest/coverage-v8':
specifier: 'catalog:'
- version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))
+ version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
drizzle-kit:
specifier: 'catalog:'
- version: 0.31.4
+ version: 0.31.5
fs-extra:
specifier: ^11.3.2
version: 11.3.2
@@ -459,7 +459,7 @@ importers:
version: 5.9.2
vitest:
specifier: 'catalog:'
- version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
fdm-data:
dependencies:
@@ -487,7 +487,7 @@ importers:
version: 12.1.4(rollup@4.50.2)(tslib@2.8.1)(typescript@5.9.2)
'@vitest/coverage-v8':
specifier: 'catalog:'
- version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))
+ version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
rollup:
specifier: 'catalog:'
version: 4.50.2
@@ -505,64 +505,64 @@ importers:
version: 5.9.2
vitest:
specifier: 'catalog:'
- version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
fdm-docs:
dependencies:
'@docusaurus/core':
specifier: 3.8.1
- version: 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
+ version: 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
'@docusaurus/faster':
- specifier: ^3.8.1
- version: 3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))
+ specifier: ^3.9.1
+ version: 3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))
'@docusaurus/preset-classic':
specifier: 3.8.1
- version: 3.8.1(@algolia/client-search@5.37.0)(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(search-insights@2.17.3)(typescript@5.9.2)
+ version: 3.8.1(@algolia/client-search@5.40.0)(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)(typescript@5.9.2)
'@mdx-js/react':
specifier: ^3.1.1
- version: 3.1.1(@types/react@19.1.13)(react@19.1.1)
+ version: 3.1.1(@types/react@19.2.2)(react@19.2.0)
clsx:
specifier: ^2.1.1
version: 2.1.1
lucide-react:
specifier: ^0.544.0
- version: 0.544.0(react@19.1.1)
+ version: 0.544.0(react@19.2.0)
prism-react-renderer:
specifier: ^2.4.1
- version: 2.4.1(react@19.1.1)
+ version: 2.4.1(react@19.2.0)
react:
- specifier: ^19.1.1
- version: 19.1.1
+ specifier: ^19.2.0
+ version: 19.2.0
react-dom:
- specifier: ^19.1.1
- version: 19.1.1(react@19.1.1)
+ specifier: ^19.2.0
+ version: 19.2.0(react@19.2.0)
devDependencies:
'@docusaurus/module-type-aliases':
specifier: 3.8.1
- version: 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ version: 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@docusaurus/tsconfig':
specifier: 3.8.1
version: 3.8.1
'@docusaurus/types':
specifier: 3.8.1
- version: 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ version: 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
docusaurus-plugin-typedoc:
specifier: ^1.4.2
- version: 1.4.2(typedoc-plugin-markdown@4.8.1(typedoc@0.28.13(typescript@5.9.2)))
+ version: 1.4.2(typedoc-plugin-markdown@4.9.0(typedoc@0.28.13(typescript@5.9.2)))
typedoc:
specifier: 'catalog:'
version: 0.28.13(typescript@5.9.2)
typedoc-plugin-markdown:
- specifier: ^4.8.1
- version: 4.8.1(typedoc@0.28.13(typescript@5.9.2))
+ specifier: ^4.9.0
+ version: 4.9.0(typedoc@0.28.13(typescript@5.9.2))
typescript:
specifier: 'catalog:'
version: 5.9.2
packages:
- '@algolia/abtesting@1.3.0':
- resolution: {integrity: sha512-KqPVLdVNfoJzX5BKNGM9bsW8saHeyax8kmPFXul5gejrSPN3qss7PgsFH5mMem7oR8tvjvNkia97ljEYPYCN8Q==}
+ '@algolia/abtesting@1.6.0':
+ resolution: {integrity: sha512-c4M/Z/KWkEG+RHpZsWKDTTlApXu3fe4vlABNcpankWBhdMe4oPZ/r4JxEr2zKUP6K+BT66tnp8UbHmgOd/vvqQ==}
engines: {node: '>= 14.0.0'}
'@algolia/autocomplete-core@1.17.9':
@@ -585,59 +585,59 @@ packages:
'@algolia/client-search': '>= 4.9.1 < 6'
algoliasearch: '>= 4.9.1 < 6'
- '@algolia/client-abtesting@5.37.0':
- resolution: {integrity: sha512-Dp2Zq+x9qQFnuiQhVe91EeaaPxWBhzwQ6QnznZQnH9C1/ei3dvtmAFfFeaTxM6FzfJXDLvVnaQagTYFTQz3R5g==}
+ '@algolia/client-abtesting@5.40.0':
+ resolution: {integrity: sha512-qegVlgHtmiS8m9nEsuKUVhlw1FHsIshtt5nhNnA6EYz3g+tm9+xkVZZMzkrMLPP7kpoheHJZAwz2MYnHtwFa9A==}
engines: {node: '>= 14.0.0'}
- '@algolia/client-analytics@5.37.0':
- resolution: {integrity: sha512-wyXODDOluKogTuZxRII6mtqhAq4+qUR3zIUJEKTiHLe8HMZFxfUEI4NO2qSu04noXZHbv/sRVdQQqzKh12SZuQ==}
+ '@algolia/client-analytics@5.40.0':
+ resolution: {integrity: sha512-Dw2c+6KGkw7mucnnxPyyMsIGEY8+hqv6oB+viYB612OMM3l8aNaWToBZMnNvXsyP+fArwq7XGR+k3boPZyV53A==}
engines: {node: '>= 14.0.0'}
- '@algolia/client-common@5.37.0':
- resolution: {integrity: sha512-GylIFlPvLy9OMgFG8JkonIagv3zF+Dx3H401Uo2KpmfMVBBJiGfAb9oYfXtplpRMZnZPxF5FnkWaI/NpVJMC+g==}
+ '@algolia/client-common@5.40.0':
+ resolution: {integrity: sha512-dbE4+MJIDsTghG3hUYWBq7THhaAmqNqvW9g2vzwPf5edU4IRmuYpKtY3MMotes8/wdTasWG07XoaVhplJBlvdg==}
engines: {node: '>= 14.0.0'}
- '@algolia/client-insights@5.37.0':
- resolution: {integrity: sha512-T63afO2O69XHKw2+F7mfRoIbmXWGzgpZxgOFAdP3fR4laid7pWBt20P4eJ+Zn23wXS5kC9P2K7Bo3+rVjqnYiw==}
+ '@algolia/client-insights@5.40.0':
+ resolution: {integrity: sha512-SH6zlROyGUCDDWg71DlCnbbZ/zEHYPZC8k901EAaBVhvY43Ju8Wa6LAcMPC4tahcDBgkG2poBy8nJZXvwEWAlQ==}
engines: {node: '>= 14.0.0'}
- '@algolia/client-personalization@5.37.0':
- resolution: {integrity: sha512-1zOIXM98O9zD8bYDCJiUJRC/qNUydGHK/zRK+WbLXrW1SqLFRXECsKZa5KoG166+o5q5upk96qguOtE8FTXDWQ==}
+ '@algolia/client-personalization@5.40.0':
+ resolution: {integrity: sha512-EgHjJEEf7CbUL9gJHI1ULmAtAFeym2cFNSAi1uwHelWgLPcnLjYW2opruPxigOV7NcetkGu+t2pcWOWmZFuvKQ==}
engines: {node: '>= 14.0.0'}
- '@algolia/client-query-suggestions@5.37.0':
- resolution: {integrity: sha512-31Nr2xOLBCYVal+OMZn1rp1H4lPs1914Tfr3a34wU/nsWJ+TB3vWjfkUUuuYhWoWBEArwuRzt3YNLn0F/KRVkg==}
+ '@algolia/client-query-suggestions@5.40.0':
+ resolution: {integrity: sha512-HvE1jtCag95DR41tDh7cGwrMk4X0aQXPOBIhZRmsBPolMeqRJz0kvfVw8VCKvA1uuoAkjFfTG0X0IZED+rKXoA==}
engines: {node: '>= 14.0.0'}
- '@algolia/client-search@5.37.0':
- resolution: {integrity: sha512-DAFVUvEg+u7jUs6BZiVz9zdaUebYULPiQ4LM2R4n8Nujzyj7BZzGr2DCd85ip4p/cx7nAZWKM8pLcGtkTRTdsg==}
+ '@algolia/client-search@5.40.0':
+ resolution: {integrity: sha512-nlr/MMgoLNUHcfWC5Ns2ENrzKx9x51orPc6wJ8Ignv1DsrUmKm0LUih+Tj3J+kxYofzqQIQRU495d4xn3ozMbg==}
engines: {node: '>= 14.0.0'}
'@algolia/events@4.0.1':
resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==}
- '@algolia/ingestion@1.37.0':
- resolution: {integrity: sha512-pkCepBRRdcdd7dTLbFddnu886NyyxmhgqiRcHHaDunvX03Ij4WzvouWrQq7B7iYBjkMQrLS8wQqSP0REfA4W8g==}
+ '@algolia/ingestion@1.40.0':
+ resolution: {integrity: sha512-OfHnhE+P0f+p3i90Kmshf9Epgesw5oPV1IEUOY4Mq1HV7cQk16gvklVN1EaY/T9sVavl+Vc3g4ojlfpIwZFA4g==}
engines: {node: '>= 14.0.0'}
- '@algolia/monitoring@1.37.0':
- resolution: {integrity: sha512-fNw7pVdyZAAQQCJf1cc/ih4fwrRdQSgKwgor4gchsI/Q/ss9inmC6bl/69jvoRSzgZS9BX4elwHKdo0EfTli3w==}
+ '@algolia/monitoring@1.40.0':
+ resolution: {integrity: sha512-SWANV32PTKhBYvwKozeWP9HOnVabOixAuPdFFGoqtysTkkwutrtGI/rrh80tvG+BnQAmZX0vUmD/RqFZVfr/Yg==}
engines: {node: '>= 14.0.0'}
- '@algolia/recommend@5.37.0':
- resolution: {integrity: sha512-U+FL5gzN2ldx3TYfQO5OAta2TBuIdabEdFwD5UVfWPsZE5nvOKkc/6BBqP54Z/adW/34c5ZrvvZhlhNTZujJXQ==}
+ '@algolia/recommend@5.40.0':
+ resolution: {integrity: sha512-1Qxy9I5bSb3mrhPk809DllMa561zl5hLsMR6YhIqNkqQ0OyXXQokvJ2zApSxvd39veRZZnhN+oGe+XNoNwLgkw==}
engines: {node: '>= 14.0.0'}
- '@algolia/requester-browser-xhr@5.37.0':
- resolution: {integrity: sha512-Ao8GZo8WgWFABrU7iq+JAftXV0t+UcOtCDL4mzHHZ+rQeTTf1TZssr4d0vIuoqkVNnKt9iyZ7T4lQff4ydcTrw==}
+ '@algolia/requester-browser-xhr@5.40.0':
+ resolution: {integrity: sha512-MGt94rdHfkrVjfN/KwUfWcnaeohYbWGINrPs96f5J7ZyRYpVLF+VtPQ2FmcddFvK4gnKXSu8BAi81hiIhUpm3w==}
engines: {node: '>= 14.0.0'}
- '@algolia/requester-fetch@5.37.0':
- resolution: {integrity: sha512-H7OJOXrFg5dLcGJ22uxx8eiFId0aB9b0UBhoOi4SMSuDBe6vjJJ/LeZyY25zPaSvkXNBN3vAM+ad6M0h6ha3AA==}
+ '@algolia/requester-fetch@5.40.0':
+ resolution: {integrity: sha512-wXQ05JZZ10Dr642QVAkAZ4ZZlU+lh5r6dIBGmm9WElz+1EaQ6BNYtEOTV6pkXuFYsZpeJA89JpDOiwBOP9j24w==}
engines: {node: '>= 14.0.0'}
- '@algolia/requester-node-http@5.37.0':
- resolution: {integrity: sha512-npZ9aeag4SGTx677eqPL3rkSPlQrnzx/8wNrl1P7GpWq9w/eTmRbOq+wKrJ2r78idlY0MMgmY/mld2tq6dc44g==}
+ '@algolia/requester-node-http@5.40.0':
+ resolution: {integrity: sha512-5qCRoySnzpbQVg2IPLGFCm4LF75pToxI5tdjOYgUMNL/um91aJ4dH3SVdBEuFlVsalxl8mh3bWPgkUmv6NpJiQ==}
engines: {node: '>= 14.0.0'}
'@alloc/quick-lru@5.2.0':
@@ -648,6 +648,12 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
+ '@apm-js-collab/code-transformer@0.8.2':
+ resolution: {integrity: sha512-YRjJjNq5KFSjDUoqu5pFUWrrsvGOxl6c3bu+uMFc9HNNptZ2rNU/TI2nLw4jnhQNtka972Ee2m3uqbvDQtPeCA==}
+
+ '@apm-js-collab/tracing-hooks@0.3.1':
+ resolution: {integrity: sha512-Vu1CbmPURlN5fTboVuKMoJjbO5qcq9fA5YXpskx3dXe/zTBvjODFoerw+69rVBlRLrJpwPqSDqEuJDEKIrTldw==}
+
'@babel/code-frame@7.27.1':
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
engines: {node: '>=6.9.0'}
@@ -1388,8 +1394,8 @@ packages:
'@csstools/css-parser-algorithms': ^3.0.5
'@csstools/css-tokenizer': ^3.0.4
- '@csstools/postcss-alpha-function@1.0.0':
- resolution: {integrity: sha512-r2L8KNg5Wriq5n8IUQcjzy2Rh37J5YjzP9iOyHZL5fxdWYHB08vqykHQa4wAzN/tXwDuCHnhQDGCtxfS76xn7g==}
+ '@csstools/postcss-alpha-function@1.0.1':
+ resolution: {integrity: sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
@@ -1400,32 +1406,38 @@ packages:
peerDependencies:
postcss: ^8.4
- '@csstools/postcss-color-function-display-p3-linear@1.0.0':
- resolution: {integrity: sha512-7q+OuUqfowRrP84m/Jl0wv3pfCQyUTCW5MxDIux+/yty5IkUUHOTigCjrC0Fjy3OT0ncGLudHbfLWmP7E1arNA==}
+ '@csstools/postcss-color-function-display-p3-linear@1.0.1':
+ resolution: {integrity: sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ postcss: ^8.4
+
+ '@csstools/postcss-color-function@4.0.12':
+ resolution: {integrity: sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
- '@csstools/postcss-color-function@4.0.11':
- resolution: {integrity: sha512-AtH22zLHTLm64HLdpv5EedT/zmYTm1MtdQbQhRZXxEB6iYtS6SrS1jLX3TcmUWMFzpumK/OVylCm3HcLms4slw==}
+ '@csstools/postcss-color-mix-function@3.0.12':
+ resolution: {integrity: sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
- '@csstools/postcss-color-mix-function@3.0.11':
- resolution: {integrity: sha512-cQpXBelpTx0YhScZM5Ve0jDCA4RzwFc7oNafzZOGgCHt/GQVYiU8Vevz9QJcwy/W0Pyi/BneY+KMjz23lI9r+Q==}
+ '@csstools/postcss-color-mix-variadic-function-arguments@1.0.2':
+ resolution: {integrity: sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
- '@csstools/postcss-color-mix-variadic-function-arguments@1.0.1':
- resolution: {integrity: sha512-c7hyBtbF+jlHIcUGVdWY06bHICgguV9ypfcELU3eU3W/9fiz2dxM8PqxQk2ndXYTzLnwPvNNqu1yCmQ++N6Dcg==}
+ '@csstools/postcss-content-alt-text@2.0.8':
+ resolution: {integrity: sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
- '@csstools/postcss-content-alt-text@2.0.7':
- resolution: {integrity: sha512-cq/zWaEkpcg3RttJ5+GdNwk26NwxY5KgqgtNL777Fdd28AVGHxuBvqmK4Jq4oKhW1NX4M2LbgYAVVN0NZ+/XYQ==}
+ '@csstools/postcss-contrast-color-function@2.0.12':
+ resolution: {integrity: sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
@@ -1448,20 +1460,20 @@ packages:
peerDependencies:
postcss: ^8.4
- '@csstools/postcss-gradients-interpolation-method@5.0.11':
- resolution: {integrity: sha512-8M3mcNTL3cGIJXDnvrJ2oWEcKi3zyw7NeYheFKePUlBmLYm1gkw9Rr/BA7lFONrOPeQA3yeMPldrrws6lqHrug==}
+ '@csstools/postcss-gradients-interpolation-method@5.0.12':
+ resolution: {integrity: sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
- '@csstools/postcss-hwb-function@4.0.11':
- resolution: {integrity: sha512-9meZbsVWTZkWsSBazQips3cHUOT29a/UAwFz0AMEXukvpIGGDR9+GMl3nIckWO5sPImsadu4F5Zy+zjt8QgCdA==}
+ '@csstools/postcss-hwb-function@4.0.12':
+ resolution: {integrity: sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
- '@csstools/postcss-ic-unit@4.0.3':
- resolution: {integrity: sha512-RtYYm2qUIu9vAaHB0cC8rQGlOCQAUgEc2tMr7ewlGXYipBQKjoWmyVArqsk7SEr8N3tErq6P6UOJT3amaVof5Q==}
+ '@csstools/postcss-ic-unit@4.0.4':
+ resolution: {integrity: sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
@@ -1478,8 +1490,8 @@ packages:
peerDependencies:
postcss: ^8.4
- '@csstools/postcss-light-dark-function@2.0.10':
- resolution: {integrity: sha512-g7Lwb294lSoNnyrwcqoooh9fTAp47rRNo+ILg7SLRSMU3K9ePIwRt566sNx+pehiCelv4E1ICaU1EwLQuyF2qw==}
+ '@csstools/postcss-light-dark-function@2.0.11':
+ resolution: {integrity: sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
@@ -1538,14 +1550,14 @@ packages:
peerDependencies:
postcss: ^8.4
- '@csstools/postcss-oklab-function@4.0.11':
- resolution: {integrity: sha512-9f03ZGxZ2VmSCrM4SDXlAYP+Xpu4VFzemfQUQFL9OYxAbpvDy0FjDipZ0i8So1pgs8VIbQI0bNjFWgfdpGw8ig==}
+ '@csstools/postcss-oklab-function@4.0.12':
+ resolution: {integrity: sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
- '@csstools/postcss-progressive-custom-properties@4.2.0':
- resolution: {integrity: sha512-fWCXRasX17N1NCPTCuwC3FJDV+Wc031f16cFuuMEfIsYJ1q5ABCa59W0C6VeMGqjNv6ldf37vvwXXAeaZjD9PA==}
+ '@csstools/postcss-progressive-custom-properties@4.2.1':
+ resolution: {integrity: sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
@@ -1556,8 +1568,8 @@ packages:
peerDependencies:
postcss: ^8.4
- '@csstools/postcss-relative-color-syntax@3.0.11':
- resolution: {integrity: sha512-oQ5fZvkcBrWR+k6arHXk0F8FlkmD4IxM+rcGDLWrF2f31tWyEM3lSraeWAV0f7BGH6LIrqmyU3+Qo/1acfoJng==}
+ '@csstools/postcss-relative-color-syntax@3.0.12':
+ resolution: {integrity: sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
@@ -1669,9 +1681,9 @@ packages:
resolution: {integrity: sha512-G7WyR2N6SpyUotqhGznERBK+x84uyhfMQM2MmDLs88bw4Flom6TY46HzkRkSEzaP9j80MbTN8naiL1fR17WQug==}
engines: {node: '>=18.0'}
- '@docusaurus/faster@3.8.1':
- resolution: {integrity: sha512-XYrj3qnTm+o2d5ih5drCq9s63GJoM8vZ26WbLG5FZhURsNxTSXgHJcx11Qo7nWPUStCQkuqk1HvItzscCUnd4A==}
- engines: {node: '>=18.0'}
+ '@docusaurus/faster@3.9.1':
+ resolution: {integrity: sha512-zJIrIv+R/IN5TTLV9L+SvO3hwz62L6pO/L16k+b2nC3to3Gn01cnEGHL6doTGAezuPwTSmteJl+kzaoOf+znzg==}
+ engines: {node: '>=20.0'}
peerDependencies:
'@docusaurus/types': '*'
@@ -1823,6 +1835,10 @@ packages:
resolution: {integrity: sha512-GpJWpGVI5JGhNzFlWOjCD3KMiN3xU1US4oLKQ7SiiGru4LvR7sUf3pDMpfjtlgzHStL5ydq4ekfZcRxWpHaJkA==}
hasBin: true
+ '@dotenvx/dotenvx@1.51.0':
+ resolution: {integrity: sha512-CbMGzyOYSyFF7d4uaeYwO9gpSBzLTnMmSmTVpCZjvpJFV69qYbjYPpzNnCz1mb2wIvEhjWjRwQWuBzTO0jITww==}
+ hasBin: true
+
'@drizzle-team/brocli@0.10.2':
resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==}
@@ -1832,8 +1848,8 @@ packages:
peerDependencies:
'@noble/ciphers': ^1.0.0
- '@electric-sql/pglite@0.3.8':
- resolution: {integrity: sha512-VlAz/R7mktifp9IHzNvjxWJM8p3fPH2lHpustYuRSOXOpXiAMTlA5qqxcufPaDnfee6CZCE9qrT1MHDT7riSHg==}
+ '@electric-sql/pglite@0.3.11':
+ resolution: {integrity: sha512-FJtjnEyez8XgmgyE5Ewmx89TGVN+75ZjykFoExApRIbJBMT4dsbsuZkF/YWLuymGDfGFHDACjvENPMEqg4FoWg==}
'@emnapi/core@1.5.0':
resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==}
@@ -2155,8 +2171,8 @@ packages:
'@floating-ui/utils@0.2.10':
resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==}
- '@gerrit0/mini-shiki@3.12.2':
- resolution: {integrity: sha512-HKZPmO8OSSAAo20H2B3xgJdxZaLTwtlMwxg0967scnrDlPwe6j5+ULGHyIqwgTbFCn9yv/ff8CmfWZLE9YKBzA==}
+ '@gerrit0/mini-shiki@3.13.1':
+ resolution: {integrity: sha512-fDWM5QQc70jwBIt/WYMybdyXdyBmoJe7r1hpM+V/bHnyla79sygVDK2/LlVxIPc4n5FA3B5Wzt7AQH2+psNphg==}
'@hapi/hoek@9.3.0':
resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
@@ -2332,8 +2348,8 @@ packages:
'@module-federation/webpack-bundler-runtime@0.18.0':
resolution: {integrity: sha512-TEvErbF+YQ+6IFimhUYKK3a5wapD90d90sLsNpcu2kB3QGT7t4nIluE25duXuZDVUKLz86tEPrza/oaaCWTpvQ==}
- '@napi-rs/wasm-runtime@1.0.5':
- resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==}
+ '@napi-rs/wasm-runtime@1.0.7':
+ resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==}
'@noble/ciphers@1.3.0':
resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==}
@@ -2547,8 +2563,8 @@ packages:
peerDependencies:
'@opentelemetry/api': ^1.3.0
- '@opentelemetry/redis-common@0.38.0':
- resolution: {integrity: sha512-4Wc0AWURII2cfXVVoZ6vDqK+s5n4K5IssdrlVrvGsx6OEOKdghKtJZqXAHWFiZv4nTDLH2/2fldjIHY8clMOjQ==}
+ '@opentelemetry/redis-common@0.38.2':
+ resolution: {integrity: sha512-1BCcU93iwSRZvDAgwUxC/DV4T/406SkMfxGqu5ojc3AvNI+I9GhV7v0J1HljsczuuhcnFLYqD5VmwVXfCGHzxA==}
engines: {node: ^18.19.0 || >=20.6.0}
'@opentelemetry/resources@2.1.0':
@@ -2567,8 +2583,8 @@ packages:
resolution: {integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==}
engines: {node: '>=14'}
- '@opentelemetry/sql-common@0.41.0':
- resolution: {integrity: sha512-pmzXctVbEERbqSfiAgdes9Y63xjoOyXcD7B6IXBkVb+vbM7M9U98mn33nGXxPf4dfYR0M+vhcKRZmbSJ7HfqFA==}
+ '@opentelemetry/sql-common@0.41.2':
+ resolution: {integrity: sha512-4mhWm3Z8z+i508zQJ7r6Xi7y4mmoJpdvH0fZPFRkWrdp5fq7hhZ2HhYokEOLkfqSMgPR4Z9EyB3DBkbKGOqZiQ==}
engines: {node: ^18.19.0 || >=20.6.0}
peerDependencies:
'@opentelemetry/api': ^1.1.0
@@ -2609,8 +2625,8 @@ packages:
'@peculiar/x509@1.14.0':
resolution: {integrity: sha512-Yc4PDxN3OrxUPiXgU63c+ZRXKGE8YKF2McTciYhUHFtHVB0KMnjeFSU0qpztGhsp4P0uKix4+J2xEpIEDu8oXg==}
- '@petamoriken/float16@3.9.2':
- resolution: {integrity: sha512-VgffxawQde93xKxT3qap3OH+meZf7VaSB5Sqd4Rqc+FP5alWbpOyan/7tRbOAvynjpG3GpdtAuGU/NdhQpmrog==}
+ '@petamoriken/float16@3.9.3':
+ resolution: {integrity: sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g==}
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
@@ -2631,8 +2647,8 @@ packages:
'@polka/url@1.0.0-next.29':
resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
- '@posthog/core@1.0.2':
- resolution: {integrity: sha512-hWk3rUtJl2crQK0WNmwg13n82hnTwB99BT99/XI5gZSvIlYZ1TPmMZE8H2dhJJ98J/rm9vYJ/UXNzw3RV5HTpQ==}
+ '@posthog/core@1.3.0':
+ resolution: {integrity: sha512-hxLL8kZNHH098geedcxCz8y6xojkNYbmJEW+1vFXsmPcExyCXIUUJ/34X6xa9GcprKxd0Wsx3vfJQLQX4iVPhw==}
'@prisma/instrumentation@6.15.0':
resolution: {integrity: sha512-6TXaH6OmDkMOQvOxwLZ8XS51hU2v4A3vmE2pSijCIiGRJYyNeMcL6nMHQMyYdZRD8wl7LF3Wzc+AMPMV/9Oo7A==}
@@ -3363,8 +3379,8 @@ packages:
peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc
- '@react-email/components@0.5.3':
- resolution: {integrity: sha512-8G5vsoMehuGOT4cDqaYLdpagtqCYPl4vThXNylClxO6SrN2w9Mh1+i2RNGj/rdqh/woamHORjlXMYCA/kzDMew==}
+ '@react-email/components@0.5.6':
+ resolution: {integrity: sha512-3o9ellDaF3bBcVMWeos9HI0iUIT1zGygPRcn9WSfI5JREORiN6ViEJIvz5SKWEn1KPNZtw/iaW8ct7PpVyhomg==}
engines: {node: '>=18.0.0'}
peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc
@@ -3428,8 +3444,8 @@ packages:
peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc
- '@react-email/render@1.2.3':
- resolution: {integrity: sha512-qu3XYNkHGao3teJexVD5CrcgFkNLrzbZvpZN17a7EyQYUN3kHkTkE9saqY4VbvGx6QoNU3p8rsk/Xm++D/+pTw==}
+ '@react-email/render@1.3.2':
+ resolution: {integrity: sha512-oq8/BD/I/YspeuBjjdLJG6xaf9tsPYk+VWu8/mX9xWbRN0t0ExKSVm9sEBL6RsCpndQA2jbY2VgPEreIrzUgqw==}
engines: {node: '>=18.0.0'}
peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc
@@ -3459,14 +3475,14 @@ packages:
peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc
- '@react-router/dev@7.9.1':
- resolution: {integrity: sha512-fW/qubsdHq1nsufHPLpXa6hiNvXXV9JBtWqRlJ02OOhFeaWERZw4rGoHjG1DCg8/QTTadgbzplmP97ZnzWPkcA==}
+ '@react-router/dev@7.9.4':
+ resolution: {integrity: sha512-bLs6DjKMJExT7Y57EBx25hkeGGUla3pURxvOn15IN8Mmaw2+euDtBUX9+OFrAPsAzD1xIj6+2HNLXlFH/LB86Q==}
engines: {node: '>=20.0.0'}
hasBin: true
peerDependencies:
- '@react-router/serve': ^7.9.1
+ '@react-router/serve': ^7.9.4
'@vitejs/plugin-rsc': '*'
- react-router: ^7.9.1
+ react-router: ^7.9.4
typescript: ^5.1.0
vite: ^5.1.0 || ^6.0.0 || ^7.0.0
wrangler: ^3.28.2 || ^4.0.0
@@ -3480,43 +3496,43 @@ packages:
wrangler:
optional: true
- '@react-router/express@7.9.1':
- resolution: {integrity: sha512-d1sfsD3AJXZj+C5k3jAmxAD3vJXGfoh3lNmtSwxp0NdZFHI54zPC5S9o80cy3P8p6Gc7XzSEQJYk9k7fAM/AIw==}
+ '@react-router/express@7.9.4':
+ resolution: {integrity: sha512-qba2YnZXWz8kyXNxXKDa0qS88ct4MwJKMwINmto/LPb08W/YdgRUBSZIw7QnOdN7aFkvWTRGXKBTCcle8WDnRA==}
engines: {node: '>=20.0.0'}
peerDependencies:
express: ^4.17.1 || ^5
- react-router: 7.9.1
+ react-router: 7.9.4
typescript: ^5.1.0
peerDependenciesMeta:
typescript:
optional: true
- '@react-router/fs-routes@7.9.1':
- resolution: {integrity: sha512-K97pQ7PIUJnmYPzoC5lrJxr3XKDn5ZLBMkp403usQJlucpP2NUfRw7I5N3NdqQ5XDbPEyROOJr6wsZnWGPPC7g==}
+ '@react-router/fs-routes@7.9.4':
+ resolution: {integrity: sha512-k3IWKOGiPDJqGsoqKaI4V1WY4ulfG5/lWLlI0G5p1Yij4eDyYW3D+p/+inBFs49Oxsc/PbB2rnAXY4j5Bjruhg==}
engines: {node: '>=20.0.0'}
peerDependencies:
- '@react-router/dev': ^7.9.1
+ '@react-router/dev': ^7.9.4
typescript: ^5.1.0
peerDependenciesMeta:
typescript:
optional: true
- '@react-router/node@7.9.1':
- resolution: {integrity: sha512-XfyVLM+sDUDB1frGNr7iqaKNglrPwBiUp8+sFdL4///bngy49pUb2RuEtn2J2Cy5yjL+IlKbjJFrsmfimLBmeg==}
+ '@react-router/node@7.9.4':
+ resolution: {integrity: sha512-sdeDNRaqAB71BR2hPlhcQbPbrXh8uGJUjLVc+NpRiPsQbv6B8UvIucN4IX9YGVJkw3UxVQBn2vPSwxACAck32Q==}
engines: {node: '>=20.0.0'}
peerDependencies:
- react-router: 7.9.1
+ react-router: 7.9.4
typescript: ^5.1.0
peerDependenciesMeta:
typescript:
optional: true
- '@react-router/serve@7.9.1':
- resolution: {integrity: sha512-yVBSb5KsNCdkSoOk186/M5GJtcIvKE32Ax9LhXySVpM+suCSjucI+p2TXDOJIYsBqr2aKcBl/bNBm5sIJxG/HA==}
+ '@react-router/serve@7.9.4':
+ resolution: {integrity: sha512-zXub2L4qwtGd8+pdXi1QheI8PHPxSwi5EF0D1924fji8yN1R8csP/2cr055/xFOEtbkbJSZyVRrJ44fFnBxKCw==}
engines: {node: '>=20.0.0'}
hasBin: true
peerDependencies:
- react-router: 7.9.1
+ react-router: 7.9.4
'@remix-run/file-storage@0.9.0':
resolution: {integrity: sha512-GbrmqGTdgevRMqkcTzGG9eyUn3eo32ST/jmqdh2g8h5MNKmONF6TJpVDZvtGhrvl93kX/k01WigUk/R8j58/eA==}
@@ -3533,6 +3549,9 @@ packages:
'@remix-run/multipart-parser@0.11.0':
resolution: {integrity: sha512-AE/H+ok0fWOZb84sJ8vREOJiSwYoEoGL0rpHZSAiPmCkBKbnsmHCbiUtg5+wELem4Q0HAEY6vjVK83u9cIlAhw==}
+ '@remix-run/node-fetch-server@0.9.0':
+ resolution: {integrity: sha512-SoLMv7dbH+njWzXnOY6fI08dFMI5+/dQ+vY3n8RnnbdG7MdJEgiP28Xj/xWlnRnED/aB6SFw56Zop+LbmaaKqA==}
+
'@repeaterjs/repeater@3.0.6':
resolution: {integrity: sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==}
@@ -3608,160 +3627,270 @@ packages:
cpu: [arm]
os: [android]
+ '@rollup/rollup-android-arm-eabi@4.52.4':
+ resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==}
+ cpu: [arm]
+ os: [android]
+
'@rollup/rollup-android-arm64@4.50.2':
resolution: {integrity: sha512-oEouqQk2/zxxj22PNcGSskya+3kV0ZKH+nQxuCCOGJ4oTXBdNTbv+f/E3c74cNLeMO1S5wVWacSws10TTSB77g==}
cpu: [arm64]
os: [android]
+ '@rollup/rollup-android-arm64@4.52.4':
+ resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==}
+ cpu: [arm64]
+ os: [android]
+
'@rollup/rollup-darwin-arm64@4.50.2':
resolution: {integrity: sha512-OZuTVTpj3CDSIxmPgGH8en/XtirV5nfljHZ3wrNwvgkT5DQLhIKAeuFSiwtbMto6oVexV0k1F1zqURPKf5rI1Q==}
cpu: [arm64]
os: [darwin]
+ '@rollup/rollup-darwin-arm64@4.52.4':
+ resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==}
+ cpu: [arm64]
+ os: [darwin]
+
'@rollup/rollup-darwin-x64@4.50.2':
resolution: {integrity: sha512-Wa/Wn8RFkIkr1vy1k1PB//VYhLnlnn5eaJkfTQKivirOvzu5uVd2It01ukeQstMursuz7S1bU+8WW+1UPXpa8A==}
cpu: [x64]
os: [darwin]
+ '@rollup/rollup-darwin-x64@4.52.4':
+ resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==}
+ cpu: [x64]
+ os: [darwin]
+
'@rollup/rollup-freebsd-arm64@4.50.2':
resolution: {integrity: sha512-QkzxvH3kYN9J1w7D1A+yIMdI1pPekD+pWx7G5rXgnIlQ1TVYVC6hLl7SOV9pi5q9uIDF9AuIGkuzcbF7+fAhow==}
cpu: [arm64]
os: [freebsd]
+ '@rollup/rollup-freebsd-arm64@4.52.4':
+ resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==}
+ cpu: [arm64]
+ os: [freebsd]
+
'@rollup/rollup-freebsd-x64@4.50.2':
resolution: {integrity: sha512-dkYXB0c2XAS3a3jmyDkX4Jk0m7gWLFzq1C3qUnJJ38AyxIF5G/dyS4N9B30nvFseCfgtCEdbYFhk0ChoCGxPog==}
cpu: [x64]
os: [freebsd]
+ '@rollup/rollup-freebsd-x64@4.52.4':
+ resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==}
+ cpu: [x64]
+ os: [freebsd]
+
'@rollup/rollup-linux-arm-gnueabihf@4.50.2':
resolution: {integrity: sha512-9VlPY/BN3AgbukfVHAB8zNFWB/lKEuvzRo1NKev0Po8sYFKx0i+AQlCYftgEjcL43F2h9Ui1ZSdVBc4En/sP2w==}
cpu: [arm]
os: [linux]
+ '@rollup/rollup-linux-arm-gnueabihf@4.52.4':
+ resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==}
+ cpu: [arm]
+ os: [linux]
+
'@rollup/rollup-linux-arm-musleabihf@4.50.2':
resolution: {integrity: sha512-+GdKWOvsifaYNlIVf07QYan1J5F141+vGm5/Y8b9uCZnG/nxoGqgCmR24mv0koIWWuqvFYnbURRqw1lv7IBINw==}
cpu: [arm]
os: [linux]
+ '@rollup/rollup-linux-arm-musleabihf@4.52.4':
+ resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==}
+ cpu: [arm]
+ os: [linux]
+
'@rollup/rollup-linux-arm64-gnu@4.50.2':
resolution: {integrity: sha512-df0Eou14ojtUdLQdPFnymEQteENwSJAdLf5KCDrmZNsy1c3YaCNaJvYsEUHnrg+/DLBH612/R0xd3dD03uz2dg==}
cpu: [arm64]
os: [linux]
+ '@rollup/rollup-linux-arm64-gnu@4.52.4':
+ resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==}
+ cpu: [arm64]
+ os: [linux]
+
'@rollup/rollup-linux-arm64-musl@4.50.2':
resolution: {integrity: sha512-iPeouV0UIDtz8j1YFR4OJ/zf7evjauqv7jQ/EFs0ClIyL+by++hiaDAfFipjOgyz6y6xbDvJuiU4HwpVMpRFDQ==}
cpu: [arm64]
os: [linux]
+ '@rollup/rollup-linux-arm64-musl@4.52.4':
+ resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==}
+ cpu: [arm64]
+ os: [linux]
+
'@rollup/rollup-linux-loong64-gnu@4.50.2':
resolution: {integrity: sha512-OL6KaNvBopLlj5fTa5D5bau4W82f+1TyTZRr2BdnfsrnQnmdxh4okMxR2DcDkJuh4KeoQZVuvHvzuD/lyLn2Kw==}
cpu: [loong64]
os: [linux]
+ '@rollup/rollup-linux-loong64-gnu@4.52.4':
+ resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==}
+ cpu: [loong64]
+ os: [linux]
+
'@rollup/rollup-linux-ppc64-gnu@4.50.2':
resolution: {integrity: sha512-I21VJl1w6z/K5OTRl6aS9DDsqezEZ/yKpbqlvfHbW0CEF5IL8ATBMuUx6/mp683rKTK8thjs/0BaNrZLXetLag==}
cpu: [ppc64]
os: [linux]
+ '@rollup/rollup-linux-ppc64-gnu@4.52.4':
+ resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==}
+ cpu: [ppc64]
+ os: [linux]
+
'@rollup/rollup-linux-riscv64-gnu@4.50.2':
resolution: {integrity: sha512-Hq6aQJT/qFFHrYMjS20nV+9SKrXL2lvFBENZoKfoTH2kKDOJqff5OSJr4x72ZaG/uUn+XmBnGhfr4lwMRrmqCQ==}
cpu: [riscv64]
os: [linux]
+ '@rollup/rollup-linux-riscv64-gnu@4.52.4':
+ resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==}
+ cpu: [riscv64]
+ os: [linux]
+
'@rollup/rollup-linux-riscv64-musl@4.50.2':
resolution: {integrity: sha512-82rBSEXRv5qtKyr0xZ/YMF531oj2AIpLZkeNYxmKNN6I2sVE9PGegN99tYDLK2fYHJITL1P2Lgb4ZXnv0PjQvw==}
cpu: [riscv64]
os: [linux]
+ '@rollup/rollup-linux-riscv64-musl@4.52.4':
+ resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==}
+ cpu: [riscv64]
+ os: [linux]
+
'@rollup/rollup-linux-s390x-gnu@4.50.2':
resolution: {integrity: sha512-4Q3S3Hy7pC6uaRo9gtXUTJ+EKo9AKs3BXKc2jYypEcMQ49gDPFU2P1ariX9SEtBzE5egIX6fSUmbmGazwBVF9w==}
cpu: [s390x]
os: [linux]
+ '@rollup/rollup-linux-s390x-gnu@4.52.4':
+ resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==}
+ cpu: [s390x]
+ os: [linux]
+
'@rollup/rollup-linux-x64-gnu@4.50.2':
resolution: {integrity: sha512-9Jie/At6qk70dNIcopcL4p+1UirusEtznpNtcq/u/C5cC4HBX7qSGsYIcG6bdxj15EYWhHiu02YvmdPzylIZlA==}
cpu: [x64]
os: [linux]
+ '@rollup/rollup-linux-x64-gnu@4.52.4':
+ resolution: {integrity: sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==}
+ cpu: [x64]
+ os: [linux]
+
'@rollup/rollup-linux-x64-musl@4.50.2':
resolution: {integrity: sha512-HPNJwxPL3EmhzeAnsWQCM3DcoqOz3/IC6de9rWfGR8ZCuEHETi9km66bH/wG3YH0V3nyzyFEGUZeL5PKyy4xvw==}
cpu: [x64]
os: [linux]
+ '@rollup/rollup-linux-x64-musl@4.52.4':
+ resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==}
+ cpu: [x64]
+ os: [linux]
+
'@rollup/rollup-openharmony-arm64@4.50.2':
resolution: {integrity: sha512-nMKvq6FRHSzYfKLHZ+cChowlEkR2lj/V0jYj9JnGUVPL2/mIeFGmVM2mLaFeNa5Jev7W7TovXqXIG2d39y1KYA==}
cpu: [arm64]
os: [openharmony]
+ '@rollup/rollup-openharmony-arm64@4.52.4':
+ resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==}
+ cpu: [arm64]
+ os: [openharmony]
+
'@rollup/rollup-win32-arm64-msvc@4.50.2':
resolution: {integrity: sha512-eFUvvnTYEKeTyHEijQKz81bLrUQOXKZqECeiWH6tb8eXXbZk+CXSG2aFrig2BQ/pjiVRj36zysjgILkqarS2YA==}
cpu: [arm64]
os: [win32]
+ '@rollup/rollup-win32-arm64-msvc@4.52.4':
+ resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==}
+ cpu: [arm64]
+ os: [win32]
+
'@rollup/rollup-win32-ia32-msvc@4.50.2':
resolution: {integrity: sha512-cBaWmXqyfRhH8zmUxK3d3sAhEWLrtMjWBRwdMMHJIXSjvjLKvv49adxiEz+FJ8AP90apSDDBx2Tyd/WylV6ikA==}
cpu: [ia32]
os: [win32]
+ '@rollup/rollup-win32-ia32-msvc@4.52.4':
+ resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-gnu@4.52.4':
+ resolution: {integrity: sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==}
+ cpu: [x64]
+ os: [win32]
+
'@rollup/rollup-win32-x64-msvc@4.50.2':
resolution: {integrity: sha512-APwKy6YUhvZaEoHyM+9xqmTpviEI+9eL7LoCH+aLcvWYHJ663qG5zx7WzWZY+a9qkg5JtzcMyJ9z0WtQBMDmgA==}
cpu: [x64]
os: [win32]
- '@rspack/binding-darwin-arm64@1.5.5':
- resolution: {integrity: sha512-Kg3ywEZHLX+aROfTQ5tMOv+Ud+8b4jk8ruUgsi0W8oBkEkR5xBdhFa9vcf6pzy+gfoLCnEI68U9i8ttm+G0csA==}
+ '@rollup/rollup-win32-x64-msvc@4.52.4':
+ resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==}
+ cpu: [x64]
+ os: [win32]
+
+ '@rspack/binding-darwin-arm64@1.5.8':
+ resolution: {integrity: sha512-spJfpOSN3f7V90ic45/ET2NKB2ujAViCNmqb0iGurMNQtFRq+7Kd+jvVKKGXKBHBbsQrFhidSWbbqy2PBPGK8g==}
cpu: [arm64]
os: [darwin]
- '@rspack/binding-darwin-x64@1.5.5':
- resolution: {integrity: sha512-uoGTYnlYW8m47yiDCKvXOehhAOH12wlePJq4sbUbBoHmG07vbDw7fUqnvy2k8319NTVEpMJWGoKyisgI09/uMQ==}
+ '@rspack/binding-darwin-x64@1.5.8':
+ resolution: {integrity: sha512-YFOzeL1IBknBcri8vjUp43dfUBylCeQnD+9O9p0wZmLAw7DtpN5JEOe2AkGo8kdTqJjYKI+cczJPKIw6lu1LWw==}
cpu: [x64]
os: [darwin]
- '@rspack/binding-linux-arm64-gnu@1.5.5':
- resolution: {integrity: sha512-KgVN3TeUJ3iNwwOX3JGY4arvoLHX94eItJ4TeOSyetRiSJUrQI0evP16i5kIh+n+p7mVnXmfUS944Gl+uNsJmg==}
+ '@rspack/binding-linux-arm64-gnu@1.5.8':
+ resolution: {integrity: sha512-UAWCsOnpkvy8eAVRo0uipbHXDhnoDq5zmqWTMhpga0/a3yzCp2e+fnjZb/qnFNYb5MeL0O1mwMOYgn1M3oHILQ==}
cpu: [arm64]
os: [linux]
- '@rspack/binding-linux-arm64-musl@1.5.5':
- resolution: {integrity: sha512-1gKthlCQinXtWar6Hl9Il6BQ/NgYBH0NVuUsjjf85ejD/cTPQENKyIpGvVa1rSIHSfnG/XujUbruHAeY9mEHCA==}
+ '@rspack/binding-linux-arm64-musl@1.5.8':
+ resolution: {integrity: sha512-GnSvGT4GjokPSD45cTtE+g7LgghuxSP1MRmvd+Vp/I8pnxTVSTsebRod4TAqyiv+l11nuS8yqNveK9qiOkBLWw==}
cpu: [arm64]
os: [linux]
- '@rspack/binding-linux-x64-gnu@1.5.5':
- resolution: {integrity: sha512-haPFg4M9GwpSI5g9BQhKUNdzCKDvFexIUkLiAHBjFU9iWQTEcI9VfYPixestOIwzUv7E34rHM+jAsmRGWdgmXw==}
+ '@rspack/binding-linux-x64-gnu@1.5.8':
+ resolution: {integrity: sha512-XLxh5n/pzUfxsugz/8rVBv+Tx2nqEM+9rharK69kfooDsQNKyz7PANllBQ/v4svJ+W0BRHnDL4qXSGdteZeEjA==}
cpu: [x64]
os: [linux]
- '@rspack/binding-linux-x64-musl@1.5.5':
- resolution: {integrity: sha512-oUny56JEkCZvIu4n8/P7IPLPNtJnL89EDhxHINH87XLBY3OOgo8JHELR11Zj9SFWiGNsRcLqi+Q78tWa0ligBQ==}
+ '@rspack/binding-linux-x64-musl@1.5.8':
+ resolution: {integrity: sha512-gE0+MZmwF+01p9/svpEESkzkLpBkVUG2o03YMpwXYC/maeRRhWvF8BJ7R3i/Ls/jFGSE87dKX5NbRLVzqksq/w==}
cpu: [x64]
os: [linux]
- '@rspack/binding-wasm32-wasi@1.5.5':
- resolution: {integrity: sha512-tRgxBgIXaBKBH/0KlwvyqbIMqQrg8jKOyFOEQseEE7Oqs2M9KkJ7Vp5QN11u3NvZ9nz5GbZxmVGBMkdj9Gth1w==}
+ '@rspack/binding-wasm32-wasi@1.5.8':
+ resolution: {integrity: sha512-cfg3niNHeJuxuml1Vy9VvaJrI/5TakzoaZvKX2g5S24wfzR50Eyy4JAsZ+L2voWQQp1yMJbmPYPmnTCTxdJQBQ==}
cpu: [wasm32]
- '@rspack/binding-win32-arm64-msvc@1.5.5':
- resolution: {integrity: sha512-wGWd2yluoFdQgtkIbny6FoHnzahTk+o9RzrptjeS1u/NV1lKrWzmWhwZojMGOUqPiaukZKaziOEo7gpRn2XbEQ==}
+ '@rspack/binding-win32-arm64-msvc@1.5.8':
+ resolution: {integrity: sha512-7i3ZTHFXKfU/9Jm9XhpMkrdkxO7lfeYMNVEGkuU5dyBfRMQj69dRgPL7zJwc2plXiqu9LUOl+TwDNTjap7Q36g==}
cpu: [arm64]
os: [win32]
- '@rspack/binding-win32-ia32-msvc@1.5.5':
- resolution: {integrity: sha512-Ikml8AQkzjPCG24vTO4pG2bpJ8vp93jVEgo9X9uYjO2vQbIp5QSOmeZOTM7tXCf8AfTfHEF/yAdE/pR/+tXXGQ==}
+ '@rspack/binding-win32-ia32-msvc@1.5.8':
+ resolution: {integrity: sha512-7ZPPWO11J+soea1+mnfaPpQt7GIodBM7A86dx6PbXgVEoZmetcWPrCF2NBfXxQWOKJ9L3RYltC4z+ZyXRgMOrw==}
cpu: [ia32]
os: [win32]
- '@rspack/binding-win32-x64-msvc@1.5.5':
- resolution: {integrity: sha512-m2059ms0i/GIQGWTlZ5GI6SWpuMFAPMsWlhXLk2LZRIydhi+N/YPkmc33lFRTlDA3QpKDCvowvCvIIA7g6WSlg==}
+ '@rspack/binding-win32-x64-msvc@1.5.8':
+ resolution: {integrity: sha512-N/zXQgzIxME3YUzXT8qnyzxjqcnXudWOeDh8CAG9zqTCnCiy16SFfQ/cQgEoLlD9geQntV6jx2GbDDI5kpDGMQ==}
cpu: [x64]
os: [win32]
- '@rspack/binding@1.5.5':
- resolution: {integrity: sha512-JkB943uBU0lABnKG/jdO+gg3/eeO9CEQMR/1dL6jSU9GTxaNf3XIVc05RhRC7qoVsiXuhSMMFxWyV0hyHxp2bA==}
+ '@rspack/binding@1.5.8':
+ resolution: {integrity: sha512-/91CzhRl9r5BIQCgGsS7jA6MDbw1I2BQpbfcUUdkdKl2P79K3Zo/Mw/TvKzS86catwLaUQEgkGRmYawOfPg7ow==}
- '@rspack/core@1.5.5':
- resolution: {integrity: sha512-AOIuMktK6X/xHAjJ/0QJ2kbSkILXj641GCPE+EOfWO27ODA8fHPArKbyz5AVGVePV3aUfEo2VFcsNzP67VBEPA==}
+ '@rspack/core@1.5.8':
+ resolution: {integrity: sha512-sUd2LfiDhqYVfvknuoz0+/c+wSpn693xotnG5g1CSWKZArbtwiYzBIVnNlcHGmuoBRsnj/TkSq8dTQ7gwfBroQ==}
engines: {node: '>=18.12.0'}
peerDependencies:
'@swc/helpers': '>=0.5.1'
@@ -3776,96 +3905,96 @@ packages:
'@selderee/plugin-htmlparser2@0.11.0':
resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==}
- '@sentry-internal/browser-utils@10.12.0':
- resolution: {integrity: sha512-dozbx389jhKynj0d657FsgbBVOar7pX3mb6GjqCxslXF0VKpZH2Xks0U32RgDY/nK27O+o095IWz7YvjVmPkDw==}
+ '@sentry-internal/browser-utils@10.19.0':
+ resolution: {integrity: sha512-E3H6R+tX7sYMIjfCRAMO0qIH43dtUqv2rSo0vv6eHDi4lDXtlDc+Vb67n4VIesT7YVxQD7GIkNhMk3hmRDIwww==}
engines: {node: '>=18'}
- '@sentry-internal/feedback@10.12.0':
- resolution: {integrity: sha512-0+7ceO6yQPPqfxRc9ue/xoPHKcnB917ezPaehGQNfAFNQB9PNTG1y55+8mRu0Fw+ANbZeCt/HyoCmXuRdxmkpg==}
+ '@sentry-internal/feedback@10.19.0':
+ resolution: {integrity: sha512-AJ8rpzNYgfmWzovmFss51q9FtBaa2qYTLwkbVdTf58fZbLMUrgZ6qf9qMk0ePiS3nB87w9+mpbLzRObYOsK9RA==}
engines: {node: '>=18'}
'@sentry-internal/node-cpu-profiler@2.2.0':
resolution: {integrity: sha512-oLHVYurqZfADPh5hvmQYS5qx8t0UZzT2u6+/68VXsFruQEOnYJTODKgU3BVLmemRs3WE6kCJjPeFdHVYOQGSzQ==}
engines: {node: '>=18'}
- '@sentry-internal/replay-canvas@10.12.0':
- resolution: {integrity: sha512-W/z1/+69i3INNfPjD1KuinSNaRQaApjzwb37IFmiyF440F93hxmEYgXHk3poOlYYaigl2JMYbysGPWOiXnqUXA==}
+ '@sentry-internal/replay-canvas@10.19.0':
+ resolution: {integrity: sha512-DulLU4lvtrGPExKtpbCveLxPACrFmGx4eEYhzIn35UH8iIx6ONRSLemQyiUJQoLau7KXJy0I8AWxN+SagfebEA==}
engines: {node: '>=18'}
- '@sentry-internal/replay@10.12.0':
- resolution: {integrity: sha512-/1093gSNGN5KlOBsuyAl33JkzGiG38kCnxswQLZWpPpR6LBbR1Ddb18HjhDpoQNNEZybJBgJC3a5NKl43C2TSQ==}
+ '@sentry-internal/replay@10.19.0':
+ resolution: {integrity: sha512-bOWsm/t+d2LCYa3gUjgwFds6kKSW+K6i4pssgDY4XiV/MxHsQtQ2rbHX80chLRQe2HFCX2njvjVSJN+Nsdjmpg==}
engines: {node: '>=18'}
- '@sentry/babel-plugin-component-annotate@4.3.0':
- resolution: {integrity: sha512-OuxqBprXRyhe8Pkfyz/4yHQJc5c3lm+TmYWSSx8u48g5yKewSQDOxkiLU5pAk3WnbLPy8XwU/PN+2BG0YFU9Nw==}
+ '@sentry/babel-plugin-component-annotate@4.4.0':
+ resolution: {integrity: sha512-Pzjpn9MZg6yR61ThJgOoD28dLNCj457O0/t8d276K+Bzf8iOZKbrNO4sltp1vUB1yqhV+ulvIZO8xu8ABohtsg==}
engines: {node: '>= 14'}
- '@sentry/browser@10.12.0':
- resolution: {integrity: sha512-lKyaB2NFmr7SxPjmMTLLhQ7xfxaY3kdkMhpzuRI5qwOngtKt4+FtvNYHRuz+PTtEFv4OaHhNNbRn6r91gWguQg==}
+ '@sentry/browser@10.19.0':
+ resolution: {integrity: sha512-/+B84qFOLg1vJhg4YSA4a7Pneq5Pbt1BXEdrp/UW4tJmtGPZb28qXlMdoPfmFWZgVezrawaPkxLmbu+47/+rsQ==}
engines: {node: '>=18'}
- '@sentry/bundler-plugin-core@4.3.0':
- resolution: {integrity: sha512-dmR4DJhJ4jqVWGWppuTL2blNFqOZZnt4aLkewbD1myFG3KVfUx8CrMQWEmGjkgPOtj5TO6xH9PyTJjXC6o5tnA==}
+ '@sentry/bundler-plugin-core@4.4.0':
+ resolution: {integrity: sha512-WTGhgwxzyolzOg0sudULK0rRgLndtsEiBt4QwltKW/WYArMtFyf286aZx19uQ+rD+bSx3Il81SD23nqDOTtnzg==}
engines: {node: '>= 14'}
- '@sentry/cli-darwin@2.53.0':
- resolution: {integrity: sha512-NNPfpILMwKgpHiyJubHHuauMKltkrgLQ5tvMdxNpxY60jBNdo5VJtpESp4XmXlnidzV4j1z61V4ozU6ttDgt5Q==}
+ '@sentry/cli-darwin@2.56.1':
+ resolution: {integrity: sha512-zfhT8MrvB5x/xRdIVGwg+sG0Cx3i0G6RH2zCrdQ/moWn8TfkwsM0O1k/AxpwbpcRfAHCkVb04CU/yKciKwg2KA==}
engines: {node: '>=10'}
os: [darwin]
- '@sentry/cli-linux-arm64@2.53.0':
- resolution: {integrity: sha512-xY/CZ1dVazsSCvTXzKpAgXaRqfljVfdrFaYZRUaRPf1ZJRGa3dcrivoOhSIeG/p5NdYtMvslMPY9Gm2MT0M83A==}
+ '@sentry/cli-linux-arm64@2.56.1':
+ resolution: {integrity: sha512-AypXIwZvOMJb9RgjI/98hTAd06FcOjqjIm6G9IR0OI4pJCOcaAXz9NKXdJqxpZd7phSMJnD+Bx/8iYOUPeY73A==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux, freebsd, android]
- '@sentry/cli-linux-arm@2.53.0':
- resolution: {integrity: sha512-NdRzQ15Ht83qG0/Lyu11ciy/Hu/oXbbtJUgwzACc7bWvHQA8xEwTsehWexqn1529Kfc5EjuZ0Wmj3MHmp+jOWw==}
+ '@sentry/cli-linux-arm@2.56.1':
+ resolution: {integrity: sha512-fNB/Ng11HrkGOSEIDg+fc3zfTCV7q6kJddp6ndK3QlYFsCffRSnclaX1SMp+mqxdWkHqe1kkp85OY8G/x5uAWw==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux, freebsd, android]
- '@sentry/cli-linux-i686@2.53.0':
- resolution: {integrity: sha512-0REmBibGAB4jtqt9S6JEsFF4QybzcXHPcHtJjgMi5T0ueh952uG9wLzjSxQErCsxTKF+fL8oG0Oz5yKBuCwCCQ==}
+ '@sentry/cli-linux-i686@2.56.1':
+ resolution: {integrity: sha512-vnH+WJEsUq7Lf7xc9udzE/M4hoDXXsniFFYr/7BvdnXtCQlNNaWFMXHbEDYAql3baIlHkWoG8cEHWuB/YKyniw==}
engines: {node: '>=10'}
cpu: [x86, ia32]
os: [linux, freebsd, android]
- '@sentry/cli-linux-x64@2.53.0':
- resolution: {integrity: sha512-9UGJL+Vy5N/YL1EWPZ/dyXLkShlNaDNrzxx4G7mTS9ywjg+BIuemo6rnN7w43K1NOjObTVO6zY0FwumJ1pCyLg==}
+ '@sentry/cli-linux-x64@2.56.1':
+ resolution: {integrity: sha512-3/BlKe5Vdnia36MeovghHJD8lbcum5TFIxLp+PSfH2sVb09+5Jo0L95oRTI2JkD8Fs+QNssvTqTxJj5eIo/n+A==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux, freebsd, android]
- '@sentry/cli-win32-arm64@2.53.0':
- resolution: {integrity: sha512-G1kjOjrjMBY20rQcJV2GA8KQE74ufmROCDb2GXYRfjvb1fKAsm4Oh8N5+Tqi7xEHdjQoLPkE4CNW0aH68JSUDQ==}
+ '@sentry/cli-win32-arm64@2.56.1':
+ resolution: {integrity: sha512-Gg8RV7CV7Tz4fiR1EN1Af5AVhJsnEXiZvfvfQXI4lp51MKAhcxZIMtEfg9HaWsn3Dm/wgwYBinyeywfWbTXYDg==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
- '@sentry/cli-win32-i686@2.53.0':
- resolution: {integrity: sha512-qbGTZUzesuUaPtY9rPXdNfwLqOZKXrJRC1zUFn52hdo6B+Dmv0m/AHwRVFHZP53Tg1NCa8bDei2K/uzRN0dUZw==}
+ '@sentry/cli-win32-i686@2.56.1':
+ resolution: {integrity: sha512-6u6a060yC3i76Ze1apqgWr5luQSyhuD5ND84eWfh/UbddsEa42UHjoVHOiBwmpZqf/hvNZAtzLnE4NCvU4zOMg==}
engines: {node: '>=10'}
cpu: [x86, ia32]
os: [win32]
- '@sentry/cli-win32-x64@2.53.0':
- resolution: {integrity: sha512-1TXYxYHtwgUq5KAJt3erRzzUtPqg7BlH9T7MdSPHjJatkrr/kwZqnVe2H6Arr/5NH891vOlIeSPHBdgJUAD69g==}
+ '@sentry/cli-win32-x64@2.56.1':
+ resolution: {integrity: sha512-11cdflajBrDWlRZqI9MOu7ok2vnPzFjKmbU3YvBYWQapNE+HHAsWdsRL/u/P1RmU62vj7Y42iSUcj6x1SNrdPw==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
- '@sentry/cli@2.53.0':
- resolution: {integrity: sha512-n2ZNb+5Z6AZKQSI0SusQ7ZzFL637mfw3Xh4C3PEyVSn9LiF683fX0TTq8OeGmNZQS4maYfS95IFD+XpydU0dEA==}
+ '@sentry/cli@2.56.1':
+ resolution: {integrity: sha512-VDAIg+gmjNtJS5VUZQMDSK9RaKC9hYQi3PoXpNa+owNfQNk60bCi8z8jkbWRcKbNGn3V51WqvrQAqLoNAdPc9w==}
engines: {node: '>= 10'}
hasBin: true
- '@sentry/core@10.12.0':
- resolution: {integrity: sha512-Jrf0Yo7DvmI/ZQcvBnA0xKNAFkJlVC/fMlvcin+5IrFNRcqOToZ2vtF+XqTgjRZymXQNE8s1QTD7IomPHk0TAw==}
+ '@sentry/core@10.19.0':
+ resolution: {integrity: sha512-OqZjYDYsK6ZmBG5UzML0uKiKq//G6mMwPcszfuCsFgPt+pg5giUCrCUbt5VIVkHdN1qEEBk321JO2haU5n2Eig==}
engines: {node: '>=18'}
- '@sentry/node-core@10.12.0':
- resolution: {integrity: sha512-ki+pX4YyVVMhue1Qso0Kiz862ragDe1PgRc/AgtUJ0jc75s5PTvQw6N+9DAtSahL8t078+8rC7UzyGdLTPCl5w==}
+ '@sentry/node-core@10.19.0':
+ resolution: {integrity: sha512-m3xTaIDSh1V88K+e1zaGwKKuhDUAHMX1nncJmsGm8Hwg7FLK2fdr7wm9IJaIF0S1E4R38oHC4kZdL+ebrUghDg==}
engines: {node: '>=18'}
peerDependencies:
'@opentelemetry/api': ^1.9.0
@@ -3876,12 +4005,12 @@ packages:
'@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0
'@opentelemetry/semantic-conventions': ^1.37.0
- '@sentry/node@10.12.0':
- resolution: {integrity: sha512-rnrNKJkG8rbm1NZaYAhTfLqGmZmiOjv9Y6apa1G9+hsfAqdK4SGFa/s22WG//qVnvqW4aDXR883Dvc0236op+g==}
+ '@sentry/node@10.19.0':
+ resolution: {integrity: sha512-GUN/UVRsqnXd4O8GCxR8F682nyYemeO4mr0Yc5JPz0CxT2gYkemuifT29bFOont8V5o055WJv32NrQnZcm/nyg==}
engines: {node: '>=18'}
- '@sentry/opentelemetry@10.12.0':
- resolution: {integrity: sha512-bkUfLVpu0qTfCrQsz7uE/ch0kCJSV2KlFtguWPLMG2m0JOLDI+iivLm2nbp+Bg16FopZojKs5P8aevCSl+ilEw==}
+ '@sentry/opentelemetry@10.19.0':
+ resolution: {integrity: sha512-o1NWDWXM4flBIqqBECcaZ+y0TS44UxQh5BtTTPJzkU0FsWOytn9lp9ccVi7qBMb7Zrl3rw3Q0BRNETKVG5Ag/w==}
engines: {node: '>=18'}
peerDependencies:
'@opentelemetry/api': ^1.9.0
@@ -3890,40 +4019,40 @@ packages:
'@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0
'@opentelemetry/semantic-conventions': ^1.37.0
- '@sentry/profiling-node@10.12.0':
- resolution: {integrity: sha512-F6ZyDi2zCQEpUFpp2n2H+WRDgyFpiY1B4BsTJsUitZPGuVxq5gF0Kxc0685q2pWgY2S23eOY61OZvFOvL3Kjrg==}
+ '@sentry/profiling-node@10.19.0':
+ resolution: {integrity: sha512-PRFlxHLngxkJkzZkxD6deWtwzUtBo6EYPJkcPneDo/q29skQGtzVfPaWwNTldnOBBfgjtpA90hZLQoKuffxvqA==}
engines: {node: '>=18'}
hasBin: true
- '@sentry/react-router@10.12.0':
- resolution: {integrity: sha512-0rAr63ARYb807tPd4gc94fyuf1BjPk5TCaXLlAo+v9/mFNWIjtZhaSXkR++UCE6XV5aNhgCquiLonYaDbfaLlw==}
+ '@sentry/react-router@10.19.0':
+ resolution: {integrity: sha512-ckD9abODeB+nJPjauVY6ARMfooMrQondZ0CSCSCuJFmAqrc8r4PqIzgvoEtcvs5SXuvfWwMs22FeXEgIhbPgiA==}
engines: {node: '>=20'}
peerDependencies:
'@react-router/node': 7.x
react: '>=18'
react-router: 7.x
- '@sentry/react@10.12.0':
- resolution: {integrity: sha512-TpqgdoYbkf5JynmmW2oQhHQ/h5w+XPYk0cEb/UrsGlvJvnBSR+5tgh0AqxCSi3gvtp82rAXI5w1TyRPBbhLDBw==}
+ '@sentry/react@10.19.0':
+ resolution: {integrity: sha512-LgADcXfJ4hVVtOSW6IkY3Wsefw4xPHIQpiEux28GHf2EAYkWxyCWWb9uQH4voAacG+FcX63XfJkpUMZjadE9qw==}
engines: {node: '>=18'}
peerDependencies:
react: ^16.14.0 || 17.x || 18.x || 19.x
- '@sentry/vite-plugin@4.3.0':
- resolution: {integrity: sha512-MeTAHMmTOgBPMAjeW7/ONyXwgScZdaFFtNiALKcAODnVqC7eoHdSRIWeH5mkLr2Dvs7nqtBaDpKxRjUBgfm9LQ==}
+ '@sentry/vite-plugin@4.4.0':
+ resolution: {integrity: sha512-sOq1xJj5URIa/c4fSJomjOjp7l0ljk4WWRjol6ERwJ5wntOKDrw5Y7T1ZbyiDGD8/ndzQnn4Od03Z+jSvpqwog==}
engines: {node: '>= 14'}
- '@shikijs/engine-oniguruma@3.12.2':
- resolution: {integrity: sha512-hozwnFHsLvujK4/CPVHNo3Bcg2EsnG8krI/ZQ2FlBlCRpPZW4XAEQmEwqegJsypsTAN9ehu2tEYe30lYKSZW/w==}
+ '@shikijs/engine-oniguruma@3.13.0':
+ resolution: {integrity: sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==}
- '@shikijs/langs@3.12.2':
- resolution: {integrity: sha512-bVx5PfuZHDSHoBal+KzJZGheFuyH4qwwcwG/n+MsWno5cTlKmaNtTsGzJpHYQ8YPbB5BdEdKU1rga5/6JGY8ww==}
+ '@shikijs/langs@3.13.0':
+ resolution: {integrity: sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==}
- '@shikijs/themes@3.12.2':
- resolution: {integrity: sha512-fTR3QAgnwYpfGczpIbzPjlRnxyONJOerguQv1iwpyQZ9QXX4qy/XFQqXlf17XTsorxnHoJGbH/LXBvwtqDsF5A==}
+ '@shikijs/themes@3.13.0':
+ resolution: {integrity: sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==}
- '@shikijs/types@3.12.2':
- resolution: {integrity: sha512-K5UIBzxCyv0YoxN3LMrKB9zuhp1bV+LgewxuVwHdl4Gz5oePoUFrr9EfgJlGlDeXCU1b/yhdnXeuRvAnz8HN8Q==}
+ '@shikijs/types@3.13.0':
+ resolution: {integrity: sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==}
'@shikijs/vscode-textmate@10.0.2':
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
@@ -3937,11 +4066,11 @@ packages:
'@sideway/pinpoint@2.0.0':
resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
- '@simplewebauthn/browser@13.2.0':
- resolution: {integrity: sha512-N3fuA1AAnTo5gCStYoIoiasPccC+xPLx2YU88Dv0GeAmPQTWHETlZQq5xZ0DgUq1H9loXMWQH5qqUjcI7BHJ1A==}
+ '@simplewebauthn/browser@13.2.2':
+ resolution: {integrity: sha512-FNW1oLQpTJyqG5kkDg5ZsotvWgmBaC6jCHR7Ej0qUNep36Wl9tj2eZu7J5rP+uhXgHaLk+QQ3lqcw2vS5MX1IA==}
- '@simplewebauthn/server@13.2.1':
- resolution: {integrity: sha512-Inmfye5opZXe3HI0GaksqBnQiM7glcNySoG6DH1GgkO1Lh9dvuV4XSV9DK02DReUVX39HpcDob9nxHELjECoQw==}
+ '@simplewebauthn/server@13.2.2':
+ resolution: {integrity: sha512-HcWLW28yTMGXpwE9VLx9J+N2KEUaELadLrkPEEI9tpI5la70xNEVEsu/C+m3u7uoq4FulLqZQhgBCzR9IZhFpA==}
engines: {node: '>=20.0.0'}
'@sinclair/typebox@0.27.8':
@@ -4117,68 +4246,68 @@ packages:
'@swc/counter@0.1.3':
resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
- '@swc/html-darwin-arm64@1.13.5':
- resolution: {integrity: sha512-5r4kGFQJm85EKOxSiP9pUT/9T1uq+tx0s5HRqfM/J1hVZmpIq2GudBVYS8CGklVWAVQ0tBHhBuP9SysAb/pcSA==}
+ '@swc/html-darwin-arm64@1.13.20':
+ resolution: {integrity: sha512-i4JhqTd/bt+rG/+Uc78Ce3D9r0O8jBBMVUnbQ8QREoZsyT3cN8ecWh05sxswB63kBbcc8a8uR65iYvUciSBsMg==}
engines: {node: '>=10'}
cpu: [arm64]
os: [darwin]
- '@swc/html-darwin-x64@1.13.5':
- resolution: {integrity: sha512-bCY0BSfxrmbKpInB/wZFX0DH4hgEQBwWLeKNwZhafIR5R/tvzuiIvb/VdkeKv8+26r2lkedbp+EreCFnDqQ2BQ==}
+ '@swc/html-darwin-x64@1.13.20':
+ resolution: {integrity: sha512-k4lTekp9rIqb4n/xvQNwLDhKZf83UsufKTUyF4HsEsdUep7CBy5BfozocyC+sDmNIJSF27xjHsj/7kRC6Ote+Q==}
engines: {node: '>=10'}
cpu: [x64]
os: [darwin]
- '@swc/html-linux-arm-gnueabihf@1.13.5':
- resolution: {integrity: sha512-o6TVZERfx7Z8btauYE7nHgMEPPIVemqAZL3ViUTuBK6asF9wfJ4m2YAbsrlzi8xaLgaizWvdUV7W1qE5yfOxPg==}
+ '@swc/html-linux-arm-gnueabihf@1.13.20':
+ resolution: {integrity: sha512-uCbb0wzInSQ5fHfo2Q7Kl23HjZOokTgKgXIG32vwWcSNqhoDnbDTiy8bxF9CfrCVoNxP166OycEfJ2Aow0keHg==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux]
- '@swc/html-linux-arm64-gnu@1.13.5':
- resolution: {integrity: sha512-I/Ip5FtCfQ0wYg2MurytkEWPZrFB1SOPOeTNu4n+PAWDBjEcX3q+wgmMpzoGgVljvpEAQviJ+jzRyLW2tDDVHA==}
+ '@swc/html-linux-arm64-gnu@1.13.20':
+ resolution: {integrity: sha512-SGmmo6V5IXWOcDRcnQwJ44hEWtERGuJ7Fd9qgElErUZlx4kri9nS8MbudGViLyYm/ElClUs51sgxGqrg1F2TYA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
- '@swc/html-linux-arm64-musl@1.13.5':
- resolution: {integrity: sha512-q8RTISYZuI5qOR8wEhox2oC+ZBo5IBaT6N43b5W+JRSIMKIsY7hVgC3gSI/tG4/6K14hv2QrqtAUFzVpLwtkyA==}
+ '@swc/html-linux-arm64-musl@1.13.20':
+ resolution: {integrity: sha512-HrqXdFuBeCe3nfSn4NSizPrtth4lsLJPF1LwwqYHgsE1bAuUkIOEgWmtcLlG1hZ7AhonLX+CIT0JNiSN0ALE7w==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
- '@swc/html-linux-x64-gnu@1.13.5':
- resolution: {integrity: sha512-YFU0/xVWzjAtg5V6QREW510O5/SNILrm18Vo2qF1bTktCB2eCjNSjCHOdicvPXTImEUlTp0ey6wO+QvEuvRFAg==}
+ '@swc/html-linux-x64-gnu@1.13.20':
+ resolution: {integrity: sha512-4F7MY4p7YQ/WjyPCwuAtWICyZSief1uoE6stMCIC4yVm5ybwbWKJqLPrd0lbC9W0jllk4TYHoUYI6WAc7jCJKA==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
- '@swc/html-linux-x64-musl@1.13.5':
- resolution: {integrity: sha512-/ilgZm7umDQTea97FlE0pIcoHTAlICE+aSoVvLi+ONL3wr4g1ebwlgQ5Cxpgp5cxnKeghDYpqP/mFLh+Ztl8DQ==}
+ '@swc/html-linux-x64-musl@1.13.20':
+ resolution: {integrity: sha512-aL6BNlq2vIC2nS+Y0OEHZcOit9BFig0bzb78fSfK8eCz8+/ZIQujgLRxnKw2smAPtMBwS00mqaQPeRJt0J60bQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
- '@swc/html-win32-arm64-msvc@1.13.5':
- resolution: {integrity: sha512-aLZvyEhzM6e7E53jelEp9ob/CrZ4K0atmsq+ctsaki8PNOu8shM03CEK1yQNCdZLR1kKkUgytyUVMEbhqz+IQQ==}
+ '@swc/html-win32-arm64-msvc@1.13.20':
+ resolution: {integrity: sha512-x2APd7wcxaer8cjKL6V9J+Y8dCUbxyrLC2GyB7xopL4TLfzqcY6V6jRWKB8eT41pF4ZqF3GqFv73jPZk1HNyOw==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
- '@swc/html-win32-ia32-msvc@1.13.5':
- resolution: {integrity: sha512-51QXTdKMmgRriRmTzH0gkeyHLY4knJdAKEY1kPTBeguXCjgLIUX2nMQd24oe9ovJfPce0NCOmCSrODri8PiduQ==}
+ '@swc/html-win32-ia32-msvc@1.13.20':
+ resolution: {integrity: sha512-PZYEc8M32pGazbRv2NVxakHe8XqGUTUmLgORlZFG1mW6c2/wSUl6+J/C/4+Q8lQu2IjeUdCd8HHovpoKPXR/EA==}
engines: {node: '>=10'}
cpu: [ia32]
os: [win32]
- '@swc/html-win32-x64-msvc@1.13.5':
- resolution: {integrity: sha512-MnU1fMNZijEKkKTp12SKbNuH7rglgHhXSFZr+zjDhQmtVPEF4goCrBfoY8ZJ4j9FjOGyodFcYH6ulz95l9/QwQ==}
+ '@swc/html-win32-x64-msvc@1.13.20':
+ resolution: {integrity: sha512-hYYsqFgeR0/rao2dPkyHnAArqpu364IxhbJIUhjRr6uv2nQn1KiKS6vLtoZkR4GiVAHkOi8Vl7verEPoDBiaXQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
- '@swc/html@1.13.5':
- resolution: {integrity: sha512-eVAyb3kk6wltz4FnWNRL06iYnqkQuTfpe5Fin9oLLmcpIYr2DgHcrGgeDJF4vJc9YZwACvEYmV8DC+1NfdzAJQ==}
+ '@swc/html@1.13.20':
+ resolution: {integrity: sha512-WzMTUUVd27Y1/Nhu333YA9bbfXujsn3geENnxa7pFmkA8L3ea+ZtMShJl51IC/X5fr2973ObzhNiFQb3iWF+ig==}
engines: {node: '>=14'}
'@swc/types@0.1.25':
@@ -4192,65 +4321,65 @@ packages:
resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
engines: {node: '>=14.16'}
- '@tailwindcss/node@4.1.13':
- resolution: {integrity: sha512-eq3ouolC1oEFOAvOMOBAmfCIqZBJuvWvvYWh5h5iOYfe1HFC6+GZ6EIL0JdM3/niGRJmnrOc+8gl9/HGUaaptw==}
+ '@tailwindcss/node@4.1.14':
+ resolution: {integrity: sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==}
- '@tailwindcss/oxide-android-arm64@4.1.13':
- resolution: {integrity: sha512-BrpTrVYyejbgGo57yc8ieE+D6VT9GOgnNdmh5Sac6+t0m+v+sKQevpFVpwX3pBrM2qKrQwJ0c5eDbtjouY/+ew==}
+ '@tailwindcss/oxide-android-arm64@4.1.14':
+ resolution: {integrity: sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
- '@tailwindcss/oxide-darwin-arm64@4.1.13':
- resolution: {integrity: sha512-YP+Jksc4U0KHcu76UhRDHq9bx4qtBftp9ShK/7UGfq0wpaP96YVnnjFnj3ZFrUAjc5iECzODl/Ts0AN7ZPOANQ==}
+ '@tailwindcss/oxide-darwin-arm64@4.1.14':
+ resolution: {integrity: sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@tailwindcss/oxide-darwin-x64@4.1.13':
- resolution: {integrity: sha512-aAJ3bbwrn/PQHDxCto9sxwQfT30PzyYJFG0u/BWZGeVXi5Hx6uuUOQEI2Fa43qvmUjTRQNZnGqe9t0Zntexeuw==}
+ '@tailwindcss/oxide-darwin-x64@4.1.14':
+ resolution: {integrity: sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@tailwindcss/oxide-freebsd-x64@4.1.13':
- resolution: {integrity: sha512-Wt8KvASHwSXhKE/dJLCCWcTSVmBj3xhVhp/aF3RpAhGeZ3sVo7+NTfgiN8Vey/Fi8prRClDs6/f0KXPDTZE6nQ==}
+ '@tailwindcss/oxide-freebsd-x64@4.1.14':
+ resolution: {integrity: sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [freebsd]
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.13':
- resolution: {integrity: sha512-mbVbcAsW3Gkm2MGwA93eLtWrwajz91aXZCNSkGTx/R5eb6KpKD5q8Ueckkh9YNboU8RH7jiv+ol/I7ZyQ9H7Bw==}
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14':
+ resolution: {integrity: sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
- '@tailwindcss/oxide-linux-arm64-gnu@4.1.13':
- resolution: {integrity: sha512-wdtfkmpXiwej/yoAkrCP2DNzRXCALq9NVLgLELgLim1QpSfhQM5+ZxQQF8fkOiEpuNoKLp4nKZ6RC4kmeFH0HQ==}
+ '@tailwindcss/oxide-linux-arm64-gnu@4.1.14':
+ resolution: {integrity: sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@tailwindcss/oxide-linux-arm64-musl@4.1.13':
- resolution: {integrity: sha512-hZQrmtLdhyqzXHB7mkXfq0IYbxegaqTmfa1p9MBj72WPoDD3oNOh1Lnxf6xZLY9C3OV6qiCYkO1i/LrzEdW2mg==}
+ '@tailwindcss/oxide-linux-arm64-musl@4.1.14':
+ resolution: {integrity: sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@tailwindcss/oxide-linux-x64-gnu@4.1.13':
- resolution: {integrity: sha512-uaZTYWxSXyMWDJZNY1Ul7XkJTCBRFZ5Fo6wtjrgBKzZLoJNrG+WderJwAjPzuNZOnmdrVg260DKwXCFtJ/hWRQ==}
+ '@tailwindcss/oxide-linux-x64-gnu@4.1.14':
+ resolution: {integrity: sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@tailwindcss/oxide-linux-x64-musl@4.1.13':
- resolution: {integrity: sha512-oXiPj5mi4Hdn50v5RdnuuIms0PVPI/EG4fxAfFiIKQh5TgQgX7oSuDWntHW7WNIi/yVLAiS+CRGW4RkoGSSgVQ==}
+ '@tailwindcss/oxide-linux-x64-musl@4.1.14':
+ resolution: {integrity: sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@tailwindcss/oxide-wasm32-wasi@4.1.13':
- resolution: {integrity: sha512-+LC2nNtPovtrDwBc/nqnIKYh/W2+R69FA0hgoeOn64BdCX522u19ryLh3Vf3F8W49XBcMIxSe665kwy21FkhvA==}
+ '@tailwindcss/oxide-wasm32-wasi@4.1.14':
+ resolution: {integrity: sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
bundledDependencies:
@@ -4261,27 +4390,27 @@ packages:
- '@emnapi/wasi-threads'
- tslib
- '@tailwindcss/oxide-win32-arm64-msvc@4.1.13':
- resolution: {integrity: sha512-dziTNeQXtoQ2KBXmrjCxsuPk3F3CQ/yb7ZNZNA+UkNTeiTGgfeh+gH5Pi7mRncVgcPD2xgHvkFCh/MhZWSgyQg==}
+ '@tailwindcss/oxide-win32-arm64-msvc@4.1.14':
+ resolution: {integrity: sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@tailwindcss/oxide-win32-x64-msvc@4.1.13':
- resolution: {integrity: sha512-3+LKesjXydTkHk5zXX01b5KMzLV1xl2mcktBJkje7rhFUpUlYJy7IMOLqjIRQncLTa1WZZiFY/foAeB5nmaiTw==}
+ '@tailwindcss/oxide-win32-x64-msvc@4.1.14':
+ resolution: {integrity: sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
- '@tailwindcss/oxide@4.1.13':
- resolution: {integrity: sha512-CPgsM1IpGRa880sMbYmG1s4xhAy3xEt1QULgTJGQmZUeNgXFR7s1YxYygmJyBGtou4SyEosGAGEeYqY7R53bIA==}
+ '@tailwindcss/oxide@4.1.14':
+ resolution: {integrity: sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==}
engines: {node: '>= 10'}
- '@tailwindcss/postcss@4.1.13':
- resolution: {integrity: sha512-HLgx6YSFKJT7rJqh9oJs/TkBFhxuMOfUKSBEPYwV+t78POOBsdQ7crhZLzwcH3T0UyUuOzU/GK5pk5eKr3wCiQ==}
+ '@tailwindcss/postcss@4.1.14':
+ resolution: {integrity: sha512-BdMjIxy7HUNThK87C7BC8I1rE8BVUsfNQSI5siQ4JK3iIa3w0XyVvVL9SXLWO//CtYTcp1v7zci0fYwJOjB+Zg==}
- '@tailwindcss/vite@4.1.13':
- resolution: {integrity: sha512-0PmqLQ010N58SbMTJ7BVJ4I2xopiQn/5i6nlb4JmxzQf8zcS5+m2Cv6tqh+sfDwtIdjoEnOvwsGQ1hkUi8QEHQ==}
+ '@tailwindcss/vite@4.1.14':
+ resolution: {integrity: sha512-BoFUoU0XqgCUS1UXWhmDJroKKhNXeDzD7/XwabjkDIAbMnc4ULn5e2FuEuBbhZ6ENZoSYzKlzvZ44Yr6EUDUSA==}
peerDependencies:
vite: ^5.2.0 || ^6 || ^7
@@ -4721,11 +4850,11 @@ packages:
'@types/estree@1.0.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
- '@types/express-serve-static-core@4.19.6':
- resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==}
+ '@types/express-serve-static-core@4.19.7':
+ resolution: {integrity: sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==}
- '@types/express-serve-static-core@5.0.7':
- resolution: {integrity: sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==}
+ '@types/express-serve-static-core@5.1.0':
+ resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==}
'@types/express@4.17.23':
resolution: {integrity: sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==}
@@ -4817,8 +4946,8 @@ packages:
'@types/node@17.0.45':
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
- '@types/node@24.5.2':
- resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==}
+ '@types/node@24.7.2':
+ resolution: {integrity: sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==}
'@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@@ -4844,10 +4973,10 @@ packages:
'@types/rbush@4.0.0':
resolution: {integrity: sha512-+N+2H39P8X+Hy1I5mC6awlTX54k3FhiUmvt7HWzGJZvF+syUAAxP/stwppS8JE84YHqFgRMv6fCy31202CMFxQ==}
- '@types/react-dom@19.1.9':
- resolution: {integrity: sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==}
+ '@types/react-dom@19.2.2':
+ resolution: {integrity: sha512-9KQPoO6mZCi7jcIStSnlOWn2nEF3mNmyr3rIAsGnAbQKYbRLyqmeSc39EVgtxXVia+LMT8j3knZLAZAh+xLmrw==}
peerDependencies:
- '@types/react': ^19.0.0
+ '@types/react': ^19.2.0
'@types/react-map-gl@6.1.7':
resolution: {integrity: sha512-szkfkWd3FbySDkxyn0MDj9yzD8XYk+RIi4od6sGb3lVHNBGcW20G2v2vcq2N5k18UYAdqAoKGSYuHkGV4JOCrA==}
@@ -4861,8 +4990,8 @@ packages:
'@types/react-router@5.1.20':
resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
- '@types/react@19.1.13':
- resolution: {integrity: sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ==}
+ '@types/react@19.2.2':
+ resolution: {integrity: sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==}
'@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
@@ -4879,11 +5008,14 @@ packages:
'@types/send@0.17.5':
resolution: {integrity: sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==}
+ '@types/send@1.2.0':
+ resolution: {integrity: sha512-zBF6vZJn1IaMpg3xUF25VK3gd3l8zwE0ZLRX7dsQyQi+jp4E8mMDJNGDYnYse+bQhYwWERTxVwHpi3dMOq7RKQ==}
+
'@types/serve-index@1.9.4':
resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
- '@types/serve-static@1.15.8':
- resolution: {integrity: sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==}
+ '@types/serve-static@1.15.9':
+ resolution: {integrity: sha512-dOTIuqpWLyl3BBXU3maNQsS4A3zuuoYRNIvYSxxhebPfXg2mzWQEPne/nlJ37yOse6uGgR386uTpdsx4D0QZWA==}
'@types/shimmer@1.2.0':
resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==}
@@ -4921,8 +5053,8 @@ packages:
'@ungap/structured-clone@1.3.0':
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
- '@vis.gl/react-mapbox@8.0.4':
- resolution: {integrity: sha512-NFk0vsWcNzSs0YCsVdt2100Zli9QWR+pje8DacpLkkGEAXFaJsFtI1oKD0Hatiate4/iAIW39SQHhgfhbeEPfQ==}
+ '@vis.gl/react-mapbox@8.1.0':
+ resolution: {integrity: sha512-FwvH822oxEjWYOr+pP2L8hpv+7cZB2UsQbHHHT0ryrkvvqzmTgt7qHDhamv0EobKw86e1I+B4ojENdJ5G5BkyQ==}
peerDependencies:
mapbox-gl: '>=3.5.0'
react: '>=16.3.0'
@@ -4931,8 +5063,8 @@ packages:
mapbox-gl:
optional: true
- '@vis.gl/react-maplibre@8.0.4':
- resolution: {integrity: sha512-HwZyfLjEu+y1mUFvwDAkVxinGm8fEegaWN+O8np/WZ2Sqe5Lv6OXFpV6GWz9LOEvBYMbGuGk1FQdejo+4HCJ5w==}
+ '@vis.gl/react-maplibre@8.1.0':
+ resolution: {integrity: sha512-PkAK/gp3mUfhCLhUuc+4gc3PN9zCtVGxTF2hB6R5R5yYUw+hdg84OZ770U5MU4tPMTCG6fbduExuIW6RRKN6qQ==}
peerDependencies:
maplibre-gl: '>=4.0.0'
react: '>=16.3.0'
@@ -5107,8 +5239,8 @@ packages:
peerDependencies:
algoliasearch: '>= 3.1 < 6'
- algoliasearch@5.37.0:
- resolution: {integrity: sha512-y7gau/ZOQDqoInTQp0IwTOjkrHc4Aq4R8JgpmCleFwiLl+PbN2DMWoDUWZnrK8AhNJwT++dn28Bt4NZYNLAmuA==}
+ algoliasearch@5.40.0:
+ resolution: {integrity: sha512-a9aIL2E3Z7uYUPMCmjMFFd5MWhn+ccTubEvnMy7rOTZCB62dXBJtz0R5BZ/TPuX3R9ocBsgWuAbGWQ+Ph4Fmlg==}
engines: {node: '>= 14.0.0'}
ansi-align@3.0.1:
@@ -5195,8 +5327,8 @@ packages:
resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
engines: {node: '>=0.10.0'}
- ast-v8-to-istanbul@0.3.5:
- resolution: {integrity: sha512-9SdXjNheSiE8bALAQCQQuT6fgQaoxJh7IRYrRGZ8/9nv8WhJeC1aXAwN8TbaOssGOukUvyvnkgD9+Yuykvl1aA==}
+ ast-v8-to-istanbul@0.3.6:
+ resolution: {integrity: sha512-9tx1z/7OF/a8EdYL3FKoBhxLf3h3D8fXvuSj0HknsVeli2HE40qbNZxyFhMtnydaRiamwFu9zhb+BsJ5tVPehQ==}
astring@1.9.0:
resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
@@ -5260,8 +5392,8 @@ packages:
base-64@0.1.0:
resolution: {integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==}
- baseline-browser-mapping@2.8.5:
- resolution: {integrity: sha512-TiU4qUT9jdCuh4aVOG7H1QozyeI2sZRqoRPdqBIaslfNt4WUSanRBueAwl2x5jt4rXBMim3lIN2x6yT8PDi24Q==}
+ baseline-browser-mapping@2.8.16:
+ resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==}
hasBin: true
basic-auth@2.0.1:
@@ -5345,8 +5477,8 @@ packages:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
- browserslist@4.26.2:
- resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==}
+ browserslist@4.26.3:
+ resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
@@ -5428,8 +5560,8 @@ packages:
caniuse-api@3.0.0:
resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
- caniuse-lite@1.0.30001743:
- resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==}
+ caniuse-lite@1.0.30001750:
+ resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==}
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -5649,8 +5781,8 @@ packages:
resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==}
engines: {node: '>=18'}
- copy-text-to-clipboard@3.2.1:
- resolution: {integrity: sha512-3am6cw+WOicd0+HyzhC4kYS02wHJUiVQXmAADxfUARKsHBkWl1Vl3QQEiILlSs8YcPS/C0+y/urCNEYQk+byWA==}
+ copy-text-to-clipboard@3.2.2:
+ resolution: {integrity: sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==}
engines: {node: '>=12'}
copy-webpack-plugin@11.0.0:
@@ -5659,14 +5791,14 @@ packages:
peerDependencies:
webpack: ^5.1.0
- core-js-compat@3.45.1:
- resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==}
+ core-js-compat@3.46.0:
+ resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==}
- core-js-pure@3.45.1:
- resolution: {integrity: sha512-OHnWFKgTUshEU8MK+lOs1H8kC8GkTi9Z1tvNkxrCcw9wl3MJIO7q2ld77wjWn4/xuGrVu2X+nME1iIIPBSdyEQ==}
+ core-js-pure@3.46.0:
+ resolution: {integrity: sha512-NMCW30bHNofuhwLhYPt66OLOKTMbOhgTTatKVbaQC3KRHpTCiRIBYvtshr+NBYSnBxwAFhjW/RfJ0XbIjS16rw==}
- core-js@3.45.1:
- resolution: {integrity: sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==}
+ core-js@3.46.0:
+ resolution: {integrity: sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==}
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
@@ -5694,8 +5826,8 @@ packages:
peerDependencies:
postcss: ^8.4
- css-declaration-sorter@7.2.0:
- resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==}
+ css-declaration-sorter@7.3.0:
+ resolution: {integrity: sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.0.9
@@ -5770,8 +5902,8 @@ packages:
csscolorparser@1.0.3:
resolution: {integrity: sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==}
- cssdb@8.4.0:
- resolution: {integrity: sha512-lyATYGyvXwQ8h55WeQeEHXhI+47rl52pXSYkFK/ZrCbAJSgVIaPFjYc3RM8TpRHKk7W3wsAZImmLps+P5VyN9g==}
+ cssdb@8.4.2:
+ resolution: {integrity: sha512-PzjkRkRUS+IHDJohtxkIczlxPPZqRo0nXplsYXOMBRPjcVRjj1W4DfvRgshUYTVuUigU7ptVYkFJQ7abUB0nyg==}
cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
@@ -5988,8 +6120,8 @@ packages:
resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
engines: {node: '>=8'}
- detect-libc@2.1.0:
- resolution: {integrity: sha512-vEtk+OcP7VBRtQZ1EJ3bdgzSfBjgnEalLTp5zjJrS+2Z1w2KZly4SBdac/WDU3hhsNAZ9E8SC96ME4Ey8MZ7cg==}
+ detect-libc@2.1.2:
+ resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
detect-node-es@1.1.0:
@@ -6059,12 +6191,12 @@ packages:
resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
engines: {node: '>=12'}
- dotenv@17.2.2:
- resolution: {integrity: sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==}
+ dotenv@17.2.3:
+ resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==}
engines: {node: '>=12'}
- drizzle-kit@0.31.4:
- resolution: {integrity: sha512-tCPWVZWZqWVx2XUsVpJRnH9Mx0ClVOf5YUHerZ5so1OKSlqww4zy1R5ksEdGRcO3tM3zj0PYN6V48TbQCL1RfA==}
+ drizzle-kit@0.31.5:
+ resolution: {integrity: sha512-+CHgPFzuoTQTt7cOYCV6MOw2w8vqEn/ap1yv4bpZOWL03u7rlVRQhUY0WYT3rHsgVTXwYQDZaSUJSQrMBUKuWg==}
hasBin: true
drizzle-orm@0.44.4:
@@ -6159,6 +6291,98 @@ packages:
sqlite3:
optional: true
+ drizzle-orm@0.44.6:
+ resolution: {integrity: sha512-uy6uarrrEOc9K1u5/uhBFJbdF5VJ5xQ/Yzbecw3eAYOunv5FDeYkR2m8iitocdHBOHbvorviKOW5GVw0U1j4LQ==}
+ peerDependencies:
+ '@aws-sdk/client-rds-data': '>=3'
+ '@cloudflare/workers-types': '>=4'
+ '@electric-sql/pglite': '>=0.2.0'
+ '@libsql/client': '>=0.10.0'
+ '@libsql/client-wasm': '>=0.10.0'
+ '@neondatabase/serverless': '>=0.10.0'
+ '@op-engineering/op-sqlite': '>=2'
+ '@opentelemetry/api': ^1.4.1
+ '@planetscale/database': '>=1.13'
+ '@prisma/client': '*'
+ '@tidbcloud/serverless': '*'
+ '@types/better-sqlite3': '*'
+ '@types/pg': '*'
+ '@types/sql.js': '*'
+ '@upstash/redis': '>=1.34.7'
+ '@vercel/postgres': '>=0.8.0'
+ '@xata.io/client': '*'
+ better-sqlite3: '>=7'
+ bun-types: '*'
+ expo-sqlite: '>=14.0.0'
+ gel: '>=2'
+ knex: '*'
+ kysely: '*'
+ mysql2: '>=2'
+ pg: '>=8'
+ postgres: '>=3'
+ prisma: '*'
+ 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
+ '@libsql/client-wasm':
+ 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/sql.js':
+ optional: true
+ '@upstash/redis':
+ optional: true
+ '@vercel/postgres':
+ optional: true
+ '@xata.io/client':
+ optional: true
+ better-sqlite3:
+ optional: true
+ bun-types:
+ optional: true
+ expo-sqlite:
+ optional: true
+ gel:
+ optional: true
+ knex:
+ optional: true
+ kysely:
+ optional: true
+ mysql2:
+ optional: true
+ pg:
+ optional: true
+ postgres:
+ optional: true
+ prisma:
+ optional: true
+ sql.js:
+ optional: true
+ sqlite3:
+ optional: true
+
dunder-proto@1.0.1:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
@@ -6175,15 +6399,15 @@ packages:
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
- eciesjs@0.4.15:
- resolution: {integrity: sha512-r6kEJXDKecVOCj2nLMuXK/FCPeurW33+3JRpfXVbjLja3XUYFfD9I/JBreH6sUyzcm3G/YQboBjMla6poKeSdA==}
+ eciesjs@0.4.16:
+ resolution: {integrity: sha512-dS5cbA9rA2VR4Ybuvhg6jvdmp46ubLn3E+px8cG/35aEDNclrqoCjg6mt0HYZ/M+OoESS3jSkCrqk1kWAEhWAw==}
engines: {bun: '>=1', deno: '>=2', node: '>=16'}
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
- electron-to-chromium@1.5.221:
- resolution: {integrity: sha512-/1hFJ39wkW01ogqSyYoA4goOXOtMRy6B+yvA1u42nnsEGtHzIzmk93aPISumVQeblj47JUHLC9coCjUxb1EvtQ==}
+ electron-to-chromium@1.5.235:
+ resolution: {integrity: sha512-i/7ntLFwOdoHY7sgjlTIDo4Sl8EdoTjWIaKinYOVfC6bOp71bmwenyZthWHcasxgHDNWbWxvG9M3Ia116zIaYQ==}
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -6418,8 +6642,8 @@ packages:
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- fast-equals@5.2.2:
- resolution: {integrity: sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==}
+ fast-equals@5.3.2:
+ resolution: {integrity: sha512-6rxyATwPCkaFIL3JLqw8qXqMpIZ942pTX/tbQFkRsDGblS8tNGtlUauA/+mt6RUfqn/4MoEr+WDkYoIQbibWuQ==}
engines: {node: '>=6.0.0'}
fast-glob@3.3.3:
@@ -6506,8 +6730,8 @@ packages:
flatbuffers@24.12.23:
resolution: {integrity: sha512-dLVCAISd5mhls514keQzmEG6QHmUUsNuWsb4tFafIUwvvgDjXhtfAYSKOzt5SWOy+qByV5pbsDZ+Vb7HUOBEdA==}
- flatgeobuf@4.2.0:
- resolution: {integrity: sha512-Uauls7eBIxttVEZYMMuUF23SBjXgC3t/QZWCDEEbF2tXu8R/ozChcnOe15tWo9S+NA3r/McNSDGcgasF/IRMQQ==}
+ flatgeobuf@4.3.1:
+ resolution: {integrity: sha512-KWOMr70S4n8ZyNOHhOf9lDp+GI2dOgPtSXnsKpQT0QZGF60THyvH1n1hivSjo/JGFMJemxycqC82AWnEh5fIDQ==}
follow-redirects@1.15.11:
resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==}
@@ -6552,8 +6776,8 @@ packages:
fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
- framer-motion@12.23.14:
- resolution: {integrity: sha512-8BQ6dvqOht2w8P1CwIEvAA0gypDR3fNG/M6/f5lT0QgNIKnJf7J43Bpv++NnCWU8YfmL47UEm2hbI0GRvdVhsQ==}
+ framer-motion@12.23.24:
+ resolution: {integrity: sha512-HMi5HRoRCTou+3fb3h9oTLyJGBxHfW+HnNE25tAXOvVx/IvwMHK0cx7IR4a2ZU6sh3IX1Z+4ts32PcYBOqka8w==}
peerDependencies:
'@emotion/is-prop-valid': '*'
react: ^18.0.0 || ^19.0.0
@@ -6610,6 +6834,10 @@ packages:
fuzzysort@3.1.0:
resolution: {integrity: sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ==}
+ generator-function@2.0.1:
+ resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==}
+ engines: {node: '>= 0.4'}
+
gensync@1.0.0-beta.2:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
@@ -6661,8 +6889,8 @@ packages:
resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
engines: {node: '>= 0.4'}
- get-tsconfig@4.10.1:
- resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==}
+ get-tsconfig@4.12.0:
+ resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==}
get-value@2.0.6:
resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
@@ -6968,8 +7196,8 @@ packages:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
- import-in-the-middle@1.14.2:
- resolution: {integrity: sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==}
+ import-in-the-middle@1.15.0:
+ resolution: {integrity: sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==}
import-lazy@4.0.0:
resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
@@ -7103,8 +7331,8 @@ packages:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
- is-generator-function@1.1.0:
- resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
+ is-generator-function@1.1.2:
+ resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==}
engines: {node: '>= 0.4'}
is-glob@4.0.3:
@@ -7247,8 +7475,8 @@ packages:
isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
- isbot@5.1.30:
- resolution: {integrity: sha512-3wVJEonAns1OETX83uWsk5IAne2S5zfDcntD2hbtU23LelSqNXzXs9zKjMPOLMzroCgIjCfjYAEHrd2D6FOkiA==}
+ isbot@5.1.31:
+ resolution: {integrity: sha512-DPgQshehErHAqSCKDb3rNW03pa2wS/v5evvUqtxt6TTnHRqAG8FdzcSSJs9656pK6Y+NT7K9R4acEYXLHYfpUQ==}
engines: {node: '>=18'}
isexe@2.0.0:
@@ -7301,8 +7529,8 @@ packages:
resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
hasBin: true
- jiti@2.5.1:
- resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==}
+ jiti@2.6.1:
+ resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
hasBin: true
joi@17.13.3:
@@ -7330,6 +7558,11 @@ packages:
engines: {node: '>=6'}
hasBin: true
+ jsesc@3.1.0:
+ resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+ engines: {node: '>=6'}
+ hasBin: true
+
json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
@@ -7378,8 +7611,8 @@ packages:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: '>=6'}
- kysely@0.28.7:
- resolution: {integrity: sha512-u/cAuTL4DRIiO2/g4vNGRgklEKNIj5Q3CG7RoUB5DV5SfEC2hMvPxKi0GWPmnzwL2ryIeud2VTcEEmqzTzEPNw==}
+ kysely@0.28.8:
+ resolution: {integrity: sha512-QUOgl5ZrS9IRuhq5FvOKFSsD/3+IA6MLE81/bOOTRA/YQpKDza2sFdN5g6JCB9BOpqMJDGefLCQ9F12hRS13TA==}
engines: {node: '>=20.0.0'}
latest-version@7.0.0:
@@ -7399,70 +7632,140 @@ packages:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
+ lightningcss-android-arm64@1.30.2:
+ resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [android]
+
lightningcss-darwin-arm64@1.30.1:
resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [darwin]
+ lightningcss-darwin-arm64@1.30.2:
+ resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
lightningcss-darwin-x64@1.30.1:
resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [darwin]
+ lightningcss-darwin-x64@1.30.2:
+ resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
lightningcss-freebsd-x64@1.30.1:
resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [freebsd]
+ lightningcss-freebsd-x64@1.30.2:
+ resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
lightningcss-linux-arm-gnueabihf@1.30.1:
resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==}
engines: {node: '>= 12.0.0'}
cpu: [arm]
os: [linux]
+ lightningcss-linux-arm-gnueabihf@1.30.2:
+ resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
lightningcss-linux-arm64-gnu@1.30.1:
resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
+ lightningcss-linux-arm64-gnu@1.30.2:
+ resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
lightningcss-linux-arm64-musl@1.30.1:
resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
+ lightningcss-linux-arm64-musl@1.30.2:
+ resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
lightningcss-linux-x64-gnu@1.30.1:
resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
+ lightningcss-linux-x64-gnu@1.30.2:
+ resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
lightningcss-linux-x64-musl@1.30.1:
resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
+ lightningcss-linux-x64-musl@1.30.2:
+ resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
lightningcss-win32-arm64-msvc@1.30.1:
resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [win32]
+ lightningcss-win32-arm64-msvc@1.30.2:
+ resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
lightningcss-win32-x64-msvc@1.30.1:
resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [win32]
+ lightningcss-win32-x64-msvc@1.30.2:
+ resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+
lightningcss@1.30.1:
resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==}
engines: {node: '>= 12.0.0'}
+ lightningcss@1.30.2:
+ resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==}
+ engines: {node: '>= 12.0.0'}
+
lilconfig@3.1.3:
resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
engines: {node: '>=14'}
@@ -7473,8 +7776,8 @@ packages:
linkify-it@5.0.0:
resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
- loader-runner@4.3.0:
- resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
+ loader-runner@4.3.1:
+ resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==}
engines: {node: '>=6.11.5'}
loader-utils@2.0.4:
@@ -7535,8 +7838,8 @@ packages:
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
- lru-cache@11.2.1:
- resolution: {integrity: sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==}
+ lru-cache@11.2.2:
+ resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==}
engines: {node: 20 || >=22}
lru-cache@5.1.1:
@@ -7920,15 +8223,10 @@ packages:
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
engines: {node: '>=16 || 14 >=14.17'}
- minizlib@3.0.2:
- resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==}
+ minizlib@3.1.0:
+ resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==}
engines: {node: '>= 18'}
- mkdirp@3.0.1:
- resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==}
- engines: {node: '>=10'}
- hasBin: true
-
module-details-from-path@1.0.4:
resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==}
@@ -7936,8 +8234,8 @@ packages:
resolution: {integrity: sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==}
engines: {node: '>= 0.8.0'}
- motion-dom@12.23.12:
- resolution: {integrity: sha512-RcR4fvMCTESQBD/uKQe49D5RUeDOokkGRmz4ceaJKDBgHYtZtntC/s2vLvY38gqGaytinij/yi3hMcWVcEF5Kw==}
+ motion-dom@12.23.23:
+ resolution: {integrity: sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==}
motion-utils@12.23.6:
resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==}
@@ -7968,8 +8266,8 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- nanoid@5.1.5:
- resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==}
+ nanoid@5.1.6:
+ resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==}
engines: {node: ^18 || >=20}
hasBin: true
@@ -7997,8 +8295,8 @@ packages:
no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
- node-abi@3.77.0:
- resolution: {integrity: sha512-DSmt0OEcLoK4i3NuscSbGjOf3bqiDEutejqENSplMSFA/gmB8mkED9G4pKWnPl7MDU4rSHebKPHeitpDfyH0cQ==}
+ node-abi@3.78.0:
+ resolution: {integrity: sha512-E2wEyrgX/CqvicaQYU3Ze1PFGjc4QYPGsjUrlYkqAE0WjHEZwgOsGMPMzkMse4LjJbDmaEuDX3CM036j5K2DSQ==}
engines: {node: '>=10'}
node-emoji@2.2.0:
@@ -8018,8 +8316,8 @@ packages:
resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
engines: {node: '>= 6.13.0'}
- node-releases@2.0.21:
- resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==}
+ node-releases@2.0.23:
+ resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==}
normalize-package-data@2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
@@ -8380,8 +8678,8 @@ packages:
peerDependencies:
postcss: ^8.4.6
- postcss-color-functional-notation@7.0.11:
- resolution: {integrity: sha512-zfqoUSaHMko/k2PA9xnaydVTHqYv5vphq5Q2AHcG/dCdv/OkHYWcVWfVTBKZ526uzT8L7NghuvSw3C9PxlKnLg==}
+ postcss-color-functional-notation@7.0.12:
+ resolution: {integrity: sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
@@ -8464,8 +8762,8 @@ packages:
peerDependencies:
postcss: ^8.4.31
- postcss-double-position-gradients@6.0.3:
- resolution: {integrity: sha512-Dl0Z9sdbMwrPslgOaGBZRGo3TASmmgTcqcUODr82MTYyJk6devXZM6MlQjpQKMJqlLJ6oL1w78U7IXFdPA5+ug==}
+ postcss-double-position-gradients@6.0.4:
+ resolution: {integrity: sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
@@ -8499,8 +8797,8 @@ packages:
peerDependencies:
postcss: ^8.4
- postcss-lab-function@7.0.11:
- resolution: {integrity: sha512-BEA4jId8uQe1gyjZZ6Bunb6ZsH2izks+v25AxQJDBtigXCjTLmCPWECwQpLTtcxH589MVxhs/9TAmRC6lUEmXQ==}
+ postcss-lab-function@7.0.12:
+ resolution: {integrity: sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
@@ -8673,8 +8971,8 @@ packages:
peerDependencies:
postcss: ^8.4
- postcss-preset-env@10.3.1:
- resolution: {integrity: sha512-8ZOOWVwQ0iMpfEYkYo+U6W7fE2dJ/tP6dtEFwPJ66eB5JjnFupfYh+y6zo+vWDO72nGhKOVdxwhTjfzcSNRg4Q==}
+ postcss-preset-env@10.4.0:
+ resolution: {integrity: sha512-2kqpOthQ6JhxqQq1FSAAZGe9COQv75Aw8WbsOvQVNJ2nSevc9Yx/IKZGuZ7XJ+iOTtVon7LfO7ELRzg8AZ+sdw==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
@@ -8773,8 +9071,8 @@ packages:
resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==}
engines: {node: '>=12'}
- posthog-js@1.266.0:
- resolution: {integrity: sha512-437KsO9N+pMW6FtilgKYTHel0RCWs2S7PvsNRJf20/f3npChX9i6F8cNCJ6O4Az37scC1kPdTknFY/xEGazVJw==}
+ posthog-js@1.275.2:
+ resolution: {integrity: sha512-g1fnV/GAcEdwwk4EVbJ1HMZhlhgKYxG1Z5KPGvr+q5re0ltyVq8jFA2PsF333jvOlI8R01LLdpYSIgU8sBiZfg==}
peerDependencies:
'@rrweb/types': 2.0.0-alpha.17
rrweb-snapshot: 2.0.0-alpha.17
@@ -8784,8 +9082,8 @@ packages:
rrweb-snapshot:
optional: true
- posthog-node@5.8.4:
- resolution: {integrity: sha512-O0lObQqeIiggNCjc5BQx5PaHqPzXxwKnCJdb+DuNkbDO6Vc442SQ5FDv0WjPd5Ejfwme1uGZmM5/xhHWKegFfQ==}
+ posthog-node@5.10.0:
+ resolution: {integrity: sha512-uNN+YUuOdbDSbDMGk/Wq57o2YBEH0Unu1kEq2PuYmqFmnu+oYsKyJBrb58VNwEuYsaXVJmk4FtbD+Tl8BT69+w==}
engines: {node: '>=20'}
postmark@4.0.5:
@@ -8975,16 +9273,16 @@ packages:
peerDependencies:
react: '>=16.8.0'
- react-dom@19.1.1:
- resolution: {integrity: sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==}
+ react-dom@19.2.0:
+ resolution: {integrity: sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==}
peerDependencies:
- react: ^19.1.1
+ react: ^19.2.0
react-fast-compare@3.2.2:
resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
- react-hook-form@7.62.0:
- resolution: {integrity: sha512-7KWFejc98xqG/F4bAxpL41NB3o1nnvQO1RWZT3TqRZYL8RryQETGfEdVnJN2fy1crCiBLLjkRBVK05j24FxJGA==}
+ react-hook-form@7.65.0:
+ resolution: {integrity: sha512-xtOzDz063WcXvGWaHgLNrNzlsdFgtUWcb32E6WFaGTd7kPZG3EeDusjdZfUsPwKCKVXy1ZlntifaHZ4l8pAsmw==}
engines: {node: '>=18.0.0'}
peerDependencies:
react: ^16.8.0 || ^17 || ^18 || ^19
@@ -9008,8 +9306,8 @@ packages:
react-loadable: '*'
webpack: '>=4.41.1 || 5.x'
- react-map-gl@8.0.4:
- resolution: {integrity: sha512-SHdpvFIvswsZBg6BCPcwY/nbKuCo3sJM1Cj7Sd+gA3gFRFOixD+KtZ2XSuUWq2WySL2emYEXEgrLZoXsV4Ut4Q==}
+ react-map-gl@8.1.0:
+ resolution: {integrity: sha512-vDx/QXR3Tb+8/ap/z6gdMjJQ8ZEyaZf6+uMSPz7jhWF5VZeIsKsGfPvwHVPPwGF43Ryn+YR4bd09uEFNR5OPdg==}
peerDependencies:
mapbox-gl: '>=1.13.0'
maplibre-gl: '>=1.13.0'
@@ -9065,8 +9363,8 @@ packages:
peerDependencies:
react: '>=15'
- react-router-dom@7.9.1:
- resolution: {integrity: sha512-U9WBQssBE9B1vmRjo9qTM7YRzfZ3lUxESIZnsf4VjR/lXYz9MHjvOxHzr/aUm4efpktbVOrF09rL/y4VHa8RMw==}
+ react-router-dom@7.9.4:
+ resolution: {integrity: sha512-f30P6bIkmYvnHHa5Gcu65deIXoA2+r3Eb6PJIAddvsT9aGlchMatJ51GgpU470aSqRRbFX22T70yQNUGuW3DfA==}
engines: {node: '>=20.0.0'}
peerDependencies:
react: '>=18'
@@ -9077,8 +9375,8 @@ packages:
peerDependencies:
react: '>=15'
- react-router@7.9.1:
- resolution: {integrity: sha512-pfAByjcTpX55mqSDGwGnY9vDCpxqBLASg0BMNAuMmpSGESo/TaOUG6BllhAtAkCGx8Rnohik/XtaqiYUJtgW2g==}
+ react-router@7.9.4:
+ resolution: {integrity: sha512-SD3G8HKviFHg9xj7dNODUKDFgpG4xqD5nhyd0mYoB5iISepuZAvzSr8ywxgxKJ52yRzf/HWtVHc9AWwoTbljvA==}
engines: {node: '>=20.0.0'}
peerDependencies:
react: '>=18'
@@ -9109,8 +9407,8 @@ packages:
react: '>=16.6.0'
react-dom: '>=16.6.0'
- react@19.1.1:
- resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==}
+ react@19.2.0:
+ resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==}
engines: {node: '>=0.10.0'}
read-pkg-up@7.0.1:
@@ -9186,8 +9484,8 @@ packages:
resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
engines: {node: '>= 0.4'}
- regexpu-core@6.3.1:
- resolution: {integrity: sha512-DzcswPr252wEr7Qz8AyAVbfyBDKLoYp6eRA1We2Fa9qirRFSdtkP5sHr3yglDKy2BbA0fd2T+j/CUSKes3FeVQ==}
+ regexpu-core@6.4.0:
+ resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==}
engines: {node: '>=4'}
registry-auth-token@5.1.0:
@@ -9201,8 +9499,8 @@ packages:
regjsgen@0.8.0:
resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==}
- regjsparser@0.12.0:
- resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==}
+ regjsparser@0.13.0:
+ resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==}
hasBin: true
rehype-raw@7.0.0:
@@ -9248,10 +9546,10 @@ packages:
react-hook-form: ^7.55.0
react-router: '>=7.5.0'
- remix-toast@3.2.0:
- resolution: {integrity: sha512-xn4XUt0IXCKulN6DQ7ctPfzYY+xpeCFacZcYLtXeikFh/yM/LtlATTb2ap68tGgmQlo0HgPe1k8XYIqHtG1hRA==}
+ remix-toast@3.3.0:
+ resolution: {integrity: sha512-fC41y9Cl9kpngkYlcUaE/qs6zxv4PLsEjrtPPyEcIh6Iw1R+vVP9F3W7vxqS4nj7xccm1WyvT/KvpoVzvWUgPQ==}
peerDependencies:
- react-router: '>=7.8.0'
+ react-router: '>=7.9.0'
remix-utils@8.8.0:
resolution: {integrity: sha512-5CR4a3YwPaCoPUHg+O69UMek05tnFMrtQsoXTU4KzsyU7heDO94IFTjKVzEFhi+s+SSo+ebRMxWvjf/QiPpqiQ==}
@@ -9378,6 +9676,11 @@ packages:
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
+ rollup@4.52.4:
+ resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
rou3@0.5.1:
resolution: {integrity: sha512-OXMmJ3zRk2xeXFGfA3K+EOPHC5u7RDFG7lIOx0X1pdnhUkI8MdVrbV+sNsD80ElpUZ+MRHdyxPnFthq9VHs8uQ==}
@@ -9419,8 +9722,8 @@ packages:
sax@1.4.1:
resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==}
- scheduler@0.26.0:
- resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==}
+ scheduler@0.27.0:
+ resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==}
schema-dts@1.1.5:
resolution: {integrity: sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==}
@@ -9429,8 +9732,8 @@ packages:
resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
engines: {node: '>= 10.13.0'}
- schema-utils@4.3.2:
- resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==}
+ schema-utils@4.3.3:
+ resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==}
engines: {node: '>= 10.13.0'}
search-insights@2.17.3:
@@ -9462,11 +9765,6 @@ packages:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
- semver@7.7.2:
- resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
- engines: {node: '>=10'}
- hasBin: true
-
semver@7.7.3:
resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
engines: {node: '>=10'}
@@ -9541,8 +9839,8 @@ packages:
shimmer@1.2.1:
resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==}
- shpjs@6.1.0:
- resolution: {integrity: sha512-uaUpod7uIWetJK80yiiedZ3x4z9ZAPgDVT89N27+8F97Z8ZOqmu88P96I6CBC8N+YyERqdneZNT/wNFUEnzNpw==}
+ shpjs@6.2.0:
+ resolution: {integrity: sha512-8cR/RKYHQepmVyBMtzZQ+1bnSbWrtLXS6aoEJmpUlOSHtSUddterebVxYmIWq2g9kOEX9jm2kjHiikyPX7cNQA==}
side-channel-list@1.0.0:
resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
@@ -9699,6 +9997,9 @@ packages:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'}
+ std-env@3.10.0:
+ resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==}
+
std-env@3.9.0:
resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
@@ -9778,11 +10079,11 @@ packages:
resolution: {integrity: sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==}
engines: {node: '>=18'}
- style-to-js@1.1.17:
- resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==}
+ style-to-js@1.1.18:
+ resolution: {integrity: sha512-JFPn62D4kJaPTnhFUI244MThx+FEGbi+9dw1b9yBBQ+1CZpV7QAT8kUtJ7b7EUNdHajjF/0x8fT+16oLJoojLg==}
- style-to-object@1.0.9:
- resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==}
+ style-to-object@1.0.11:
+ resolution: {integrity: sha512-5A560JmXr7wDyGLK12Nq/EYS38VkGlglVzkis1JEdbGWSnbQIEhZzTJhzURXN5/8WwwFCs/f/VVcmkTppbXLow==}
stylehacks@6.1.1:
resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==}
@@ -9836,15 +10137,15 @@ packages:
peerDependencies:
tailwindcss: '>=3.0.0 || insiders'
- tailwindcss@4.1.13:
- resolution: {integrity: sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==}
+ tailwindcss@4.1.14:
+ resolution: {integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==}
- tapable@2.2.3:
- resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==}
+ tapable@2.3.0:
+ resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
engines: {node: '>=6'}
- tar@7.4.3:
- resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==}
+ tar@7.5.1:
+ resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==}
engines: {node: '>=18'}
term-size@2.2.1:
@@ -10074,8 +10375,8 @@ packages:
peerDependencies:
typedoc-plugin-markdown: '>=4.8.0'
- typedoc-plugin-markdown@4.8.1:
- resolution: {integrity: sha512-ug7fc4j0SiJxSwBGLncpSo8tLvrT9VONvPUQqQDTKPxCoFQBADLli832RGPtj6sfSVJebNSrHZQRUdEryYH/7g==}
+ typedoc-plugin-markdown@4.9.0:
+ resolution: {integrity: sha512-9Uu4WR9L7ZBgAl60N/h+jqmPxxvnC9nQAlnnO/OujtG2ubjnKTVUFY1XDhcMY+pCqlX3N2HsQM2QTYZIU9tJuw==}
engines: {node: '>= 18'}
peerDependencies:
typedoc: 0.28.x
@@ -10097,6 +10398,11 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
typewise-core@1.2.0:
resolution: {integrity: sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==}
@@ -10117,8 +10423,8 @@ packages:
uncrypto@0.1.3:
resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
- undici-types@7.12.0:
- resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==}
+ undici-types@7.14.0:
+ resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==}
unicode-canonical-property-names-ecmascript@2.0.1:
resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==}
@@ -10231,8 +10537,8 @@ packages:
'@types/react':
optional: true
- use-sync-external-store@1.5.0:
- resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==}
+ use-sync-external-store@1.6.0:
+ resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
@@ -10254,8 +10560,8 @@ packages:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
- valibot@0.41.0:
- resolution: {integrity: sha512-igDBb8CTYr8YTQlOKgaN9nSS0Be7z+WRuaeYqGf3Cjz3aKmSnqEmYnkfVjzIuumGqfHpa3fLIvMEAfhrpqN8ng==}
+ valibot@1.1.0:
+ resolution: {integrity: sha512-Nk8lX30Qhu+9txPYTwM0cFlWLdPFsFr6LblzqIySfbZph9+BFsAHsNvHOymEviUepeIW6KFHzpX8TKhbptBXXw==}
peerDependencies:
typescript: '>=5'
peerDependenciesMeta:
@@ -10305,8 +10611,8 @@ packages:
vite:
optional: true
- vite@7.1.6:
- resolution: {integrity: sha512-SRYIB8t/isTwNn8vMB3MR6E+EQZM/WG1aKmmIUCfDXfVvKfc20ZpamngWHKzAmmu9ppsgxsg4b2I7c90JZudIQ==}
+ vite@7.1.10:
+ resolution: {integrity: sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
@@ -10439,8 +10745,8 @@ packages:
webpack-virtual-modules@0.5.0:
resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==}
- webpack@5.101.3:
- resolution: {integrity: sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A==}
+ webpack@5.102.1:
+ resolution: {integrity: sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==}
engines: {node: '>=10.13.0'}
hasBin: true
peerDependencies:
@@ -10601,8 +10907,8 @@ packages:
zod@3.25.76:
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
- zod@4.1.9:
- resolution: {integrity: sha512-HI32jTq0AUAC125z30E8bQNz0RQ+9Uc+4J7V97gLYjZVKRjeydPgGt6dvQzFrav7MYOUGFqqOGiHpA/fdbd0cQ==}
+ zod@4.1.12:
+ resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==}
zstddec@0.1.0:
resolution: {integrity: sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==}
@@ -10630,119 +10936,119 @@ packages:
snapshots:
- '@algolia/abtesting@1.3.0':
+ '@algolia/abtesting@1.6.0':
dependencies:
- '@algolia/client-common': 5.37.0
- '@algolia/requester-browser-xhr': 5.37.0
- '@algolia/requester-fetch': 5.37.0
- '@algolia/requester-node-http': 5.37.0
+ '@algolia/client-common': 5.40.0
+ '@algolia/requester-browser-xhr': 5.40.0
+ '@algolia/requester-fetch': 5.40.0
+ '@algolia/requester-node-http': 5.40.0
- '@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.37.0)(algoliasearch@5.37.0)(search-insights@2.17.3)':
+ '@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)':
dependencies:
- '@algolia/autocomplete-plugin-algolia-insights': 1.17.9(@algolia/client-search@5.37.0)(algoliasearch@5.37.0)(search-insights@2.17.3)
- '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.37.0)(algoliasearch@5.37.0)
+ '@algolia/autocomplete-plugin-algolia-insights': 1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)
+ '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)
transitivePeerDependencies:
- '@algolia/client-search'
- algoliasearch
- search-insights
- '@algolia/autocomplete-plugin-algolia-insights@1.17.9(@algolia/client-search@5.37.0)(algoliasearch@5.37.0)(search-insights@2.17.3)':
+ '@algolia/autocomplete-plugin-algolia-insights@1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)':
dependencies:
- '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.37.0)(algoliasearch@5.37.0)
+ '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)
search-insights: 2.17.3
transitivePeerDependencies:
- '@algolia/client-search'
- algoliasearch
- '@algolia/autocomplete-preset-algolia@1.17.9(@algolia/client-search@5.37.0)(algoliasearch@5.37.0)':
+ '@algolia/autocomplete-preset-algolia@1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)':
dependencies:
- '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.37.0)(algoliasearch@5.37.0)
- '@algolia/client-search': 5.37.0
- algoliasearch: 5.37.0
+ '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)
+ '@algolia/client-search': 5.40.0
+ algoliasearch: 5.40.0
- '@algolia/autocomplete-shared@1.17.9(@algolia/client-search@5.37.0)(algoliasearch@5.37.0)':
+ '@algolia/autocomplete-shared@1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)':
dependencies:
- '@algolia/client-search': 5.37.0
- algoliasearch: 5.37.0
+ '@algolia/client-search': 5.40.0
+ algoliasearch: 5.40.0
- '@algolia/client-abtesting@5.37.0':
+ '@algolia/client-abtesting@5.40.0':
dependencies:
- '@algolia/client-common': 5.37.0
- '@algolia/requester-browser-xhr': 5.37.0
- '@algolia/requester-fetch': 5.37.0
- '@algolia/requester-node-http': 5.37.0
+ '@algolia/client-common': 5.40.0
+ '@algolia/requester-browser-xhr': 5.40.0
+ '@algolia/requester-fetch': 5.40.0
+ '@algolia/requester-node-http': 5.40.0
- '@algolia/client-analytics@5.37.0':
+ '@algolia/client-analytics@5.40.0':
dependencies:
- '@algolia/client-common': 5.37.0
- '@algolia/requester-browser-xhr': 5.37.0
- '@algolia/requester-fetch': 5.37.0
- '@algolia/requester-node-http': 5.37.0
+ '@algolia/client-common': 5.40.0
+ '@algolia/requester-browser-xhr': 5.40.0
+ '@algolia/requester-fetch': 5.40.0
+ '@algolia/requester-node-http': 5.40.0
- '@algolia/client-common@5.37.0': {}
+ '@algolia/client-common@5.40.0': {}
- '@algolia/client-insights@5.37.0':
+ '@algolia/client-insights@5.40.0':
dependencies:
- '@algolia/client-common': 5.37.0
- '@algolia/requester-browser-xhr': 5.37.0
- '@algolia/requester-fetch': 5.37.0
- '@algolia/requester-node-http': 5.37.0
+ '@algolia/client-common': 5.40.0
+ '@algolia/requester-browser-xhr': 5.40.0
+ '@algolia/requester-fetch': 5.40.0
+ '@algolia/requester-node-http': 5.40.0
- '@algolia/client-personalization@5.37.0':
+ '@algolia/client-personalization@5.40.0':
dependencies:
- '@algolia/client-common': 5.37.0
- '@algolia/requester-browser-xhr': 5.37.0
- '@algolia/requester-fetch': 5.37.0
- '@algolia/requester-node-http': 5.37.0
+ '@algolia/client-common': 5.40.0
+ '@algolia/requester-browser-xhr': 5.40.0
+ '@algolia/requester-fetch': 5.40.0
+ '@algolia/requester-node-http': 5.40.0
- '@algolia/client-query-suggestions@5.37.0':
+ '@algolia/client-query-suggestions@5.40.0':
dependencies:
- '@algolia/client-common': 5.37.0
- '@algolia/requester-browser-xhr': 5.37.0
- '@algolia/requester-fetch': 5.37.0
- '@algolia/requester-node-http': 5.37.0
+ '@algolia/client-common': 5.40.0
+ '@algolia/requester-browser-xhr': 5.40.0
+ '@algolia/requester-fetch': 5.40.0
+ '@algolia/requester-node-http': 5.40.0
- '@algolia/client-search@5.37.0':
+ '@algolia/client-search@5.40.0':
dependencies:
- '@algolia/client-common': 5.37.0
- '@algolia/requester-browser-xhr': 5.37.0
- '@algolia/requester-fetch': 5.37.0
- '@algolia/requester-node-http': 5.37.0
+ '@algolia/client-common': 5.40.0
+ '@algolia/requester-browser-xhr': 5.40.0
+ '@algolia/requester-fetch': 5.40.0
+ '@algolia/requester-node-http': 5.40.0
'@algolia/events@4.0.1': {}
- '@algolia/ingestion@1.37.0':
+ '@algolia/ingestion@1.40.0':
dependencies:
- '@algolia/client-common': 5.37.0
- '@algolia/requester-browser-xhr': 5.37.0
- '@algolia/requester-fetch': 5.37.0
- '@algolia/requester-node-http': 5.37.0
+ '@algolia/client-common': 5.40.0
+ '@algolia/requester-browser-xhr': 5.40.0
+ '@algolia/requester-fetch': 5.40.0
+ '@algolia/requester-node-http': 5.40.0
- '@algolia/monitoring@1.37.0':
+ '@algolia/monitoring@1.40.0':
dependencies:
- '@algolia/client-common': 5.37.0
- '@algolia/requester-browser-xhr': 5.37.0
- '@algolia/requester-fetch': 5.37.0
- '@algolia/requester-node-http': 5.37.0
+ '@algolia/client-common': 5.40.0
+ '@algolia/requester-browser-xhr': 5.40.0
+ '@algolia/requester-fetch': 5.40.0
+ '@algolia/requester-node-http': 5.40.0
- '@algolia/recommend@5.37.0':
+ '@algolia/recommend@5.40.0':
dependencies:
- '@algolia/client-common': 5.37.0
- '@algolia/requester-browser-xhr': 5.37.0
- '@algolia/requester-fetch': 5.37.0
- '@algolia/requester-node-http': 5.37.0
+ '@algolia/client-common': 5.40.0
+ '@algolia/requester-browser-xhr': 5.40.0
+ '@algolia/requester-fetch': 5.40.0
+ '@algolia/requester-node-http': 5.40.0
- '@algolia/requester-browser-xhr@5.37.0':
+ '@algolia/requester-browser-xhr@5.40.0':
dependencies:
- '@algolia/client-common': 5.37.0
+ '@algolia/client-common': 5.40.0
- '@algolia/requester-fetch@5.37.0':
+ '@algolia/requester-fetch@5.40.0':
dependencies:
- '@algolia/client-common': 5.37.0
+ '@algolia/client-common': 5.40.0
- '@algolia/requester-node-http@5.37.0':
+ '@algolia/requester-node-http@5.40.0':
dependencies:
- '@algolia/client-common': 5.37.0
+ '@algolia/client-common': 5.40.0
'@alloc/quick-lru@5.2.0': {}
@@ -10751,6 +11057,16 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.13
'@jridgewell/trace-mapping': 0.3.31
+ '@apm-js-collab/code-transformer@0.8.2': {}
+
+ '@apm-js-collab/tracing-hooks@0.3.1':
+ dependencies:
+ '@apm-js-collab/code-transformer': 0.8.2
+ debug: 4.4.3
+ module-details-from-path: 1.0.4
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/code-frame@7.27.1':
dependencies:
'@babel/helper-validator-identifier': 7.27.1
@@ -10795,7 +11111,7 @@ snapshots:
dependencies:
'@babel/compat-data': 7.28.4
'@babel/helper-validator-option': 7.27.1
- browserslist: 4.26.2
+ browserslist: 4.26.3
lru-cache: 5.1.1
semver: 6.3.1
@@ -10816,7 +11132,7 @@ snapshots:
dependencies:
'@babel/core': 7.28.4
'@babel/helper-annotate-as-pure': 7.27.3
- regexpu-core: 6.3.1
+ regexpu-core: 6.4.0
semver: 6.3.1
'@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.4)':
@@ -11440,7 +11756,7 @@ snapshots:
babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.4)
babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.4)
babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.4)
- core-js-compat: 3.45.1
+ core-js-compat: 3.46.0
semver: 6.3.1
transitivePeerDependencies:
- supports-color
@@ -11477,7 +11793,7 @@ snapshots:
'@babel/runtime-corejs3@7.28.4':
dependencies:
- core-js-pure: 3.45.1
+ core-js-pure: 3.46.0
'@babel/runtime@7.28.4': {}
@@ -11509,7 +11825,7 @@ snapshots:
'@better-auth/core@1.3.27':
dependencies:
better-call: 1.0.19
- zod: 4.1.9
+ zod: 4.1.12
'@better-auth/utils@0.3.0': {}
@@ -11581,7 +11897,7 @@ snapshots:
dependencies:
'@changesets/types': 6.1.0
- '@changesets/cli@2.29.7(@types/node@24.5.2)':
+ '@changesets/cli@2.29.7(@types/node@24.7.2)':
dependencies:
'@changesets/apply-release-plan': 7.0.13
'@changesets/assemble-release-plan': 6.0.9
@@ -11597,7 +11913,7 @@ snapshots:
'@changesets/should-skip-package': 0.1.2
'@changesets/types': 6.1.0
'@changesets/write': 0.4.0
- '@inquirer/external-editor': 1.0.2(@types/node@24.5.2)
+ '@inquirer/external-editor': 1.0.2(@types/node@24.7.2)
'@manypkg/get-packages': 1.1.3
ansi-colors: 4.1.3
ci-info: 3.9.0
@@ -11729,12 +12045,12 @@ snapshots:
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-alpha-function@1.0.0(postcss@8.5.6)':
+ '@csstools/postcss-alpha-function@1.0.1(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
@@ -11744,47 +12060,56 @@ snapshots:
postcss: 8.5.6
postcss-selector-parser: 7.1.0
- '@csstools/postcss-color-function-display-p3-linear@1.0.0(postcss@8.5.6)':
+ '@csstools/postcss-color-function-display-p3-linear@1.0.1(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
- '@csstools/postcss-color-function@4.0.11(postcss@8.5.6)':
+ '@csstools/postcss-color-function@4.0.12(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
- '@csstools/postcss-color-mix-function@3.0.11(postcss@8.5.6)':
+ '@csstools/postcss-color-mix-function@3.0.12(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
- '@csstools/postcss-color-mix-variadic-function-arguments@1.0.1(postcss@8.5.6)':
+ '@csstools/postcss-color-mix-variadic-function-arguments@1.0.2(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
+ '@csstools/utilities': 2.0.0(postcss@8.5.6)
+ postcss: 8.5.6
+
+ '@csstools/postcss-content-alt-text@2.0.8(postcss@8.5.6)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
+ '@csstools/css-tokenizer': 3.0.4
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
- '@csstools/postcss-content-alt-text@2.0.7(postcss@8.5.6)':
+ '@csstools/postcss-contrast-color-function@2.0.12(postcss@8.5.6)':
dependencies:
+ '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
@@ -11808,27 +12133,27 @@ snapshots:
'@csstools/css-tokenizer': 3.0.4
postcss: 8.5.6
- '@csstools/postcss-gradients-interpolation-method@5.0.11(postcss@8.5.6)':
+ '@csstools/postcss-gradients-interpolation-method@5.0.12(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
- '@csstools/postcss-hwb-function@4.0.11(postcss@8.5.6)':
+ '@csstools/postcss-hwb-function@4.0.12(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
- '@csstools/postcss-ic-unit@4.0.3(postcss@8.5.6)':
+ '@csstools/postcss-ic-unit@4.0.4(postcss@8.5.6)':
dependencies:
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
postcss-value-parser: 4.2.0
@@ -11843,11 +12168,11 @@ snapshots:
postcss: 8.5.6
postcss-selector-parser: 7.1.0
- '@csstools/postcss-light-dark-function@2.0.10(postcss@8.5.6)':
+ '@csstools/postcss-light-dark-function@2.0.11(postcss@8.5.6)':
dependencies:
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
@@ -11900,16 +12225,16 @@ snapshots:
postcss: 8.5.6
postcss-value-parser: 4.2.0
- '@csstools/postcss-oklab-function@4.0.11(postcss@8.5.6)':
+ '@csstools/postcss-oklab-function@4.0.12(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
- '@csstools/postcss-progressive-custom-properties@4.2.0(postcss@8.5.6)':
+ '@csstools/postcss-progressive-custom-properties@4.2.1(postcss@8.5.6)':
dependencies:
postcss: 8.5.6
postcss-value-parser: 4.2.0
@@ -11921,12 +12246,12 @@ snapshots:
'@csstools/css-tokenizer': 3.0.4
postcss: 8.5.6
- '@csstools/postcss-relative-color-syntax@3.0.11(postcss@8.5.6)':
+ '@csstools/postcss-relative-color-syntax@3.0.12(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
@@ -11984,21 +12309,21 @@ snapshots:
'@docsearch/css@3.9.0': {}
- '@docsearch/react@3.9.0(@algolia/client-search@5.37.0)(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(search-insights@2.17.3)':
+ '@docsearch/react@3.9.0(@algolia/client-search@5.40.0)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)':
dependencies:
- '@algolia/autocomplete-core': 1.17.9(@algolia/client-search@5.37.0)(algoliasearch@5.37.0)(search-insights@2.17.3)
- '@algolia/autocomplete-preset-algolia': 1.17.9(@algolia/client-search@5.37.0)(algoliasearch@5.37.0)
+ '@algolia/autocomplete-core': 1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)
+ '@algolia/autocomplete-preset-algolia': 1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)
'@docsearch/css': 3.9.0
- algoliasearch: 5.37.0
+ algoliasearch: 5.40.0
optionalDependencies:
- '@types/react': 19.1.13
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@types/react': 19.2.2
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
search-insights: 2.17.3
transitivePeerDependencies:
- '@algolia/client-search'
- '@docusaurus/babel@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@docusaurus/babel@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@babel/core': 7.28.4
'@babel/generator': 7.28.3
@@ -12011,7 +12336,7 @@ snapshots:
'@babel/runtime-corejs3': 7.28.4
'@babel/traverse': 7.28.4
'@docusaurus/logger': 3.8.1
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
babel-plugin-dynamic-import-node: 2.3.3
fs-extra: 11.3.2
tslib: 2.8.1
@@ -12024,34 +12349,34 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/bundler@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
+ '@docusaurus/bundler@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
dependencies:
'@babel/core': 7.28.4
- '@docusaurus/babel': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/babel': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@docusaurus/cssnano-preset': 3.8.1
'@docusaurus/logger': 3.8.1
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- babel-loader: 9.2.1(@babel/core@7.28.4)(webpack@5.101.3(@swc/core@1.13.5))
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ babel-loader: 9.2.1(@babel/core@7.28.4)(webpack@5.102.1(@swc/core@1.13.5))
clean-css: 5.3.3
- copy-webpack-plugin: 11.0.0(webpack@5.101.3(@swc/core@1.13.5))
- css-loader: 6.11.0(@rspack/core@1.5.5)(webpack@5.101.3(@swc/core@1.13.5))
- css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.101.3(@swc/core@1.13.5))
+ copy-webpack-plugin: 11.0.0(webpack@5.102.1(@swc/core@1.13.5))
+ css-loader: 6.11.0(@rspack/core@1.5.8)(webpack@5.102.1(@swc/core@1.13.5))
+ css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.102.1(@swc/core@1.13.5))
cssnano: 6.1.2(postcss@8.5.6)
- file-loader: 6.2.0(webpack@5.101.3(@swc/core@1.13.5))
+ file-loader: 6.2.0(webpack@5.102.1(@swc/core@1.13.5))
html-minifier-terser: 7.2.0
- mini-css-extract-plugin: 2.9.4(webpack@5.101.3(@swc/core@1.13.5))
- null-loader: 4.0.1(webpack@5.101.3(@swc/core@1.13.5))
+ mini-css-extract-plugin: 2.9.4(webpack@5.102.1(@swc/core@1.13.5))
+ null-loader: 4.0.1(webpack@5.102.1(@swc/core@1.13.5))
postcss: 8.5.6
- postcss-loader: 7.3.4(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.3(@swc/core@1.13.5))
- postcss-preset-env: 10.3.1(postcss@8.5.6)
- terser-webpack-plugin: 5.3.14(@swc/core@1.13.5)(webpack@5.101.3(@swc/core@1.13.5))
+ postcss-loader: 7.3.4(postcss@8.5.6)(typescript@5.9.2)(webpack@5.102.1(@swc/core@1.13.5))
+ postcss-preset-env: 10.4.0(postcss@8.5.6)
+ terser-webpack-plugin: 5.3.14(@swc/core@1.13.5)(webpack@5.102.1(@swc/core@1.13.5))
tslib: 2.8.1
- url-loader: 4.1.1(file-loader@6.2.0(webpack@5.101.3(@swc/core@1.13.5)))(webpack@5.101.3(@swc/core@1.13.5))
- webpack: 5.101.3(@swc/core@1.13.5)
- webpackbar: 6.0.1(webpack@5.101.3(@swc/core@1.13.5))
+ url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1(@swc/core@1.13.5)))(webpack@5.102.1(@swc/core@1.13.5))
+ webpack: 5.102.1(@swc/core@1.13.5)
+ webpackbar: 6.0.1(webpack@5.102.1(@swc/core@1.13.5))
optionalDependencies:
- '@docusaurus/faster': 3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))
+ '@docusaurus/faster': 3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))
transitivePeerDependencies:
- '@parcel/css'
- '@rspack/core'
@@ -12067,23 +12392,23 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/core@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
+ '@docusaurus/core@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
dependencies:
- '@docusaurus/babel': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/bundler': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
+ '@docusaurus/babel': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/bundler': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
'@docusaurus/logger': 3.8.1
- '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@mdx-js/react': 3.1.1(@types/react@19.1.13)(react@19.1.1)
+ '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@mdx-js/react': 3.1.1(@types/react@19.2.2)(react@19.2.0)
boxen: 6.2.1
chalk: 4.1.2
chokidar: 3.6.0
cli-table3: 0.6.5
combine-promises: 1.2.0
commander: 5.1.0
- core-js: 3.45.1
+ core-js: 3.46.0
detect-port: 1.6.1
escape-html: 1.0.3
eta: 2.2.0
@@ -12091,28 +12416,28 @@ snapshots:
execa: 5.1.1
fs-extra: 11.3.2
html-tags: 3.3.1
- html-webpack-plugin: 5.6.4(@rspack/core@1.5.5)(webpack@5.101.3(@swc/core@1.13.5))
+ html-webpack-plugin: 5.6.4(@rspack/core@1.5.8)(webpack@5.102.1(@swc/core@1.13.5))
leven: 3.1.0
lodash: 4.17.21
open: 8.4.2
p-map: 4.0.0
prompts: 2.4.2
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
- react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1)'
- react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.1.1)'
- react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@19.1.1))(webpack@5.101.3(@swc/core@1.13.5))
- react-router: 5.3.4(react@19.1.1)
- react-router-config: 5.1.1(react-router@5.3.4(react@19.1.1))(react@19.1.1)
- react-router-dom: 5.3.4(react@19.1.1)
- semver: 7.7.2
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
+ react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)'
+ react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.0)'
+ react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.0))(webpack@5.102.1(@swc/core@1.13.5))
+ react-router: 5.3.4(react@19.2.0)
+ react-router-config: 5.1.1(react-router@5.3.4(react@19.2.0))(react@19.2.0)
+ react-router-dom: 5.3.4(react@19.2.0)
+ semver: 7.7.3
serve-handler: 6.1.6
tinypool: 1.1.1
tslib: 2.8.1
update-notifier: 6.0.2
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
webpack-bundle-analyzer: 4.10.2
- webpack-dev-server: 4.15.2(webpack@5.101.3(@swc/core@1.13.5))
+ webpack-dev-server: 4.15.2(webpack@5.102.1(@swc/core@1.13.5))
webpack-merge: 6.0.1
transitivePeerDependencies:
- '@docusaurus/faster'
@@ -12138,17 +12463,17 @@ snapshots:
postcss-sort-media-queries: 5.2.0(postcss@8.5.6)
tslib: 2.8.1
- '@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))':
+ '@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))':
dependencies:
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@rspack/core': 1.5.5
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@rspack/core': 1.5.8
'@swc/core': 1.13.5
- '@swc/html': 1.13.5
- browserslist: 4.26.2
- lightningcss: 1.30.1
- swc-loader: 0.2.6(@swc/core@1.13.5)(webpack@5.101.3(@swc/core@1.13.5))
+ '@swc/html': 1.13.20
+ browserslist: 4.26.3
+ lightningcss: 1.30.2
+ swc-loader: 0.2.6(@swc/core@1.13.5)(webpack@5.102.1(@swc/core@1.13.5))
tslib: 2.8.1
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
transitivePeerDependencies:
- '@swc/helpers'
- esbuild
@@ -12160,22 +12485,22 @@ snapshots:
chalk: 4.1.2
tslib: 2.8.1
- '@docusaurus/mdx-loader@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@docusaurus/mdx-loader@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@docusaurus/logger': 3.8.1
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@mdx-js/mdx': 3.1.1
'@slorber/remark-comment': 1.0.0
escape-html: 1.0.3
estree-util-value-to-estree: 3.4.0
- file-loader: 6.2.0(webpack@5.101.3(@swc/core@1.13.5))
+ file-loader: 6.2.0(webpack@5.102.1(@swc/core@1.13.5))
fs-extra: 11.3.2
image-size: 2.0.2
mdast-util-mdx: 3.0.0
mdast-util-to-string: 4.0.0
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
rehype-raw: 7.0.0
remark-directive: 3.0.1
remark-emoji: 4.0.1
@@ -12185,9 +12510,9 @@ snapshots:
tslib: 2.8.1
unified: 11.0.5
unist-util-visit: 5.0.0
- url-loader: 4.1.1(file-loader@6.2.0(webpack@5.101.3(@swc/core@1.13.5)))(webpack@5.101.3(@swc/core@1.13.5))
+ url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1(@swc/core@1.13.5)))(webpack@5.102.1(@swc/core@1.13.5))
vfile: 6.0.3
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
transitivePeerDependencies:
- '@swc/core'
- esbuild
@@ -12195,17 +12520,17 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/module-type-aliases@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@docusaurus/module-type-aliases@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@types/history': 4.7.11
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
'@types/react-router-config': 5.0.11
'@types/react-router-dom': 5.3.3
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
- react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1)'
- react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.1.1)'
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
+ react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)'
+ react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.0)'
transitivePeerDependencies:
- '@swc/core'
- esbuild
@@ -12213,29 +12538,29 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/plugin-content-blog@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
+ '@docusaurus/plugin-content-blog@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
+ '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
'@docusaurus/logger': 3.8.1
- '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
cheerio: 1.0.0-rc.12
feed: 4.2.2
fs-extra: 11.3.2
lodash: 4.17.21
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
schema-dts: 1.1.5
srcset: 4.0.0
tslib: 2.8.1
unist-util-visit: 5.0.0
utility-types: 3.11.0
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
transitivePeerDependencies:
- '@docusaurus/faster'
- '@mdx-js/react'
@@ -12254,28 +12579,28 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
+ '@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
+ '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
'@docusaurus/logger': 3.8.1
- '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/module-type-aliases': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/module-type-aliases': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@types/react-router-config': 5.0.11
combine-promises: 1.2.0
fs-extra: 11.3.2
js-yaml: 4.1.0
lodash: 4.17.21
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
schema-dts: 1.1.5
tslib: 2.8.1
utility-types: 3.11.0
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
transitivePeerDependencies:
- '@docusaurus/faster'
- '@mdx-js/react'
@@ -12294,18 +12619,18 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-content-pages@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
+ '@docusaurus/plugin-content-pages@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
fs-extra: 11.3.2
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
tslib: 2.8.1
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
transitivePeerDependencies:
- '@docusaurus/faster'
- '@mdx-js/react'
@@ -12324,12 +12649,12 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-css-cascade-layers@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
+ '@docusaurus/plugin-css-cascade-layers@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
tslib: 2.8.1
transitivePeerDependencies:
- '@docusaurus/faster'
@@ -12351,15 +12676,15 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-debug@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
+ '@docusaurus/plugin-debug@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
fs-extra: 11.3.2
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
- react-json-view-lite: 2.5.0(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
+ react-json-view-lite: 2.5.0(react@19.2.0)
tslib: 2.8.1
transitivePeerDependencies:
- '@docusaurus/faster'
@@ -12379,13 +12704,13 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-google-analytics@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
+ '@docusaurus/plugin-google-analytics@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
tslib: 2.8.1
transitivePeerDependencies:
- '@docusaurus/faster'
@@ -12405,14 +12730,14 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-google-gtag@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
+ '@docusaurus/plugin-google-gtag@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@types/gtag.js': 0.0.12
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
tslib: 2.8.1
transitivePeerDependencies:
- '@docusaurus/faster'
@@ -12432,13 +12757,13 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-google-tag-manager@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
+ '@docusaurus/plugin-google-tag-manager@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
tslib: 2.8.1
transitivePeerDependencies:
- '@docusaurus/faster'
@@ -12458,17 +12783,17 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-sitemap@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
+ '@docusaurus/plugin-sitemap@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
+ '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
'@docusaurus/logger': 3.8.1
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
fs-extra: 11.3.2
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
sitemap: 7.1.2
tslib: 2.8.1
transitivePeerDependencies:
@@ -12489,18 +12814,18 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-svgr@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
+ '@docusaurus/plugin-svgr@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@svgr/core': 8.1.0(typescript@5.9.2)
'@svgr/webpack': 8.1.0(typescript@5.9.2)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
tslib: 2.8.1
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
transitivePeerDependencies:
- '@docusaurus/faster'
- '@mdx-js/react'
@@ -12519,25 +12844,25 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/preset-classic@3.8.1(@algolia/client-search@5.37.0)(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(search-insights@2.17.3)(typescript@5.9.2)':
- dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/plugin-content-blog': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/plugin-content-pages': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/plugin-css-cascade-layers': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/plugin-debug': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/plugin-google-analytics': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/plugin-google-gtag': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/plugin-google-tag-manager': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/plugin-sitemap': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/plugin-svgr': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/theme-classic': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@rspack/core@1.5.5)(@swc/core@1.13.5)(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/theme-search-algolia': 3.8.1(@algolia/client-search@5.37.0)(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(search-insights@2.17.3)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@docusaurus/preset-classic@3.8.1(@algolia/client-search@5.40.0)(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)(typescript@5.9.2)':
+ dependencies:
+ '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/plugin-content-blog': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/plugin-content-pages': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/plugin-css-cascade-layers': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/plugin-debug': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/plugin-google-analytics': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/plugin-google-gtag': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/plugin-google-tag-manager': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/plugin-sitemap': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/plugin-svgr': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/theme-classic': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/theme-search-algolia': 3.8.1(@algolia/client-search@5.40.0)(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)(typescript@5.9.2)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
transitivePeerDependencies:
- '@algolia/client-search'
- '@docusaurus/faster'
@@ -12559,38 +12884,38 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/react-loadable@6.0.0(react@19.1.1)':
+ '@docusaurus/react-loadable@6.0.0(react@19.2.0)':
dependencies:
- '@types/react': 19.1.13
- react: 19.1.1
+ '@types/react': 19.2.2
+ react: 19.2.0
- '@docusaurus/theme-classic@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@rspack/core@1.5.5)(@swc/core@1.13.5)(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
+ '@docusaurus/theme-classic@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
+ '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
'@docusaurus/logger': 3.8.1
- '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/module-type-aliases': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/plugin-content-blog': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/plugin-content-pages': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/module-type-aliases': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/plugin-content-blog': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/plugin-content-pages': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@docusaurus/theme-translations': 3.8.1
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@mdx-js/react': 3.1.1(@types/react@19.1.13)(react@19.1.1)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@mdx-js/react': 3.1.1(@types/react@19.2.2)(react@19.2.0)
clsx: 2.1.1
- copy-text-to-clipboard: 3.2.1
+ copy-text-to-clipboard: 3.2.2
infima: 0.2.0-alpha.45
lodash: 4.17.21
nprogress: 0.2.0
postcss: 8.5.6
- prism-react-renderer: 2.4.1(react@19.1.1)
+ prism-react-renderer: 2.4.1(react@19.2.0)
prismjs: 1.30.0
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
- react-router-dom: 5.3.4(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
+ react-router-dom: 5.3.4(react@19.2.0)
rtlcss: 4.3.0
tslib: 2.8.1
utility-types: 3.11.0
@@ -12612,21 +12937,21 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/theme-common@3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@docusaurus/theme-common@3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/module-type-aliases': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/module-type-aliases': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@types/history': 4.7.11
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
'@types/react-router-config': 5.0.11
clsx: 2.1.1
parse-numeric-range: 1.3.0
- prism-react-renderer: 2.4.1(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ prism-react-renderer: 2.4.1(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
tslib: 2.8.1
utility-types: 3.11.0
transitivePeerDependencies:
@@ -12636,24 +12961,24 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/theme-search-algolia@3.8.1(@algolia/client-search@5.37.0)(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(search-insights@2.17.3)(typescript@5.9.2)':
+ '@docusaurus/theme-search-algolia@3.8.1(@algolia/client-search@5.40.0)(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)(typescript@5.9.2)':
dependencies:
- '@docsearch/react': 3.9.0(@algolia/client-search@5.37.0)(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(search-insights@2.17.3)
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
+ '@docsearch/react': 3.9.0(@algolia/client-search@5.40.0)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)
+ '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
'@docusaurus/logger': 3.8.1
- '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)))(@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1))(@rspack/core@1.5.5)(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@docusaurus/theme-translations': 3.8.1
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- algoliasearch: 5.37.0
- algoliasearch-helper: 3.26.0(algoliasearch@5.37.0)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ algoliasearch: 5.40.0
+ algoliasearch-helper: 3.26.0(algoliasearch@5.40.0)
clsx: 2.1.1
eta: 2.2.0
fs-extra: 11.3.2
lodash: 4.17.21
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
tslib: 2.8.1
utility-types: 3.11.0
transitivePeerDependencies:
@@ -12684,18 +13009,18 @@ snapshots:
'@docusaurus/tsconfig@3.8.1': {}
- '@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@mdx-js/mdx': 3.1.1
'@types/history': 4.7.11
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
commander: 5.1.0
joi: 17.13.3
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
- react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1)'
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
+ react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)'
utility-types: 3.11.0
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
webpack-merge: 5.10.0
transitivePeerDependencies:
- '@swc/core'
@@ -12704,9 +13029,9 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/utils-common@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@docusaurus/utils-common@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
tslib: 2.8.1
transitivePeerDependencies:
- '@swc/core'
@@ -12717,11 +13042,11 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/utils-validation@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@docusaurus/utils-validation@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@docusaurus/logger': 3.8.1
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
fs-extra: 11.3.2
joi: 17.13.3
js-yaml: 4.1.0
@@ -12736,14 +13061,14 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/utils@3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@docusaurus/utils@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@docusaurus/logger': 3.8.1
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
escape-string-regexp: 4.0.0
execa: 5.1.1
- file-loader: 6.2.0(webpack@5.101.3(@swc/core@1.13.5))
+ file-loader: 6.2.0(webpack@5.102.1(@swc/core@1.13.5))
fs-extra: 11.3.2
github-slugger: 1.5.0
globby: 11.1.0
@@ -12756,9 +13081,9 @@ snapshots:
prompts: 2.4.2
resolve-pathname: 3.0.0
tslib: 2.8.1
- url-loader: 4.1.1(file-loader@6.2.0(webpack@5.101.3(@swc/core@1.13.5)))(webpack@5.101.3(@swc/core@1.13.5))
+ url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1(@swc/core@1.13.5)))(webpack@5.102.1(@swc/core@1.13.5))
utility-types: 3.11.0
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
transitivePeerDependencies:
- '@swc/core'
- esbuild
@@ -12771,8 +13096,20 @@ snapshots:
'@dotenvx/dotenvx@1.48.4':
dependencies:
commander: 11.1.0
- dotenv: 17.2.2
- eciesjs: 0.4.15
+ dotenv: 17.2.3
+ eciesjs: 0.4.16
+ execa: 5.1.1
+ fdir: 6.5.0(picomatch@4.0.3)
+ ignore: 5.3.2
+ object-treeify: 1.1.33
+ picomatch: 4.0.3
+ which: 4.0.0
+
+ '@dotenvx/dotenvx@1.51.0':
+ dependencies:
+ commander: 11.1.0
+ dotenv: 17.2.3
+ eciesjs: 0.4.16
execa: 5.1.1
fdir: 6.5.0(picomatch@4.0.3)
ignore: 5.3.2
@@ -12786,7 +13123,7 @@ snapshots:
dependencies:
'@noble/ciphers': 1.3.0
- '@electric-sql/pglite@0.3.8': {}
+ '@electric-sql/pglite@0.3.11': {}
'@emnapi/core@1.5.0':
dependencies:
@@ -12812,7 +13149,7 @@ snapshots:
'@esbuild-kit/esm-loader@2.6.5':
dependencies:
'@esbuild-kit/core-utils': 3.3.2
- get-tsconfig: 4.10.1
+ get-tsconfig: 4.12.0
'@esbuild/aix-ppc64@0.25.10':
optional: true
@@ -12967,20 +13304,20 @@ snapshots:
'@floating-ui/core': 1.7.3
'@floating-ui/utils': 0.2.10
- '@floating-ui/react-dom@2.1.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@floating-ui/react-dom@2.1.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@floating-ui/dom': 1.7.4
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
'@floating-ui/utils@0.2.10': {}
- '@gerrit0/mini-shiki@3.12.2':
+ '@gerrit0/mini-shiki@3.13.1':
dependencies:
- '@shikijs/engine-oniguruma': 3.12.2
- '@shikijs/langs': 3.12.2
- '@shikijs/themes': 3.12.2
- '@shikijs/types': 3.12.2
+ '@shikijs/engine-oniguruma': 3.13.0
+ '@shikijs/langs': 3.13.0
+ '@shikijs/themes': 3.13.0
+ '@shikijs/types': 3.13.0
'@shikijs/vscode-textmate': 10.0.2
'@hapi/hoek@9.3.0': {}
@@ -12991,17 +13328,17 @@ snapshots:
'@hexagon/base64@1.1.28': {}
- '@hookform/resolvers@5.2.2(react-hook-form@7.62.0(react@19.1.1))':
+ '@hookform/resolvers@5.2.2(react-hook-form@7.65.0(react@19.2.0))':
dependencies:
'@standard-schema/utils': 0.3.0
- react-hook-form: 7.62.0(react@19.1.1)
+ react-hook-form: 7.65.0(react@19.2.0)
- '@inquirer/external-editor@1.0.2(@types/node@24.5.2)':
+ '@inquirer/external-editor@1.0.2(@types/node@24.7.2)':
dependencies:
chardet: 2.1.0
iconv-lite: 0.7.0
optionalDependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@isaacs/balanced-match@4.0.1': {}
@@ -13033,7 +13370,7 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/yargs': 17.0.33
chalk: 4.1.2
@@ -13188,11 +13525,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1)':
+ '@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0)':
dependencies:
'@types/mdx': 2.0.13
- '@types/react': 19.1.13
- react: 19.1.1
+ '@types/react': 19.2.2
+ react: 19.2.0
'@mjackson/node-fetch-server@0.2.0': {}
@@ -13224,7 +13561,7 @@ snapshots:
'@module-federation/runtime': 0.18.0
'@module-federation/sdk': 0.18.0
- '@napi-rs/wasm-runtime@1.0.5':
+ '@napi-rs/wasm-runtime@1.0.7':
dependencies:
'@emnapi/core': 1.5.0
'@emnapi/runtime': 1.5.0
@@ -13263,7 +13600,7 @@ snapshots:
proc-log: 3.0.0
promise-inflight: 1.0.1
promise-retry: 2.0.1
- semver: 7.7.2
+ semver: 7.7.3
which: 3.0.1
transitivePeerDependencies:
- bluebird
@@ -13276,7 +13613,7 @@ snapshots:
json-parse-even-better-errors: 3.0.2
normalize-package-data: 5.0.0
proc-log: 3.0.0
- semver: 7.7.2
+ semver: 7.7.3
transitivePeerDependencies:
- bluebird
@@ -13383,7 +13720,7 @@ snapshots:
dependencies:
'@opentelemetry/api': 1.9.0
'@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/redis-common': 0.38.0
+ '@opentelemetry/redis-common': 0.38.2
'@opentelemetry/semantic-conventions': 1.37.0
transitivePeerDependencies:
- supports-color
@@ -13442,7 +13779,7 @@ snapshots:
'@opentelemetry/api': 1.9.0
'@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
- '@opentelemetry/sql-common': 0.41.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0)
transitivePeerDependencies:
- supports-color
@@ -13461,7 +13798,7 @@ snapshots:
'@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
'@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
- '@opentelemetry/sql-common': 0.41.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0)
'@types/pg': 8.15.5
'@types/pg-pool': 2.0.6
transitivePeerDependencies:
@@ -13471,7 +13808,7 @@ snapshots:
dependencies:
'@opentelemetry/api': 1.9.0
'@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/redis-common': 0.38.0
+ '@opentelemetry/redis-common': 0.38.2
'@opentelemetry/semantic-conventions': 1.37.0
transitivePeerDependencies:
- supports-color
@@ -13497,7 +13834,7 @@ snapshots:
dependencies:
'@opentelemetry/api': 1.9.0
'@opentelemetry/api-logs': 0.204.0
- import-in-the-middle: 1.14.2
+ import-in-the-middle: 1.15.0
require-in-the-middle: 7.5.2
transitivePeerDependencies:
- supports-color
@@ -13507,14 +13844,14 @@ snapshots:
'@opentelemetry/api': 1.9.0
'@opentelemetry/api-logs': 0.57.2
'@types/shimmer': 1.2.0
- import-in-the-middle: 1.14.2
+ import-in-the-middle: 1.15.0
require-in-the-middle: 7.5.2
semver: 7.7.3
shimmer: 1.2.1
transitivePeerDependencies:
- supports-color
- '@opentelemetry/redis-common@0.38.0': {}
+ '@opentelemetry/redis-common@0.38.2': {}
'@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0)':
dependencies:
@@ -13531,7 +13868,7 @@ snapshots:
'@opentelemetry/semantic-conventions@1.37.0': {}
- '@opentelemetry/sql-common@0.41.0(@opentelemetry/api@1.9.0)':
+ '@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.0)':
dependencies:
'@opentelemetry/api': 1.9.0
'@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
@@ -13632,7 +13969,7 @@ snapshots:
tslib: 2.8.1
tsyringe: 4.10.0
- '@petamoriken/float16@3.9.2': {}
+ '@petamoriken/float16@3.9.3': {}
'@pkgjs/parseargs@0.11.0':
optional: true
@@ -13651,7 +13988,7 @@ snapshots:
'@polka/url@1.0.0-next.29': {}
- '@posthog/core@1.0.2': {}
+ '@posthog/core@1.3.0': {}
'@prisma/instrumentation@6.15.0(@opentelemetry/api@1.9.0)':
dependencies:
@@ -13664,866 +14001,866 @@ snapshots:
'@radix-ui/primitive@1.1.3': {}
- '@radix-ui/react-accessible-icon@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-accessible-icon@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-aspect-ratio@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-aspect-ratio@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
-
- '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
- dependencies:
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
+
+ '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ dependencies:
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-context-menu@2.2.16(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-context-menu@2.2.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-context@1.1.2(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-context@1.1.2(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
aria-hidden: 1.2.6
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
- react-remove-scroll: 2.7.1(@types/react@19.1.13)(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
+ react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-direction@1.1.1(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-direction@1.1.1(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-form@0.1.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-form@0.1.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-label': 2.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-label': 2.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-hover-card@1.1.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-hover-card@1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-icons@1.3.2(react@19.1.1)':
+ '@radix-ui/react-icons@1.3.2(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@radix-ui/react-id@1.1.1(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-id@1.1.1(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-label@2.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-menu@2.1.16(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
aria-hidden: 1.2.6
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
- react-remove-scroll: 2.7.1(@types/react@19.1.13)(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
+ react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-menubar@1.1.16(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-menubar@1.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-one-time-password-field@0.1.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-one-time-password-field@0.1.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/number': 1.1.1
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-password-toggle-field@0.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-password-toggle-field@0.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-popover@1.1.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
aria-hidden: 1.2.6
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
- react-remove-scroll: 2.7.1(@types/react@19.1.13)(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
+ react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
-
- '@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
- dependencies:
- '@floating-ui/react-dom': 2.1.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.13)(react@19.1.1)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
+
+ '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.0)
'@radix-ui/rect': 1.1.1
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-progress@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-progress@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/number': 1.1.1
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-select@2.2.6(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/number': 1.1.1
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
aria-hidden: 1.2.6
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
- react-remove-scroll: 2.7.1(@types/react@19.1.13)(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
+ react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-separator@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-slider@1.3.6(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-slider@1.3.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/number': 1.1.1
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-slot@1.2.3(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-slot@1.2.3(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-switch@1.2.6(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-toast@1.2.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-toast@1.2.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-toolbar@1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-toolbar@1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-separator': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-separator': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
- '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
+ '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- react: 19.1.1
- use-sync-external-store: 1.5.0(react@19.1.1)
+ react: 19.2.0
+ use-sync-external-store: 1.6.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.2)(react@19.2.0)':
dependencies:
'@radix-ui/rect': 1.1.1
- react: 19.1.1
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-use-size@1.1.1(@types/react@19.1.13)(react@19.1.1)':
+ '@radix-ui/react-use-size@1.1.1(@types/react@19.2.2)(react@19.2.0)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ react: 19.2.0
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
'@radix-ui/rect@1.1.1': {}
- '@react-email/body@0.1.0(react@19.1.1)':
+ '@react-email/body@0.1.0(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/button@0.2.0(react@19.1.1)':
+ '@react-email/button@0.2.0(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/code-block@0.1.0(react@19.1.1)':
+ '@react-email/code-block@0.1.0(react@19.2.0)':
dependencies:
prismjs: 1.30.0
- react: 19.1.1
-
- '@react-email/code-inline@0.0.5(react@19.1.1)':
- dependencies:
- react: 19.1.1
-
- '@react-email/column@0.0.13(react@19.1.1)':
- dependencies:
- react: 19.1.1
-
- '@react-email/components@0.5.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
- dependencies:
- '@react-email/body': 0.1.0(react@19.1.1)
- '@react-email/button': 0.2.0(react@19.1.1)
- '@react-email/code-block': 0.1.0(react@19.1.1)
- '@react-email/code-inline': 0.0.5(react@19.1.1)
- '@react-email/column': 0.0.13(react@19.1.1)
- '@react-email/container': 0.0.15(react@19.1.1)
- '@react-email/font': 0.0.9(react@19.1.1)
- '@react-email/head': 0.0.12(react@19.1.1)
- '@react-email/heading': 0.0.15(react@19.1.1)
- '@react-email/hr': 0.0.11(react@19.1.1)
- '@react-email/html': 0.0.11(react@19.1.1)
- '@react-email/img': 0.0.11(react@19.1.1)
- '@react-email/link': 0.0.12(react@19.1.1)
- '@react-email/markdown': 0.0.15(react@19.1.1)
- '@react-email/preview': 0.0.13(react@19.1.1)
- '@react-email/render': 1.2.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@react-email/row': 0.0.12(react@19.1.1)
- '@react-email/section': 0.0.16(react@19.1.1)
- '@react-email/tailwind': 1.2.2(react@19.1.1)
- '@react-email/text': 0.1.5(react@19.1.1)
- react: 19.1.1
+ react: 19.2.0
+
+ '@react-email/code-inline@0.0.5(react@19.2.0)':
+ dependencies:
+ react: 19.2.0
+
+ '@react-email/column@0.0.13(react@19.2.0)':
+ dependencies:
+ react: 19.2.0
+
+ '@react-email/components@0.5.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ dependencies:
+ '@react-email/body': 0.1.0(react@19.2.0)
+ '@react-email/button': 0.2.0(react@19.2.0)
+ '@react-email/code-block': 0.1.0(react@19.2.0)
+ '@react-email/code-inline': 0.0.5(react@19.2.0)
+ '@react-email/column': 0.0.13(react@19.2.0)
+ '@react-email/container': 0.0.15(react@19.2.0)
+ '@react-email/font': 0.0.9(react@19.2.0)
+ '@react-email/head': 0.0.12(react@19.2.0)
+ '@react-email/heading': 0.0.15(react@19.2.0)
+ '@react-email/hr': 0.0.11(react@19.2.0)
+ '@react-email/html': 0.0.11(react@19.2.0)
+ '@react-email/img': 0.0.11(react@19.2.0)
+ '@react-email/link': 0.0.12(react@19.2.0)
+ '@react-email/markdown': 0.0.15(react@19.2.0)
+ '@react-email/preview': 0.0.13(react@19.2.0)
+ '@react-email/render': 1.3.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@react-email/row': 0.0.12(react@19.2.0)
+ '@react-email/section': 0.0.16(react@19.2.0)
+ '@react-email/tailwind': 1.2.2(react@19.2.0)
+ '@react-email/text': 0.1.5(react@19.2.0)
+ react: 19.2.0
transitivePeerDependencies:
- react-dom
- '@react-email/container@0.0.15(react@19.1.1)':
+ '@react-email/container@0.0.15(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/font@0.0.9(react@19.1.1)':
+ '@react-email/font@0.0.9(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/head@0.0.12(react@19.1.1)':
+ '@react-email/head@0.0.12(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/heading@0.0.15(react@19.1.1)':
+ '@react-email/heading@0.0.15(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/hr@0.0.11(react@19.1.1)':
+ '@react-email/hr@0.0.11(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/html@0.0.11(react@19.1.1)':
+ '@react-email/html@0.0.11(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/img@0.0.11(react@19.1.1)':
+ '@react-email/img@0.0.11(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/link@0.0.12(react@19.1.1)':
+ '@react-email/link@0.0.12(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/markdown@0.0.15(react@19.1.1)':
+ '@react-email/markdown@0.0.15(react@19.2.0)':
dependencies:
- md-to-react-email: 5.0.5(react@19.1.1)
- react: 19.1.1
+ md-to-react-email: 5.0.5(react@19.2.0)
+ react: 19.2.0
- '@react-email/preview@0.0.13(react@19.1.1)':
+ '@react-email/preview@0.0.13(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/render@1.2.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@react-email/render@1.3.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
html-to-text: 9.0.5
prettier: 3.6.2
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
react-promise-suspense: 0.3.4
- '@react-email/row@0.0.12(react@19.1.1)':
+ '@react-email/row@0.0.12(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/section@0.0.16(react@19.1.1)':
+ '@react-email/section@0.0.16(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/tailwind@1.2.2(react@19.1.1)':
+ '@react-email/tailwind@1.2.2(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-email/text@0.1.5(react@19.1.1)':
+ '@react-email/text@0.1.5(react@19.2.0)':
dependencies:
- react: 19.1.1
+ react: 19.2.0
- '@react-router/dev@7.9.1(@react-router/serve@7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2))(@types/node@24.5.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.5.1)(lightningcss@1.30.1)(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(terser@5.44.0)(typescript@5.9.2)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1)':
+ '@react-router/dev@7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1)':
dependencies:
'@babel/core': 7.28.4
'@babel/generator': 7.28.3
@@ -14533,31 +14870,31 @@ snapshots:
'@babel/traverse': 7.28.4
'@babel/types': 7.28.4
'@npmcli/package-json': 4.0.1
- '@react-router/node': 7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2)
+ '@react-router/node': 7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3)
+ '@remix-run/node-fetch-server': 0.9.0
arg: 5.0.2
babel-dead-code-elimination: 1.0.10
chokidar: 4.0.3
dedent: 1.7.0
es-module-lexer: 1.7.0
exit-hook: 2.2.1
- isbot: 5.1.30
+ isbot: 5.1.31
jsesc: 3.0.2
lodash: 4.17.21
pathe: 1.1.2
picocolors: 1.1.1
prettier: 3.6.2
react-refresh: 0.14.2
- react-router: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- semver: 7.7.2
- set-cookie-parser: 2.7.1
+ react-router: 7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ semver: 7.7.3
tinyglobby: 0.2.15
- valibot: 0.41.0(typescript@5.9.2)
- vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
- vite-node: 3.2.4(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
+ valibot: 1.1.0(typescript@5.9.3)
+ vite: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
+ vite-node: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
optionalDependencies:
- '@react-router/serve': 7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2)
- '@vitejs/plugin-rsc': 0.4.11(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))
- typescript: 5.9.2
+ '@react-router/serve': 7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3)
+ '@vitejs/plugin-rsc': 0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
+ typescript: 5.9.3
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -14574,37 +14911,38 @@ snapshots:
- tsx
- yaml
- '@react-router/express@7.9.1(express@4.21.2)(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2)':
+ '@react-router/express@7.9.4(express@4.21.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3)':
dependencies:
- '@react-router/node': 7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2)
+ '@react-router/node': 7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3)
express: 4.21.2
- react-router: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ react-router: 7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
optionalDependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
- '@react-router/fs-routes@7.9.1(@react-router/dev@7.9.1(@react-router/serve@7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2))(@types/node@24.5.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.5.1)(lightningcss@1.30.1)(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(terser@5.44.0)(typescript@5.9.2)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.2)':
+ '@react-router/fs-routes@7.9.4(@react-router/dev@7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.3)':
dependencies:
- '@react-router/dev': 7.9.1(@react-router/serve@7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2))(@types/node@24.5.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.5.1)(lightningcss@1.30.1)(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(terser@5.44.0)(typescript@5.9.2)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1)
+ '@react-router/dev': 7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1)
minimatch: 9.0.5
optionalDependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
- '@react-router/node@7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2)':
+ '@react-router/node@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3)':
dependencies:
'@mjackson/node-fetch-server': 0.2.0
- react-router: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ react-router: 7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
optionalDependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
- '@react-router/serve@7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2)':
+ '@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3)':
dependencies:
- '@react-router/express': 7.9.1(express@4.21.2)(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2)
- '@react-router/node': 7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2)
+ '@mjackson/node-fetch-server': 0.2.0
+ '@react-router/express': 7.9.4(express@4.21.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3)
+ '@react-router/node': 7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3)
compression: 1.8.1
express: 4.21.2
get-port: 5.1.1
morgan: 1.10.1
- react-router: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ react-router: 7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
source-map-support: 0.5.21
transitivePeerDependencies:
- supports-color
@@ -14628,6 +14966,8 @@ snapshots:
dependencies:
'@remix-run/headers': 0.12.0
+ '@remix-run/node-fetch-server@0.9.0': {}
+
'@repeaterjs/repeater@3.0.6': {}
'@rollup/plugin-commonjs@28.0.6(rollup@4.50.2)':
@@ -14694,115 +15034,181 @@ snapshots:
'@rollup/rollup-android-arm-eabi@4.50.2':
optional: true
+ '@rollup/rollup-android-arm-eabi@4.52.4':
+ optional: true
+
'@rollup/rollup-android-arm64@4.50.2':
optional: true
+ '@rollup/rollup-android-arm64@4.52.4':
+ optional: true
+
'@rollup/rollup-darwin-arm64@4.50.2':
optional: true
+ '@rollup/rollup-darwin-arm64@4.52.4':
+ optional: true
+
'@rollup/rollup-darwin-x64@4.50.2':
optional: true
+ '@rollup/rollup-darwin-x64@4.52.4':
+ optional: true
+
'@rollup/rollup-freebsd-arm64@4.50.2':
optional: true
+ '@rollup/rollup-freebsd-arm64@4.52.4':
+ optional: true
+
'@rollup/rollup-freebsd-x64@4.50.2':
optional: true
+ '@rollup/rollup-freebsd-x64@4.52.4':
+ optional: true
+
'@rollup/rollup-linux-arm-gnueabihf@4.50.2':
optional: true
+ '@rollup/rollup-linux-arm-gnueabihf@4.52.4':
+ optional: true
+
'@rollup/rollup-linux-arm-musleabihf@4.50.2':
optional: true
+ '@rollup/rollup-linux-arm-musleabihf@4.52.4':
+ optional: true
+
'@rollup/rollup-linux-arm64-gnu@4.50.2':
optional: true
+ '@rollup/rollup-linux-arm64-gnu@4.52.4':
+ optional: true
+
'@rollup/rollup-linux-arm64-musl@4.50.2':
optional: true
+ '@rollup/rollup-linux-arm64-musl@4.52.4':
+ optional: true
+
'@rollup/rollup-linux-loong64-gnu@4.50.2':
optional: true
+ '@rollup/rollup-linux-loong64-gnu@4.52.4':
+ optional: true
+
'@rollup/rollup-linux-ppc64-gnu@4.50.2':
optional: true
+ '@rollup/rollup-linux-ppc64-gnu@4.52.4':
+ optional: true
+
'@rollup/rollup-linux-riscv64-gnu@4.50.2':
optional: true
+ '@rollup/rollup-linux-riscv64-gnu@4.52.4':
+ optional: true
+
'@rollup/rollup-linux-riscv64-musl@4.50.2':
optional: true
+ '@rollup/rollup-linux-riscv64-musl@4.52.4':
+ optional: true
+
'@rollup/rollup-linux-s390x-gnu@4.50.2':
optional: true
+ '@rollup/rollup-linux-s390x-gnu@4.52.4':
+ optional: true
+
'@rollup/rollup-linux-x64-gnu@4.50.2':
optional: true
+ '@rollup/rollup-linux-x64-gnu@4.52.4':
+ optional: true
+
'@rollup/rollup-linux-x64-musl@4.50.2':
optional: true
+ '@rollup/rollup-linux-x64-musl@4.52.4':
+ optional: true
+
'@rollup/rollup-openharmony-arm64@4.50.2':
optional: true
+ '@rollup/rollup-openharmony-arm64@4.52.4':
+ optional: true
+
'@rollup/rollup-win32-arm64-msvc@4.50.2':
optional: true
+ '@rollup/rollup-win32-arm64-msvc@4.52.4':
+ optional: true
+
'@rollup/rollup-win32-ia32-msvc@4.50.2':
optional: true
+ '@rollup/rollup-win32-ia32-msvc@4.52.4':
+ optional: true
+
+ '@rollup/rollup-win32-x64-gnu@4.52.4':
+ optional: true
+
'@rollup/rollup-win32-x64-msvc@4.50.2':
optional: true
- '@rspack/binding-darwin-arm64@1.5.5':
+ '@rollup/rollup-win32-x64-msvc@4.52.4':
+ optional: true
+
+ '@rspack/binding-darwin-arm64@1.5.8':
optional: true
- '@rspack/binding-darwin-x64@1.5.5':
+ '@rspack/binding-darwin-x64@1.5.8':
optional: true
- '@rspack/binding-linux-arm64-gnu@1.5.5':
+ '@rspack/binding-linux-arm64-gnu@1.5.8':
optional: true
- '@rspack/binding-linux-arm64-musl@1.5.5':
+ '@rspack/binding-linux-arm64-musl@1.5.8':
optional: true
- '@rspack/binding-linux-x64-gnu@1.5.5':
+ '@rspack/binding-linux-x64-gnu@1.5.8':
optional: true
- '@rspack/binding-linux-x64-musl@1.5.5':
+ '@rspack/binding-linux-x64-musl@1.5.8':
optional: true
- '@rspack/binding-wasm32-wasi@1.5.5':
+ '@rspack/binding-wasm32-wasi@1.5.8':
dependencies:
- '@napi-rs/wasm-runtime': 1.0.5
+ '@napi-rs/wasm-runtime': 1.0.7
optional: true
- '@rspack/binding-win32-arm64-msvc@1.5.5':
+ '@rspack/binding-win32-arm64-msvc@1.5.8':
optional: true
- '@rspack/binding-win32-ia32-msvc@1.5.5':
+ '@rspack/binding-win32-ia32-msvc@1.5.8':
optional: true
- '@rspack/binding-win32-x64-msvc@1.5.5':
+ '@rspack/binding-win32-x64-msvc@1.5.8':
optional: true
- '@rspack/binding@1.5.5':
+ '@rspack/binding@1.5.8':
optionalDependencies:
- '@rspack/binding-darwin-arm64': 1.5.5
- '@rspack/binding-darwin-x64': 1.5.5
- '@rspack/binding-linux-arm64-gnu': 1.5.5
- '@rspack/binding-linux-arm64-musl': 1.5.5
- '@rspack/binding-linux-x64-gnu': 1.5.5
- '@rspack/binding-linux-x64-musl': 1.5.5
- '@rspack/binding-wasm32-wasi': 1.5.5
- '@rspack/binding-win32-arm64-msvc': 1.5.5
- '@rspack/binding-win32-ia32-msvc': 1.5.5
- '@rspack/binding-win32-x64-msvc': 1.5.5
-
- '@rspack/core@1.5.5':
+ '@rspack/binding-darwin-arm64': 1.5.8
+ '@rspack/binding-darwin-x64': 1.5.8
+ '@rspack/binding-linux-arm64-gnu': 1.5.8
+ '@rspack/binding-linux-arm64-musl': 1.5.8
+ '@rspack/binding-linux-x64-gnu': 1.5.8
+ '@rspack/binding-linux-x64-musl': 1.5.8
+ '@rspack/binding-wasm32-wasi': 1.5.8
+ '@rspack/binding-win32-arm64-msvc': 1.5.8
+ '@rspack/binding-win32-ia32-msvc': 1.5.8
+ '@rspack/binding-win32-x64-msvc': 1.5.8
+
+ '@rspack/core@1.5.8':
dependencies:
'@module-federation/runtime-tools': 0.18.0
- '@rspack/binding': 1.5.5
+ '@rspack/binding': 1.5.8
'@rspack/lite-tapable': 1.0.1
'@rspack/lite-tapable@1.0.1': {}
@@ -14812,44 +15218,44 @@ snapshots:
domhandler: 5.0.3
selderee: 0.11.0
- '@sentry-internal/browser-utils@10.12.0':
+ '@sentry-internal/browser-utils@10.19.0':
dependencies:
- '@sentry/core': 10.12.0
+ '@sentry/core': 10.19.0
- '@sentry-internal/feedback@10.12.0':
+ '@sentry-internal/feedback@10.19.0':
dependencies:
- '@sentry/core': 10.12.0
+ '@sentry/core': 10.19.0
'@sentry-internal/node-cpu-profiler@2.2.0':
dependencies:
- detect-libc: 2.1.0
- node-abi: 3.77.0
+ detect-libc: 2.1.2
+ node-abi: 3.78.0
- '@sentry-internal/replay-canvas@10.12.0':
+ '@sentry-internal/replay-canvas@10.19.0':
dependencies:
- '@sentry-internal/replay': 10.12.0
- '@sentry/core': 10.12.0
+ '@sentry-internal/replay': 10.19.0
+ '@sentry/core': 10.19.0
- '@sentry-internal/replay@10.12.0':
+ '@sentry-internal/replay@10.19.0':
dependencies:
- '@sentry-internal/browser-utils': 10.12.0
- '@sentry/core': 10.12.0
+ '@sentry-internal/browser-utils': 10.19.0
+ '@sentry/core': 10.19.0
- '@sentry/babel-plugin-component-annotate@4.3.0': {}
+ '@sentry/babel-plugin-component-annotate@4.4.0': {}
- '@sentry/browser@10.12.0':
+ '@sentry/browser@10.19.0':
dependencies:
- '@sentry-internal/browser-utils': 10.12.0
- '@sentry-internal/feedback': 10.12.0
- '@sentry-internal/replay': 10.12.0
- '@sentry-internal/replay-canvas': 10.12.0
- '@sentry/core': 10.12.0
+ '@sentry-internal/browser-utils': 10.19.0
+ '@sentry-internal/feedback': 10.19.0
+ '@sentry-internal/replay': 10.19.0
+ '@sentry-internal/replay-canvas': 10.19.0
+ '@sentry/core': 10.19.0
- '@sentry/bundler-plugin-core@4.3.0':
+ '@sentry/bundler-plugin-core@4.4.0':
dependencies:
'@babel/core': 7.28.4
- '@sentry/babel-plugin-component-annotate': 4.3.0
- '@sentry/cli': 2.53.0
+ '@sentry/babel-plugin-component-annotate': 4.4.0
+ '@sentry/cli': 2.56.1
dotenv: 16.6.1
find-up: 5.0.0
glob: 9.3.5
@@ -14859,31 +15265,31 @@ snapshots:
- encoding
- supports-color
- '@sentry/cli-darwin@2.53.0':
+ '@sentry/cli-darwin@2.56.1':
optional: true
- '@sentry/cli-linux-arm64@2.53.0':
+ '@sentry/cli-linux-arm64@2.56.1':
optional: true
- '@sentry/cli-linux-arm@2.53.0':
+ '@sentry/cli-linux-arm@2.56.1':
optional: true
- '@sentry/cli-linux-i686@2.53.0':
+ '@sentry/cli-linux-i686@2.56.1':
optional: true
- '@sentry/cli-linux-x64@2.53.0':
+ '@sentry/cli-linux-x64@2.56.1':
optional: true
- '@sentry/cli-win32-arm64@2.53.0':
+ '@sentry/cli-win32-arm64@2.56.1':
optional: true
- '@sentry/cli-win32-i686@2.53.0':
+ '@sentry/cli-win32-i686@2.56.1':
optional: true
- '@sentry/cli-win32-x64@2.53.0':
+ '@sentry/cli-win32-x64@2.56.1':
optional: true
- '@sentry/cli@2.53.0':
+ '@sentry/cli@2.56.1':
dependencies:
https-proxy-agent: 5.0.1
node-fetch: 2.7.0
@@ -14891,22 +15297,23 @@ snapshots:
proxy-from-env: 1.1.0
which: 2.0.2
optionalDependencies:
- '@sentry/cli-darwin': 2.53.0
- '@sentry/cli-linux-arm': 2.53.0
- '@sentry/cli-linux-arm64': 2.53.0
- '@sentry/cli-linux-i686': 2.53.0
- '@sentry/cli-linux-x64': 2.53.0
- '@sentry/cli-win32-arm64': 2.53.0
- '@sentry/cli-win32-i686': 2.53.0
- '@sentry/cli-win32-x64': 2.53.0
+ '@sentry/cli-darwin': 2.56.1
+ '@sentry/cli-linux-arm': 2.56.1
+ '@sentry/cli-linux-arm64': 2.56.1
+ '@sentry/cli-linux-i686': 2.56.1
+ '@sentry/cli-linux-x64': 2.56.1
+ '@sentry/cli-win32-arm64': 2.56.1
+ '@sentry/cli-win32-i686': 2.56.1
+ '@sentry/cli-win32-x64': 2.56.1
transitivePeerDependencies:
- encoding
- supports-color
- '@sentry/core@10.12.0': {}
+ '@sentry/core@10.19.0': {}
- '@sentry/node-core@10.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.204.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)':
+ '@sentry/node-core@10.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.204.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)':
dependencies:
+ '@apm-js-collab/tracing-hooks': 0.3.1
'@opentelemetry/api': 1.9.0
'@opentelemetry/context-async-hooks': 2.1.0(@opentelemetry/api@1.9.0)
'@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
@@ -14914,11 +15321,13 @@ snapshots:
'@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0)
'@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
- '@sentry/core': 10.12.0
- '@sentry/opentelemetry': 10.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)
- import-in-the-middle: 1.14.2
+ '@sentry/core': 10.19.0
+ '@sentry/opentelemetry': 10.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)
+ import-in-the-middle: 1.15.0
+ transitivePeerDependencies:
+ - supports-color
- '@sentry/node@10.12.0':
+ '@sentry/node@10.19.0':
dependencies:
'@opentelemetry/api': 1.9.0
'@opentelemetry/context-async-hooks': 2.1.0(@opentelemetry/api@1.9.0)
@@ -14950,80 +15359,80 @@ snapshots:
'@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
'@prisma/instrumentation': 6.15.0(@opentelemetry/api@1.9.0)
- '@sentry/core': 10.12.0
- '@sentry/node-core': 10.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.204.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)
- '@sentry/opentelemetry': 10.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)
- import-in-the-middle: 1.14.2
+ '@sentry/core': 10.19.0
+ '@sentry/node-core': 10.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.204.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)
+ '@sentry/opentelemetry': 10.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)
+ import-in-the-middle: 1.15.0
minimatch: 9.0.5
transitivePeerDependencies:
- supports-color
- '@sentry/opentelemetry@10.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)':
+ '@sentry/opentelemetry@10.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)':
dependencies:
'@opentelemetry/api': 1.9.0
'@opentelemetry/context-async-hooks': 2.1.0(@opentelemetry/api@1.9.0)
'@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
'@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
- '@sentry/core': 10.12.0
+ '@sentry/core': 10.19.0
- '@sentry/profiling-node@10.12.0':
+ '@sentry/profiling-node@10.19.0':
dependencies:
'@sentry-internal/node-cpu-profiler': 2.2.0
- '@sentry/core': 10.12.0
- '@sentry/node': 10.12.0
+ '@sentry/core': 10.19.0
+ '@sentry/node': 10.19.0
transitivePeerDependencies:
- supports-color
- '@sentry/react-router@10.12.0(@react-router/node@7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)':
+ '@sentry/react-router@10.19.0(@react-router/node@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)':
dependencies:
'@opentelemetry/api': 1.9.0
'@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
'@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
- '@react-router/node': 7.9.1(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(typescript@5.9.2)
- '@sentry/browser': 10.12.0
- '@sentry/cli': 2.53.0
- '@sentry/core': 10.12.0
- '@sentry/node': 10.12.0
- '@sentry/react': 10.12.0(react@19.1.1)
- '@sentry/vite-plugin': 4.3.0
+ '@react-router/node': 7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3)
+ '@sentry/browser': 10.19.0
+ '@sentry/cli': 2.56.1
+ '@sentry/core': 10.19.0
+ '@sentry/node': 10.19.0
+ '@sentry/react': 10.19.0(react@19.2.0)
+ '@sentry/vite-plugin': 4.4.0
glob: 11.0.1
- react: 19.1.1
- react-router: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ react: 19.2.0
+ react-router: 7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
transitivePeerDependencies:
- encoding
- supports-color
- '@sentry/react@10.12.0(react@19.1.1)':
+ '@sentry/react@10.19.0(react@19.2.0)':
dependencies:
- '@sentry/browser': 10.12.0
- '@sentry/core': 10.12.0
+ '@sentry/browser': 10.19.0
+ '@sentry/core': 10.19.0
hoist-non-react-statics: 3.3.2
- react: 19.1.1
+ react: 19.2.0
- '@sentry/vite-plugin@4.3.0':
+ '@sentry/vite-plugin@4.4.0':
dependencies:
- '@sentry/bundler-plugin-core': 4.3.0
+ '@sentry/bundler-plugin-core': 4.4.0
unplugin: 1.0.1
transitivePeerDependencies:
- encoding
- supports-color
- '@shikijs/engine-oniguruma@3.12.2':
+ '@shikijs/engine-oniguruma@3.13.0':
dependencies:
- '@shikijs/types': 3.12.2
+ '@shikijs/types': 3.13.0
'@shikijs/vscode-textmate': 10.0.2
- '@shikijs/langs@3.12.2':
+ '@shikijs/langs@3.13.0':
dependencies:
- '@shikijs/types': 3.12.2
+ '@shikijs/types': 3.13.0
- '@shikijs/themes@3.12.2':
+ '@shikijs/themes@3.13.0':
dependencies:
- '@shikijs/types': 3.12.2
+ '@shikijs/types': 3.13.0
- '@shikijs/types@3.12.2':
+ '@shikijs/types@3.13.0':
dependencies:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
@@ -15038,9 +15447,9 @@ snapshots:
'@sideway/pinpoint@2.0.0': {}
- '@simplewebauthn/browser@13.2.0': {}
+ '@simplewebauthn/browser@13.2.2': {}
- '@simplewebauthn/server@13.2.1':
+ '@simplewebauthn/server@13.2.2':
dependencies:
'@hexagon/base64': 1.1.28
'@levischuck/tiny-cbor': 0.2.11
@@ -15057,13 +15466,13 @@ snapshots:
'@sindresorhus/is@5.6.0': {}
- '@slorber/react-helmet-async@1.3.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@slorber/react-helmet-async@1.3.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@babel/runtime': 7.28.4
invariant: 2.2.4
prop-types: 15.8.1
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
react-fast-compare: 3.2.2
shallowequal: 1.1.0
@@ -15216,50 +15625,50 @@ snapshots:
'@swc/counter@0.1.3': {}
- '@swc/html-darwin-arm64@1.13.5':
+ '@swc/html-darwin-arm64@1.13.20':
optional: true
- '@swc/html-darwin-x64@1.13.5':
+ '@swc/html-darwin-x64@1.13.20':
optional: true
- '@swc/html-linux-arm-gnueabihf@1.13.5':
+ '@swc/html-linux-arm-gnueabihf@1.13.20':
optional: true
- '@swc/html-linux-arm64-gnu@1.13.5':
+ '@swc/html-linux-arm64-gnu@1.13.20':
optional: true
- '@swc/html-linux-arm64-musl@1.13.5':
+ '@swc/html-linux-arm64-musl@1.13.20':
optional: true
- '@swc/html-linux-x64-gnu@1.13.5':
+ '@swc/html-linux-x64-gnu@1.13.20':
optional: true
- '@swc/html-linux-x64-musl@1.13.5':
+ '@swc/html-linux-x64-musl@1.13.20':
optional: true
- '@swc/html-win32-arm64-msvc@1.13.5':
+ '@swc/html-win32-arm64-msvc@1.13.20':
optional: true
- '@swc/html-win32-ia32-msvc@1.13.5':
+ '@swc/html-win32-ia32-msvc@1.13.20':
optional: true
- '@swc/html-win32-x64-msvc@1.13.5':
+ '@swc/html-win32-x64-msvc@1.13.20':
optional: true
- '@swc/html@1.13.5':
+ '@swc/html@1.13.20':
dependencies:
'@swc/counter': 0.1.3
optionalDependencies:
- '@swc/html-darwin-arm64': 1.13.5
- '@swc/html-darwin-x64': 1.13.5
- '@swc/html-linux-arm-gnueabihf': 1.13.5
- '@swc/html-linux-arm64-gnu': 1.13.5
- '@swc/html-linux-arm64-musl': 1.13.5
- '@swc/html-linux-x64-gnu': 1.13.5
- '@swc/html-linux-x64-musl': 1.13.5
- '@swc/html-win32-arm64-msvc': 1.13.5
- '@swc/html-win32-ia32-msvc': 1.13.5
- '@swc/html-win32-x64-msvc': 1.13.5
+ '@swc/html-darwin-arm64': 1.13.20
+ '@swc/html-darwin-x64': 1.13.20
+ '@swc/html-linux-arm-gnueabihf': 1.13.20
+ '@swc/html-linux-arm64-gnu': 1.13.20
+ '@swc/html-linux-arm64-musl': 1.13.20
+ '@swc/html-linux-x64-gnu': 1.13.20
+ '@swc/html-linux-x64-musl': 1.13.20
+ '@swc/html-win32-arm64-msvc': 1.13.20
+ '@swc/html-win32-ia32-msvc': 1.13.20
+ '@swc/html-win32-x64-msvc': 1.13.20
'@swc/types@0.1.25':
dependencies:
@@ -15273,90 +15682,90 @@ snapshots:
dependencies:
defer-to-connect: 2.0.1
- '@tailwindcss/node@4.1.13':
+ '@tailwindcss/node@4.1.14':
dependencies:
'@jridgewell/remapping': 2.3.5
enhanced-resolve: 5.18.3
- jiti: 2.5.1
+ jiti: 2.6.1
lightningcss: 1.30.1
magic-string: 0.30.19
source-map-js: 1.2.1
- tailwindcss: 4.1.13
+ tailwindcss: 4.1.14
- '@tailwindcss/oxide-android-arm64@4.1.13':
+ '@tailwindcss/oxide-android-arm64@4.1.14':
optional: true
- '@tailwindcss/oxide-darwin-arm64@4.1.13':
+ '@tailwindcss/oxide-darwin-arm64@4.1.14':
optional: true
- '@tailwindcss/oxide-darwin-x64@4.1.13':
+ '@tailwindcss/oxide-darwin-x64@4.1.14':
optional: true
- '@tailwindcss/oxide-freebsd-x64@4.1.13':
+ '@tailwindcss/oxide-freebsd-x64@4.1.14':
optional: true
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.13':
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14':
optional: true
- '@tailwindcss/oxide-linux-arm64-gnu@4.1.13':
+ '@tailwindcss/oxide-linux-arm64-gnu@4.1.14':
optional: true
- '@tailwindcss/oxide-linux-arm64-musl@4.1.13':
+ '@tailwindcss/oxide-linux-arm64-musl@4.1.14':
optional: true
- '@tailwindcss/oxide-linux-x64-gnu@4.1.13':
+ '@tailwindcss/oxide-linux-x64-gnu@4.1.14':
optional: true
- '@tailwindcss/oxide-linux-x64-musl@4.1.13':
+ '@tailwindcss/oxide-linux-x64-musl@4.1.14':
optional: true
- '@tailwindcss/oxide-wasm32-wasi@4.1.13':
+ '@tailwindcss/oxide-wasm32-wasi@4.1.14':
optional: true
- '@tailwindcss/oxide-win32-arm64-msvc@4.1.13':
+ '@tailwindcss/oxide-win32-arm64-msvc@4.1.14':
optional: true
- '@tailwindcss/oxide-win32-x64-msvc@4.1.13':
+ '@tailwindcss/oxide-win32-x64-msvc@4.1.14':
optional: true
- '@tailwindcss/oxide@4.1.13':
+ '@tailwindcss/oxide@4.1.14':
dependencies:
- detect-libc: 2.1.0
- tar: 7.4.3
+ detect-libc: 2.1.2
+ tar: 7.5.1
optionalDependencies:
- '@tailwindcss/oxide-android-arm64': 4.1.13
- '@tailwindcss/oxide-darwin-arm64': 4.1.13
- '@tailwindcss/oxide-darwin-x64': 4.1.13
- '@tailwindcss/oxide-freebsd-x64': 4.1.13
- '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.13
- '@tailwindcss/oxide-linux-arm64-gnu': 4.1.13
- '@tailwindcss/oxide-linux-arm64-musl': 4.1.13
- '@tailwindcss/oxide-linux-x64-gnu': 4.1.13
- '@tailwindcss/oxide-linux-x64-musl': 4.1.13
- '@tailwindcss/oxide-wasm32-wasi': 4.1.13
- '@tailwindcss/oxide-win32-arm64-msvc': 4.1.13
- '@tailwindcss/oxide-win32-x64-msvc': 4.1.13
-
- '@tailwindcss/postcss@4.1.13':
+ '@tailwindcss/oxide-android-arm64': 4.1.14
+ '@tailwindcss/oxide-darwin-arm64': 4.1.14
+ '@tailwindcss/oxide-darwin-x64': 4.1.14
+ '@tailwindcss/oxide-freebsd-x64': 4.1.14
+ '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.14
+ '@tailwindcss/oxide-linux-arm64-gnu': 4.1.14
+ '@tailwindcss/oxide-linux-arm64-musl': 4.1.14
+ '@tailwindcss/oxide-linux-x64-gnu': 4.1.14
+ '@tailwindcss/oxide-linux-x64-musl': 4.1.14
+ '@tailwindcss/oxide-wasm32-wasi': 4.1.14
+ '@tailwindcss/oxide-win32-arm64-msvc': 4.1.14
+ '@tailwindcss/oxide-win32-x64-msvc': 4.1.14
+
+ '@tailwindcss/postcss@4.1.14':
dependencies:
'@alloc/quick-lru': 5.2.0
- '@tailwindcss/node': 4.1.13
- '@tailwindcss/oxide': 4.1.13
+ '@tailwindcss/node': 4.1.14
+ '@tailwindcss/oxide': 4.1.14
postcss: 8.5.6
- tailwindcss: 4.1.13
+ tailwindcss: 4.1.14
- '@tailwindcss/vite@4.1.13(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))':
+ '@tailwindcss/vite@4.1.14(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))':
dependencies:
- '@tailwindcss/node': 4.1.13
- '@tailwindcss/oxide': 4.1.13
- tailwindcss: 4.1.13
- vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
+ '@tailwindcss/node': 4.1.14
+ '@tailwindcss/oxide': 4.1.14
+ tailwindcss: 4.1.14
+ vite: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
- '@tanstack/react-table@8.21.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@tanstack/react-table@8.21.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@tanstack/table-core': 8.21.3
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
'@tanstack/table-core@8.21.3': {}
@@ -16490,17 +16899,17 @@ snapshots:
'@types/body-parser@1.19.6':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/bonjour@3.5.13':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/cacheable-request@6.0.3':
dependencies:
'@types/http-cache-semantics': 4.0.4
'@types/keyv': 3.1.4
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/responselike': 1.0.3
'@types/chai@5.2.2':
@@ -16509,12 +16918,12 @@ snapshots:
'@types/connect-history-api-fallback@1.5.4':
dependencies:
- '@types/express-serve-static-core': 5.0.7
- '@types/node': 24.5.2
+ '@types/express-serve-static-core': 5.1.0
+ '@types/node': 24.7.2
'@types/connect@3.4.38':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/d3-array@3.2.2': {}
@@ -16564,26 +16973,26 @@ snapshots:
'@types/estree@1.0.8': {}
- '@types/express-serve-static-core@4.19.6':
+ '@types/express-serve-static-core@4.19.7':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/qs': 6.14.0
'@types/range-parser': 1.2.7
- '@types/send': 0.17.5
+ '@types/send': 1.2.0
- '@types/express-serve-static-core@5.0.7':
+ '@types/express-serve-static-core@5.1.0':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/qs': 6.14.0
'@types/range-parser': 1.2.7
- '@types/send': 0.17.5
+ '@types/send': 1.2.0
'@types/express@4.17.23':
dependencies:
'@types/body-parser': 1.19.6
- '@types/express-serve-static-core': 4.19.6
+ '@types/express-serve-static-core': 4.19.7
'@types/qs': 6.14.0
- '@types/serve-static': 1.15.8
+ '@types/serve-static': 1.15.9
'@types/geojson-vt@3.2.5':
dependencies:
@@ -16607,7 +17016,7 @@ snapshots:
'@types/http-proxy@1.17.16':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/istanbul-lib-coverage@2.0.6': {}
@@ -16623,7 +17032,7 @@ snapshots:
'@types/keyv@3.1.4':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/lodash.throttle@4.1.9':
dependencies:
@@ -16660,19 +17069,19 @@ snapshots:
'@types/mysql@2.15.27':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/node-forge@1.3.14':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/node@12.20.55': {}
'@types/node@17.0.45': {}
- '@types/node@24.5.2':
+ '@types/node@24.7.2':
dependencies:
- undici-types: 7.12.0
+ undici-types: 7.14.0
'@types/normalize-package-data@2.4.4': {}
@@ -16684,7 +17093,7 @@ snapshots:
'@types/pg@8.15.5':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
pg-protocol: 1.10.3
pg-types: 2.2.0
@@ -16697,35 +17106,35 @@ snapshots:
'@types/rbush@4.0.0':
optional: true
- '@types/react-dom@19.1.9(@types/react@19.1.13)':
+ '@types/react-dom@19.2.2(@types/react@19.2.2)':
dependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
'@types/react-map-gl@6.1.7':
dependencies:
'@types/geojson': 7946.0.16
'@types/mapbox-gl': 3.4.1
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
'@types/viewport-mercator-project': 6.1.6
'@types/react-router-config@5.0.11':
dependencies:
'@types/history': 4.7.11
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
'@types/react-router': 5.1.20
'@types/react-router-dom@5.3.3':
dependencies:
'@types/history': 4.7.11
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
'@types/react-router': 5.1.20
'@types/react-router@5.1.20':
dependencies:
'@types/history': 4.7.11
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- '@types/react@19.1.13':
+ '@types/react@19.2.2':
dependencies:
csstype: 3.1.3
@@ -16733,7 +17142,7 @@ snapshots:
'@types/responselike@1.0.3':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/retry@0.12.0': {}
@@ -16744,23 +17153,27 @@ snapshots:
'@types/send@0.17.5':
dependencies:
'@types/mime': 1.3.5
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
+
+ '@types/send@1.2.0':
+ dependencies:
+ '@types/node': 24.7.2
'@types/serve-index@1.9.4':
dependencies:
'@types/express': 4.17.23
- '@types/serve-static@1.15.8':
+ '@types/serve-static@1.15.9':
dependencies:
'@types/http-errors': 2.0.5
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/send': 0.17.5
'@types/shimmer@1.2.0': {}
'@types/sockjs@0.3.36':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/supercluster@7.1.3':
dependencies:
@@ -16768,7 +17181,7 @@ snapshots:
'@types/tedious@4.0.14':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/unist@2.0.11': {}
@@ -16782,7 +17195,7 @@ snapshots:
'@types/ws@8.18.1':
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
'@types/yargs-parser@21.0.3': {}
@@ -16792,38 +17205,38 @@ snapshots:
'@ungap/structured-clone@1.3.0': {}
- '@vis.gl/react-mapbox@8.0.4(mapbox-gl@3.15.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@vis.gl/react-mapbox@8.1.0(mapbox-gl@3.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
mapbox-gl: 3.15.0
- '@vis.gl/react-maplibre@8.0.4(react-dom@19.1.1(react@19.1.1))(react@19.1.1)':
+ '@vis.gl/react-maplibre@8.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@maplibre/maplibre-gl-style-spec': 19.3.3
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
- '@vitejs/plugin-rsc@0.4.11(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))':
+ '@vitejs/plugin-rsc@0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))':
dependencies:
'@mjackson/node-fetch-server': 0.7.0
es-module-lexer: 1.7.0
estree-walker: 3.0.3
magic-string: 0.30.19
periscopic: 4.0.2
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
turbo-stream: 3.1.0
- vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
- vitefu: 1.1.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))
+ vite: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
+ vitefu: 1.1.1(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
optional: true
- '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))':
+ '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 1.0.2
- ast-v8-to-istanbul: 0.3.5
+ ast-v8-to-istanbul: 0.3.6
debug: 4.4.3
istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1
@@ -16831,10 +17244,10 @@ snapshots:
istanbul-reports: 3.2.0
magic-string: 0.30.19
magicast: 0.3.5
- std-env: 3.9.0
+ std-env: 3.10.0
test-exclude: 7.0.1
tinyrainbow: 2.0.0
- vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
+ vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
@@ -16846,13 +17259,13 @@ snapshots:
chai: 5.3.3
tinyrainbow: 2.0.0
- '@vitest/mocker@3.2.4(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))':
+ '@vitest/mocker@3.2.4(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))':
dependencies:
'@vitest/spy': 3.2.4
estree-walker: 3.0.3
magic-string: 0.30.19
optionalDependencies:
- vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
'@vitest/pretty-format@3.2.4':
dependencies:
@@ -17023,27 +17436,27 @@ snapshots:
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
- algoliasearch-helper@3.26.0(algoliasearch@5.37.0):
+ algoliasearch-helper@3.26.0(algoliasearch@5.40.0):
dependencies:
'@algolia/events': 4.0.1
- algoliasearch: 5.37.0
-
- algoliasearch@5.37.0:
- dependencies:
- '@algolia/abtesting': 1.3.0
- '@algolia/client-abtesting': 5.37.0
- '@algolia/client-analytics': 5.37.0
- '@algolia/client-common': 5.37.0
- '@algolia/client-insights': 5.37.0
- '@algolia/client-personalization': 5.37.0
- '@algolia/client-query-suggestions': 5.37.0
- '@algolia/client-search': 5.37.0
- '@algolia/ingestion': 1.37.0
- '@algolia/monitoring': 1.37.0
- '@algolia/recommend': 5.37.0
- '@algolia/requester-browser-xhr': 5.37.0
- '@algolia/requester-fetch': 5.37.0
- '@algolia/requester-node-http': 5.37.0
+ algoliasearch: 5.40.0
+
+ algoliasearch@5.40.0:
+ dependencies:
+ '@algolia/abtesting': 1.6.0
+ '@algolia/client-abtesting': 5.40.0
+ '@algolia/client-analytics': 5.40.0
+ '@algolia/client-common': 5.40.0
+ '@algolia/client-insights': 5.40.0
+ '@algolia/client-personalization': 5.40.0
+ '@algolia/client-query-suggestions': 5.40.0
+ '@algolia/client-search': 5.40.0
+ '@algolia/ingestion': 1.40.0
+ '@algolia/monitoring': 1.40.0
+ '@algolia/recommend': 5.40.0
+ '@algolia/requester-browser-xhr': 5.40.0
+ '@algolia/requester-fetch': 5.40.0
+ '@algolia/requester-node-http': 5.40.0
ansi-align@3.0.1:
dependencies:
@@ -17117,7 +17530,7 @@ snapshots:
assign-symbols@1.0.0: {}
- ast-v8-to-istanbul@0.3.5:
+ ast-v8-to-istanbul@0.3.6:
dependencies:
'@jridgewell/trace-mapping': 0.3.31
estree-walker: 3.0.3
@@ -17131,8 +17544,8 @@ snapshots:
autoprefixer@10.4.21(postcss@8.5.6):
dependencies:
- browserslist: 4.26.2
- caniuse-lite: 1.0.30001743
+ browserslist: 4.26.3
+ caniuse-lite: 1.0.30001750
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.1.1
@@ -17160,12 +17573,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- babel-loader@9.2.1(@babel/core@7.28.4)(webpack@5.101.3(@swc/core@1.13.5)):
+ babel-loader@9.2.1(@babel/core@7.28.4)(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
'@babel/core': 7.28.4
find-cache-dir: 4.0.0
- schema-utils: 4.3.2
- webpack: 5.101.3(@swc/core@1.13.5)
+ schema-utils: 4.3.3
+ webpack: 5.102.1(@swc/core@1.13.5)
babel-plugin-dynamic-import-node@2.3.3:
dependencies:
@@ -17184,7 +17597,7 @@ snapshots:
dependencies:
'@babel/core': 7.28.4
'@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4)
- core-js-compat: 3.45.1
+ core-js-compat: 3.46.0
transitivePeerDependencies:
- supports-color
@@ -17201,7 +17614,7 @@ snapshots:
base-64@0.1.0: {}
- baseline-browser-mapping@2.8.5: {}
+ baseline-browser-mapping@2.8.16: {}
basic-auth@2.0.1:
dependencies:
@@ -17209,24 +17622,24 @@ snapshots:
batch@0.6.1: {}
- better-auth@1.3.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
+ better-auth@1.3.27(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
'@better-auth/core': 1.3.27
'@better-auth/utils': 0.3.0
'@better-fetch/fetch': 1.1.18
'@noble/ciphers': 2.0.1
'@noble/hashes': 2.0.1
- '@simplewebauthn/browser': 13.2.0
- '@simplewebauthn/server': 13.2.1
+ '@simplewebauthn/browser': 13.2.2
+ '@simplewebauthn/server': 13.2.2
better-call: 1.0.19
defu: 6.1.4
jose: 6.1.0
- kysely: 0.28.7
+ kysely: 0.28.8
nanostores: 1.0.1
- zod: 4.1.9
+ zod: 4.1.12
optionalDependencies:
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
better-call@1.0.19:
dependencies:
@@ -17305,13 +17718,13 @@ snapshots:
dependencies:
fill-range: 7.1.1
- browserslist@4.26.2:
+ browserslist@4.26.3:
dependencies:
- baseline-browser-mapping: 2.8.5
- caniuse-lite: 1.0.30001743
- electron-to-chromium: 1.5.221
- node-releases: 2.0.21
- update-browserslist-db: 1.1.3(browserslist@4.26.2)
+ baseline-browser-mapping: 2.8.16
+ caniuse-lite: 1.0.30001750
+ electron-to-chromium: 1.5.235
+ node-releases: 2.0.23
+ update-browserslist-db: 1.1.3(browserslist@4.26.3)
buffer-from@1.1.2: {}
@@ -17394,12 +17807,12 @@ snapshots:
caniuse-api@3.0.0:
dependencies:
- browserslist: 4.26.2
- caniuse-lite: 1.0.30001743
+ browserslist: 4.26.3
+ caniuse-lite: 1.0.30001750
lodash.memoize: 4.1.2
lodash.uniq: 4.5.0
- caniuse-lite@1.0.30001743: {}
+ caniuse-lite@1.0.30001750: {}
ccount@2.0.1: {}
@@ -17507,14 +17920,14 @@ snapshots:
clsx@2.1.1: {}
- cmdk@1.1.1(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
+ cmdk@1.1.1(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
transitivePeerDependencies:
- '@types/react'
- '@types/react-dom'
@@ -17613,25 +18026,25 @@ snapshots:
cookie@1.0.2: {}
- copy-text-to-clipboard@3.2.1: {}
+ copy-text-to-clipboard@3.2.2: {}
- copy-webpack-plugin@11.0.0(webpack@5.101.3(@swc/core@1.13.5)):
+ copy-webpack-plugin@11.0.0(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
fast-glob: 3.3.3
glob-parent: 6.0.2
globby: 13.2.2
normalize-path: 3.0.0
- schema-utils: 4.3.2
+ schema-utils: 4.3.3
serialize-javascript: 6.0.2
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
- core-js-compat@3.45.1:
+ core-js-compat@3.46.0:
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
- core-js-pure@3.45.1: {}
+ core-js-pure@3.46.0: {}
- core-js@3.45.1: {}
+ core-js@3.46.0: {}
core-util-is@1.0.3: {}
@@ -17659,7 +18072,7 @@ snapshots:
postcss: 8.5.6
postcss-selector-parser: 7.1.0
- css-declaration-sorter@7.2.0(postcss@8.5.6):
+ css-declaration-sorter@7.3.0(postcss@8.5.6):
dependencies:
postcss: 8.5.6
@@ -17670,7 +18083,7 @@ snapshots:
postcss-selector-parser: 7.1.0
postcss-value-parser: 4.2.0
- css-loader@6.11.0(@rspack/core@1.5.5)(webpack@5.101.3(@swc/core@1.13.5)):
+ css-loader@6.11.0(@rspack/core@1.5.8)(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
icss-utils: 5.1.0(postcss@8.5.6)
postcss: 8.5.6
@@ -17679,20 +18092,20 @@ snapshots:
postcss-modules-scope: 3.2.1(postcss@8.5.6)
postcss-modules-values: 4.0.0(postcss@8.5.6)
postcss-value-parser: 4.2.0
- semver: 7.7.2
+ semver: 7.7.3
optionalDependencies:
- '@rspack/core': 1.5.5
- webpack: 5.101.3(@swc/core@1.13.5)
+ '@rspack/core': 1.5.8
+ webpack: 5.102.1(@swc/core@1.13.5)
- css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.101.3(@swc/core@1.13.5)):
+ css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
cssnano: 6.1.2(postcss@8.5.6)
jest-worker: 29.7.0
postcss: 8.5.6
- schema-utils: 4.3.2
+ schema-utils: 4.3.3
serialize-javascript: 6.0.2
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
optionalDependencies:
clean-css: 5.3.3
@@ -17730,14 +18143,14 @@ snapshots:
csscolorparser@1.0.3: {}
- cssdb@8.4.0: {}
+ cssdb@8.4.2: {}
cssesc@3.0.0: {}
cssnano-preset-advanced@6.1.2(postcss@8.5.6):
dependencies:
autoprefixer: 10.4.21(postcss@8.5.6)
- browserslist: 4.26.2
+ browserslist: 4.26.3
cssnano-preset-default: 6.1.2(postcss@8.5.6)
postcss: 8.5.6
postcss-discard-unused: 6.0.5(postcss@8.5.6)
@@ -17747,8 +18160,8 @@ snapshots:
cssnano-preset-default@6.1.2(postcss@8.5.6):
dependencies:
- browserslist: 4.26.2
- css-declaration-sorter: 7.2.0(postcss@8.5.6)
+ browserslist: 4.26.3
+ css-declaration-sorter: 7.3.0(postcss@8.5.6)
cssnano-utils: 4.0.2(postcss@8.5.6)
postcss: 8.5.6
postcss-calc: 9.0.1(postcss@8.5.6)
@@ -17934,7 +18347,7 @@ snapshots:
detect-indent@6.1.0: {}
- detect-libc@2.1.0: {}
+ detect-libc@2.1.2: {}
detect-node-es@1.1.0: {}
@@ -17959,10 +18372,10 @@ snapshots:
dependencies:
'@leichtgewicht/ip-codec': 2.0.5
- docusaurus-plugin-typedoc@1.4.2(typedoc-plugin-markdown@4.8.1(typedoc@0.28.13(typescript@5.9.2))):
+ docusaurus-plugin-typedoc@1.4.2(typedoc-plugin-markdown@4.9.0(typedoc@0.28.13(typescript@5.9.2))):
dependencies:
- typedoc-docusaurus-theme: 1.4.2(typedoc-plugin-markdown@4.8.1(typedoc@0.28.13(typescript@5.9.2)))
- typedoc-plugin-markdown: 4.8.1(typedoc@0.28.13(typescript@5.9.2))
+ typedoc-docusaurus-theme: 1.4.2(typedoc-plugin-markdown@4.9.0(typedoc@0.28.13(typescript@5.9.2)))
+ typedoc-plugin-markdown: 4.9.0(typedoc@0.28.13(typescript@5.9.2))
dom-converter@0.2.0:
dependencies:
@@ -18018,9 +18431,9 @@ snapshots:
dotenv@16.6.1: {}
- dotenv@17.2.2: {}
+ dotenv@17.2.3: {}
- drizzle-kit@0.31.4:
+ drizzle-kit@0.31.5:
dependencies:
'@drizzle-team/brocli': 0.10.2
'@esbuild-kit/esm-loader': 2.6.5
@@ -18029,12 +18442,20 @@ snapshots:
transitivePeerDependencies:
- supports-color
- drizzle-orm@0.44.4(@electric-sql/pglite@0.3.8)(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(kysely@0.28.7)(postgres@3.4.7):
+ drizzle-orm@0.44.4(@electric-sql/pglite@0.3.11)(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(kysely@0.28.8)(postgres@3.4.7):
optionalDependencies:
- '@electric-sql/pglite': 0.3.8
+ '@electric-sql/pglite': 0.3.11
'@opentelemetry/api': 1.9.0
'@types/pg': 8.15.5
- kysely: 0.28.7
+ kysely: 0.28.8
+ postgres: 3.4.7
+
+ drizzle-orm@0.44.6(@electric-sql/pglite@0.3.11)(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(kysely@0.28.8)(postgres@3.4.7):
+ optionalDependencies:
+ '@electric-sql/pglite': 0.3.11
+ '@opentelemetry/api': 1.9.0
+ '@types/pg': 8.15.5
+ kysely: 0.28.8
postgres: 3.4.7
dunder-proto@1.0.1:
@@ -18051,7 +18472,7 @@ snapshots:
eastasianwidth@0.2.0: {}
- eciesjs@0.4.15:
+ eciesjs@0.4.16:
dependencies:
'@ecies/ciphers': 0.2.4(@noble/ciphers@1.3.0)
'@noble/ciphers': 1.3.0
@@ -18060,7 +18481,7 @@ snapshots:
ee-first@1.1.1: {}
- electron-to-chromium@1.5.221: {}
+ electron-to-chromium@1.5.235: {}
emoji-regex@8.0.0: {}
@@ -18083,7 +18504,7 @@ snapshots:
enhanced-resolve@5.18.3:
dependencies:
graceful-fs: 4.2.11
- tapable: 2.2.3
+ tapable: 2.3.0
enquirer@2.4.1:
dependencies:
@@ -18331,7 +18752,7 @@ snapshots:
eval@0.1.8:
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
require-like: 0.1.2
eventemitter3@3.1.2: {}
@@ -18409,7 +18830,7 @@ snapshots:
fast-deep-equal@3.1.3: {}
- fast-equals@5.2.2: {}
+ fast-equals@5.3.2: {}
fast-glob@3.3.3:
dependencies:
@@ -18451,11 +18872,11 @@ snapshots:
dependencies:
escape-string-regexp: 1.0.5
- file-loader@6.2.0(webpack@5.101.3(@swc/core@1.13.5)):
+ file-loader@6.2.0(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
file-type@21.0.0:
dependencies:
@@ -18506,7 +18927,7 @@ snapshots:
flatbuffers@24.12.23: {}
- flatgeobuf@4.2.0:
+ flatgeobuf@4.3.1:
dependencies:
'@repeaterjs/repeater': 3.0.6
flatbuffers: 24.12.23
@@ -18551,14 +18972,14 @@ snapshots:
fraction.js@4.3.7: {}
- framer-motion@12.23.14(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
+ framer-motion@12.23.24(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
- motion-dom: 12.23.12
+ motion-dom: 12.23.23
motion-utils: 12.23.6
tslib: 2.8.1
optionalDependencies:
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
fresh@0.5.2: {}
@@ -18604,6 +19025,8 @@ snapshots:
fuzzysort@3.1.0: {}
+ generator-function@2.0.1: {}
+
gensync@1.0.0-beta.2: {}
geojson-equality-ts@1.0.2:
@@ -18620,7 +19043,7 @@ snapshots:
geotiff@2.1.3:
dependencies:
- '@petamoriken/float16': 3.9.2
+ '@petamoriken/float16': 3.9.3
lerc: 3.0.0
pako: 2.1.0
parse-headers: 2.0.6
@@ -18665,7 +19088,7 @@ snapshots:
es-errors: 1.3.0
get-intrinsic: 1.3.0
- get-tsconfig@4.10.1:
+ get-tsconfig@4.12.0:
dependencies:
resolve-pkg-maps: 1.0.0
@@ -18870,7 +19293,7 @@ snapshots:
mdast-util-mdxjs-esm: 2.0.1
property-information: 7.1.0
space-separated-tokens: 2.0.2
- style-to-js: 1.1.17
+ style-to-js: 1.1.18
unist-util-position: 5.0.0
zwitch: 2.0.4
transitivePeerDependencies:
@@ -18890,7 +19313,7 @@ snapshots:
mdast-util-mdxjs-esm: 2.0.1
property-information: 7.1.0
space-separated-tokens: 2.0.2
- style-to-js: 1.1.17
+ style-to-js: 1.1.18
unist-util-position: 5.0.0
vfile-message: 4.0.3
transitivePeerDependencies:
@@ -18988,16 +19411,16 @@ snapshots:
html-void-elements@3.0.0: {}
- html-webpack-plugin@5.6.4(@rspack/core@1.5.5)(webpack@5.101.3(@swc/core@1.13.5)):
+ html-webpack-plugin@5.6.4(@rspack/core@1.5.8)(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
'@types/html-minifier-terser': 6.1.0
html-minifier-terser: 6.1.0
lodash: 4.17.21
pretty-error: 4.0.0
- tapable: 2.2.3
+ tapable: 2.3.0
optionalDependencies:
- '@rspack/core': 1.5.5
- webpack: 5.101.3(@swc/core@1.13.5)
+ '@rspack/core': 1.5.8
+ webpack: 5.102.1(@swc/core@1.13.5)
htmlparser2@6.1.0:
dependencies:
@@ -19098,7 +19521,7 @@ snapshots:
parent-module: 1.0.1
resolve-from: 4.0.0
- import-in-the-middle@1.14.2:
+ import-in-the-middle@1.15.0:
dependencies:
acorn: 8.15.0
acorn-import-attributes: 1.9.5(acorn@8.15.0)
@@ -19219,9 +19642,10 @@ snapshots:
is-fullwidth-code-point@3.0.0: {}
- is-generator-function@1.1.0:
+ is-generator-function@1.1.2:
dependencies:
call-bound: 1.0.4
+ generator-function: 2.0.1
get-proto: 1.0.1
has-tostringtag: 1.0.2
safe-regex-test: 1.1.0
@@ -19340,7 +19764,7 @@ snapshots:
isarray@2.0.5: {}
- isbot@5.1.30: {}
+ isbot@5.1.31: {}
isexe@2.0.0: {}
@@ -19382,7 +19806,7 @@ snapshots:
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@@ -19390,20 +19814,20 @@ snapshots:
jest-worker@27.5.1:
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
merge-stream: 2.0.0
supports-color: 8.1.1
jest-worker@29.7.0:
dependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
jiti@1.21.7: {}
- jiti@2.5.1: {}
+ jiti@2.6.1: {}
joi@17.13.3:
dependencies:
@@ -19430,6 +19854,8 @@ snapshots:
jsesc@3.0.2: {}
+ jsesc@3.1.0: {}
+
json-buffer@3.0.1: {}
json-parse-even-better-errors@2.3.1: {}
@@ -19466,7 +19892,7 @@ snapshots:
kleur@3.0.3: {}
- kysely@0.28.7: {}
+ kysely@0.28.8: {}
latest-version@7.0.0:
dependencies:
@@ -19483,39 +19909,72 @@ snapshots:
leven@3.1.0: {}
+ lightningcss-android-arm64@1.30.2:
+ optional: true
+
lightningcss-darwin-arm64@1.30.1:
optional: true
+ lightningcss-darwin-arm64@1.30.2:
+ optional: true
+
lightningcss-darwin-x64@1.30.1:
optional: true
+ lightningcss-darwin-x64@1.30.2:
+ optional: true
+
lightningcss-freebsd-x64@1.30.1:
optional: true
+ lightningcss-freebsd-x64@1.30.2:
+ optional: true
+
lightningcss-linux-arm-gnueabihf@1.30.1:
optional: true
+ lightningcss-linux-arm-gnueabihf@1.30.2:
+ optional: true
+
lightningcss-linux-arm64-gnu@1.30.1:
optional: true
+ lightningcss-linux-arm64-gnu@1.30.2:
+ optional: true
+
lightningcss-linux-arm64-musl@1.30.1:
optional: true
+ lightningcss-linux-arm64-musl@1.30.2:
+ optional: true
+
lightningcss-linux-x64-gnu@1.30.1:
optional: true
+ lightningcss-linux-x64-gnu@1.30.2:
+ optional: true
+
lightningcss-linux-x64-musl@1.30.1:
optional: true
+ lightningcss-linux-x64-musl@1.30.2:
+ optional: true
+
lightningcss-win32-arm64-msvc@1.30.1:
optional: true
+ lightningcss-win32-arm64-msvc@1.30.2:
+ optional: true
+
lightningcss-win32-x64-msvc@1.30.1:
optional: true
+ lightningcss-win32-x64-msvc@1.30.2:
+ optional: true
+
lightningcss@1.30.1:
dependencies:
- detect-libc: 2.1.0
+ detect-libc: 2.1.2
optionalDependencies:
lightningcss-darwin-arm64: 1.30.1
lightningcss-darwin-x64: 1.30.1
@@ -19528,6 +19987,22 @@ snapshots:
lightningcss-win32-arm64-msvc: 1.30.1
lightningcss-win32-x64-msvc: 1.30.1
+ lightningcss@1.30.2:
+ dependencies:
+ detect-libc: 2.1.2
+ optionalDependencies:
+ lightningcss-android-arm64: 1.30.2
+ lightningcss-darwin-arm64: 1.30.2
+ lightningcss-darwin-x64: 1.30.2
+ lightningcss-freebsd-x64: 1.30.2
+ lightningcss-linux-arm-gnueabihf: 1.30.2
+ lightningcss-linux-arm64-gnu: 1.30.2
+ lightningcss-linux-arm64-musl: 1.30.2
+ lightningcss-linux-x64-gnu: 1.30.2
+ lightningcss-linux-x64-musl: 1.30.2
+ lightningcss-win32-arm64-msvc: 1.30.2
+ lightningcss-win32-x64-msvc: 1.30.2
+
lilconfig@3.1.3: {}
lines-and-columns@1.2.4: {}
@@ -19536,7 +20011,7 @@ snapshots:
dependencies:
uc.micro: 2.1.0
- loader-runner@4.3.0: {}
+ loader-runner@4.3.1: {}
loader-utils@2.0.4:
dependencies:
@@ -19586,7 +20061,7 @@ snapshots:
lru-cache@10.4.3: {}
- lru-cache@11.2.1: {}
+ lru-cache@11.2.2: {}
lru-cache@5.1.1:
dependencies:
@@ -19598,9 +20073,9 @@ snapshots:
lru-cache@7.18.3: {}
- lucide-react@0.544.0(react@19.1.1):
+ lucide-react@0.544.0(react@19.2.0):
dependencies:
- react: 19.1.1
+ react: 19.2.0
lunr@2.3.9: {}
@@ -19685,10 +20160,10 @@ snapshots:
math-intrinsics@1.1.0: {}
- md-to-react-email@5.0.5(react@19.1.1):
+ md-to-react-email@5.0.5(react@19.2.0):
dependencies:
marked: 7.0.4
- react: 19.1.1
+ react: 19.2.0
mdast-util-directive@3.1.0:
dependencies:
@@ -20241,11 +20716,11 @@ snapshots:
min-indent@1.0.1: {}
- mini-css-extract-plugin@2.9.4(webpack@5.101.3(@swc/core@1.13.5)):
+ mini-css-extract-plugin@2.9.4(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
- schema-utils: 4.3.2
- tapable: 2.2.3
- webpack: 5.101.3(@swc/core@1.13.5)
+ schema-utils: 4.3.3
+ tapable: 2.3.0
+ webpack: 5.102.1(@swc/core@1.13.5)
minimalistic-assert@1.0.1: {}
@@ -20277,12 +20752,10 @@ snapshots:
minipass@7.1.2: {}
- minizlib@3.0.2:
+ minizlib@3.1.0:
dependencies:
minipass: 7.1.2
- mkdirp@3.0.1: {}
-
module-details-from-path@1.0.4: {}
morgan@1.10.1:
@@ -20295,7 +20768,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- motion-dom@12.23.12:
+ motion-dom@12.23.23:
dependencies:
motion-utils: 12.23.6
@@ -20318,7 +20791,7 @@ snapshots:
nanoid@3.3.11: {}
- nanoid@5.1.5: {}
+ nanoid@5.1.6: {}
nanostores@1.0.1: {}
@@ -20328,17 +20801,17 @@ snapshots:
neo-async@2.6.2: {}
- next-themes@0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
+ next-themes@0.4.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
no-case@3.0.4:
dependencies:
lower-case: 2.0.2
tslib: 2.8.1
- node-abi@3.77.0:
+ node-abi@3.78.0:
dependencies:
semver: 7.7.3
@@ -20355,7 +20828,7 @@ snapshots:
node-forge@1.3.1: {}
- node-releases@2.0.21: {}
+ node-releases@2.0.23: {}
normalize-package-data@2.5.0:
dependencies:
@@ -20375,7 +20848,7 @@ snapshots:
dependencies:
hosted-git-info: 6.1.3
is-core-module: 2.16.1
- semver: 7.7.2
+ semver: 7.7.3
validate-npm-package-license: 3.0.4
normalize-path@3.0.0: {}
@@ -20388,7 +20861,7 @@ snapshots:
npm-install-checks@6.3.0:
dependencies:
- semver: 7.7.2
+ semver: 7.7.3
npm-normalize-package-bin@3.0.1: {}
@@ -20396,7 +20869,7 @@ snapshots:
dependencies:
hosted-git-info: 6.1.3
proc-log: 3.0.0
- semver: 7.7.2
+ semver: 7.7.3
validate-npm-package-name: 5.0.1
npm-pick-manifest@8.0.2:
@@ -20404,7 +20877,7 @@ snapshots:
npm-install-checks: 6.3.0
npm-normalize-package-bin: 3.0.1
npm-package-arg: 10.1.0
- semver: 7.7.2
+ semver: 7.7.3
npm-run-path@4.0.1:
dependencies:
@@ -20416,11 +20889,11 @@ snapshots:
dependencies:
boolbase: 1.0.0
- null-loader@4.0.1(webpack@5.101.3(@swc/core@1.13.5)):
+ null-loader@4.0.1(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
object-assign@4.1.1: {}
@@ -20547,7 +21020,7 @@ snapshots:
got: 12.6.1
registry-auth-token: 5.1.0
registry-url: 6.0.1
- semver: 7.7.2
+ semver: 7.7.3
package-manager-detector@0.2.11:
dependencies:
@@ -20627,7 +21100,7 @@ snapshots:
path-scurry@2.0.0:
dependencies:
- lru-cache: 11.2.1
+ lru-cache: 11.2.2
minipass: 7.1.2
path-to-regexp@0.1.12: {}
@@ -20712,12 +21185,12 @@ snapshots:
postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-color-functional-notation@7.0.11(postcss@8.5.6):
+ postcss-color-functional-notation@7.0.12(postcss@8.5.6):
dependencies:
'@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
@@ -20735,7 +21208,7 @@ snapshots:
postcss-colormin@6.1.0(postcss@8.5.6):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
caniuse-api: 3.0.0
colord: 2.9.3
postcss: 8.5.6
@@ -20743,7 +21216,7 @@ snapshots:
postcss-convert-values@6.1.0(postcss@8.5.6):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
postcss: 8.5.6
postcss-value-parser: 4.2.0
@@ -20798,9 +21271,9 @@ snapshots:
postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-double-position-gradients@6.0.3(postcss@8.5.6):
+ postcss-double-position-gradients@6.0.4(postcss@8.5.6):
dependencies:
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
postcss-value-parser: 4.2.0
@@ -20829,22 +21302,22 @@ snapshots:
postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-lab-function@7.0.11(postcss@8.5.6):
+ postcss-lab-function@7.0.12(postcss@8.5.6):
dependencies:
'@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
- postcss-loader@7.3.4(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.3(@swc/core@1.13.5)):
+ postcss-loader@7.3.4(postcss@8.5.6)(typescript@5.9.2)(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
cosmiconfig: 8.3.6(typescript@5.9.2)
jiti: 1.21.7
postcss: 8.5.6
- semver: 7.7.2
- webpack: 5.101.3(@swc/core@1.13.5)
+ semver: 7.7.3
+ webpack: 5.102.1(@swc/core@1.13.5)
transitivePeerDependencies:
- typescript
@@ -20867,7 +21340,7 @@ snapshots:
postcss-merge-rules@6.1.1(postcss@8.5.6):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
caniuse-api: 3.0.0
cssnano-utils: 4.0.2(postcss@8.5.6)
postcss: 8.5.6
@@ -20887,7 +21360,7 @@ snapshots:
postcss-minify-params@6.1.0(postcss@8.5.6):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
cssnano-utils: 4.0.2(postcss@8.5.6)
postcss: 8.5.6
postcss-value-parser: 4.2.0
@@ -20956,7 +21429,7 @@ snapshots:
postcss-normalize-unicode@6.1.0(postcss@8.5.6):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
postcss: 8.5.6
postcss-value-parser: 4.2.0
@@ -20994,24 +21467,25 @@ snapshots:
postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-preset-env@10.3.1(postcss@8.5.6):
+ postcss-preset-env@10.4.0(postcss@8.5.6):
dependencies:
- '@csstools/postcss-alpha-function': 1.0.0(postcss@8.5.6)
+ '@csstools/postcss-alpha-function': 1.0.1(postcss@8.5.6)
'@csstools/postcss-cascade-layers': 5.0.2(postcss@8.5.6)
- '@csstools/postcss-color-function': 4.0.11(postcss@8.5.6)
- '@csstools/postcss-color-function-display-p3-linear': 1.0.0(postcss@8.5.6)
- '@csstools/postcss-color-mix-function': 3.0.11(postcss@8.5.6)
- '@csstools/postcss-color-mix-variadic-function-arguments': 1.0.1(postcss@8.5.6)
- '@csstools/postcss-content-alt-text': 2.0.7(postcss@8.5.6)
+ '@csstools/postcss-color-function': 4.0.12(postcss@8.5.6)
+ '@csstools/postcss-color-function-display-p3-linear': 1.0.1(postcss@8.5.6)
+ '@csstools/postcss-color-mix-function': 3.0.12(postcss@8.5.6)
+ '@csstools/postcss-color-mix-variadic-function-arguments': 1.0.2(postcss@8.5.6)
+ '@csstools/postcss-content-alt-text': 2.0.8(postcss@8.5.6)
+ '@csstools/postcss-contrast-color-function': 2.0.12(postcss@8.5.6)
'@csstools/postcss-exponential-functions': 2.0.9(postcss@8.5.6)
'@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.6)
'@csstools/postcss-gamut-mapping': 2.0.11(postcss@8.5.6)
- '@csstools/postcss-gradients-interpolation-method': 5.0.11(postcss@8.5.6)
- '@csstools/postcss-hwb-function': 4.0.11(postcss@8.5.6)
- '@csstools/postcss-ic-unit': 4.0.3(postcss@8.5.6)
+ '@csstools/postcss-gradients-interpolation-method': 5.0.12(postcss@8.5.6)
+ '@csstools/postcss-hwb-function': 4.0.12(postcss@8.5.6)
+ '@csstools/postcss-ic-unit': 4.0.4(postcss@8.5.6)
'@csstools/postcss-initial': 2.0.1(postcss@8.5.6)
'@csstools/postcss-is-pseudo-class': 5.0.3(postcss@8.5.6)
- '@csstools/postcss-light-dark-function': 2.0.10(postcss@8.5.6)
+ '@csstools/postcss-light-dark-function': 2.0.11(postcss@8.5.6)
'@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.6)
'@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.6)
'@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.6)
@@ -21021,10 +21495,10 @@ snapshots:
'@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.5(postcss@8.5.6)
'@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.6)
'@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.6)
- '@csstools/postcss-oklab-function': 4.0.11(postcss@8.5.6)
- '@csstools/postcss-progressive-custom-properties': 4.2.0(postcss@8.5.6)
+ '@csstools/postcss-oklab-function': 4.0.12(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6)
'@csstools/postcss-random-function': 2.0.1(postcss@8.5.6)
- '@csstools/postcss-relative-color-syntax': 3.0.11(postcss@8.5.6)
+ '@csstools/postcss-relative-color-syntax': 3.0.12(postcss@8.5.6)
'@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.6)
'@csstools/postcss-sign-functions': 1.1.4(postcss@8.5.6)
'@csstools/postcss-stepped-value-functions': 4.0.9(postcss@8.5.6)
@@ -21032,28 +21506,28 @@ snapshots:
'@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.6)
'@csstools/postcss-unset-value': 4.0.0(postcss@8.5.6)
autoprefixer: 10.4.21(postcss@8.5.6)
- browserslist: 4.26.2
+ browserslist: 4.26.3
css-blank-pseudo: 7.0.1(postcss@8.5.6)
css-has-pseudo: 7.0.3(postcss@8.5.6)
css-prefers-color-scheme: 10.0.0(postcss@8.5.6)
- cssdb: 8.4.0
+ cssdb: 8.4.2
postcss: 8.5.6
postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.6)
postcss-clamp: 4.1.0(postcss@8.5.6)
- postcss-color-functional-notation: 7.0.11(postcss@8.5.6)
+ postcss-color-functional-notation: 7.0.12(postcss@8.5.6)
postcss-color-hex-alpha: 10.0.0(postcss@8.5.6)
postcss-color-rebeccapurple: 10.0.0(postcss@8.5.6)
postcss-custom-media: 11.0.6(postcss@8.5.6)
postcss-custom-properties: 14.0.6(postcss@8.5.6)
postcss-custom-selectors: 8.0.5(postcss@8.5.6)
postcss-dir-pseudo-class: 9.0.1(postcss@8.5.6)
- postcss-double-position-gradients: 6.0.3(postcss@8.5.6)
+ postcss-double-position-gradients: 6.0.4(postcss@8.5.6)
postcss-focus-visible: 10.0.1(postcss@8.5.6)
postcss-focus-within: 9.0.1(postcss@8.5.6)
postcss-font-variant: 5.0.0(postcss@8.5.6)
postcss-gap-properties: 6.0.0(postcss@8.5.6)
postcss-image-set-function: 7.0.0(postcss@8.5.6)
- postcss-lab-function: 7.0.11(postcss@8.5.6)
+ postcss-lab-function: 7.0.12(postcss@8.5.6)
postcss-logical: 8.1.0(postcss@8.5.6)
postcss-nesting: 13.0.2(postcss@8.5.6)
postcss-opacity-percentage: 3.0.0(postcss@8.5.6)
@@ -21076,7 +21550,7 @@ snapshots:
postcss-reduce-initial@6.1.0(postcss@8.5.6):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
caniuse-api: 3.0.0
postcss: 8.5.6
@@ -21144,17 +21618,17 @@ snapshots:
postgres@3.4.7: {}
- posthog-js@1.266.0:
+ posthog-js@1.275.2:
dependencies:
- '@posthog/core': 1.0.2
- core-js: 3.45.1
+ '@posthog/core': 1.3.0
+ core-js: 3.46.0
fflate: 0.4.8
preact: 10.27.2
web-vitals: 4.2.4
- posthog-node@5.8.4:
+ posthog-node@5.10.0:
dependencies:
- '@posthog/core': 1.0.2
+ '@posthog/core': 1.3.0
postmark@4.0.5:
dependencies:
@@ -21177,11 +21651,11 @@ snapshots:
pretty-time@1.1.0: {}
- prism-react-renderer@2.4.1(react@19.1.1):
+ prism-react-renderer@2.4.1(react@19.2.0):
dependencies:
'@types/prismjs': 1.26.5
clsx: 2.1.1
- react: 19.1.1
+ react: 19.2.0
prismjs@1.30.0: {}
@@ -21268,68 +21742,68 @@ snapshots:
quickselect@3.0.0: {}
- radix-ui@1.4.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
+ radix-ui@1.4.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-accessible-icon': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-alert-dialog': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-aspect-ratio': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-avatar': 1.1.10(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-checkbox': 1.3.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context-menu': 2.2.16(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-dropdown-menu': 2.1.16(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-form': 0.1.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-hover-card': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-label': 2.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-menubar': 1.1.16(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-one-time-password-field': 0.1.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-password-toggle-field': 0.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-progress': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-radio-group': 1.3.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-select': 2.2.6(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-separator': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-slider': 1.3.6(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-switch': 1.2.6(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-toast': 1.2.15(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-toolbar': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.9(@types/react@19.1.13))(@types/react@19.1.13)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@radix-ui/react-accessible-icon': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-alert-dialog': 1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-aspect-ratio': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-avatar': 1.1.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-checkbox': 1.3.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-context-menu': 2.2.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-dropdown-menu': 2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-form': 0.1.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-hover-card': 1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-label': 2.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-menubar': 1.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-one-time-password-field': 0.1.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-password-toggle-field': 0.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-progress': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-radio-group': 1.3.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-select': 2.2.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-separator': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-slider': 1.3.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-switch': 1.2.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-toast': 1.2.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-toolbar': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
- '@types/react-dom': 19.1.9(@types/react@19.1.13)
+ '@types/react': 19.2.2
+ '@types/react-dom': 19.2.2(@types/react@19.2.2)
randombytes@2.1.0:
dependencies:
@@ -21366,57 +21840,57 @@ snapshots:
minimist: 1.2.8
strip-json-comments: 2.0.1
- react-day-picker@9.10.0(react@19.1.1):
+ react-day-picker@9.10.0(react@19.2.0):
dependencies:
'@date-fns/tz': 1.4.1
date-fns: 4.1.0
date-fns-jalali: 4.1.0-0
- react: 19.1.1
+ react: 19.2.0
- react-dom@19.1.1(react@19.1.1):
+ react-dom@19.2.0(react@19.2.0):
dependencies:
- react: 19.1.1
- scheduler: 0.26.0
+ react: 19.2.0
+ scheduler: 0.27.0
react-fast-compare@3.2.2: {}
- react-hook-form@7.62.0(react@19.1.1):
+ react-hook-form@7.65.0(react@19.2.0):
dependencies:
- react: 19.1.1
+ react: 19.2.0
react-is@16.13.1: {}
react-is@18.3.1: {}
- react-json-view-lite@2.5.0(react@19.1.1):
+ react-json-view-lite@2.5.0(react@19.2.0):
dependencies:
- react: 19.1.1
+ react: 19.2.0
- react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@19.1.1))(webpack@5.101.3(@swc/core@1.13.5)):
+ react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.0))(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
'@babel/runtime': 7.28.4
- react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.1.1)'
- webpack: 5.101.3(@swc/core@1.13.5)
+ react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.0)'
+ webpack: 5.102.1(@swc/core@1.13.5)
- react-map-gl@8.0.4(mapbox-gl@3.15.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
+ react-map-gl@8.1.0(mapbox-gl@3.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
- '@vis.gl/react-mapbox': 8.0.4(mapbox-gl@3.15.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- '@vis.gl/react-maplibre': 8.0.4(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ '@vis.gl/react-mapbox': 8.1.0(mapbox-gl@3.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@vis.gl/react-maplibre': 8.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
mapbox-gl: 3.15.0
- react-markdown@10.1.0(@types/react@19.1.13)(react@19.1.1):
+ react-markdown@10.1.0(@types/react@19.2.2)(react@19.2.0):
dependencies:
'@types/hast': 3.0.4
'@types/mdast': 4.0.4
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
devlop: 1.1.0
hast-util-to-jsx-runtime: 2.3.6
html-url-attributes: 3.0.1
mdast-util-to-hast: 13.2.0
- react: 19.1.1
+ react: 19.2.0
remark-parse: 11.0.0
remark-rehype: 11.1.2
unified: 11.0.5
@@ -21431,49 +21905,49 @@ snapshots:
react-refresh@0.14.2: {}
- react-remove-scroll-bar@2.3.8(@types/react@19.1.13)(react@19.1.1):
+ react-remove-scroll-bar@2.3.8(@types/react@19.2.2)(react@19.2.0):
dependencies:
- react: 19.1.1
- react-style-singleton: 2.2.3(@types/react@19.1.13)(react@19.1.1)
+ react: 19.2.0
+ react-style-singleton: 2.2.3(@types/react@19.2.2)(react@19.2.0)
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- react-remove-scroll@2.7.1(@types/react@19.1.13)(react@19.1.1):
+ react-remove-scroll@2.7.1(@types/react@19.2.2)(react@19.2.0):
dependencies:
- react: 19.1.1
- react-remove-scroll-bar: 2.3.8(@types/react@19.1.13)(react@19.1.1)
- react-style-singleton: 2.2.3(@types/react@19.1.13)(react@19.1.1)
+ react: 19.2.0
+ react-remove-scroll-bar: 2.3.8(@types/react@19.2.2)(react@19.2.0)
+ react-style-singleton: 2.2.3(@types/react@19.2.2)(react@19.2.0)
tslib: 2.8.1
- use-callback-ref: 1.3.3(@types/react@19.1.13)(react@19.1.1)
- use-sidecar: 1.1.3(@types/react@19.1.13)(react@19.1.1)
+ use-callback-ref: 1.3.3(@types/react@19.2.2)(react@19.2.0)
+ use-sidecar: 1.1.3(@types/react@19.2.2)(react@19.2.0)
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- react-router-config@5.1.1(react-router@5.3.4(react@19.1.1))(react@19.1.1):
+ react-router-config@5.1.1(react-router@5.3.4(react@19.2.0))(react@19.2.0):
dependencies:
'@babel/runtime': 7.28.4
- react: 19.1.1
- react-router: 5.3.4(react@19.1.1)
+ react: 19.2.0
+ react-router: 5.3.4(react@19.2.0)
- react-router-dom@5.3.4(react@19.1.1):
+ react-router-dom@5.3.4(react@19.2.0):
dependencies:
'@babel/runtime': 7.28.4
history: 4.10.1
loose-envify: 1.4.0
prop-types: 15.8.1
- react: 19.1.1
- react-router: 5.3.4(react@19.1.1)
+ react: 19.2.0
+ react-router: 5.3.4(react@19.2.0)
tiny-invariant: 1.3.3
tiny-warning: 1.0.3
- react-router-dom@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
+ react-router-dom@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
- react-router: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
+ react-router: 7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- react-router@5.3.4(react@19.1.1):
+ react-router@5.3.4(react@19.2.0):
dependencies:
'@babel/runtime': 7.28.4
history: 4.10.1
@@ -21481,45 +21955,45 @@ snapshots:
loose-envify: 1.4.0
path-to-regexp: 1.9.0
prop-types: 15.8.1
- react: 19.1.1
+ react: 19.2.0
react-is: 16.13.1
tiny-invariant: 1.3.3
tiny-warning: 1.0.3
- react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
+ react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
cookie: 1.0.2
- react: 19.1.1
+ react: 19.2.0
set-cookie-parser: 2.7.1
optionalDependencies:
- react-dom: 19.1.1(react@19.1.1)
+ react-dom: 19.2.0(react@19.2.0)
- react-smooth@4.0.4(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
+ react-smooth@4.0.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
- fast-equals: 5.2.2
+ fast-equals: 5.3.2
prop-types: 15.8.1
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
- react-transition-group: 4.4.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
+ react-transition-group: 4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- react-style-singleton@2.2.3(@types/react@19.1.13)(react@19.1.1):
+ react-style-singleton@2.2.3(@types/react@19.2.2)(react@19.2.0):
dependencies:
get-nonce: 1.0.1
- react: 19.1.1
+ react: 19.2.0
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- react-transition-group@4.4.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
+ react-transition-group@4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
'@babel/runtime': 7.28.4
dom-helpers: 5.2.1
loose-envify: 1.4.0
prop-types: 15.8.1
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
- react@19.1.1: {}
+ react@19.2.0: {}
read-pkg-up@7.0.1:
dependencies:
@@ -21567,15 +22041,15 @@ snapshots:
dependencies:
decimal.js-light: 2.5.1
- recharts@2.15.4(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
+ recharts@2.15.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
clsx: 2.1.1
eventemitter3: 4.0.7
lodash: 4.17.21
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
react-is: 18.3.1
- react-smooth: 4.0.4(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ react-smooth: 4.0.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
recharts-scale: 0.4.5
tiny-invariant: 1.3.3
victory-vendor: 36.9.2
@@ -21642,12 +22116,12 @@ snapshots:
gopd: 1.2.0
set-function-name: 2.0.2
- regexpu-core@6.3.1:
+ regexpu-core@6.4.0:
dependencies:
regenerate: 1.4.2
regenerate-unicode-properties: 10.2.2
regjsgen: 0.8.0
- regjsparser: 0.12.0
+ regjsparser: 0.13.0
unicode-match-property-ecmascript: 2.0.0
unicode-match-property-value-ecmascript: 2.2.1
@@ -21661,9 +22135,9 @@ snapshots:
regjsgen@0.8.0: {}
- regjsparser@0.12.0:
+ regjsparser@0.13.0:
dependencies:
- jsesc: 3.0.2
+ jsesc: 3.1.0
rehype-raw@7.0.0:
dependencies:
@@ -21748,24 +22222,24 @@ snapshots:
mdast-util-to-markdown: 2.1.2
unified: 11.0.5
- remix-hook-form@7.1.0(react-dom@19.1.1(react@19.1.1))(react-hook-form@7.62.0(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1):
+ remix-hook-form@7.1.0(react-dom@19.2.0(react@19.2.0))(react-hook-form@7.65.0(react@19.2.0))(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0):
dependencies:
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
- react-hook-form: 7.62.0(react@19.1.1)
- react-router: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
+ react-hook-form: 7.65.0(react@19.2.0)
+ react-router: 7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- remix-toast@3.2.0(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)):
+ remix-toast@3.3.0(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)):
dependencies:
- react-router: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ react-router: 7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
zod: 3.25.76
- remix-utils@8.8.0(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(zod@3.25.76):
+ remix-utils@8.8.0(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)(zod@3.25.76):
dependencies:
type-fest: 4.41.0
optionalDependencies:
- react: 19.1.1
- react-router: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)
+ react: 19.2.0
+ react-router: 7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
zod: 3.25.76
renderkid@3.0.0:
@@ -21866,6 +22340,34 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.50.2
fsevents: 2.3.3
+ rollup@4.52.4:
+ dependencies:
+ '@types/estree': 1.0.8
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.52.4
+ '@rollup/rollup-android-arm64': 4.52.4
+ '@rollup/rollup-darwin-arm64': 4.52.4
+ '@rollup/rollup-darwin-x64': 4.52.4
+ '@rollup/rollup-freebsd-arm64': 4.52.4
+ '@rollup/rollup-freebsd-x64': 4.52.4
+ '@rollup/rollup-linux-arm-gnueabihf': 4.52.4
+ '@rollup/rollup-linux-arm-musleabihf': 4.52.4
+ '@rollup/rollup-linux-arm64-gnu': 4.52.4
+ '@rollup/rollup-linux-arm64-musl': 4.52.4
+ '@rollup/rollup-linux-loong64-gnu': 4.52.4
+ '@rollup/rollup-linux-ppc64-gnu': 4.52.4
+ '@rollup/rollup-linux-riscv64-gnu': 4.52.4
+ '@rollup/rollup-linux-riscv64-musl': 4.52.4
+ '@rollup/rollup-linux-s390x-gnu': 4.52.4
+ '@rollup/rollup-linux-x64-gnu': 4.52.4
+ '@rollup/rollup-linux-x64-musl': 4.52.4
+ '@rollup/rollup-openharmony-arm64': 4.52.4
+ '@rollup/rollup-win32-arm64-msvc': 4.52.4
+ '@rollup/rollup-win32-ia32-msvc': 4.52.4
+ '@rollup/rollup-win32-x64-gnu': 4.52.4
+ '@rollup/rollup-win32-x64-msvc': 4.52.4
+ fsevents: 2.3.3
+
rou3@0.5.1: {}
rtlcss@4.3.0:
@@ -21910,7 +22412,7 @@ snapshots:
sax@1.4.1: {}
- scheduler@0.26.0: {}
+ scheduler@0.27.0: {}
schema-dts@1.1.5: {}
@@ -21920,7 +22422,7 @@ snapshots:
ajv: 6.12.6
ajv-keywords: 3.5.2(ajv@6.12.6)
- schema-utils@4.3.2:
+ schema-utils@4.3.3:
dependencies:
'@types/json-schema': 7.0.15
ajv: 8.17.1
@@ -21947,14 +22449,12 @@ snapshots:
semver-diff@4.0.0:
dependencies:
- semver: 7.7.2
+ semver: 7.7.3
semver@5.7.2: {}
semver@6.3.1: {}
- semver@7.7.2: {}
-
semver@7.7.3: {}
send@0.19.0:
@@ -22063,7 +22563,7 @@ snapshots:
shimmer@1.2.1: {}
- shpjs@6.1.0:
+ shpjs@6.2.0:
dependencies:
but-unzip: 0.1.7
parsedbf: 2.0.0
@@ -22143,10 +22643,10 @@ snapshots:
uuid: 8.3.2
websocket-driver: 0.7.4
- sonner@2.0.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1):
+ sonner@2.0.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
- react: 19.1.1
- react-dom: 19.1.1(react@19.1.1)
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
sort-asc@0.2.0: {}
@@ -22234,6 +22734,8 @@ snapshots:
statuses@2.0.1: {}
+ std-env@3.10.0: {}
+
std-env@3.9.0: {}
stop-iteration-iterator@1.1.0:
@@ -22325,17 +22827,17 @@ snapshots:
dependencies:
'@tokenizer/token': 0.3.0
- style-to-js@1.1.17:
+ style-to-js@1.1.18:
dependencies:
- style-to-object: 1.0.9
+ style-to-object: 1.0.11
- style-to-object@1.0.9:
+ style-to-object@1.0.11:
dependencies:
inline-style-parser: 0.2.4
stylehacks@6.1.1(postcss@8.5.6):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
postcss: 8.5.6
postcss-selector-parser: 6.1.2
@@ -22372,11 +22874,11 @@ snapshots:
csso: 5.0.5
picocolors: 1.1.1
- swc-loader@0.2.6(@swc/core@1.13.5)(webpack@5.101.3(@swc/core@1.13.5)):
+ swc-loader@0.2.6(@swc/core@1.13.5)(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
'@swc/core': 1.13.5
'@swc/counter': 0.1.3
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
sweepline-intersections@1.5.0:
dependencies:
@@ -22384,33 +22886,32 @@ snapshots:
tailwind-merge@3.3.1: {}
- tailwindcss-animate@1.0.7(tailwindcss@4.1.13):
+ tailwindcss-animate@1.0.7(tailwindcss@4.1.14):
dependencies:
- tailwindcss: 4.1.13
+ tailwindcss: 4.1.14
- tailwindcss@4.1.13: {}
+ tailwindcss@4.1.14: {}
- tapable@2.2.3: {}
+ tapable@2.3.0: {}
- tar@7.4.3:
+ tar@7.5.1:
dependencies:
'@isaacs/fs-minipass': 4.0.1
chownr: 3.0.0
minipass: 7.1.2
- minizlib: 3.0.2
- mkdirp: 3.0.1
+ minizlib: 3.1.0
yallist: 5.0.0
term-size@2.2.1: {}
- terser-webpack-plugin@5.3.14(@swc/core@1.13.5)(webpack@5.101.3(@swc/core@1.13.5)):
+ terser-webpack-plugin@5.3.14(@swc/core@1.13.5)(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.5.1
- schema-utils: 4.3.2
+ schema-utils: 4.3.3
serialize-javascript: 6.0.2
terser: 5.44.0
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
optionalDependencies:
'@swc/core': 1.13.5
@@ -22490,9 +22991,9 @@ snapshots:
trough@2.2.0: {}
- tsconfck@3.1.6(typescript@5.9.2):
+ tsconfck@3.1.6(typescript@5.9.3):
optionalDependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
tslib@1.14.1: {}
@@ -22599,11 +23100,11 @@ snapshots:
typed-array-buffer: 1.0.3
typed-array-byte-offset: 1.0.4
- typedoc-docusaurus-theme@1.4.2(typedoc-plugin-markdown@4.8.1(typedoc@0.28.13(typescript@5.9.2))):
+ typedoc-docusaurus-theme@1.4.2(typedoc-plugin-markdown@4.9.0(typedoc@0.28.13(typescript@5.9.2))):
dependencies:
- typedoc-plugin-markdown: 4.8.1(typedoc@0.28.13(typescript@5.9.2))
+ typedoc-plugin-markdown: 4.9.0(typedoc@0.28.13(typescript@5.9.2))
- typedoc-plugin-markdown@4.8.1(typedoc@0.28.13(typescript@5.9.2)):
+ typedoc-plugin-markdown@4.9.0(typedoc@0.28.13(typescript@5.9.2)):
dependencies:
typedoc: 0.28.13(typescript@5.9.2)
@@ -22613,7 +23114,7 @@ snapshots:
typedoc@0.28.13(typescript@5.9.2):
dependencies:
- '@gerrit0/mini-shiki': 3.12.2
+ '@gerrit0/mini-shiki': 3.13.1
lunr: 2.3.9
markdown-it: 14.1.0
minimatch: 9.0.5
@@ -22622,6 +23123,8 @@ snapshots:
typescript@5.9.2: {}
+ typescript@5.9.3: {}
+
typewise-core@1.2.0: {}
typewise@1.0.3:
@@ -22641,7 +23144,7 @@ snapshots:
uncrypto@0.1.3: {}
- undici-types@7.12.0: {}
+ undici-types@7.14.0: {}
unicode-canonical-property-names-ecmascript@2.0.1: {}
@@ -22719,9 +23222,9 @@ snapshots:
webpack-sources: 3.3.3
webpack-virtual-modules: 0.5.0
- update-browserslist-db@1.1.3(browserslist@4.26.2):
+ update-browserslist-db@1.1.3(browserslist@4.26.3):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
escalade: 3.2.0
picocolors: 1.1.1
@@ -22738,7 +23241,7 @@ snapshots:
is-yarn-global: 0.4.1
latest-version: 7.0.0
pupa: 3.3.0
- semver: 7.7.2
+ semver: 7.7.3
semver-diff: 4.0.0
xdg-basedir: 5.1.0
@@ -22746,33 +23249,33 @@ snapshots:
dependencies:
punycode: 2.3.1
- url-loader@4.1.1(file-loader@6.2.0(webpack@5.101.3(@swc/core@1.13.5)))(webpack@5.101.3(@swc/core@1.13.5)):
+ url-loader@4.1.1(file-loader@6.2.0(webpack@5.102.1(@swc/core@1.13.5)))(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
loader-utils: 2.0.4
mime-types: 2.1.35
schema-utils: 3.3.0
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
optionalDependencies:
- file-loader: 6.2.0(webpack@5.101.3(@swc/core@1.13.5))
+ file-loader: 6.2.0(webpack@5.102.1(@swc/core@1.13.5))
- use-callback-ref@1.3.3(@types/react@19.1.13)(react@19.1.1):
+ use-callback-ref@1.3.3(@types/react@19.2.2)(react@19.2.0):
dependencies:
- react: 19.1.1
+ react: 19.2.0
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- use-sidecar@1.1.3(@types/react@19.1.13)(react@19.1.1):
+ use-sidecar@1.1.3(@types/react@19.2.2)(react@19.2.0):
dependencies:
detect-node-es: 1.1.0
- react: 19.1.1
+ react: 19.2.0
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.1.13
+ '@types/react': 19.2.2
- use-sync-external-store@1.5.0(react@19.1.1):
+ use-sync-external-store@1.6.0(react@19.2.0):
dependencies:
- react: 19.1.1
+ react: 19.2.0
util-deprecate@1.0.2: {}
@@ -22784,9 +23287,9 @@ snapshots:
uuid@8.3.2: {}
- valibot@0.41.0(typescript@5.9.2):
+ valibot@1.1.0(typescript@5.9.3):
optionalDependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
validate-npm-package-license@3.0.4:
dependencies:
@@ -22833,13 +23336,13 @@ snapshots:
d3-time: 3.1.0
d3-timer: 3.0.1
- vite-node@3.2.4(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1):
+ vite-node@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1):
dependencies:
cac: 6.7.14
debug: 4.4.3
es-module-lexer: 1.7.0
pathe: 2.0.3
- vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -22854,43 +23357,43 @@ snapshots:
- tsx
- yaml
- vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)):
+ vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)):
dependencies:
debug: 4.4.3
globrex: 0.1.2
- tsconfck: 3.1.6(typescript@5.9.2)
+ tsconfck: 3.1.6(typescript@5.9.3)
optionalDependencies:
- vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
- typescript
- vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1):
+ vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1):
dependencies:
esbuild: 0.25.10
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
postcss: 8.5.6
- rollup: 4.50.2
+ rollup: 4.52.4
tinyglobby: 0.2.15
optionalDependencies:
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
fsevents: 2.3.3
- jiti: 2.5.1
- lightningcss: 1.30.1
+ jiti: 2.6.1
+ lightningcss: 1.30.2
terser: 5.44.0
yaml: 2.8.1
- vitefu@1.1.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)):
+ vitefu@1.1.1(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)):
optionalDependencies:
- vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
optional: true
- vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1):
+ vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1):
dependencies:
'@types/chai': 5.2.2
'@vitest/expect': 3.2.4
- '@vitest/mocker': 3.2.4(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))
+ '@vitest/mocker': 3.2.4(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
'@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.4
'@vitest/snapshot': 3.2.4
@@ -22908,12 +23411,12 @@ snapshots:
tinyglobby: 0.2.15
tinypool: 1.1.1
tinyrainbow: 2.0.0
- vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
- vite-node: 3.2.4(@types/node@24.5.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)
+ vite: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
+ vite-node: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
- '@types/node': 24.5.2
+ '@types/node': 24.7.2
transitivePeerDependencies:
- jiti
- less
@@ -22963,22 +23466,22 @@ snapshots:
- bufferutil
- utf-8-validate
- webpack-dev-middleware@5.3.4(webpack@5.101.3(@swc/core@1.13.5)):
+ webpack-dev-middleware@5.3.4(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
colorette: 2.0.20
memfs: 3.5.3
mime-types: 2.1.35
range-parser: 1.2.1
- schema-utils: 4.3.2
- webpack: 5.101.3(@swc/core@1.13.5)
+ schema-utils: 4.3.3
+ webpack: 5.102.1(@swc/core@1.13.5)
- webpack-dev-server@4.15.2(webpack@5.101.3(@swc/core@1.13.5)):
+ webpack-dev-server@4.15.2(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
'@types/bonjour': 3.5.13
'@types/connect-history-api-fallback': 1.5.4
'@types/express': 4.17.23
'@types/serve-index': 1.9.4
- '@types/serve-static': 1.15.8
+ '@types/serve-static': 1.15.9
'@types/sockjs': 0.3.36
'@types/ws': 8.18.1
ansi-html-community: 0.0.8
@@ -22997,15 +23500,15 @@ snapshots:
open: 8.4.2
p-retry: 4.6.2
rimraf: 3.0.2
- schema-utils: 4.3.2
+ schema-utils: 4.3.3
selfsigned: 2.4.1
serve-index: 1.9.1
sockjs: 0.3.24
spdy: 4.0.2
- webpack-dev-middleware: 5.3.4(webpack@5.101.3(@swc/core@1.13.5))
+ webpack-dev-middleware: 5.3.4(webpack@5.102.1(@swc/core@1.13.5))
ws: 8.18.3
optionalDependencies:
- webpack: 5.101.3(@swc/core@1.13.5)
+ webpack: 5.102.1(@swc/core@1.13.5)
transitivePeerDependencies:
- bufferutil
- debug
@@ -23028,7 +23531,7 @@ snapshots:
webpack-virtual-modules@0.5.0: {}
- webpack@5.101.3(@swc/core@1.13.5):
+ webpack@5.102.1(@swc/core@1.13.5):
dependencies:
'@types/eslint-scope': 3.7.7
'@types/estree': 1.0.8
@@ -23038,7 +23541,7 @@ snapshots:
'@webassemblyjs/wasm-parser': 1.14.1
acorn: 8.15.0
acorn-import-phases: 1.0.4(acorn@8.15.0)
- browserslist: 4.26.2
+ browserslist: 4.26.3
chrome-trace-event: 1.0.4
enhanced-resolve: 5.18.3
es-module-lexer: 1.7.0
@@ -23047,12 +23550,12 @@ snapshots:
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
json-parse-even-better-errors: 2.3.1
- loader-runner: 4.3.0
+ loader-runner: 4.3.1
mime-types: 2.1.35
neo-async: 2.6.2
- schema-utils: 4.3.2
- tapable: 2.2.3
- terser-webpack-plugin: 5.3.14(@swc/core@1.13.5)(webpack@5.101.3(@swc/core@1.13.5))
+ schema-utils: 4.3.3
+ tapable: 2.3.0
+ terser-webpack-plugin: 5.3.14(@swc/core@1.13.5)(webpack@5.102.1(@swc/core@1.13.5))
watchpack: 2.4.4
webpack-sources: 3.3.3
transitivePeerDependencies:
@@ -23060,7 +23563,7 @@ snapshots:
- esbuild
- uglify-js
- webpackbar@6.0.1(webpack@5.101.3(@swc/core@1.13.5)):
+ webpackbar@6.0.1(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
ansi-escapes: 4.3.2
chalk: 4.1.2
@@ -23068,8 +23571,8 @@ snapshots:
figures: 3.2.0
markdown-table: 2.0.0
pretty-time: 1.1.0
- std-env: 3.9.0
- webpack: 5.101.3(@swc/core@1.13.5)
+ std-env: 3.10.0
+ webpack: 5.102.1(@swc/core@1.13.5)
wrap-ansi: 7.0.0
websocket-driver@0.7.4:
@@ -23101,7 +23604,7 @@ snapshots:
is-async-function: 2.1.1
is-date-object: 1.1.0
is-finalizationregistry: 1.1.1
- is-generator-function: 1.1.0
+ is-generator-function: 1.1.2
is-regex: 1.2.1
is-weakref: 1.1.1
isarray: 2.0.5
@@ -23207,14 +23710,14 @@ snapshots:
zod@3.25.76: {}
- zod@4.1.9: {}
+ zod@4.1.12: {}
zstddec@0.1.0: {}
- zustand@5.0.8(@types/react@19.1.13)(react@19.1.1)(use-sync-external-store@1.5.0(react@19.1.1)):
+ zustand@5.0.8(@types/react@19.2.2)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)):
optionalDependencies:
- '@types/react': 19.1.13
- react: 19.1.1
- use-sync-external-store: 1.5.0(react@19.1.1)
+ '@types/react': 19.2.2
+ react: 19.2.0
+ use-sync-external-store: 1.6.0(react@19.2.0)
zwitch@2.0.4: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 5c4425ffb..8e013fa8e 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -6,21 +6,21 @@ packages:
- fdm-app
catalog:
- '@dotenvx/dotenvx': ^1.49.1
+ '@dotenvx/dotenvx': ^1.51.0
'@rollup/plugin-commonjs': ^28.0.6
'@rollup/plugin-json': ^6.1.0
- '@rollup/plugin-node-resolve': ^16.0.1
+ '@rollup/plugin-node-resolve': ^16.0.3
'@rollup/plugin-terser': ^0.4.4
'@rollup/plugin-typescript': ^12.1.4
'@vitest/coverage-v8': 3.2.4
- better-auth: ^1.3.26
- drizzle-kit: ^0.31.4
- drizzle-orm: ^0.44.5
- rollup: ^4.50.2
+ better-auth: ^1.3.27
+ drizzle-kit: ^0.31.5
+ drizzle-orm: ^0.44.6
+ rollup: ^4.52.4
rollup-plugin-polyfill-node: ^0.13.0
- typedoc: ^0.28.13
- typedoc-plugin-missing-exports: ^4.1.0
- typescript: ^5.9.2
- vite: ^7.1.6
+ typedoc: ^0.28.14
+ typedoc-plugin-missing-exports: ^4.1.2
+ typescript: ^5.9.3
+ vite: ^7.1.10
vite-tsconfig-paths: ^5.1.4
vitest: ^3.2.4
From 34322362e6496ffee09f9b260b5f3ef172a875a0 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Tue, 14 Oct 2025 16:40:24 +0200
Subject: [PATCH 039/243] chore: updare major vesions of dependencies
---
fdm-app/package.json | 6 +++---
fdm-docs/package.json | 12 ++++++------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/fdm-app/package.json b/fdm-app/package.json
index 9040c9cff..dad58b4d4 100644
--- a/fdm-app/package.json
+++ b/fdm-app/package.json
@@ -49,7 +49,7 @@
"fuzzysort": "^3.1.0",
"isbot": "^5.1.31",
"lodash.throttle": "^4.1.1",
- "lucide-react": "^0.544.0",
+ "lucide-react": "^0.545.0",
"mapbox-gl": "^3.15.0",
"next-themes": "^0.4.6",
"postgres": "^3.4.7",
@@ -59,7 +59,7 @@
"proj4": "^2.19.10",
"radix-ui": "^1.4.3",
"react": "^19.2.0",
- "react-day-picker": "9.10.0",
+ "react-day-picker": "9.11.1",
"react-dom": "^19.2.0",
"react-hook-form": "^7.65.0",
"react-map-gl": "^8.1.0",
@@ -70,7 +70,7 @@
"remark-gfm": "^4.0.1",
"remix-hook-form": "7.1.0",
"remix-toast": "^3.3.0",
- "remix-utils": "^8.8.0",
+ "remix-utils": "^9.0.0",
"shpjs": "^6.2.0",
"sonner": "^2.0.7",
"tailwind-merge": "^3.3.1",
diff --git a/fdm-docs/package.json b/fdm-docs/package.json
index c9072fff1..daf8cc50f 100644
--- a/fdm-docs/package.json
+++ b/fdm-docs/package.json
@@ -19,20 +19,20 @@
"preinstall": "npx only-allow pnpm"
},
"dependencies": {
- "@docusaurus/core": "3.8.1",
+ "@docusaurus/core": "3.9.1",
"@docusaurus/faster": "^3.9.1",
- "@docusaurus/preset-classic": "3.8.1",
+ "@docusaurus/preset-classic": "3.9.1",
"@mdx-js/react": "^3.1.1",
"clsx": "^2.1.1",
- "lucide-react": "^0.544.0",
+ "lucide-react": "^0.545.0",
"prism-react-renderer": "^2.4.1",
"react": "^19.2.0",
"react-dom": "^19.2.0"
},
"devDependencies": {
- "@docusaurus/module-type-aliases": "3.8.1",
- "@docusaurus/tsconfig": "3.8.1",
- "@docusaurus/types": "3.8.1",
+ "@docusaurus/module-type-aliases": "3.9.1",
+ "@docusaurus/tsconfig": "3.9.1",
+ "@docusaurus/types": "3.9.1",
"docusaurus-plugin-typedoc": "^1.4.2",
"typedoc": "catalog:",
"typedoc-plugin-markdown": "^4.9.0",
From 195b0fe2f6986b0ee4368b716a5b4a98c1de70fd Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Tue, 14 Oct 2025 16:49:52 +0200
Subject: [PATCH 040/243] chore: fix lockfile
---
pnpm-lock.yaml | 1659 ++++++++++++++++++++++--------------------------
1 file changed, 749 insertions(+), 910 deletions(-)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1d4b782ee..4ce7e0eda 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,7 +8,7 @@ catalogs:
default:
'@dotenvx/dotenvx':
specifier: ^1.51.0
- version: 1.48.4
+ version: 1.51.0
'@rollup/plugin-commonjs':
specifier: ^28.0.6
version: 28.0.6
@@ -17,7 +17,7 @@ catalogs:
version: 6.1.0
'@rollup/plugin-node-resolve':
specifier: ^16.0.3
- version: 16.0.1
+ version: 16.0.3
'@rollup/plugin-terser':
specifier: ^0.4.4
version: 0.4.4
@@ -35,22 +35,22 @@ catalogs:
version: 0.31.5
drizzle-orm:
specifier: ^0.44.6
- version: 0.44.4
+ version: 0.44.6
rollup:
specifier: ^4.52.4
- version: 4.50.2
+ version: 4.52.4
rollup-plugin-polyfill-node:
specifier: ^0.13.0
version: 0.13.0
typedoc:
specifier: ^0.28.14
- version: 0.28.13
+ version: 0.28.14
typedoc-plugin-missing-exports:
specifier: ^4.1.2
- version: 4.1.0
+ version: 4.1.2
typescript:
specifier: ^5.9.3
- version: 5.9.2
+ version: 5.9.3
vite:
specifier: ^7.1.10
version: 7.1.10
@@ -185,8 +185,8 @@ importers:
specifier: ^4.1.1
version: 4.1.1
lucide-react:
- specifier: ^0.544.0
- version: 0.544.0(react@19.2.0)
+ specifier: ^0.545.0
+ version: 0.545.0(react@19.2.0)
mapbox-gl:
specifier: ^3.15.0
version: 3.15.0
@@ -215,8 +215,8 @@ importers:
specifier: ^19.2.0
version: 19.2.0
react-day-picker:
- specifier: 9.10.0
- version: 9.10.0(react@19.2.0)
+ specifier: 9.11.1
+ version: 9.11.1(react@19.2.0)
react-dom:
specifier: ^19.2.0
version: 19.2.0(react@19.2.0)
@@ -248,8 +248,8 @@ importers:
specifier: ^3.3.0
version: 3.3.0(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))
remix-utils:
- specifier: ^8.8.0
- version: 8.8.0(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)(zod@3.25.76)
+ specifier: ^9.0.0
+ version: 9.0.0(@standard-schema/spec@1.0.0)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)
shpjs:
specifier: ^6.2.0
version: 6.2.0
@@ -280,10 +280,10 @@ importers:
version: 1.51.0
'@react-router/dev':
specifier: ^7.9.4
- version: 7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1)
+ version: 7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1)
'@react-router/fs-routes':
specifier: ^7.9.4
- version: 7.9.4(@react-router/dev@7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.3)
+ version: 7.9.4(@react-router/dev@7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.3)
'@tailwindcss/postcss':
specifier: ^4.1.14
version: 4.1.14
@@ -347,19 +347,19 @@ importers:
devDependencies:
'@dotenvx/dotenvx':
specifier: 'catalog:'
- version: 1.48.4
+ version: 1.51.0
'@rollup/plugin-commonjs':
specifier: 'catalog:'
- version: 28.0.6(rollup@4.50.2)
+ version: 28.0.6(rollup@4.52.4)
'@rollup/plugin-node-resolve':
specifier: 'catalog:'
- version: 16.0.1(rollup@4.50.2)
+ version: 16.0.3(rollup@4.52.4)
'@rollup/plugin-terser':
specifier: 'catalog:'
- version: 0.4.4(rollup@4.50.2)
+ version: 0.4.4(rollup@4.52.4)
'@rollup/plugin-typescript':
specifier: 'catalog:'
- version: 12.1.4(rollup@4.50.2)(tslib@2.8.1)(typescript@5.9.2)
+ version: 12.1.4(rollup@4.52.4)(tslib@2.8.1)(typescript@5.9.3)
'@vitest/coverage-v8':
specifier: 'catalog:'
version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
@@ -368,19 +368,19 @@ importers:
version: 3.4.7
rollup:
specifier: 'catalog:'
- version: 4.50.2
+ version: 4.52.4
rollup-plugin-polyfill-node:
specifier: 'catalog:'
- version: 0.13.0(rollup@4.50.2)
+ version: 0.13.0(rollup@4.52.4)
typedoc:
specifier: 'catalog:'
- version: 0.28.13(typescript@5.9.2)
+ version: 0.28.14(typescript@5.9.3)
typedoc-plugin-missing-exports:
specifier: 'catalog:'
- version: 4.1.0(typedoc@0.28.13(typescript@5.9.2))
+ version: 4.1.2(typedoc@0.28.14(typescript@5.9.3))
typescript:
specifier: 'catalog:'
- version: 5.9.2
+ version: 5.9.3
vitest:
specifier: 'catalog:'
version: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
@@ -401,7 +401,7 @@ importers:
version: 1.3.27(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
drizzle-orm:
specifier: 'catalog:'
- version: 0.44.4(@electric-sql/pglite@0.3.11)(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(kysely@0.28.8)(postgres@3.4.7)
+ version: 0.44.6(@electric-sql/pglite@0.3.11)(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(kysely@0.28.8)(postgres@3.4.7)
nanoid:
specifier: ^5.1.6
version: 5.1.6
@@ -414,19 +414,19 @@ importers:
devDependencies:
'@dotenvx/dotenvx':
specifier: 'catalog:'
- version: 1.48.4
+ version: 1.51.0
'@rollup/plugin-commonjs':
specifier: 'catalog:'
- version: 28.0.6(rollup@4.50.2)
+ version: 28.0.6(rollup@4.52.4)
'@rollup/plugin-node-resolve':
specifier: 'catalog:'
- version: 16.0.1(rollup@4.50.2)
+ version: 16.0.3(rollup@4.52.4)
'@rollup/plugin-terser':
specifier: 'catalog:'
- version: 0.4.4(rollup@4.50.2)
+ version: 0.4.4(rollup@4.52.4)
'@rollup/plugin-typescript':
specifier: 'catalog:'
- version: 12.1.4(rollup@4.50.2)(tslib@2.8.1)(typescript@5.9.2)
+ version: 12.1.4(rollup@4.52.4)(tslib@2.8.1)(typescript@5.9.3)
'@types/node':
specifier: ^24.7.2
version: 24.7.2
@@ -444,19 +444,19 @@ importers:
version: 16.4.0
rollup:
specifier: 'catalog:'
- version: 4.50.2
+ version: 4.52.4
rollup-plugin-polyfill-node:
specifier: 'catalog:'
- version: 0.13.0(rollup@4.50.2)
+ version: 0.13.0(rollup@4.52.4)
typedoc:
specifier: 'catalog:'
- version: 0.28.13(typescript@5.9.2)
+ version: 0.28.14(typescript@5.9.3)
typedoc-plugin-missing-exports:
specifier: 'catalog:'
- version: 4.1.0(typedoc@0.28.13(typescript@5.9.2))
+ version: 4.1.2(typedoc@0.28.14(typescript@5.9.3))
typescript:
specifier: 'catalog:'
- version: 5.9.2
+ version: 5.9.3
vitest:
specifier: 'catalog:'
version: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
@@ -469,40 +469,40 @@ importers:
devDependencies:
'@dotenvx/dotenvx':
specifier: 'catalog:'
- version: 1.48.4
+ version: 1.51.0
'@rollup/plugin-commonjs':
specifier: 'catalog:'
- version: 28.0.6(rollup@4.50.2)
+ version: 28.0.6(rollup@4.52.4)
'@rollup/plugin-json':
specifier: 'catalog:'
- version: 6.1.0(rollup@4.50.2)
+ version: 6.1.0(rollup@4.52.4)
'@rollup/plugin-node-resolve':
specifier: 'catalog:'
- version: 16.0.1(rollup@4.50.2)
+ version: 16.0.3(rollup@4.52.4)
'@rollup/plugin-terser':
specifier: 'catalog:'
- version: 0.4.4(rollup@4.50.2)
+ version: 0.4.4(rollup@4.52.4)
'@rollup/plugin-typescript':
specifier: 'catalog:'
- version: 12.1.4(rollup@4.50.2)(tslib@2.8.1)(typescript@5.9.2)
+ version: 12.1.4(rollup@4.52.4)(tslib@2.8.1)(typescript@5.9.3)
'@vitest/coverage-v8':
specifier: 'catalog:'
version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
rollup:
specifier: 'catalog:'
- version: 4.50.2
+ version: 4.52.4
rollup-plugin-polyfill-node:
specifier: 'catalog:'
- version: 0.13.0(rollup@4.50.2)
+ version: 0.13.0(rollup@4.52.4)
typedoc:
specifier: 'catalog:'
- version: 0.28.13(typescript@5.9.2)
+ version: 0.28.14(typescript@5.9.3)
typedoc-plugin-missing-exports:
specifier: 'catalog:'
- version: 4.1.0(typedoc@0.28.13(typescript@5.9.2))
+ version: 4.1.2(typedoc@0.28.14(typescript@5.9.3))
typescript:
specifier: 'catalog:'
- version: 5.9.2
+ version: 5.9.3
vitest:
specifier: 'catalog:'
version: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
@@ -510,14 +510,14 @@ importers:
fdm-docs:
dependencies:
'@docusaurus/core':
- specifier: 3.8.1
- version: 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
+ specifier: 3.9.1
+ version: 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
'@docusaurus/faster':
specifier: ^3.9.1
- version: 3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))
+ version: 3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))
'@docusaurus/preset-classic':
- specifier: 3.8.1
- version: 3.8.1(@algolia/client-search@5.40.0)(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)(typescript@5.9.2)
+ specifier: 3.9.1
+ version: 3.9.1(@algolia/client-search@5.40.0)(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)(typescript@5.9.3)
'@mdx-js/react':
specifier: ^3.1.1
version: 3.1.1(@types/react@19.2.2)(react@19.2.0)
@@ -525,8 +525,8 @@ importers:
specifier: ^2.1.1
version: 2.1.1
lucide-react:
- specifier: ^0.544.0
- version: 0.544.0(react@19.2.0)
+ specifier: ^0.545.0
+ version: 0.545.0(react@19.2.0)
prism-react-renderer:
specifier: ^2.4.1
version: 2.4.1(react@19.2.0)
@@ -538,49 +538,69 @@ importers:
version: 19.2.0(react@19.2.0)
devDependencies:
'@docusaurus/module-type-aliases':
- specifier: 3.8.1
- version: 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ specifier: 3.9.1
+ version: 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@docusaurus/tsconfig':
- specifier: 3.8.1
- version: 3.8.1
+ specifier: 3.9.1
+ version: 3.9.1
'@docusaurus/types':
- specifier: 3.8.1
- version: 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ specifier: 3.9.1
+ version: 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
docusaurus-plugin-typedoc:
specifier: ^1.4.2
- version: 1.4.2(typedoc-plugin-markdown@4.9.0(typedoc@0.28.13(typescript@5.9.2)))
+ version: 1.4.2(typedoc-plugin-markdown@4.9.0(typedoc@0.28.14(typescript@5.9.3)))
typedoc:
specifier: 'catalog:'
- version: 0.28.13(typescript@5.9.2)
+ version: 0.28.14(typescript@5.9.3)
typedoc-plugin-markdown:
specifier: ^4.9.0
- version: 4.9.0(typedoc@0.28.13(typescript@5.9.2))
+ version: 4.9.0(typedoc@0.28.14(typescript@5.9.3))
typescript:
specifier: 'catalog:'
- version: 5.9.2
+ version: 5.9.3
packages:
+ '@ai-sdk/gateway@1.0.40':
+ resolution: {integrity: sha512-zlixM9jac0w0jjYl5gwNq+w9nydvraAmLaZQbbh+QpHU+OPkTIZmyBcKeTq5eGQKQxhi+oquHxzCSKyJx3egGw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.25.76 || ^4.1.8
+
+ '@ai-sdk/provider-utils@3.0.12':
+ resolution: {integrity: sha512-ZtbdvYxdMoria+2SlNarEk6Hlgyf+zzcznlD55EAl+7VZvJaSg2sqPvwArY7L6TfDEDJsnCq0fdhBSkYo0Xqdg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.25.76 || ^4.1.8
+
+ '@ai-sdk/provider@2.0.0':
+ resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==}
+ engines: {node: '>=18'}
+
+ '@ai-sdk/react@2.0.70':
+ resolution: {integrity: sha512-84So0vv9R2eL+7XAS1xAoqCx1jQGKb2WH8miJV8rBvF1QF9G5otFm35LhPPwZyJDq68vuVsvhIde1yzDCw2B8A==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ react: ^18 || ^19 || ^19.0.0-rc
+ zod: ^3.25.76 || ^4.1.8
+ peerDependenciesMeta:
+ zod:
+ optional: true
+
'@algolia/abtesting@1.6.0':
resolution: {integrity: sha512-c4M/Z/KWkEG+RHpZsWKDTTlApXu3fe4vlABNcpankWBhdMe4oPZ/r4JxEr2zKUP6K+BT66tnp8UbHmgOd/vvqQ==}
engines: {node: '>= 14.0.0'}
- '@algolia/autocomplete-core@1.17.9':
- resolution: {integrity: sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==}
+ '@algolia/autocomplete-core@1.19.2':
+ resolution: {integrity: sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==}
- '@algolia/autocomplete-plugin-algolia-insights@1.17.9':
- resolution: {integrity: sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==}
+ '@algolia/autocomplete-plugin-algolia-insights@1.19.2':
+ resolution: {integrity: sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==}
peerDependencies:
search-insights: '>= 1 < 3'
- '@algolia/autocomplete-preset-algolia@1.17.9':
- resolution: {integrity: sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==}
- peerDependencies:
- '@algolia/client-search': '>= 4.9.1 < 6'
- algoliasearch: '>= 4.9.1 < 6'
-
- '@algolia/autocomplete-shared@1.17.9':
- resolution: {integrity: sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==}
+ '@algolia/autocomplete-shared@1.19.2':
+ resolution: {integrity: sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==}
peerDependencies:
'@algolia/client-search': '>= 4.9.1 < 6'
algoliasearch: '>= 4.9.1 < 6'
@@ -1635,11 +1655,11 @@ packages:
resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
engines: {node: '>=10.0.0'}
- '@docsearch/css@3.9.0':
- resolution: {integrity: sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==}
+ '@docsearch/css@4.2.0':
+ resolution: {integrity: sha512-65KU9Fw5fGsPPPlgIghonMcndyx1bszzrDQYLfierN+Ha29yotMHzVS94bPkZS6On9LS8dE4qmW4P/fGjtCf/g==}
- '@docsearch/react@3.9.0':
- resolution: {integrity: sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==}
+ '@docsearch/react@4.2.0':
+ resolution: {integrity: sha512-zSN/KblmtBcerf7Z87yuKIHZQmxuXvYc6/m0+qnjyNu+Ir67AVOagTa1zBqcxkVUVkmBqUExdcyrdo9hbGbqTw==}
peerDependencies:
'@types/react': '>= 16.8.0 < 20.0.0'
react: '>= 16.8.0 < 20.0.0'
@@ -1655,31 +1675,31 @@ packages:
search-insights:
optional: true
- '@docusaurus/babel@3.8.1':
- resolution: {integrity: sha512-3brkJrml8vUbn9aeoZUlJfsI/GqyFcDgQJwQkmBtclJgWDEQBKKeagZfOgx0WfUQhagL1sQLNW0iBdxnI863Uw==}
- engines: {node: '>=18.0'}
+ '@docusaurus/babel@3.9.1':
+ resolution: {integrity: sha512-/uoi3oG+wvbVWNBRfPrzrEslOSeLxrQEyWMywK51TLDFTANqIRivzkMusudh5bdDty8fXzCYUT+tg5t697jYqg==}
+ engines: {node: '>=20.0'}
- '@docusaurus/bundler@3.8.1':
- resolution: {integrity: sha512-/z4V0FRoQ0GuSLToNjOSGsk6m2lQUG4FRn8goOVoZSRsTrU8YR2aJacX5K3RG18EaX9b+52pN4m1sL3MQZVsQA==}
- engines: {node: '>=18.0'}
+ '@docusaurus/bundler@3.9.1':
+ resolution: {integrity: sha512-E1c9DgNmAz4NqbNtiJVp4UgjLtr8O01IgtXD/NDQ4PZaK8895cMiTOgb3k7mN0qX8A3lb8vqyrPJ842+yMpuUg==}
+ engines: {node: '>=20.0'}
peerDependencies:
'@docusaurus/faster': '*'
peerDependenciesMeta:
'@docusaurus/faster':
optional: true
- '@docusaurus/core@3.8.1':
- resolution: {integrity: sha512-ENB01IyQSqI2FLtOzqSI3qxG2B/jP4gQPahl2C3XReiLebcVh5B5cB9KYFvdoOqOWPyr5gXK4sjgTKv7peXCrA==}
- engines: {node: '>=18.0'}
+ '@docusaurus/core@3.9.1':
+ resolution: {integrity: sha512-FWDk1LIGD5UR5Zmm9rCrXRoxZUgbwuP6FBA7rc50DVfzqDOMkeMe3NyJhOsA2dF0zBE3VbHEIMmTjKwTZJwbaA==}
+ engines: {node: '>=20.0'}
hasBin: true
peerDependencies:
'@mdx-js/react': ^3.0.0
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/cssnano-preset@3.8.1':
- resolution: {integrity: sha512-G7WyR2N6SpyUotqhGznERBK+x84uyhfMQM2MmDLs88bw4Flom6TY46HzkRkSEzaP9j80MbTN8naiL1fR17WQug==}
- engines: {node: '>=18.0'}
+ '@docusaurus/cssnano-preset@3.9.1':
+ resolution: {integrity: sha512-2y7+s7RWQMqBg+9ejeKwvZs7Bdw/hHIVJIodwMXbs2kr+S48AhcmAfdOh6Cwm0unJb0hJUshN0ROwRoQMwl3xg==}
+ engines: {node: '>=20.0'}
'@docusaurus/faster@3.9.1':
resolution: {integrity: sha512-zJIrIv+R/IN5TTLV9L+SvO3hwz62L6pO/L16k+b2nC3to3Gn01cnEGHL6doTGAezuPwTSmteJl+kzaoOf+znzg==}
@@ -1687,94 +1707,94 @@ packages:
peerDependencies:
'@docusaurus/types': '*'
- '@docusaurus/logger@3.8.1':
- resolution: {integrity: sha512-2wjeGDhKcExEmjX8k1N/MRDiPKXGF2Pg+df/bDDPnnJWHXnVEZxXj80d6jcxp1Gpnksl0hF8t/ZQw9elqj2+ww==}
- engines: {node: '>=18.0'}
+ '@docusaurus/logger@3.9.1':
+ resolution: {integrity: sha512-C9iFzXwHzwvGlisE4bZx+XQE0JIqlGAYAd5LzpR7fEDgjctu7yL8bE5U4nTNywXKHURDzMt4RJK8V6+stFHVkA==}
+ engines: {node: '>=20.0'}
- '@docusaurus/mdx-loader@3.8.1':
- resolution: {integrity: sha512-DZRhagSFRcEq1cUtBMo4TKxSNo/W6/s44yhr8X+eoXqCLycFQUylebOMPseHi5tc4fkGJqwqpWJLz6JStU9L4w==}
- engines: {node: '>=18.0'}
+ '@docusaurus/mdx-loader@3.9.1':
+ resolution: {integrity: sha512-/1PY8lqry8jCt0qZddJSpc0U2sH6XC27kVJZfpA7o2TiQ3mdBQyH5AVbj/B2m682B1ounE+XjI0LdpOkAQLPoA==}
+ engines: {node: '>=20.0'}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/module-type-aliases@3.8.1':
- resolution: {integrity: sha512-6xhvAJiXzsaq3JdosS7wbRt/PwEPWHr9eM4YNYqVlbgG1hSK3uQDXTVvQktasp3VO6BmfYWPozueLWuj4gB+vg==}
+ '@docusaurus/module-type-aliases@3.9.1':
+ resolution: {integrity: sha512-YBce3GbJGGcMbJTyHcnEOMvdXqg41pa5HsrMCGA5Rm4z0h0tHS6YtEldj0mlfQRhCG7Y0VD66t2tb87Aom+11g==}
peerDependencies:
react: '*'
react-dom: '*'
- '@docusaurus/plugin-content-blog@3.8.1':
- resolution: {integrity: sha512-vNTpMmlvNP9n3hGEcgPaXyvTljanAKIUkuG9URQ1DeuDup0OR7Ltvoc8yrmH+iMZJbcQGhUJF+WjHLwuk8HSdw==}
- engines: {node: '>=18.0'}
+ '@docusaurus/plugin-content-blog@3.9.1':
+ resolution: {integrity: sha512-vT6kIimpJLWvW9iuWzH4u7VpTdsGlmn4yfyhq0/Kb1h4kf9uVouGsTmrD7WgtYBUG1P+TSmQzUUQa+ALBSRTig==}
+ engines: {node: '>=20.0'}
peerDependencies:
'@docusaurus/plugin-content-docs': '*'
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/plugin-content-docs@3.8.1':
- resolution: {integrity: sha512-oByRkSZzeGNQByCMaX+kif5Nl2vmtj2IHQI2fWjCfCootsdKZDPFLonhIp5s3IGJO7PLUfe0POyw0Xh/RrGXJA==}
- engines: {node: '>=18.0'}
+ '@docusaurus/plugin-content-docs@3.9.1':
+ resolution: {integrity: sha512-DyLk9BIA6I9gPIuia8XIL+XIEbNnExam6AHzRsfrEq4zJr7k/DsWW7oi4aJMepDnL7jMRhpVcdsCxdjb0/A9xg==}
+ engines: {node: '>=20.0'}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/plugin-content-pages@3.8.1':
- resolution: {integrity: sha512-a+V6MS2cIu37E/m7nDJn3dcxpvXb6TvgdNI22vJX8iUTp8eoMoPa0VArEbWvCxMY/xdC26WzNv4wZ6y0iIni/w==}
- engines: {node: '>=18.0'}
+ '@docusaurus/plugin-content-pages@3.9.1':
+ resolution: {integrity: sha512-/1wFzRnXYASI+Nv9ck9IVPIMw0O5BGQ8ZVhDzEwhkL+tl44ycvSnY6PIe6rW2HLxsw61Z3WFwAiU8+xMMtMZpg==}
+ engines: {node: '>=20.0'}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/plugin-css-cascade-layers@3.8.1':
- resolution: {integrity: sha512-VQ47xRxfNKjHS5ItzaVXpxeTm7/wJLFMOPo1BkmoMG4Cuz4nuI+Hs62+RMk1OqVog68Swz66xVPK8g9XTrBKRw==}
- engines: {node: '>=18.0'}
+ '@docusaurus/plugin-css-cascade-layers@3.9.1':
+ resolution: {integrity: sha512-/QyW2gRCk/XE3ttCK/ERIgle8KJ024dBNKMu6U5SmpJvuT2il1n5jR/48Pp/9wEwut8WVml4imNm6X8JsL5A0Q==}
+ engines: {node: '>=20.0'}
- '@docusaurus/plugin-debug@3.8.1':
- resolution: {integrity: sha512-nT3lN7TV5bi5hKMB7FK8gCffFTBSsBsAfV84/v293qAmnHOyg1nr9okEw8AiwcO3bl9vije5nsUvP0aRl2lpaw==}
- engines: {node: '>=18.0'}
+ '@docusaurus/plugin-debug@3.9.1':
+ resolution: {integrity: sha512-qPeAuk0LccC251d7jg2MRhNI+o7niyqa924oEM/AxnZJvIpMa596aAxkRImiAqNN6+gtLE1Hkrz/RHUH2HDGsA==}
+ engines: {node: '>=20.0'}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/plugin-google-analytics@3.8.1':
- resolution: {integrity: sha512-Hrb/PurOJsmwHAsfMDH6oVpahkEGsx7F8CWMjyP/dw1qjqmdS9rcV1nYCGlM8nOtD3Wk/eaThzUB5TSZsGz+7Q==}
- engines: {node: '>=18.0'}
+ '@docusaurus/plugin-google-analytics@3.9.1':
+ resolution: {integrity: sha512-k4Qq2HphqOrIU/CevGPdEO1yJnWUI8m0zOJsYt5NfMJwNsIn/gDD6gv/DKD+hxHndQT5pacsfBd4BWHZVNVroQ==}
+ engines: {node: '>=20.0'}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/plugin-google-gtag@3.8.1':
- resolution: {integrity: sha512-tKE8j1cEZCh8KZa4aa80zpSTxsC2/ZYqjx6AAfd8uA8VHZVw79+7OTEP2PoWi0uL5/1Is0LF5Vwxd+1fz5HlKg==}
- engines: {node: '>=18.0'}
+ '@docusaurus/plugin-google-gtag@3.9.1':
+ resolution: {integrity: sha512-n9BURBiQyJKI/Ecz35IUjXYwXcgNCSq7/eA07+ZYcDiSyH2p/EjPf8q/QcZG3CyEJPZ/SzGkDHePfcVPahY4Gg==}
+ engines: {node: '>=20.0'}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/plugin-google-tag-manager@3.8.1':
- resolution: {integrity: sha512-iqe3XKITBquZq+6UAXdb1vI0fPY5iIOitVjPQ581R1ZKpHr0qe+V6gVOrrcOHixPDD/BUKdYwkxFjpNiEN+vBw==}
- engines: {node: '>=18.0'}
+ '@docusaurus/plugin-google-tag-manager@3.9.1':
+ resolution: {integrity: sha512-rZAQZ25ZuXaThBajxzLjXieTDUCMmBzfAA6ThElQ3o7Q+LEpOjCIrwGFau0KLY9HeG6x91+FwwsAM8zeApYDrg==}
+ engines: {node: '>=20.0'}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/plugin-sitemap@3.8.1':
- resolution: {integrity: sha512-+9YV/7VLbGTq8qNkjiugIelmfUEVkTyLe6X8bWq7K5qPvGXAjno27QAfFq63mYfFFbJc7z+pudL63acprbqGzw==}
- engines: {node: '>=18.0'}
+ '@docusaurus/plugin-sitemap@3.9.1':
+ resolution: {integrity: sha512-k/bf5cXDxAJUYTzqatgFJwmZsLUbIgl6S8AdZMKGG2Mv2wcOHt+EQNN9qPyWZ5/9cFj+Q8f8DN+KQheBMYLong==}
+ engines: {node: '>=20.0'}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/plugin-svgr@3.8.1':
- resolution: {integrity: sha512-rW0LWMDsdlsgowVwqiMb/7tANDodpy1wWPwCcamvhY7OECReN3feoFwLjd/U4tKjNY3encj0AJSTxJA+Fpe+Gw==}
- engines: {node: '>=18.0'}
+ '@docusaurus/plugin-svgr@3.9.1':
+ resolution: {integrity: sha512-TeZOXT2PSdTNR1OpDJMkYqFyX7MMhbd4t16hQByXksgZQCXNyw3Dio+KaDJ2Nj+LA4WkOvsk45bWgYG5MAaXSQ==}
+ engines: {node: '>=20.0'}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/preset-classic@3.8.1':
- resolution: {integrity: sha512-yJSjYNHXD8POMGc2mKQuj3ApPrN+eG0rO1UPgSx7jySpYU+n4WjBikbrA2ue5ad9A7aouEtMWUoiSRXTH/g7KQ==}
- engines: {node: '>=18.0'}
+ '@docusaurus/preset-classic@3.9.1':
+ resolution: {integrity: sha512-ZHga2xsxxsyd0dN1BpLj8S889Eu9eMBuj2suqxdw/vaaXu/FjJ8KEGbcaeo6nHPo8VQcBBnPEdkBtSDm2TfMNw==}
+ engines: {node: '>=20.0'}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
@@ -1784,56 +1804,52 @@ packages:
peerDependencies:
react: '*'
- '@docusaurus/theme-classic@3.8.1':
- resolution: {integrity: sha512-bqDUCNqXeYypMCsE1VcTXSI1QuO4KXfx8Cvl6rYfY0bhhqN6d2WZlRkyLg/p6pm+DzvanqHOyYlqdPyP0iz+iw==}
- engines: {node: '>=18.0'}
+ '@docusaurus/theme-classic@3.9.1':
+ resolution: {integrity: sha512-LrAIu/mQ04nG6s1cssC0TMmICD8twFIIn/hJ5Pd9uIPQvtKnyAKEn12RefopAul5KfMo9kixPaqogV5jIJr26w==}
+ engines: {node: '>=20.0'}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/theme-common@3.8.1':
- resolution: {integrity: sha512-UswMOyTnPEVRvN5Qzbo+l8k4xrd5fTFu2VPPfD6FcW/6qUtVLmJTQCktbAL3KJ0BVXGm5aJXz/ZrzqFuZERGPw==}
- engines: {node: '>=18.0'}
+ '@docusaurus/theme-common@3.9.1':
+ resolution: {integrity: sha512-j9adi961F+6Ps9d0jcb5BokMcbjXAAJqKkV43eo8nh4YgmDj7KUNDX4EnOh/MjTQeO06oPY5cxp3yUXdW/8Ggw==}
+ engines: {node: '>=20.0'}
peerDependencies:
'@docusaurus/plugin-content-docs': '*'
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/theme-search-algolia@3.8.1':
- resolution: {integrity: sha512-NBFH5rZVQRAQM087aYSRKQ9yGEK9eHd+xOxQjqNpxMiV85OhJDD4ZGz6YJIod26Fbooy54UWVdzNU0TFeUUUzQ==}
- engines: {node: '>=18.0'}
+ '@docusaurus/theme-search-algolia@3.9.1':
+ resolution: {integrity: sha512-WjM28bzlgfT6nHlEJemkwyGVpvGsZWPireV/w+wZ1Uo64xCZ8lNOb4xwQRukDaLSed3oPBN0gSnu06l5VuCXHg==}
+ engines: {node: '>=20.0'}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/theme-translations@3.8.1':
- resolution: {integrity: sha512-OTp6eebuMcf2rJt4bqnvuwmm3NVXfzfYejL+u/Y1qwKhZPrjPoKWfk1CbOP5xH5ZOPkiAsx4dHdQBRJszK3z2g==}
- engines: {node: '>=18.0'}
+ '@docusaurus/theme-translations@3.9.1':
+ resolution: {integrity: sha512-mUQd49BSGKTiM6vP9+JFgRJL28lMIN3PUvXjF3rzuOHMByUZUBNwCt26Z23GkKiSIOrRkjKoaBNTipR/MHdYSQ==}
+ engines: {node: '>=20.0'}
- '@docusaurus/tsconfig@3.8.1':
- resolution: {integrity: sha512-XBWCcqhRHhkhfolnSolNL+N7gj3HVE3CoZVqnVjfsMzCoOsuQw2iCLxVVHtO+rePUUfouVZHURDgmqIySsF66A==}
+ '@docusaurus/tsconfig@3.9.1':
+ resolution: {integrity: sha512-stdzM1dNDgRO0OvxeznXlE3N1igUoeHPNJjiKqyffLizgpVgNXJBAWeG6fuoYiCH4udGUBqy2dyM+1+kG2/UPQ==}
- '@docusaurus/types@3.8.1':
- resolution: {integrity: sha512-ZPdW5AB+pBjiVrcLuw3dOS6BFlrG0XkS2lDGsj8TizcnREQg3J8cjsgfDviszOk4CweNfwo1AEELJkYaMUuOPg==}
+ '@docusaurus/types@3.9.1':
+ resolution: {integrity: sha512-ElekJ29sk39s5LTEZMByY1c2oH9FMtw7KbWFU3BtuQ1TytfIK39HhUivDEJvm5KCLyEnnfUZlvSNDXeyk0vzAA==}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- '@docusaurus/utils-common@3.8.1':
- resolution: {integrity: sha512-zTZiDlvpvoJIrQEEd71c154DkcriBecm4z94OzEE9kz7ikS3J+iSlABhFXM45mZ0eN5pVqqr7cs60+ZlYLewtg==}
- engines: {node: '>=18.0'}
-
- '@docusaurus/utils-validation@3.8.1':
- resolution: {integrity: sha512-gs5bXIccxzEbyVecvxg6upTwaUbfa0KMmTj7HhHzc016AGyxH2o73k1/aOD0IFrdCsfJNt37MqNI47s2MgRZMA==}
- engines: {node: '>=18.0'}
+ '@docusaurus/utils-common@3.9.1':
+ resolution: {integrity: sha512-4M1u5Q8Zn2CYL2TJ864M51FV4YlxyGyfC3x+7CLuR6xsyTVNBNU4QMcPgsTHRS9J2+X6Lq7MyH6hiWXyi/sXUQ==}
+ engines: {node: '>=20.0'}
- '@docusaurus/utils@3.8.1':
- resolution: {integrity: sha512-P1ml0nvOmEFdmu0smSXOqTS1sxU5tqvnc0dA4MTKV39kye+bhQnjkIKEE18fNOvxjyB86k8esoCIFM3x4RykOQ==}
- engines: {node: '>=18.0'}
+ '@docusaurus/utils-validation@3.9.1':
+ resolution: {integrity: sha512-5bzab5si3E1udrlZuVGR17857Lfwe8iFPoy5AvMP9PXqDfoyIKT7gDQgAmxdRDMurgHaJlyhXEHHdzDKkOxxZQ==}
+ engines: {node: '>=20.0'}
- '@dotenvx/dotenvx@1.48.4':
- resolution: {integrity: sha512-GpJWpGVI5JGhNzFlWOjCD3KMiN3xU1US4oLKQ7SiiGru4LvR7sUf3pDMpfjtlgzHStL5ydq4ekfZcRxWpHaJkA==}
- hasBin: true
+ '@docusaurus/utils@3.9.1':
+ resolution: {integrity: sha512-YAL4yhhWLl9DXuf5MVig260a6INz4MehrBGFU/CZu8yXmRiYEuQvRFWh9ZsjfAOyaG7za1MNmBVZ4VVAi/CiJA==}
+ engines: {node: '>=20.0'}
'@dotenvx/dotenvx@1.51.0':
resolution: {integrity: sha512-CbMGzyOYSyFF7d4uaeYwO9gpSBzLTnMmSmTVpCZjvpJFV69qYbjYPpzNnCz1mb2wIvEhjWjRwQWuBzTO0jITww==}
@@ -2244,6 +2260,42 @@ packages:
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+ '@jsonjoy.com/base64@1.1.2':
+ resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==}
+ engines: {node: '>=10.0'}
+ peerDependencies:
+ tslib: '2'
+
+ '@jsonjoy.com/buffers@1.2.0':
+ resolution: {integrity: sha512-6RX+W5a+ZUY/c/7J5s5jK9UinLfJo5oWKh84fb4X0yK2q4WXEWUWZWuEMjvCb1YNUQhEAhUfr5scEGOH7jC4YQ==}
+ engines: {node: '>=10.0'}
+ peerDependencies:
+ tslib: '2'
+
+ '@jsonjoy.com/codegen@1.0.0':
+ resolution: {integrity: sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==}
+ engines: {node: '>=10.0'}
+ peerDependencies:
+ tslib: '2'
+
+ '@jsonjoy.com/json-pack@1.20.0':
+ resolution: {integrity: sha512-adcXFVorSQULtT4XDL0giRLr2EVGIcyWm6eQKZWTrRA4EEydGOY8QVQtL0PaITQpUyu+lOd/QOicw6vdy1v8QQ==}
+ engines: {node: '>=10.0'}
+ peerDependencies:
+ tslib: '2'
+
+ '@jsonjoy.com/json-pointer@1.0.2':
+ resolution: {integrity: sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==}
+ engines: {node: '>=10.0'}
+ peerDependencies:
+ tslib: '2'
+
+ '@jsonjoy.com/util@1.9.0':
+ resolution: {integrity: sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==}
+ engines: {node: '>=10.0'}
+ peerDependencies:
+ tslib: '2'
+
'@leichtgewicht/ip-codec@2.0.5':
resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==}
@@ -2327,9 +2379,6 @@ packages:
'@mjackson/node-fetch-server@0.2.0':
resolution: {integrity: sha512-EMlH1e30yzmTpGLQjlFmaDAjyOeZhng1/XCd7DExR8PNAnG/G1tyruZxEoUe11ClnwGhGrtsdnyyUx1frSzjng==}
- '@mjackson/node-fetch-server@0.7.0':
- resolution: {integrity: sha512-un8diyEBKU3BTVj3GzlTPA1kIjCkGdD+AMYQy31Gf9JCkfoZzwgJ79GUtHrF2BN3XPNMLpubbzPcxys+a3uZEw==}
-
'@module-federation/error-codes@0.18.0':
resolution: {integrity: sha512-Woonm8ehyVIUPXChmbu80Zj6uJkC0dD9SJUZ/wOPtO8iiz/m+dkrOugAuKgoiR6qH4F+yorWila954tBz4uKsQ==}
@@ -3582,8 +3631,8 @@ packages:
rollup:
optional: true
- '@rollup/plugin-node-resolve@16.0.1':
- resolution: {integrity: sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==}
+ '@rollup/plugin-node-resolve@16.0.3':
+ resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^2.78.0||^3.0.0||^4.0.0
@@ -3622,201 +3671,101 @@ packages:
rollup:
optional: true
- '@rollup/rollup-android-arm-eabi@4.50.2':
- resolution: {integrity: sha512-uLN8NAiFVIRKX9ZQha8wy6UUs06UNSZ32xj6giK/rmMXAgKahwExvK6SsmgU5/brh4w/nSgj8e0k3c1HBQpa0A==}
- cpu: [arm]
- os: [android]
-
'@rollup/rollup-android-arm-eabi@4.52.4':
resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.50.2':
- resolution: {integrity: sha512-oEouqQk2/zxxj22PNcGSskya+3kV0ZKH+nQxuCCOGJ4oTXBdNTbv+f/E3c74cNLeMO1S5wVWacSws10TTSB77g==}
- cpu: [arm64]
- os: [android]
-
'@rollup/rollup-android-arm64@4.52.4':
resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.50.2':
- resolution: {integrity: sha512-OZuTVTpj3CDSIxmPgGH8en/XtirV5nfljHZ3wrNwvgkT5DQLhIKAeuFSiwtbMto6oVexV0k1F1zqURPKf5rI1Q==}
- cpu: [arm64]
- os: [darwin]
-
'@rollup/rollup-darwin-arm64@4.52.4':
resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.50.2':
- resolution: {integrity: sha512-Wa/Wn8RFkIkr1vy1k1PB//VYhLnlnn5eaJkfTQKivirOvzu5uVd2It01ukeQstMursuz7S1bU+8WW+1UPXpa8A==}
- cpu: [x64]
- os: [darwin]
-
'@rollup/rollup-darwin-x64@4.52.4':
resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-freebsd-arm64@4.50.2':
- resolution: {integrity: sha512-QkzxvH3kYN9J1w7D1A+yIMdI1pPekD+pWx7G5rXgnIlQ1TVYVC6hLl7SOV9pi5q9uIDF9AuIGkuzcbF7+fAhow==}
- cpu: [arm64]
- os: [freebsd]
-
'@rollup/rollup-freebsd-arm64@4.52.4':
resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==}
cpu: [arm64]
os: [freebsd]
- '@rollup/rollup-freebsd-x64@4.50.2':
- resolution: {integrity: sha512-dkYXB0c2XAS3a3jmyDkX4Jk0m7gWLFzq1C3qUnJJ38AyxIF5G/dyS4N9B30nvFseCfgtCEdbYFhk0ChoCGxPog==}
- cpu: [x64]
- os: [freebsd]
-
'@rollup/rollup-freebsd-x64@4.52.4':
resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==}
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-linux-arm-gnueabihf@4.50.2':
- resolution: {integrity: sha512-9VlPY/BN3AgbukfVHAB8zNFWB/lKEuvzRo1NKev0Po8sYFKx0i+AQlCYftgEjcL43F2h9Ui1ZSdVBc4En/sP2w==}
- cpu: [arm]
- os: [linux]
-
'@rollup/rollup-linux-arm-gnueabihf@4.52.4':
resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.50.2':
- resolution: {integrity: sha512-+GdKWOvsifaYNlIVf07QYan1J5F141+vGm5/Y8b9uCZnG/nxoGqgCmR24mv0koIWWuqvFYnbURRqw1lv7IBINw==}
- cpu: [arm]
- os: [linux]
-
'@rollup/rollup-linux-arm-musleabihf@4.52.4':
resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.50.2':
- resolution: {integrity: sha512-df0Eou14ojtUdLQdPFnymEQteENwSJAdLf5KCDrmZNsy1c3YaCNaJvYsEUHnrg+/DLBH612/R0xd3dD03uz2dg==}
- cpu: [arm64]
- os: [linux]
-
'@rollup/rollup-linux-arm64-gnu@4.52.4':
resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.50.2':
- resolution: {integrity: sha512-iPeouV0UIDtz8j1YFR4OJ/zf7evjauqv7jQ/EFs0ClIyL+by++hiaDAfFipjOgyz6y6xbDvJuiU4HwpVMpRFDQ==}
- cpu: [arm64]
- os: [linux]
-
'@rollup/rollup-linux-arm64-musl@4.52.4':
resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-loong64-gnu@4.50.2':
- resolution: {integrity: sha512-OL6KaNvBopLlj5fTa5D5bau4W82f+1TyTZRr2BdnfsrnQnmdxh4okMxR2DcDkJuh4KeoQZVuvHvzuD/lyLn2Kw==}
- cpu: [loong64]
- os: [linux]
-
'@rollup/rollup-linux-loong64-gnu@4.52.4':
resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==}
cpu: [loong64]
os: [linux]
- '@rollup/rollup-linux-ppc64-gnu@4.50.2':
- resolution: {integrity: sha512-I21VJl1w6z/K5OTRl6aS9DDsqezEZ/yKpbqlvfHbW0CEF5IL8ATBMuUx6/mp683rKTK8thjs/0BaNrZLXetLag==}
- cpu: [ppc64]
- os: [linux]
-
'@rollup/rollup-linux-ppc64-gnu@4.52.4':
resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.50.2':
- resolution: {integrity: sha512-Hq6aQJT/qFFHrYMjS20nV+9SKrXL2lvFBENZoKfoTH2kKDOJqff5OSJr4x72ZaG/uUn+XmBnGhfr4lwMRrmqCQ==}
- cpu: [riscv64]
- os: [linux]
-
'@rollup/rollup-linux-riscv64-gnu@4.52.4':
resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-riscv64-musl@4.50.2':
- resolution: {integrity: sha512-82rBSEXRv5qtKyr0xZ/YMF531oj2AIpLZkeNYxmKNN6I2sVE9PGegN99tYDLK2fYHJITL1P2Lgb4ZXnv0PjQvw==}
- cpu: [riscv64]
- os: [linux]
-
'@rollup/rollup-linux-riscv64-musl@4.52.4':
resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.50.2':
- resolution: {integrity: sha512-4Q3S3Hy7pC6uaRo9gtXUTJ+EKo9AKs3BXKc2jYypEcMQ49gDPFU2P1ariX9SEtBzE5egIX6fSUmbmGazwBVF9w==}
- cpu: [s390x]
- os: [linux]
-
'@rollup/rollup-linux-s390x-gnu@4.52.4':
resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.50.2':
- resolution: {integrity: sha512-9Jie/At6qk70dNIcopcL4p+1UirusEtznpNtcq/u/C5cC4HBX7qSGsYIcG6bdxj15EYWhHiu02YvmdPzylIZlA==}
- cpu: [x64]
- os: [linux]
-
'@rollup/rollup-linux-x64-gnu@4.52.4':
resolution: {integrity: sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.50.2':
- resolution: {integrity: sha512-HPNJwxPL3EmhzeAnsWQCM3DcoqOz3/IC6de9rWfGR8ZCuEHETi9km66bH/wG3YH0V3nyzyFEGUZeL5PKyy4xvw==}
- cpu: [x64]
- os: [linux]
-
'@rollup/rollup-linux-x64-musl@4.52.4':
resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-openharmony-arm64@4.50.2':
- resolution: {integrity: sha512-nMKvq6FRHSzYfKLHZ+cChowlEkR2lj/V0jYj9JnGUVPL2/mIeFGmVM2mLaFeNa5Jev7W7TovXqXIG2d39y1KYA==}
- cpu: [arm64]
- os: [openharmony]
-
'@rollup/rollup-openharmony-arm64@4.52.4':
resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==}
cpu: [arm64]
os: [openharmony]
- '@rollup/rollup-win32-arm64-msvc@4.50.2':
- resolution: {integrity: sha512-eFUvvnTYEKeTyHEijQKz81bLrUQOXKZqECeiWH6tb8eXXbZk+CXSG2aFrig2BQ/pjiVRj36zysjgILkqarS2YA==}
- cpu: [arm64]
- os: [win32]
-
'@rollup/rollup-win32-arm64-msvc@4.52.4':
resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.50.2':
- resolution: {integrity: sha512-cBaWmXqyfRhH8zmUxK3d3sAhEWLrtMjWBRwdMMHJIXSjvjLKvv49adxiEz+FJ8AP90apSDDBx2Tyd/WylV6ikA==}
- cpu: [ia32]
- os: [win32]
-
'@rollup/rollup-win32-ia32-msvc@4.52.4':
resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==}
cpu: [ia32]
@@ -3827,11 +3776,6 @@ packages:
cpu: [x64]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.50.2':
- resolution: {integrity: sha512-APwKy6YUhvZaEoHyM+9xqmTpviEI+9eL7LoCH+aLcvWYHJ663qG5zx7WzWZY+a9qkg5JtzcMyJ9z0WtQBMDmgA==}
- cpu: [x64]
- os: [win32]
-
'@rollup/rollup-win32-x64-msvc@4.52.4':
resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==}
cpu: [x64]
@@ -4093,6 +4037,9 @@ packages:
'@slorber/remark-comment@1.0.0':
resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==}
+ '@standard-schema/spec@1.0.0':
+ resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==}
+
'@standard-schema/utils@0.3.0':
resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==}
@@ -4853,9 +4800,6 @@ packages:
'@types/express-serve-static-core@4.19.7':
resolution: {integrity: sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==}
- '@types/express-serve-static-core@5.1.0':
- resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==}
-
'@types/express@4.17.23':
resolution: {integrity: sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==}
@@ -4999,8 +4943,8 @@ packages:
'@types/responselike@1.0.3':
resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
- '@types/retry@0.12.0':
- resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
+ '@types/retry@0.12.2':
+ resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
'@types/sax@1.2.7':
resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
@@ -5053,6 +4997,10 @@ packages:
'@ungap/structured-clone@1.3.0':
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
+ '@vercel/oidc@3.0.2':
+ resolution: {integrity: sha512-JekxQ0RApo4gS4un/iMGsIL1/k4KUBe3HmnGcDvzHuFBdQdudEJgTqcsJC7y6Ul4Yw5CeykgvQbX2XeEJd0+DA==}
+ engines: {node: '>= 20'}
+
'@vis.gl/react-mapbox@8.1.0':
resolution: {integrity: sha512-FwvH822oxEjWYOr+pP2L8hpv+7cZB2UsQbHHHT0ryrkvvqzmTgt7qHDhamv0EobKw86e1I+B4ojENdJ5G5BkyQ==}
peerDependencies:
@@ -5073,13 +5021,6 @@ packages:
maplibre-gl:
optional: true
- '@vitejs/plugin-rsc@0.4.11':
- resolution: {integrity: sha512-+4H4wLi+Y9yF58znBfKgGfX8zcqUGt8ngnmNgzrdGdF1SVz7EO0sg7WnhK5fFVHt6fUxsVEjmEabsCWHKPL1Tw==}
- peerDependencies:
- react: '*'
- react-dom: '*'
- vite: '*'
-
'@vitest/coverage-v8@3.2.4':
resolution: {integrity: sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==}
peerDependencies:
@@ -5210,6 +5151,12 @@ packages:
resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
engines: {node: '>=8'}
+ ai@5.0.70:
+ resolution: {integrity: sha512-srJV++Ml1X8I33gTiiJQpq6GUbAv5ivjSzDzzF9SM4d25zq+/m+zTtHBb794tYKTz2PgbJ3oop9+gU50ZdCLbQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.25.76 || ^4.1.8
+
ajv-formats@2.1.1:
resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
peerDependencies:
@@ -5485,6 +5432,10 @@ packages:
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+ bundle-name@4.1.0:
+ resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
+ engines: {node: '>=18'}
+
but-unzip@0.1.7:
resolution: {integrity: sha512-fGmYleG7dAYaoqMVZCoM6zjSeaIYNlyVreUVyUkVPtPLRTbKq8J8KdNnyqMaiLqun7P9bBuSMeqJs0YxN86GJA==}
@@ -5781,10 +5732,6 @@ packages:
resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==}
engines: {node: '>=18'}
- copy-text-to-clipboard@3.2.2:
- resolution: {integrity: sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==}
- engines: {node: '>=12'}
-
copy-webpack-plugin@11.0.0:
resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
engines: {node: '>= 14.15.0'}
@@ -6073,9 +6020,13 @@ packages:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
- default-gateway@6.0.3:
- resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
- engines: {node: '>= 10'}
+ default-browser-id@5.0.0:
+ resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
+ engines: {node: '>=18'}
+
+ default-browser@5.2.1:
+ resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
+ engines: {node: '>=18'}
defer-to-connect@2.0.1:
resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
@@ -6089,6 +6040,10 @@ packages:
resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
engines: {node: '>=8'}
+ define-lazy-prop@3.0.0:
+ resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
+ engines: {node: '>=12'}
+
define-properties@1.2.1:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'}
@@ -6199,98 +6154,6 @@ packages:
resolution: {integrity: sha512-+CHgPFzuoTQTt7cOYCV6MOw2w8vqEn/ap1yv4bpZOWL03u7rlVRQhUY0WYT3rHsgVTXwYQDZaSUJSQrMBUKuWg==}
hasBin: true
- drizzle-orm@0.44.4:
- resolution: {integrity: sha512-ZyzKFpTC/Ut3fIqc2c0dPZ6nhchQXriTsqTNs4ayRgl6sZcFlMs9QZKPSHXK4bdOf41GHGWf+FrpcDDYwW+W6Q==}
- peerDependencies:
- '@aws-sdk/client-rds-data': '>=3'
- '@cloudflare/workers-types': '>=4'
- '@electric-sql/pglite': '>=0.2.0'
- '@libsql/client': '>=0.10.0'
- '@libsql/client-wasm': '>=0.10.0'
- '@neondatabase/serverless': '>=0.10.0'
- '@op-engineering/op-sqlite': '>=2'
- '@opentelemetry/api': ^1.4.1
- '@planetscale/database': '>=1.13'
- '@prisma/client': '*'
- '@tidbcloud/serverless': '*'
- '@types/better-sqlite3': '*'
- '@types/pg': '*'
- '@types/sql.js': '*'
- '@upstash/redis': '>=1.34.7'
- '@vercel/postgres': '>=0.8.0'
- '@xata.io/client': '*'
- better-sqlite3: '>=7'
- bun-types: '*'
- expo-sqlite: '>=14.0.0'
- gel: '>=2'
- knex: '*'
- kysely: '*'
- mysql2: '>=2'
- pg: '>=8'
- postgres: '>=3'
- prisma: '*'
- 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
- '@libsql/client-wasm':
- 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/sql.js':
- optional: true
- '@upstash/redis':
- optional: true
- '@vercel/postgres':
- optional: true
- '@xata.io/client':
- optional: true
- better-sqlite3:
- optional: true
- bun-types:
- optional: true
- expo-sqlite:
- optional: true
- gel:
- optional: true
- knex:
- optional: true
- kysely:
- optional: true
- mysql2:
- optional: true
- pg:
- optional: true
- postgres:
- optional: true
- prisma:
- optional: true
- sql.js:
- optional: true
- sqlite3:
- optional: true
-
drizzle-orm@0.44.6:
resolution: {integrity: sha512-uy6uarrrEOc9K1u5/uhBFJbdF5VJ5xQ/Yzbecw3eAYOunv5FDeYkR2m8iitocdHBOHbvorviKOW5GVw0U1j4LQ==}
peerDependencies:
@@ -6606,6 +6469,10 @@ packages:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'}
+ eventsource-parser@3.0.6:
+ resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==}
+ engines: {node: '>=18.0.0'}
+
execa@5.1.1:
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
engines: {node: '>=10'}
@@ -6806,9 +6673,6 @@ packages:
resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
engines: {node: '>=6 <7 || >=8'}
- fs-monkey@1.1.0:
- resolution: {integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==}
-
fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
@@ -6910,6 +6774,12 @@ packages:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
+ glob-to-regex.js@1.2.0:
+ resolution: {integrity: sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==}
+ engines: {node: '>=10.0'}
+ peerDependencies:
+ tslib: '2'
+
glob-to-regexp@0.4.1:
resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
@@ -6922,10 +6792,6 @@ packages:
engines: {node: 20 || >=22}
hasBin: true
- glob@7.2.3:
- resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
- deprecated: Glob versions prior to v9 are no longer supported
-
glob@9.3.5:
resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -7068,9 +6934,6 @@ packages:
hpack.js@2.1.6:
resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
- html-entities@2.6.0:
- resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==}
-
html-escaper@2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
@@ -7166,6 +7029,10 @@ packages:
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
engines: {node: '>=10.17.0'}
+ hyperdyperid@1.2.0:
+ resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==}
+ engines: {node: '>=10.18'}
+
iconv-lite@0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
@@ -7215,10 +7082,6 @@ packages:
resolution: {integrity: sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==}
engines: {node: '>=12'}
- inflight@1.0.6:
- resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
- deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
-
inherits@2.0.3:
resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
@@ -7311,6 +7174,11 @@ packages:
engines: {node: '>=8'}
hasBin: true
+ is-docker@3.0.0:
+ resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ hasBin: true
+
is-extendable@0.1.1:
resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
engines: {node: '>=0.10.0'}
@@ -7342,6 +7210,11 @@ packages:
is-hexadecimal@2.0.1:
resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
+ is-inside-container@1.0.0:
+ resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
+ engines: {node: '>=14.16'}
+ hasBin: true
+
is-installed-globally@0.4.0:
resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
engines: {node: '>=10'}
@@ -7357,6 +7230,10 @@ packages:
resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
engines: {node: '>= 0.4'}
+ is-network-error@1.3.0:
+ resolution: {integrity: sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==}
+ engines: {node: '>=16'}
+
is-npm@6.1.0:
resolution: {integrity: sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -7400,9 +7277,6 @@ packages:
is-reference@1.2.1:
resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
- is-reference@3.0.3:
- resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==}
-
is-regex@1.2.1:
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
engines: {node: '>= 0.4'}
@@ -7462,6 +7336,10 @@ packages:
resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
engines: {node: '>=8'}
+ is-wsl@3.1.0:
+ resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
+ engines: {node: '>=16'}
+
is-yarn-global@0.4.1:
resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==}
engines: {node: '>=12'}
@@ -7579,6 +7457,9 @@ packages:
json-schema-traverse@1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+ json-schema@0.4.0:
+ resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
+
json-stringify-pretty-compact@3.0.0:
resolution: {integrity: sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==}
@@ -7853,8 +7734,8 @@ packages:
resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
engines: {node: '>=12'}
- lucide-react@0.544.0:
- resolution: {integrity: sha512-t5tS44bqd825zAW45UQxpG2CvcC4urOwn2TrwSH8u+MjeE+1NnWl6QqeQ/6NdjMqdOygyiT9p3Ev0p1NJykxjw==}
+ lucide-react@0.545.0:
+ resolution: {integrity: sha512-7r1/yUuflQDSt4f1bpn5ZAocyIxcTyVyBBChSVtBKn5M+392cPmI5YJMWOJKk/HUWGm5wg83chlAZtCcGbEZtw==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
@@ -7903,6 +7784,11 @@ packages:
markdown-table@3.0.4:
resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
+ marked@16.4.0:
+ resolution: {integrity: sha512-CTPAcRBq57cn3R8n3hwc2REddc28hjR7RzDXQ+lXLmMJYqn20BaI2cGw6QjgZGIgVfp2Wdfw4aMzgNteQ6qJgQ==}
+ engines: {node: '>= 20'}
+ hasBin: true
+
marked@7.0.4:
resolution: {integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==}
engines: {node: '>= 16'}
@@ -7987,9 +7873,8 @@ packages:
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
engines: {node: '>= 0.6'}
- memfs@3.5.3:
- resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
- engines: {node: '>= 4.0.0'}
+ memfs@4.49.0:
+ resolution: {integrity: sha512-L9uC9vGuc4xFybbdOpRLoOAOq1YEBBsocCs5NVW32DfU+CZWWIn3OVF+lB8Gp4ttBVSMazwrTrjv8ussX/e3VQ==}
meow@9.0.0:
resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==}
@@ -8159,6 +8044,10 @@ packages:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
+ mime-types@3.0.1:
+ resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==}
+ engines: {node: '>= 0.6'}
+
mime@1.6.0:
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
engines: {node: '>=4'}
@@ -8423,6 +8312,10 @@ packages:
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
engines: {node: '>=6'}
+ open@10.2.0:
+ resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==}
+ engines: {node: '>=18'}
+
open@8.4.2:
resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
engines: {node: '>=12'}
@@ -8490,9 +8383,9 @@ packages:
resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
engines: {node: '>=8'}
- p-retry@4.6.2:
- resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
- engines: {node: '>=8'}
+ p-retry@6.2.1:
+ resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==}
+ engines: {node: '>=16.17'}
p-timeout@3.2.0:
resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
@@ -8562,10 +8455,6 @@ packages:
resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- path-is-absolute@1.0.1:
- resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
- engines: {node: '>=0.10.0'}
-
path-is-inside@1.0.2:
resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
@@ -8614,9 +8503,6 @@ packages:
peberminta@0.9.0:
resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==}
- periscopic@4.0.2:
- resolution: {integrity: sha512-sqpQDUy8vgB7ycLkendSKS6HnVz1Rneoc3Rc+ZBUCe2pbqlVuCC5vF52l0NJ1aiMg/r1qfYF9/myz8CZeI2rjA==}
-
pg-int8@1.0.1:
resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
engines: {node: '>=4.0.0'}
@@ -9267,8 +9153,8 @@ packages:
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
hasBin: true
- react-day-picker@9.10.0:
- resolution: {integrity: sha512-tedecLSd+fpSN+J08601MaMsf122nxtqZXxB6lwX37qFoLtuPNuRJN8ylxFjLhyJS1kaLfAqL1GUkSLd2BMrpQ==}
+ react-day-picker@9.11.1:
+ resolution: {integrity: sha512-l3ub6o8NlchqIjPKrRFUCkTUEq6KwemQlfv3XZzzwpUeGwmDJ+0u0Upmt38hJyd7D/vn2dQoOoLV/qAp0o3uUw==}
engines: {node: '>=18'}
peerDependencies:
react: '>=16.8.0'
@@ -9551,8 +9437,8 @@ packages:
peerDependencies:
react-router: '>=7.9.0'
- remix-utils@8.8.0:
- resolution: {integrity: sha512-5CR4a3YwPaCoPUHg+O69UMek05tnFMrtQsoXTU4KzsyU7heDO94IFTjKVzEFhi+s+SSo+ebRMxWvjf/QiPpqiQ==}
+ remix-utils@9.0.0:
+ resolution: {integrity: sha512-xpDnw6hIjYbHR9/noE4lKNPRzfxvGai3XBQcjOjcwIwZVW9O1bdsnYAl+aqJ2fMXSQTNMjNuR8Cetn76HqwXCg==}
engines: {node: '>=20.0.0'}
peerDependencies:
'@edgefirst-dev/batcher': ^1.0.0
@@ -9565,7 +9451,6 @@ packages:
is-ip: ^5.0.1
react: ^18.0.0 || ^19.0.0
react-router: ^7.0.0
- zod: ^3.22.4
peerDependenciesMeta:
'@edgefirst-dev/batcher':
optional: true
@@ -9585,9 +9470,7 @@ packages:
optional: true
react:
optional: true
- react-router:
- optional: true
- zod:
+ react-router:
optional: true
renderkid@3.0.0:
@@ -9655,11 +9538,6 @@ packages:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
- rimraf@3.0.2:
- resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
- deprecated: Rimraf versions prior to v4 are no longer supported
- hasBin: true
-
robust-predicates@2.0.4:
resolution: {integrity: sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==}
@@ -9671,11 +9549,6 @@ packages:
peerDependencies:
rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0
- rollup@4.50.2:
- resolution: {integrity: sha512-BgLRGy7tNS9H66aIMASq1qSYbAAJV6Z6WR4QYTvj5FgF15rZ/ympT1uixHXwzbZUBDbkvqUI1KR0fH1FhMaQ9w==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
- hasBin: true
-
rollup@4.52.4:
resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@@ -9689,6 +9562,10 @@ packages:
engines: {node: '>=12.0.0'}
hasBin: true
+ run-applescript@7.1.0:
+ resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==}
+ engines: {node: '>=18'}
+
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
@@ -10000,9 +9877,6 @@ packages:
std-env@3.10.0:
resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==}
- std-env@3.9.0:
- resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
-
stop-iteration-iterator@1.1.0:
resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
engines: {node: '>= 0.4'}
@@ -10072,8 +9946,8 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- strip-literal@3.0.0:
- resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==}
+ strip-literal@3.1.0:
+ resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==}
strtok3@10.3.4:
resolution: {integrity: sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==}
@@ -10129,6 +10003,11 @@ packages:
sweepline-intersections@1.5.0:
resolution: {integrity: sha512-AoVmx72QHpKtItPu72TzFL+kcYjd67BPLDoR0LarIk+xyaRg+pDTMFXndIEvZf9xEKnJv6JdhgRMnocoG0D3AQ==}
+ swr@2.3.6:
+ resolution: {integrity: sha512-wfHRmHWk/isGNMwlLGlZX5Gzz/uTgo0o2IRuTMcf4CPuPFJZlq0rDaKUx+ozB5nBOReNV1kiOyzMfj+MBMikLw==}
+ peerDependencies:
+ react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
tailwind-merge@3.3.1:
resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==}
@@ -10177,6 +10056,16 @@ packages:
resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==}
engines: {node: '>=18'}
+ thingies@2.5.0:
+ resolution: {integrity: sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==}
+ engines: {node: '>=10.18'}
+ peerDependencies:
+ tslib: ^2
+
+ throttleit@2.1.0:
+ resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==}
+ engines: {node: '>=18'}
+
thunky@1.1.0:
resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
@@ -10213,8 +10102,8 @@ packages:
resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
engines: {node: '>=14.0.0'}
- tinyspy@4.0.3:
- resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==}
+ tinyspy@4.0.4:
+ resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==}
engines: {node: '>=14.0.0'}
to-regex-range@5.0.1:
@@ -10248,6 +10137,12 @@ packages:
resolution: {integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==}
engines: {node: '>= 0.4'}
+ tree-dump@1.1.0:
+ resolution: {integrity: sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==}
+ engines: {node: '>=10.0'}
+ peerDependencies:
+ tslib: '2'
+
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
@@ -10298,9 +10193,6 @@ packages:
cpu: [arm64]
os: [linux]
- turbo-stream@3.1.0:
- resolution: {integrity: sha512-tVI25WEXl4fckNEmrq70xU1XumxUwEx/FZD5AgEcV8ri7Wvrg2o7GEq8U7htrNx3CajciGm+kDyhRf5JB6t7/A==}
-
turbo-windows-64@2.5.8:
resolution: {integrity: sha512-3YdcaW34TrN1AWwqgYL9gUqmZsMT4T7g8Y5Azz+uwwEJW+4sgcJkIi9pYFyU4ZBSjBvkfuPZkGgfStir5BBDJQ==}
cpu: [x64]
@@ -10381,23 +10273,18 @@ packages:
peerDependencies:
typedoc: 0.28.x
- typedoc-plugin-missing-exports@4.1.0:
- resolution: {integrity: sha512-p1M5jXnEbQ4qqy0erJz41BBZEDb8XDrbLjndlH4RhYEcymbdQr0xLF6yUw1GWBrhSIfkU98m3BELMAiQh+R1zA==}
+ typedoc-plugin-missing-exports@4.1.2:
+ resolution: {integrity: sha512-WNoeWX9+8X3E3riuYPduilUTFefl1K+Z+5bmYqNeH5qcWjtnTRMbRzGdEQ4XXn1WEO4WCIlU0vf46Ca2y/mspg==}
peerDependencies:
typedoc: ^0.28.1
- typedoc@0.28.13:
- resolution: {integrity: sha512-dNWY8msnYB2a+7Audha+aTF1Pu3euiE7ySp53w8kEsXoYw7dMouV5A1UsTUY345aB152RHnmRMDiovuBi7BD+w==}
+ typedoc@0.28.14:
+ resolution: {integrity: sha512-ftJYPvpVfQvFzpkoSfHLkJybdA/geDJ8BGQt/ZnkkhnBYoYW6lBgPQXu6vqLxO4X75dA55hX8Af847H5KXlEFA==}
engines: {node: '>= 18', pnpm: '>= 10'}
hasBin: true
peerDependencies:
typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x
- typescript@5.9.2:
- resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==}
- engines: {node: '>=14.17'}
- hasBin: true
-
typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
@@ -10651,14 +10538,6 @@ packages:
yaml:
optional: true
- vitefu@1.1.1:
- resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==}
- peerDependencies:
- vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0
- peerDependenciesMeta:
- vite:
- optional: true
-
vitest@3.2.4:
resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
@@ -10711,18 +10590,21 @@ packages:
engines: {node: '>= 10.13.0'}
hasBin: true
- webpack-dev-middleware@5.3.4:
- resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==}
- engines: {node: '>= 12.13.0'}
+ webpack-dev-middleware@7.4.5:
+ resolution: {integrity: sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==}
+ engines: {node: '>= 18.12.0'}
peerDependencies:
- webpack: ^4.0.0 || ^5.0.0
+ webpack: ^5.0.0
+ peerDependenciesMeta:
+ webpack:
+ optional: true
- webpack-dev-server@4.15.2:
- resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==}
- engines: {node: '>= 12.13.0'}
+ webpack-dev-server@5.2.2:
+ resolution: {integrity: sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==}
+ engines: {node: '>= 18.12.0'}
hasBin: true
peerDependencies:
- webpack: ^4.37.0 || ^5.0.0
+ webpack: ^5.0.0
webpack-cli: '*'
peerDependenciesMeta:
webpack:
@@ -10856,6 +10738,10 @@ packages:
utf-8-validate:
optional: true
+ wsl-utils@0.1.0:
+ resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==}
+ engines: {node: '>=18'}
+
xdg-basedir@5.1.0:
resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==}
engines: {node: '>=12'}
@@ -10901,9 +10787,6 @@ packages:
resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==}
engines: {node: '>=12.20'}
- zimmerframe@1.1.4:
- resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==}
-
zod@3.25.76:
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
@@ -10936,6 +10819,34 @@ packages:
snapshots:
+ '@ai-sdk/gateway@1.0.40(zod@4.1.12)':
+ dependencies:
+ '@ai-sdk/provider': 2.0.0
+ '@ai-sdk/provider-utils': 3.0.12(zod@4.1.12)
+ '@vercel/oidc': 3.0.2
+ zod: 4.1.12
+
+ '@ai-sdk/provider-utils@3.0.12(zod@4.1.12)':
+ dependencies:
+ '@ai-sdk/provider': 2.0.0
+ '@standard-schema/spec': 1.0.0
+ eventsource-parser: 3.0.6
+ zod: 4.1.12
+
+ '@ai-sdk/provider@2.0.0':
+ dependencies:
+ json-schema: 0.4.0
+
+ '@ai-sdk/react@2.0.70(react@19.2.0)(zod@4.1.12)':
+ dependencies:
+ '@ai-sdk/provider-utils': 3.0.12(zod@4.1.12)
+ ai: 5.0.70(zod@4.1.12)
+ react: 19.2.0
+ swr: 2.3.6(react@19.2.0)
+ throttleit: 2.1.0
+ optionalDependencies:
+ zod: 4.1.12
+
'@algolia/abtesting@1.6.0':
dependencies:
'@algolia/client-common': 5.40.0
@@ -10943,30 +10854,24 @@ snapshots:
'@algolia/requester-fetch': 5.40.0
'@algolia/requester-node-http': 5.40.0
- '@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)':
+ '@algolia/autocomplete-core@1.19.2(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)':
dependencies:
- '@algolia/autocomplete-plugin-algolia-insights': 1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)
- '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)
+ '@algolia/autocomplete-plugin-algolia-insights': 1.19.2(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)
+ '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)
transitivePeerDependencies:
- '@algolia/client-search'
- algoliasearch
- search-insights
- '@algolia/autocomplete-plugin-algolia-insights@1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)':
+ '@algolia/autocomplete-plugin-algolia-insights@1.19.2(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)':
dependencies:
- '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)
+ '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)
search-insights: 2.17.3
transitivePeerDependencies:
- '@algolia/client-search'
- algoliasearch
- '@algolia/autocomplete-preset-algolia@1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)':
- dependencies:
- '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)
- '@algolia/client-search': 5.40.0
- algoliasearch: 5.40.0
-
- '@algolia/autocomplete-shared@1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)':
+ '@algolia/autocomplete-shared@1.19.2(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)':
dependencies:
'@algolia/client-search': 5.40.0
algoliasearch: 5.40.0
@@ -12307,14 +12212,17 @@ snapshots:
'@discoveryjs/json-ext@0.5.7': {}
- '@docsearch/css@3.9.0': {}
+ '@docsearch/css@4.2.0': {}
- '@docsearch/react@3.9.0(@algolia/client-search@5.40.0)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)':
+ '@docsearch/react@4.2.0(@algolia/client-search@5.40.0)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)':
dependencies:
- '@algolia/autocomplete-core': 1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)
- '@algolia/autocomplete-preset-algolia': 1.17.9(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)
- '@docsearch/css': 3.9.0
+ '@ai-sdk/react': 2.0.70(react@19.2.0)(zod@4.1.12)
+ '@algolia/autocomplete-core': 1.19.2(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)
+ '@docsearch/css': 4.2.0
+ ai: 5.0.70(zod@4.1.12)
algoliasearch: 5.40.0
+ marked: 16.4.0
+ zod: 4.1.12
optionalDependencies:
'@types/react': 19.2.2
react: 19.2.0
@@ -12323,7 +12231,7 @@ snapshots:
transitivePeerDependencies:
- '@algolia/client-search'
- '@docusaurus/babel@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@docusaurus/babel@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@babel/core': 7.28.4
'@babel/generator': 7.28.3
@@ -12335,8 +12243,8 @@ snapshots:
'@babel/runtime': 7.28.4
'@babel/runtime-corejs3': 7.28.4
'@babel/traverse': 7.28.4
- '@docusaurus/logger': 3.8.1
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/logger': 3.9.1
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
babel-plugin-dynamic-import-node: 2.3.3
fs-extra: 11.3.2
tslib: 2.8.1
@@ -12349,14 +12257,14 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/bundler@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
+ '@docusaurus/bundler@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)':
dependencies:
'@babel/core': 7.28.4
- '@docusaurus/babel': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/cssnano-preset': 3.8.1
- '@docusaurus/logger': 3.8.1
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/babel': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/cssnano-preset': 3.9.1
+ '@docusaurus/logger': 3.9.1
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
babel-loader: 9.2.1(@babel/core@7.28.4)(webpack@5.102.1(@swc/core@1.13.5))
clean-css: 5.3.3
copy-webpack-plugin: 11.0.0(webpack@5.102.1(@swc/core@1.13.5))
@@ -12368,7 +12276,7 @@ snapshots:
mini-css-extract-plugin: 2.9.4(webpack@5.102.1(@swc/core@1.13.5))
null-loader: 4.0.1(webpack@5.102.1(@swc/core@1.13.5))
postcss: 8.5.6
- postcss-loader: 7.3.4(postcss@8.5.6)(typescript@5.9.2)(webpack@5.102.1(@swc/core@1.13.5))
+ postcss-loader: 7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.13.5))
postcss-preset-env: 10.4.0(postcss@8.5.6)
terser-webpack-plugin: 5.3.14(@swc/core@1.13.5)(webpack@5.102.1(@swc/core@1.13.5))
tslib: 2.8.1
@@ -12376,7 +12284,7 @@ snapshots:
webpack: 5.102.1(@swc/core@1.13.5)
webpackbar: 6.0.1(webpack@5.102.1(@swc/core@1.13.5))
optionalDependencies:
- '@docusaurus/faster': 3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))
+ '@docusaurus/faster': 3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))
transitivePeerDependencies:
- '@parcel/css'
- '@rspack/core'
@@ -12392,15 +12300,15 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/core@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
+ '@docusaurus/core@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)':
dependencies:
- '@docusaurus/babel': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/bundler': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/logger': 3.8.1
- '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/babel': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/bundler': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/logger': 3.9.1
+ '@docusaurus/mdx-loader': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@mdx-js/react': 3.1.1(@types/react@19.2.2)(react@19.2.0)
boxen: 6.2.1
chalk: 4.1.2
@@ -12437,7 +12345,7 @@ snapshots:
update-notifier: 6.0.2
webpack: 5.102.1(@swc/core@1.13.5)
webpack-bundle-analyzer: 4.10.2
- webpack-dev-server: 4.15.2(webpack@5.102.1(@swc/core@1.13.5))
+ webpack-dev-server: 5.2.2(webpack@5.102.1(@swc/core@1.13.5))
webpack-merge: 6.0.1
transitivePeerDependencies:
- '@docusaurus/faster'
@@ -12456,16 +12364,16 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/cssnano-preset@3.8.1':
+ '@docusaurus/cssnano-preset@3.9.1':
dependencies:
cssnano-preset-advanced: 6.1.2(postcss@8.5.6)
postcss: 8.5.6
postcss-sort-media-queries: 5.2.0(postcss@8.5.6)
tslib: 2.8.1
- '@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))':
+ '@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))':
dependencies:
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@rspack/core': 1.5.8
'@swc/core': 1.13.5
'@swc/html': 1.13.20
@@ -12480,16 +12388,16 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/logger@3.8.1':
+ '@docusaurus/logger@3.9.1':
dependencies:
chalk: 4.1.2
tslib: 2.8.1
- '@docusaurus/mdx-loader@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@docusaurus/mdx-loader@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@docusaurus/logger': 3.8.1
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/logger': 3.9.1
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@mdx-js/mdx': 3.1.1
'@slorber/remark-comment': 1.0.0
escape-html: 1.0.3
@@ -12520,9 +12428,9 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/module-type-aliases@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@docusaurus/module-type-aliases@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@types/history': 4.7.11
'@types/react': 19.2.2
'@types/react-router-config': 5.0.11
@@ -12538,17 +12446,17 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/plugin-content-blog@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
- dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/logger': 3.8.1
- '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/plugin-content-blog@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@docusaurus/plugin-content-docs@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)':
+ dependencies:
+ '@docusaurus/core': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/logger': 3.9.1
+ '@docusaurus/mdx-loader': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/plugin-content-docs': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/theme-common': 3.9.1(@docusaurus/plugin-content-docs@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
cheerio: 1.0.0-rc.12
feed: 4.2.2
fs-extra: 11.3.2
@@ -12579,17 +12487,17 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
- dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/logger': 3.8.1
- '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/module-type-aliases': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/plugin-content-docs@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)':
+ dependencies:
+ '@docusaurus/core': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/logger': 3.9.1
+ '@docusaurus/mdx-loader': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/module-type-aliases': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/theme-common': 3.9.1(@docusaurus/plugin-content-docs@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@types/react-router-config': 5.0.11
combine-promises: 1.2.0
fs-extra: 11.3.2
@@ -12619,13 +12527,13 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-content-pages@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
+ '@docusaurus/plugin-content-pages@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/core': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/mdx-loader': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
fs-extra: 11.3.2
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
@@ -12649,12 +12557,12 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-css-cascade-layers@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
+ '@docusaurus/plugin-css-cascade-layers@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/core': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
tslib: 2.8.1
transitivePeerDependencies:
- '@docusaurus/faster'
@@ -12676,11 +12584,11 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-debug@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
+ '@docusaurus/plugin-debug@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/core': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
fs-extra: 11.3.2
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
@@ -12704,11 +12612,11 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-google-analytics@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
+ '@docusaurus/plugin-google-analytics@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/core': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
tslib: 2.8.1
@@ -12730,11 +12638,11 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-google-gtag@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
+ '@docusaurus/plugin-google-gtag@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/core': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@types/gtag.js': 0.0.12
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
@@ -12757,11 +12665,11 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-google-tag-manager@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
+ '@docusaurus/plugin-google-tag-manager@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/core': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
tslib: 2.8.1
@@ -12783,14 +12691,14 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-sitemap@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
+ '@docusaurus/plugin-sitemap@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/logger': 3.8.1
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/core': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/logger': 3.9.1
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
fs-extra: 11.3.2
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
@@ -12814,14 +12722,14 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/plugin-svgr@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
+ '@docusaurus/plugin-svgr@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)':
dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@svgr/core': 8.1.0(typescript@5.9.2)
- '@svgr/webpack': 8.1.0(typescript@5.9.2)
+ '@docusaurus/core': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@svgr/core': 8.1.0(typescript@5.9.3)
+ '@svgr/webpack': 8.1.0(typescript@5.9.3)
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
tslib: 2.8.1
@@ -12844,23 +12752,23 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/preset-classic@3.8.1(@algolia/client-search@5.40.0)(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)(typescript@5.9.2)':
- dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/plugin-content-blog': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/plugin-content-pages': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/plugin-css-cascade-layers': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/plugin-debug': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/plugin-google-analytics': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/plugin-google-gtag': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/plugin-google-tag-manager': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/plugin-sitemap': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/plugin-svgr': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/theme-classic': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/theme-search-algolia': 3.8.1(@algolia/client-search@5.40.0)(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)(typescript@5.9.2)
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/preset-classic@3.9.1(@algolia/client-search@5.40.0)(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)(typescript@5.9.3)':
+ dependencies:
+ '@docusaurus/core': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/plugin-content-blog': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@docusaurus/plugin-content-docs@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/plugin-content-docs': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/plugin-content-pages': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/plugin-css-cascade-layers': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/plugin-debug': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/plugin-google-analytics': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/plugin-google-gtag': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/plugin-google-tag-manager': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/plugin-sitemap': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/plugin-svgr': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/theme-classic': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/theme-common': 3.9.1(@docusaurus/plugin-content-docs@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/theme-search-algolia': 3.9.1(@algolia/client-search@5.40.0)(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)(typescript@5.9.3)
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
transitivePeerDependencies:
@@ -12889,24 +12797,23 @@ snapshots:
'@types/react': 19.2.2
react: 19.2.0
- '@docusaurus/theme-classic@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)':
- dependencies:
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/logger': 3.8.1
- '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/module-type-aliases': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/plugin-content-blog': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/plugin-content-pages': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/theme-translations': 3.8.1
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/theme-classic@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)':
+ dependencies:
+ '@docusaurus/core': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/logger': 3.9.1
+ '@docusaurus/mdx-loader': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/module-type-aliases': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/plugin-content-blog': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@docusaurus/plugin-content-docs@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/plugin-content-docs': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/plugin-content-pages': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/theme-common': 3.9.1(@docusaurus/plugin-content-docs@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/theme-translations': 3.9.1
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@mdx-js/react': 3.1.1(@types/react@19.2.2)(react@19.2.0)
clsx: 2.1.1
- copy-text-to-clipboard: 3.2.2
infima: 0.2.0-alpha.45
lodash: 4.17.21
nprogress: 0.2.0
@@ -12937,13 +12844,13 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/theme-common@3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@docusaurus/theme-common@3.9.1(@docusaurus/plugin-content-docs@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/module-type-aliases': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/mdx-loader': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/module-type-aliases': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/plugin-content-docs': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@types/history': 4.7.11
'@types/react': 19.2.2
'@types/react-router-config': 5.0.11
@@ -12961,16 +12868,16 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/theme-search-algolia@3.8.1(@algolia/client-search@5.40.0)(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)(typescript@5.9.2)':
+ '@docusaurus/theme-search-algolia@3.9.1(@algolia/client-search@5.40.0)(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)(typescript@5.9.3)':
dependencies:
- '@docsearch/react': 3.9.0(@algolia/client-search@5.40.0)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)
- '@docusaurus/core': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/logger': 3.8.1
- '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
- '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/theme-translations': 3.8.1
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-validation': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docsearch/react': 4.2.0(@algolia/client-search@5.40.0)(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(search-insights@2.17.3)
+ '@docusaurus/core': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/logger': 3.9.1
+ '@docusaurus/plugin-content-docs': 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
+ '@docusaurus/theme-common': 3.9.1(@docusaurus/plugin-content-docs@3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/theme-translations': 3.9.1
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-validation': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
algoliasearch: 5.40.0
algoliasearch-helper: 3.26.0(algoliasearch@5.40.0)
clsx: 2.1.1
@@ -13002,17 +12909,18 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@docusaurus/theme-translations@3.8.1':
+ '@docusaurus/theme-translations@3.9.1':
dependencies:
fs-extra: 11.3.2
tslib: 2.8.1
- '@docusaurus/tsconfig@3.8.1': {}
+ '@docusaurus/tsconfig@3.9.1': {}
- '@docusaurus/types@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@mdx-js/mdx': 3.1.1
'@types/history': 4.7.11
+ '@types/mdast': 4.0.4
'@types/react': 19.2.2
commander: 5.1.0
joi: 17.13.3
@@ -13029,9 +12937,9 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/utils-common@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@docusaurus/utils-common@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
tslib: 2.8.1
transitivePeerDependencies:
- '@swc/core'
@@ -13042,11 +12950,11 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/utils-validation@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@docusaurus/utils-validation@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@docusaurus/logger': 3.8.1
- '@docusaurus/utils': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/logger': 3.9.1
+ '@docusaurus/utils': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
fs-extra: 11.3.2
joi: 17.13.3
js-yaml: 4.1.0
@@ -13061,11 +12969,11 @@ snapshots:
- uglify-js
- webpack-cli
- '@docusaurus/utils@3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@docusaurus/utils@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
- '@docusaurus/logger': 3.8.1
- '@docusaurus/types': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@docusaurus/utils-common': 3.8.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/logger': 3.9.1
+ '@docusaurus/types': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@docusaurus/utils-common': 3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
escape-string-regexp: 4.0.0
execa: 5.1.1
file-loader: 6.2.0(webpack@5.102.1(@swc/core@1.13.5))
@@ -13093,18 +13001,6 @@ snapshots:
- uglify-js
- webpack-cli
- '@dotenvx/dotenvx@1.48.4':
- dependencies:
- commander: 11.1.0
- dotenv: 17.2.3
- eciesjs: 0.4.16
- execa: 5.1.1
- fdir: 6.5.0(picomatch@4.0.3)
- ignore: 5.3.2
- object-treeify: 1.1.33
- picomatch: 4.0.3
- which: 4.0.0
-
'@dotenvx/dotenvx@1.51.0':
dependencies:
commander: 11.1.0
@@ -13398,6 +13294,41 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5
+ '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)':
+ dependencies:
+ tslib: 2.8.1
+
+ '@jsonjoy.com/buffers@1.2.0(tslib@2.8.1)':
+ dependencies:
+ tslib: 2.8.1
+
+ '@jsonjoy.com/codegen@1.0.0(tslib@2.8.1)':
+ dependencies:
+ tslib: 2.8.1
+
+ '@jsonjoy.com/json-pack@1.20.0(tslib@2.8.1)':
+ dependencies:
+ '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1)
+ '@jsonjoy.com/buffers': 1.2.0(tslib@2.8.1)
+ '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1)
+ '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.8.1)
+ '@jsonjoy.com/util': 1.9.0(tslib@2.8.1)
+ hyperdyperid: 1.2.0
+ thingies: 2.5.0(tslib@2.8.1)
+ tslib: 2.8.1
+
+ '@jsonjoy.com/json-pointer@1.0.2(tslib@2.8.1)':
+ dependencies:
+ '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1)
+ '@jsonjoy.com/util': 1.9.0(tslib@2.8.1)
+ tslib: 2.8.1
+
+ '@jsonjoy.com/util@1.9.0(tslib@2.8.1)':
+ dependencies:
+ '@jsonjoy.com/buffers': 1.2.0(tslib@2.8.1)
+ '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1)
+ tslib: 2.8.1
+
'@leichtgewicht/ip-codec@2.0.5': {}
'@levischuck/tiny-cbor@0.2.11': {}
@@ -13533,9 +13464,6 @@ snapshots:
'@mjackson/node-fetch-server@0.2.0': {}
- '@mjackson/node-fetch-server@0.7.0':
- optional: true
-
'@module-federation/error-codes@0.18.0': {}
'@module-federation/runtime-core@0.18.0':
@@ -14860,7 +14788,7 @@ snapshots:
dependencies:
react: 19.2.0
- '@react-router/dev@7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1)':
+ '@react-router/dev@7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1)':
dependencies:
'@babel/core': 7.28.4
'@babel/generator': 7.28.3
@@ -14893,7 +14821,6 @@ snapshots:
vite-node: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
optionalDependencies:
'@react-router/serve': 7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3)
- '@vitejs/plugin-rsc': 0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
typescript: 5.9.3
transitivePeerDependencies:
- '@types/node'
@@ -14919,9 +14846,9 @@ snapshots:
optionalDependencies:
typescript: 5.9.3
- '@react-router/fs-routes@7.9.4(@react-router/dev@7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.3)':
+ '@react-router/fs-routes@7.9.4(@react-router/dev@7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.3)':
dependencies:
- '@react-router/dev': 7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(@vitejs/plugin-rsc@0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)))(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1)
+ '@react-router/dev': 7.9.4(@react-router/serve@7.9.4(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@5.9.3))(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(terser@5.44.0)(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(yaml@2.8.1)
minimatch: 9.0.5
optionalDependencies:
typescript: 5.9.3
@@ -14970,9 +14897,9 @@ snapshots:
'@repeaterjs/repeater@3.0.6': {}
- '@rollup/plugin-commonjs@28.0.6(rollup@4.50.2)':
+ '@rollup/plugin-commonjs@28.0.6(rollup@4.52.4)':
dependencies:
- '@rollup/pluginutils': 5.3.0(rollup@4.50.2)
+ '@rollup/pluginutils': 5.3.0(rollup@4.52.4)
commondir: 1.0.1
estree-walker: 2.0.2
fdir: 6.5.0(picomatch@4.0.3)
@@ -14980,183 +14907,120 @@ snapshots:
magic-string: 0.30.19
picomatch: 4.0.3
optionalDependencies:
- rollup: 4.50.2
+ rollup: 4.52.4
- '@rollup/plugin-inject@5.0.5(rollup@4.50.2)':
+ '@rollup/plugin-inject@5.0.5(rollup@4.52.4)':
dependencies:
- '@rollup/pluginutils': 5.3.0(rollup@4.50.2)
+ '@rollup/pluginutils': 5.3.0(rollup@4.52.4)
estree-walker: 2.0.2
magic-string: 0.30.19
optionalDependencies:
- rollup: 4.50.2
+ rollup: 4.52.4
- '@rollup/plugin-json@6.1.0(rollup@4.50.2)':
+ '@rollup/plugin-json@6.1.0(rollup@4.52.4)':
dependencies:
- '@rollup/pluginutils': 5.3.0(rollup@4.50.2)
+ '@rollup/pluginutils': 5.3.0(rollup@4.52.4)
optionalDependencies:
- rollup: 4.50.2
+ rollup: 4.52.4
- '@rollup/plugin-node-resolve@16.0.1(rollup@4.50.2)':
+ '@rollup/plugin-node-resolve@16.0.3(rollup@4.52.4)':
dependencies:
- '@rollup/pluginutils': 5.3.0(rollup@4.50.2)
+ '@rollup/pluginutils': 5.3.0(rollup@4.52.4)
'@types/resolve': 1.20.2
deepmerge: 4.3.1
is-module: 1.0.0
resolve: 1.22.10
optionalDependencies:
- rollup: 4.50.2
+ rollup: 4.52.4
- '@rollup/plugin-terser@0.4.4(rollup@4.50.2)':
+ '@rollup/plugin-terser@0.4.4(rollup@4.52.4)':
dependencies:
serialize-javascript: 6.0.2
smob: 1.5.0
terser: 5.44.0
optionalDependencies:
- rollup: 4.50.2
+ rollup: 4.52.4
- '@rollup/plugin-typescript@12.1.4(rollup@4.50.2)(tslib@2.8.1)(typescript@5.9.2)':
+ '@rollup/plugin-typescript@12.1.4(rollup@4.52.4)(tslib@2.8.1)(typescript@5.9.3)':
dependencies:
- '@rollup/pluginutils': 5.3.0(rollup@4.50.2)
+ '@rollup/pluginutils': 5.3.0(rollup@4.52.4)
resolve: 1.22.10
- typescript: 5.9.2
+ typescript: 5.9.3
optionalDependencies:
- rollup: 4.50.2
+ rollup: 4.52.4
tslib: 2.8.1
- '@rollup/pluginutils@5.3.0(rollup@4.50.2)':
+ '@rollup/pluginutils@5.3.0(rollup@4.52.4)':
dependencies:
'@types/estree': 1.0.8
estree-walker: 2.0.2
picomatch: 4.0.3
optionalDependencies:
- rollup: 4.50.2
-
- '@rollup/rollup-android-arm-eabi@4.50.2':
- optional: true
+ rollup: 4.52.4
'@rollup/rollup-android-arm-eabi@4.52.4':
optional: true
- '@rollup/rollup-android-arm64@4.50.2':
- optional: true
-
'@rollup/rollup-android-arm64@4.52.4':
optional: true
- '@rollup/rollup-darwin-arm64@4.50.2':
- optional: true
-
'@rollup/rollup-darwin-arm64@4.52.4':
optional: true
- '@rollup/rollup-darwin-x64@4.50.2':
- optional: true
-
'@rollup/rollup-darwin-x64@4.52.4':
optional: true
- '@rollup/rollup-freebsd-arm64@4.50.2':
- optional: true
-
'@rollup/rollup-freebsd-arm64@4.52.4':
optional: true
- '@rollup/rollup-freebsd-x64@4.50.2':
- optional: true
-
'@rollup/rollup-freebsd-x64@4.52.4':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.50.2':
- optional: true
-
'@rollup/rollup-linux-arm-gnueabihf@4.52.4':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.50.2':
- optional: true
-
'@rollup/rollup-linux-arm-musleabihf@4.52.4':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.50.2':
- optional: true
-
'@rollup/rollup-linux-arm64-gnu@4.52.4':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.50.2':
- optional: true
-
'@rollup/rollup-linux-arm64-musl@4.52.4':
optional: true
- '@rollup/rollup-linux-loong64-gnu@4.50.2':
- optional: true
-
'@rollup/rollup-linux-loong64-gnu@4.52.4':
optional: true
- '@rollup/rollup-linux-ppc64-gnu@4.50.2':
- optional: true
-
'@rollup/rollup-linux-ppc64-gnu@4.52.4':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.50.2':
- optional: true
-
'@rollup/rollup-linux-riscv64-gnu@4.52.4':
optional: true
- '@rollup/rollup-linux-riscv64-musl@4.50.2':
- optional: true
-
'@rollup/rollup-linux-riscv64-musl@4.52.4':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.50.2':
- optional: true
-
'@rollup/rollup-linux-s390x-gnu@4.52.4':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.50.2':
- optional: true
-
'@rollup/rollup-linux-x64-gnu@4.52.4':
optional: true
- '@rollup/rollup-linux-x64-musl@4.50.2':
- optional: true
-
'@rollup/rollup-linux-x64-musl@4.52.4':
optional: true
- '@rollup/rollup-openharmony-arm64@4.50.2':
- optional: true
-
'@rollup/rollup-openharmony-arm64@4.52.4':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.50.2':
- optional: true
-
'@rollup/rollup-win32-arm64-msvc@4.52.4':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.50.2':
- optional: true
-
'@rollup/rollup-win32-ia32-msvc@4.52.4':
optional: true
'@rollup/rollup-win32-x64-gnu@4.52.4':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.50.2':
- optional: true
-
'@rollup/rollup-win32-x64-msvc@4.52.4':
optional: true
@@ -15482,6 +15346,8 @@ snapshots:
micromark-util-character: 1.2.0
micromark-util-symbol: 1.1.0
+ '@standard-schema/spec@1.0.0': {}
+
'@standard-schema/utils@0.3.0': {}
'@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.28.4)':
@@ -15528,12 +15394,12 @@ snapshots:
'@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.28.4)
'@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.28.4)
- '@svgr/core@8.1.0(typescript@5.9.2)':
+ '@svgr/core@8.1.0(typescript@5.9.3)':
dependencies:
'@babel/core': 7.28.4
'@svgr/babel-preset': 8.1.0(@babel/core@7.28.4)
camelcase: 6.3.0
- cosmiconfig: 8.3.6(typescript@5.9.2)
+ cosmiconfig: 8.3.6(typescript@5.9.3)
snake-case: 3.0.4
transitivePeerDependencies:
- supports-color
@@ -15544,35 +15410,35 @@ snapshots:
'@babel/types': 7.28.4
entities: 4.5.0
- '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.9.2))':
+ '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.9.3))':
dependencies:
'@babel/core': 7.28.4
'@svgr/babel-preset': 8.1.0(@babel/core@7.28.4)
- '@svgr/core': 8.1.0(typescript@5.9.2)
+ '@svgr/core': 8.1.0(typescript@5.9.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.9.2))(typescript@5.9.2)':
+ '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.9.3))(typescript@5.9.3)':
dependencies:
- '@svgr/core': 8.1.0(typescript@5.9.2)
- cosmiconfig: 8.3.6(typescript@5.9.2)
+ '@svgr/core': 8.1.0(typescript@5.9.3)
+ cosmiconfig: 8.3.6(typescript@5.9.3)
deepmerge: 4.3.1
svgo: 3.3.2
transitivePeerDependencies:
- typescript
- '@svgr/webpack@8.1.0(typescript@5.9.2)':
+ '@svgr/webpack@8.1.0(typescript@5.9.3)':
dependencies:
'@babel/core': 7.28.4
'@babel/plugin-transform-react-constant-elements': 7.27.1(@babel/core@7.28.4)
'@babel/preset-env': 7.28.3(@babel/core@7.28.4)
'@babel/preset-react': 7.27.1(@babel/core@7.28.4)
'@babel/preset-typescript': 7.27.1(@babel/core@7.28.4)
- '@svgr/core': 8.1.0(typescript@5.9.2)
- '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.9.2))
- '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.9.2))(typescript@5.9.2)
+ '@svgr/core': 8.1.0(typescript@5.9.3)
+ '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3))
+ '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3))(typescript@5.9.3)
transitivePeerDependencies:
- supports-color
- typescript
@@ -16918,7 +16784,7 @@ snapshots:
'@types/connect-history-api-fallback@1.5.4':
dependencies:
- '@types/express-serve-static-core': 5.1.0
+ '@types/express-serve-static-core': 4.19.7
'@types/node': 24.7.2
'@types/connect@3.4.38':
@@ -16980,13 +16846,6 @@ snapshots:
'@types/range-parser': 1.2.7
'@types/send': 1.2.0
- '@types/express-serve-static-core@5.1.0':
- dependencies:
- '@types/node': 24.7.2
- '@types/qs': 6.14.0
- '@types/range-parser': 1.2.7
- '@types/send': 1.2.0
-
'@types/express@4.17.23':
dependencies:
'@types/body-parser': 1.19.6
@@ -17144,11 +17003,11 @@ snapshots:
dependencies:
'@types/node': 24.7.2
- '@types/retry@0.12.0': {}
+ '@types/retry@0.12.2': {}
'@types/sax@1.2.7':
dependencies:
- '@types/node': 17.0.45
+ '@types/node': 24.7.2
'@types/send@0.17.5':
dependencies:
@@ -17205,6 +17064,8 @@ snapshots:
'@ungap/structured-clone@1.3.0': {}
+ '@vercel/oidc@3.0.2': {}
+
'@vis.gl/react-mapbox@8.1.0(mapbox-gl@3.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
react: 19.2.0
@@ -17218,20 +17079,6 @@ snapshots:
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
- '@vitejs/plugin-rsc@0.4.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))':
- dependencies:
- '@mjackson/node-fetch-server': 0.7.0
- es-module-lexer: 1.7.0
- estree-walker: 3.0.3
- magic-string: 0.30.19
- periscopic: 4.0.2
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- turbo-stream: 3.1.0
- vite: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
- vitefu: 1.1.1(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
- optional: true
-
'@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))':
dependencies:
'@ampproject/remapping': 2.3.0
@@ -17275,7 +17122,7 @@ snapshots:
dependencies:
'@vitest/utils': 3.2.4
pathe: 2.0.3
- strip-literal: 3.0.0
+ strip-literal: 3.1.0
'@vitest/snapshot@3.2.4':
dependencies:
@@ -17285,7 +17132,7 @@ snapshots:
'@vitest/spy@3.2.4':
dependencies:
- tinyspy: 4.0.3
+ tinyspy: 4.0.4
'@vitest/utils@3.2.4':
dependencies:
@@ -17409,6 +17256,14 @@ snapshots:
clean-stack: 2.2.0
indent-string: 4.0.0
+ ai@5.0.70(zod@4.1.12):
+ dependencies:
+ '@ai-sdk/gateway': 1.0.40(zod@4.1.12)
+ '@ai-sdk/provider': 2.0.0
+ '@ai-sdk/provider-utils': 3.0.12(zod@4.1.12)
+ '@opentelemetry/api': 1.9.0
+ zod: 4.1.12
+
ajv-formats@2.1.1(ajv@8.17.1):
optionalDependencies:
ajv: 8.17.1
@@ -17728,6 +17583,10 @@ snapshots:
buffer-from@1.1.2: {}
+ bundle-name@4.1.0:
+ dependencies:
+ run-applescript: 7.1.0
+
but-unzip@0.1.7: {}
bytes@3.0.0: {}
@@ -18026,8 +17885,6 @@ snapshots:
cookie@1.0.2: {}
- copy-text-to-clipboard@3.2.2: {}
-
copy-webpack-plugin@11.0.0(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
fast-glob: 3.3.3
@@ -18048,14 +17905,14 @@ snapshots:
core-util-is@1.0.3: {}
- cosmiconfig@8.3.6(typescript@5.9.2):
+ cosmiconfig@8.3.6(typescript@5.9.3):
dependencies:
import-fresh: 3.3.1
js-yaml: 4.1.0
parse-json: 5.2.0
path-type: 4.0.0
optionalDependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
cross-spawn@7.0.6:
dependencies:
@@ -18313,9 +18170,12 @@ snapshots:
deepmerge@4.3.1: {}
- default-gateway@6.0.3:
+ default-browser-id@5.0.0: {}
+
+ default-browser@5.2.1:
dependencies:
- execa: 5.1.1
+ bundle-name: 4.1.0
+ default-browser-id: 5.0.0
defer-to-connect@2.0.1: {}
@@ -18327,6 +18187,8 @@ snapshots:
define-lazy-prop@2.0.0: {}
+ define-lazy-prop@3.0.0: {}
+
define-properties@1.2.1:
dependencies:
define-data-property: 1.1.4
@@ -18372,10 +18234,10 @@ snapshots:
dependencies:
'@leichtgewicht/ip-codec': 2.0.5
- docusaurus-plugin-typedoc@1.4.2(typedoc-plugin-markdown@4.9.0(typedoc@0.28.13(typescript@5.9.2))):
+ docusaurus-plugin-typedoc@1.4.2(typedoc-plugin-markdown@4.9.0(typedoc@0.28.14(typescript@5.9.3))):
dependencies:
- typedoc-docusaurus-theme: 1.4.2(typedoc-plugin-markdown@4.9.0(typedoc@0.28.13(typescript@5.9.2)))
- typedoc-plugin-markdown: 4.9.0(typedoc@0.28.13(typescript@5.9.2))
+ typedoc-docusaurus-theme: 1.4.2(typedoc-plugin-markdown@4.9.0(typedoc@0.28.14(typescript@5.9.3)))
+ typedoc-plugin-markdown: 4.9.0(typedoc@0.28.14(typescript@5.9.3))
dom-converter@0.2.0:
dependencies:
@@ -18442,14 +18304,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- drizzle-orm@0.44.4(@electric-sql/pglite@0.3.11)(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(kysely@0.28.8)(postgres@3.4.7):
- optionalDependencies:
- '@electric-sql/pglite': 0.3.11
- '@opentelemetry/api': 1.9.0
- '@types/pg': 8.15.5
- kysely: 0.28.8
- postgres: 3.4.7
-
drizzle-orm@0.44.6(@electric-sql/pglite@0.3.11)(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(kysely@0.28.8)(postgres@3.4.7):
optionalDependencies:
'@electric-sql/pglite': 0.3.11
@@ -18761,6 +18615,8 @@ snapshots:
events@3.3.0: {}
+ eventsource-parser@3.0.6: {}
+
execa@5.1.1:
dependencies:
cross-spawn: 7.0.6
@@ -19001,8 +18857,6 @@ snapshots:
jsonfile: 4.0.0
universalify: 0.1.2
- fs-monkey@1.1.0: {}
-
fs.realpath@1.0.0: {}
fsevents@2.3.3:
@@ -19106,6 +18960,10 @@ snapshots:
dependencies:
is-glob: 4.0.3
+ glob-to-regex.js@1.2.0(tslib@2.8.1):
+ dependencies:
+ tslib: 2.8.1
+
glob-to-regexp@0.4.1: {}
glob@10.4.5:
@@ -19126,15 +18984,6 @@ snapshots:
package-json-from-dist: 1.0.1
path-scurry: 2.0.0
- glob@7.2.3:
- dependencies:
- fs.realpath: 1.0.0
- inflight: 1.0.6
- inherits: 2.0.4
- minimatch: 3.1.2
- once: 1.4.0
- path-is-absolute: 1.0.1
-
glob@9.3.5:
dependencies:
fs.realpath: 1.0.0
@@ -19373,8 +19222,6 @@ snapshots:
readable-stream: 2.3.8
wbuf: 1.7.3
- html-entities@2.6.0: {}
-
html-escaper@2.0.2: {}
html-minifier-terser@6.1.0:
@@ -19498,6 +19345,8 @@ snapshots:
human-signals@2.1.0: {}
+ hyperdyperid@1.2.0: {}
+
iconv-lite@0.4.24:
dependencies:
safer-buffer: 2.1.2
@@ -19536,11 +19385,6 @@ snapshots:
infima@0.2.0-alpha.45: {}
- inflight@1.0.6:
- dependencies:
- once: 1.4.0
- wrappy: 1.0.2
-
inherits@2.0.3: {}
inherits@2.0.4: {}
@@ -19628,6 +19472,8 @@ snapshots:
is-docker@2.2.1: {}
+ is-docker@3.0.0: {}
+
is-extendable@0.1.1: {}
is-extendable@1.0.1:
@@ -19656,6 +19502,10 @@ snapshots:
is-hexadecimal@2.0.1: {}
+ is-inside-container@1.0.0:
+ dependencies:
+ is-docker: 3.0.0
+
is-installed-globally@0.4.0:
dependencies:
global-dirs: 3.0.1
@@ -19667,6 +19517,8 @@ snapshots:
is-negative-zero@2.0.3: {}
+ is-network-error@1.3.0: {}
+
is-npm@6.1.0: {}
is-number-object@1.1.1:
@@ -19696,11 +19548,6 @@ snapshots:
dependencies:
'@types/estree': 1.0.8
- is-reference@3.0.3:
- dependencies:
- '@types/estree': 1.0.8
- optional: true
-
is-regex@1.2.1:
dependencies:
call-bound: 1.0.4
@@ -19756,6 +19603,10 @@ snapshots:
dependencies:
is-docker: 2.2.1
+ is-wsl@3.1.0:
+ dependencies:
+ is-inside-container: 1.0.0
+
is-yarn-global@0.4.1: {}
isarray@0.0.1: {}
@@ -19866,6 +19717,8 @@ snapshots:
json-schema-traverse@1.0.0: {}
+ json-schema@0.4.0: {}
+
json-stringify-pretty-compact@3.0.0: {}
json5@2.2.3: {}
@@ -20073,7 +19926,7 @@ snapshots:
lru-cache@7.18.3: {}
- lucide-react@0.544.0(react@19.2.0):
+ lucide-react@0.545.0(react@19.2.0):
dependencies:
react: 19.2.0
@@ -20150,6 +20003,8 @@ snapshots:
markdown-table@3.0.4: {}
+ marked@16.4.0: {}
+
marked@7.0.4: {}
martinez-polygon-clipping@0.7.4:
@@ -20361,9 +20216,14 @@ snapshots:
media-typer@0.3.0: {}
- memfs@3.5.3:
+ memfs@4.49.0:
dependencies:
- fs-monkey: 1.1.0
+ '@jsonjoy.com/json-pack': 1.20.0(tslib@2.8.1)
+ '@jsonjoy.com/util': 1.9.0(tslib@2.8.1)
+ glob-to-regex.js: 1.2.0(tslib@2.8.1)
+ thingies: 2.5.0(tslib@2.8.1)
+ tree-dump: 1.1.0(tslib@2.8.1)
+ tslib: 2.8.1
meow@9.0.0:
dependencies:
@@ -20704,6 +20564,10 @@ snapshots:
dependencies:
mime-db: 1.52.0
+ mime-types@3.0.1:
+ dependencies:
+ mime-db: 1.54.0
+
mime@1.6.0: {}
mimic-fn@2.1.0: {}
@@ -20941,6 +20805,13 @@ snapshots:
dependencies:
mimic-fn: 2.1.0
+ open@10.2.0:
+ dependencies:
+ default-browser: 5.2.1
+ define-lazy-prop: 3.0.0
+ is-inside-container: 1.0.0
+ wsl-utils: 0.1.0
+
open@8.4.2:
dependencies:
define-lazy-prop: 2.0.0
@@ -21002,9 +20873,10 @@ snapshots:
eventemitter3: 4.0.7
p-timeout: 3.2.0
- p-retry@4.6.2:
+ p-retry@6.2.1:
dependencies:
- '@types/retry': 0.12.0
+ '@types/retry': 0.12.2
+ is-network-error: 1.3.0
retry: 0.13.1
p-timeout@3.2.0:
@@ -21085,8 +20957,6 @@ snapshots:
path-exists@5.0.0: {}
- path-is-absolute@1.0.1: {}
-
path-is-inside@1.0.2: {}
path-key@3.1.1: {}
@@ -21125,13 +20995,6 @@ snapshots:
peberminta@0.9.0: {}
- periscopic@4.0.2:
- dependencies:
- '@types/estree': 1.0.8
- is-reference: 3.0.3
- zimmerframe: 1.1.4
- optional: true
-
pg-int8@1.0.1: {}
pg-protocol@1.10.3: {}
@@ -21311,9 +21174,9 @@ snapshots:
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
- postcss-loader@7.3.4(postcss@8.5.6)(typescript@5.9.2)(webpack@5.102.1(@swc/core@1.13.5)):
+ postcss-loader@7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
- cosmiconfig: 8.3.6(typescript@5.9.2)
+ cosmiconfig: 8.3.6(typescript@5.9.3)
jiti: 1.21.7
postcss: 8.5.6
semver: 7.7.3
@@ -21840,7 +21703,7 @@ snapshots:
minimist: 1.2.8
strip-json-comments: 2.0.1
- react-day-picker@9.10.0(react@19.2.0):
+ react-day-picker@9.11.1(react@19.2.0):
dependencies:
'@date-fns/tz': 1.4.1
date-fns: 4.1.0
@@ -22234,13 +22097,13 @@ snapshots:
react-router: 7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
zod: 3.25.76
- remix-utils@8.8.0(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)(zod@3.25.76):
+ remix-utils@9.0.0(@standard-schema/spec@1.0.0)(react-router@7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0):
dependencies:
type-fest: 4.41.0
optionalDependencies:
+ '@standard-schema/spec': 1.0.0
react: 19.2.0
react-router: 7.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- zod: 3.25.76
renderkid@3.0.0:
dependencies:
@@ -22300,45 +22163,14 @@ snapshots:
reusify@1.1.0: {}
- rimraf@3.0.2:
- dependencies:
- glob: 7.2.3
-
robust-predicates@2.0.4: {}
robust-predicates@3.0.2: {}
- rollup-plugin-polyfill-node@0.13.0(rollup@4.50.2):
- dependencies:
- '@rollup/plugin-inject': 5.0.5(rollup@4.50.2)
- rollup: 4.50.2
-
- rollup@4.50.2:
+ rollup-plugin-polyfill-node@0.13.0(rollup@4.52.4):
dependencies:
- '@types/estree': 1.0.8
- optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.50.2
- '@rollup/rollup-android-arm64': 4.50.2
- '@rollup/rollup-darwin-arm64': 4.50.2
- '@rollup/rollup-darwin-x64': 4.50.2
- '@rollup/rollup-freebsd-arm64': 4.50.2
- '@rollup/rollup-freebsd-x64': 4.50.2
- '@rollup/rollup-linux-arm-gnueabihf': 4.50.2
- '@rollup/rollup-linux-arm-musleabihf': 4.50.2
- '@rollup/rollup-linux-arm64-gnu': 4.50.2
- '@rollup/rollup-linux-arm64-musl': 4.50.2
- '@rollup/rollup-linux-loong64-gnu': 4.50.2
- '@rollup/rollup-linux-ppc64-gnu': 4.50.2
- '@rollup/rollup-linux-riscv64-gnu': 4.50.2
- '@rollup/rollup-linux-riscv64-musl': 4.50.2
- '@rollup/rollup-linux-s390x-gnu': 4.50.2
- '@rollup/rollup-linux-x64-gnu': 4.50.2
- '@rollup/rollup-linux-x64-musl': 4.50.2
- '@rollup/rollup-openharmony-arm64': 4.50.2
- '@rollup/rollup-win32-arm64-msvc': 4.50.2
- '@rollup/rollup-win32-ia32-msvc': 4.50.2
- '@rollup/rollup-win32-x64-msvc': 4.50.2
- fsevents: 2.3.3
+ '@rollup/plugin-inject': 5.0.5(rollup@4.52.4)
+ rollup: 4.52.4
rollup@4.52.4:
dependencies:
@@ -22377,6 +22209,8 @@ snapshots:
postcss: 8.5.6
strip-json-comments: 3.1.1
+ run-applescript@7.1.0: {}
+
run-parallel@1.2.0:
dependencies:
queue-microtask: 1.2.3
@@ -22736,8 +22570,6 @@ snapshots:
std-env@3.10.0: {}
- std-env@3.9.0: {}
-
stop-iteration-iterator@1.1.0:
dependencies:
es-errors: 1.3.0
@@ -22819,7 +22651,7 @@ snapshots:
strip-json-comments@3.1.1: {}
- strip-literal@3.0.0:
+ strip-literal@3.1.0:
dependencies:
js-tokens: 9.0.1
@@ -22884,6 +22716,12 @@ snapshots:
dependencies:
tinyqueue: 2.0.3
+ swr@2.3.6(react@19.2.0):
+ dependencies:
+ dequal: 2.0.3
+ react: 19.2.0
+ use-sync-external-store: 1.6.0(react@19.2.0)
+
tailwind-merge@3.3.1: {}
tailwindcss-animate@1.0.7(tailwindcss@4.1.14):
@@ -22928,6 +22766,12 @@ snapshots:
glob: 10.4.5
minimatch: 9.0.5
+ thingies@2.5.0(tslib@2.8.1):
+ dependencies:
+ tslib: 2.8.1
+
+ throttleit@2.1.0: {}
+
thunky@1.1.0: {}
tiny-invariant@1.3.3: {}
@@ -22953,7 +22797,7 @@ snapshots:
tinyrainbow@2.0.0: {}
- tinyspy@4.0.3: {}
+ tinyspy@4.0.4: {}
to-regex-range@5.0.1:
dependencies:
@@ -22985,6 +22829,10 @@ snapshots:
typedarray.prototype.slice: 1.0.5
which-typed-array: 1.1.19
+ tree-dump@1.1.0(tslib@2.8.1):
+ dependencies:
+ tslib: 2.8.1
+
trim-lines@3.0.1: {}
trim-newlines@3.0.1: {}
@@ -23015,9 +22863,6 @@ snapshots:
turbo-linux-arm64@2.5.8:
optional: true
- turbo-stream@3.1.0:
- optional: true
-
turbo-windows-64@2.5.8:
optional: true
@@ -23100,29 +22945,27 @@ snapshots:
typed-array-buffer: 1.0.3
typed-array-byte-offset: 1.0.4
- typedoc-docusaurus-theme@1.4.2(typedoc-plugin-markdown@4.9.0(typedoc@0.28.13(typescript@5.9.2))):
+ typedoc-docusaurus-theme@1.4.2(typedoc-plugin-markdown@4.9.0(typedoc@0.28.14(typescript@5.9.3))):
dependencies:
- typedoc-plugin-markdown: 4.9.0(typedoc@0.28.13(typescript@5.9.2))
+ typedoc-plugin-markdown: 4.9.0(typedoc@0.28.14(typescript@5.9.3))
- typedoc-plugin-markdown@4.9.0(typedoc@0.28.13(typescript@5.9.2)):
+ typedoc-plugin-markdown@4.9.0(typedoc@0.28.14(typescript@5.9.3)):
dependencies:
- typedoc: 0.28.13(typescript@5.9.2)
+ typedoc: 0.28.14(typescript@5.9.3)
- typedoc-plugin-missing-exports@4.1.0(typedoc@0.28.13(typescript@5.9.2)):
+ typedoc-plugin-missing-exports@4.1.2(typedoc@0.28.14(typescript@5.9.3)):
dependencies:
- typedoc: 0.28.13(typescript@5.9.2)
+ typedoc: 0.28.14(typescript@5.9.3)
- typedoc@0.28.13(typescript@5.9.2):
+ typedoc@0.28.14(typescript@5.9.3):
dependencies:
'@gerrit0/mini-shiki': 3.13.1
lunr: 2.3.9
markdown-it: 14.1.0
minimatch: 9.0.5
- typescript: 5.9.2
+ typescript: 5.9.3
yaml: 2.8.1
- typescript@5.9.2: {}
-
typescript@5.9.3: {}
typewise-core@1.2.0: {}
@@ -23384,11 +23227,6 @@ snapshots:
terser: 5.44.0
yaml: 2.8.1
- vitefu@1.1.1(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)):
- optionalDependencies:
- vite: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
- optional: true
-
vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1):
dependencies:
'@types/chai': 5.2.2
@@ -23405,7 +23243,7 @@ snapshots:
magic-string: 0.30.19
pathe: 2.0.3
picomatch: 4.0.3
- std-env: 3.9.0
+ std-env: 3.10.0
tinybench: 2.9.0
tinyexec: 0.3.2
tinyglobby: 0.2.15
@@ -23466,20 +23304,23 @@ snapshots:
- bufferutil
- utf-8-validate
- webpack-dev-middleware@5.3.4(webpack@5.102.1(@swc/core@1.13.5)):
+ webpack-dev-middleware@7.4.5(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
colorette: 2.0.20
- memfs: 3.5.3
- mime-types: 2.1.35
+ memfs: 4.49.0
+ mime-types: 3.0.1
+ on-finished: 2.4.1
range-parser: 1.2.1
schema-utils: 4.3.3
+ optionalDependencies:
webpack: 5.102.1(@swc/core@1.13.5)
- webpack-dev-server@4.15.2(webpack@5.102.1(@swc/core@1.13.5)):
+ webpack-dev-server@5.2.2(webpack@5.102.1(@swc/core@1.13.5)):
dependencies:
'@types/bonjour': 3.5.13
'@types/connect-history-api-fallback': 1.5.4
'@types/express': 4.17.23
+ '@types/express-serve-static-core': 4.19.7
'@types/serve-index': 1.9.4
'@types/serve-static': 1.15.9
'@types/sockjs': 0.3.36
@@ -23490,22 +23331,19 @@ snapshots:
colorette: 2.0.20
compression: 1.8.1
connect-history-api-fallback: 2.0.0
- default-gateway: 6.0.3
express: 4.21.2
graceful-fs: 4.2.11
- html-entities: 2.6.0
http-proxy-middleware: 2.0.9(@types/express@4.17.23)
ipaddr.js: 2.2.0
launch-editor: 2.11.1
- open: 8.4.2
- p-retry: 4.6.2
- rimraf: 3.0.2
+ open: 10.2.0
+ p-retry: 6.2.1
schema-utils: 4.3.3
selfsigned: 2.4.1
serve-index: 1.9.1
sockjs: 0.3.24
spdy: 4.0.2
- webpack-dev-middleware: 5.3.4(webpack@5.102.1(@swc/core@1.13.5))
+ webpack-dev-middleware: 7.4.5(webpack@5.102.1(@swc/core@1.13.5))
ws: 8.18.3
optionalDependencies:
webpack: 5.102.1(@swc/core@1.13.5)
@@ -23679,6 +23517,10 @@ snapshots:
ws@8.18.3: {}
+ wsl-utils@0.1.0:
+ dependencies:
+ is-wsl: 3.1.0
+
xdg-basedir@5.1.0: {}
xml-js@1.6.11:
@@ -23705,9 +23547,6 @@ snapshots:
yocto-queue@1.2.1: {}
- zimmerframe@1.1.4:
- optional: true
-
zod@3.25.76: {}
zod@4.1.12: {}
From 78e376ae4da6569e6697cf1daa8e9281eed582bf Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Wed, 15 Oct 2025 09:58:17 +0200
Subject: [PATCH 041/243] refactor: move vite-node to devDependency and fix
docusaures/faster
---
fdm-app/package.json | 2 +-
fdm-docs/package.json | 2 +-
pnpm-lock.yaml | 8 ++++----
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/fdm-app/package.json b/fdm-app/package.json
index dad58b4d4..1e9a164f6 100644
--- a/fdm-app/package.json
+++ b/fdm-app/package.json
@@ -76,7 +76,6 @@
"tailwind-merge": "^3.3.1",
"tailwindcss-animate": "^1.0.7",
"validator": "^13.15.15",
- "vite-node": "^3.2.4",
"zod": "^3.25.76",
"zustand": "^5.0.8"
},
@@ -101,6 +100,7 @@
"tailwindcss": "^4.1.14",
"typescript": "catalog:",
"vite": "catalog:",
+ "vite-node": "^3.2.4",
"vite-tsconfig-paths": "catalog:"
},
"engines": {
diff --git a/fdm-docs/package.json b/fdm-docs/package.json
index daf8cc50f..2fd17d736 100644
--- a/fdm-docs/package.json
+++ b/fdm-docs/package.json
@@ -20,7 +20,7 @@
},
"dependencies": {
"@docusaurus/core": "3.9.1",
- "@docusaurus/faster": "^3.9.1",
+ "@docusaurus/faster": "3.9.1",
"@docusaurus/preset-classic": "3.9.1",
"@mdx-js/react": "^3.1.1",
"clsx": "^2.1.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4ce7e0eda..6a959257b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -265,9 +265,6 @@ importers:
validator:
specifier: ^13.15.15
version: 13.15.15
- vite-node:
- specifier: ^3.2.4
- version: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
zod:
specifier: ^3.25.76
version: 3.25.76
@@ -326,6 +323,9 @@ importers:
vite:
specifier: 'catalog:'
version: 7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
+ vite-node:
+ specifier: ^3.2.4
+ version: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)
vite-tsconfig-paths:
specifier: 'catalog:'
version: 5.1.4(typescript@5.9.3)(vite@7.1.10(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
@@ -513,7 +513,7 @@ importers:
specifier: 3.9.1
version: 3.9.1(@docusaurus/faster@3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))(@rspack/core@1.5.8)(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
'@docusaurus/faster':
- specifier: ^3.9.1
+ specifier: 3.9.1
version: 3.9.1(@docusaurus/types@3.9.1(@swc/core@1.13.5)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))
'@docusaurus/preset-classic':
specifier: 3.9.1
From c939de9e7e08cbf09cdf1e270176c8bd46dc6ecb Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Wed, 15 Oct 2025 13:07:48 +0200
Subject: [PATCH 042/243] feat: Add the table `intending_grazing` to store if
the farm is planning to perform grazing
---
.changeset/moody-paths-ask.md | 5 +++++
fdm-core/src/db/schema.ts | 27 ++++++++++++++++++++++++++-
2 files changed, 31 insertions(+), 1 deletion(-)
create mode 100644 .changeset/moody-paths-ask.md
diff --git a/.changeset/moody-paths-ask.md b/.changeset/moody-paths-ask.md
new file mode 100644
index 000000000..f5951fb7f
--- /dev/null
+++ b/.changeset/moody-paths-ask.md
@@ -0,0 +1,5 @@
+---
+"@svenvw/fdm-core": minor
+---
+
+Add the table `intending_grazing` to store if the farm is planning to perform grazing
diff --git a/fdm-core/src/db/schema.ts b/fdm-core/src/db/schema.ts
index 64b4e6e28..c7b0e672d 100644
--- a/fdm-core/src/db/schema.ts
+++ b/fdm-core/src/db/schema.ts
@@ -37,7 +37,10 @@ export type farmsTypeInsert = typeof farms.$inferInsert
export const acquiringMethodOptions = [
{ value: "nl_01", label: "Eigendom" },
{ value: "nl_02", label: "Reguliere pacht" },
- { value: "nl_03", label: "In gebruik van een terreinbeherende organisatie" },
+ {
+ value: "nl_03",
+ label: "In gebruik van een terreinbeherende organisatie",
+ },
{
value: "nl_04",
label: "Tijdelijk gebruik in het kader van landinrichting",
@@ -836,6 +839,28 @@ export type organicCertificationsHoldingTypeSelect =
export type organicCertificationsHoldingTypeInsert =
typeof organicCertificationsHolding.$inferInsert
+// Define intending_grazing table
+export const intendingGrazing = fdmSchema.table(
+ "intending_grazing",
+ {
+ b_id_farm: text().primaryKey(),
+ b_grazing_intention: boolean().notNull(),
+ b_grazing_intention_year: integer().notNull(),
+ created: timestamp({ withTimezone: true }).notNull().defaultNow(),
+ updated: timestamp({ withTimezone: true }),
+ },
+ (table) => {
+ return [
+ {
+ pk: primaryKey({ columns: [table.b_id_farm, table.b_grazing_intention_year] }),
+ },
+ ]
+ },
+)
+
+export type intendingGrazingTypeSelect = typeof intendingGrazing.$inferSelect
+export type intendingGrazingTypeInsert = typeof intendingGrazing.$inferInsert
+
// Define fertilizer_catalogue_enabling table
export const fertilizerCatalogueEnabling = fdmSchema.table(
"fertilizer_catalogue_enabling",
From a00a331a6eb9e711eb80a6f304a561eec812bda2 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Wed, 15 Oct 2025 13:09:23 +0200
Subject: [PATCH 043/243] feat: Add the functions `setGrazingIntention`,
`removeGrazingIntention`, `getGrazingIntention` and `getGrazingIntentions` to
manage if a farm is planning to do grazing
---
.changeset/few-loops-play.md | 5 +
fdm-core/src/grazing_intention.test.ts | 145 +++++++++++++++++++
fdm-core/src/grazing_intention.ts | 190 +++++++++++++++++++++++++
fdm-core/src/index.ts | 6 +
4 files changed, 346 insertions(+)
create mode 100644 .changeset/few-loops-play.md
create mode 100644 fdm-core/src/grazing_intention.test.ts
create mode 100644 fdm-core/src/grazing_intention.ts
diff --git a/.changeset/few-loops-play.md b/.changeset/few-loops-play.md
new file mode 100644
index 000000000..603c5f9a3
--- /dev/null
+++ b/.changeset/few-loops-play.md
@@ -0,0 +1,5 @@
+---
+"@svenvw/fdm-core": minor
+---
+
+Add the functions `setGrazingIntention`, `removeGrazingIntention`, `getGrazingIntention` and `getGrazingIntentions` to manage if a farm is planning to do grazing
diff --git a/fdm-core/src/grazing_intention.test.ts b/fdm-core/src/grazing_intention.test.ts
new file mode 100644
index 000000000..81b6137e1
--- /dev/null
+++ b/fdm-core/src/grazing_intention.test.ts
@@ -0,0 +1,145 @@
+import { beforeEach, describe, expect, inject, it } from "vitest"
+import { addFarm } from "./farm"
+import type { FdmType } from "./fdm"
+import { createFdmServer } from "./fdm-server"
+import {
+ getGrazingIntention,
+ getGrazingIntentions,
+ removeGrazingIntention,
+ setGrazingIntention,
+} from "./grazing_intention"
+
+describe("Grazing Intention", () => {
+ let fdm: FdmType
+ let principal_id: string
+ let b_id_farm: string
+
+ beforeEach(async () => {
+ const host = inject("host")
+ const port = inject("port")
+ const user = inject("user")
+ const password = inject("password")
+ const database = inject("database")
+ fdm = createFdmServer(host, port, user, password, database)
+ principal_id = "test_principal"
+
+ // Create a test farm
+ b_id_farm = await addFarm(
+ fdm,
+ principal_id,
+ "Test Farm for Grazing",
+ "654321",
+ "321 Farm Road",
+ "54321",
+ )
+ })
+
+ describe("setGrazingIntention", () => {
+ it("should add a new grazing intention", async () => {
+ const b_grazing_intention_year = 2025
+ const intention = true
+
+ await setGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year, intention)
+
+ const result = await getGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year)
+ expect(result).toBe(intention)
+ })
+
+ it("should update an existing grazing intention", async () => {
+ const b_grazing_intention_year = 2026
+ await setGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year, true)
+ await setGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year, false)
+
+ const result = await getGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year)
+ expect(result).toBe(false)
+ })
+
+ it("should throw an error if principal does not have permission", async () => {
+ const invalidPrincipal = "invalid_user"
+ await expect(
+ setGrazingIntention(fdm, invalidPrincipal, b_id_farm, 2027, true),
+ ).rejects.toThrowError("Principal does not have permission to perform this action")
+ })
+ })
+
+ describe("getGrazingIntention", () => {
+ it("should return the correct intention for a given b_grazing_intention_year", async () => {
+ const b_grazing_intention_year = 2028
+ await setGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year, true)
+
+ const result = await getGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year)
+ expect(result).toBe(true)
+ })
+
+ it("should return false if no intention is set for the b_grazing_intention_year", async () => {
+ const b_grazing_intention_year = 2029
+ const result = await getGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year)
+ expect(result).toBe(false)
+ })
+
+ it("should throw an error if principal does not have permission", async () => {
+ const invalidPrincipal = "invalid_user"
+ await expect(
+ getGrazingIntention(fdm, invalidPrincipal, b_id_farm, 2030),
+ ).rejects.toThrowError("Principal does not have permission to perform this action")
+ })
+ })
+
+ describe("getGrazingIntentions", () => {
+ it("should return all grazing intentions for a farm", async () => {
+ await setGrazingIntention(fdm, principal_id, b_id_farm, 2031, true)
+ await setGrazingIntention(fdm, principal_id, b_id_farm, 2032, false)
+
+ const intentions = await getGrazingIntentions(fdm, principal_id, b_id_farm)
+ expect(intentions.length).toBe(2)
+ expect(intentions.map((i) => i.b_grazing_intention_year)).toEqual(
+ expect.arrayContaining([2031, 2032]),
+ )
+ })
+
+ it("should return an empty array if no intentions are set", async () => {
+ const new_b_id_farm = await addFarm(fdm, principal_id, "Farm Without Intentions", undefined, undefined, undefined)
+ const intentions = await getGrazingIntentions(fdm, principal_id, new_b_id_farm)
+ expect(intentions.length).toBe(0)
+ })
+
+ it("should throw an error if principal does not have permission", async () => {
+ const invalidPrincipal = "invalid_user"
+ await expect(
+ getGrazingIntentions(fdm, invalidPrincipal, b_id_farm),
+ ).rejects.toThrowError("Principal does not have permission to perform this action")
+ })
+ })
+
+ describe("removeGrazingIntention", () => {
+ it("should remove an existing grazing intention", async () => {
+ const b_grazing_intention_year = 2033
+ await setGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year, true)
+
+ let result = await getGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year)
+ expect(result).toBe(true)
+
+ await removeGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year)
+
+ result = await getGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year)
+ expect(result).toBe(false)
+ })
+
+ it("should not throw an error when removing a non-existent intention", async () => {
+ const b_grazing_intention_year = 2034
+ await expect(
+ removeGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year),
+ ).resolves.not.toThrow()
+ })
+
+ it("should throw an error if principal does not have permission", async () => {
+ const b_grazing_intention_year = 2035
+ await setGrazingIntention(fdm, principal_id, b_id_farm, b_grazing_intention_year, true)
+ const invalidPrincipal = "invalid_user"
+
+ await expect(
+ removeGrazingIntention(fdm, invalidPrincipal, b_id_farm, b_grazing_intention_year),
+ ).rejects.toThrowError("Principal does not have permission to perform this action")
+ })
+ })
+})
diff --git a/fdm-core/src/grazing_intention.ts b/fdm-core/src/grazing_intention.ts
new file mode 100644
index 000000000..a3bb8745a
--- /dev/null
+++ b/fdm-core/src/grazing_intention.ts
@@ -0,0 +1,190 @@
+import { and, eq } from "drizzle-orm"
+import { checkPermission } from "./authorization"
+import type { PrincipalId } from "./authorization.d"
+import * as schema from "./db/schema"
+import { handleError } from "./error"
+import type { FdmType } from "./fdm"
+
+/**
+ * Sets a grazing intention for a farm for a specific year.
+ * This will create a new record if one does not exist, or update the existing one.
+ *
+ * @param fdm The FDM instance providing the connection to the database.
+ * @param principal_id The unique identifier of the principal performing the operation.
+ * @param b_id_farm Identifier of the farm.
+ * @param b_grazing_intention_year The year of the grazing intention.
+ * @param b_grazing_intention The grazing intention (true or false).
+ * @returns A promise that resolves when the operation is complete.
+ * @alpha
+ */
+export async function setGrazingIntention(
+ fdm: FdmType,
+ principal_id: PrincipalId,
+ b_id_farm: schema.intendingGrazingTypeInsert["b_id_farm"],
+ b_grazing_intention_year: schema.intendingGrazingTypeInsert["b_grazing_intention_year"],
+ b_grazing_intention: schema.intendingGrazingTypeInsert["b_grazing_intention"],
+): Promise {
+ try {
+ await checkPermission(
+ fdm,
+ "farm",
+ "write",
+ b_id_farm,
+ principal_id,
+ "setGrazingIntention",
+ )
+
+ await fdm
+ .insert(schema.intendingGrazing)
+ .values({
+ b_id_farm,
+ b_grazing_intention_year: b_grazing_intention_year,
+ b_grazing_intention: b_grazing_intention,
+ })
+ .onConflictDoUpdate({
+ target: [
+ schema.intendingGrazing.b_id_farm,
+ schema.intendingGrazing.b_grazing_intention_year,
+ ],
+ set: {
+ b_grazing_intention: b_grazing_intention,
+ updated: new Date(),
+ },
+ })
+ } catch (err) {
+ throw handleError(err, "Exception for setGrazingIntention", {
+ b_id_farm,
+ b_grazing_intention_year,
+ b_grazing_intention,
+ })
+ }
+}
+
+/**
+ * Removes a grazing intention for a specific farm and year.
+ *
+ * @param fdm The FDM instance providing the connection to the database.
+ * @param principal_id The unique identifier of the principal performing the operation.
+ * @param b_id_farm The unique identifier of the farm.
+ * @param b_grazing_intention_year The year of the grazing intention to remove.
+ * @returns A promise that resolves when the grazing intention has been successfully removed.
+ * @alpha
+ */
+export async function removeGrazingIntention(
+ fdm: FdmType,
+ principal_id: PrincipalId,
+ b_id_farm: schema.intendingGrazingTypeSelect["b_id_farm"],
+ b_grazing_intention_year: schema.intendingGrazingTypeSelect["b_grazing_intention_year"],
+): Promise {
+ try {
+ await checkPermission(
+ fdm,
+ "farm",
+ "write",
+ b_id_farm,
+ principal_id,
+ "removeGrazingIntention",
+ )
+
+ await fdm
+ .delete(schema.intendingGrazing)
+ .where(
+ and(
+ eq(schema.intendingGrazing.b_id_farm, b_id_farm),
+ eq(
+ schema.intendingGrazing.b_grazing_intention_year,
+ b_grazing_intention_year,
+ ),
+ ),
+ )
+ } catch (err) {
+ throw handleError(err, "Exception for removeGrazingIntention", {
+ b_id_farm,
+ b_grazing_intention_year,
+ })
+ }
+}
+
+/**
+ * Retrieves all grazing intentions for a specified farm.
+ *
+ * @param fdm The FDM instance providing the connection to the database.
+ * @param principal_id The ID of the principal making the request.
+ * @param b_id_farm The unique identifier of the farm.
+ * @returns A Promise resolving to an array of grazing intention objects.
+ * @alpha
+ */
+export async function getGrazingIntentions(
+ fdm: FdmType,
+ principal_id: PrincipalId,
+ b_id_farm: schema.farmsTypeSelect["b_id_farm"],
+): Promise {
+ try {
+ await checkPermission(
+ fdm,
+ "farm",
+ "read",
+ b_id_farm,
+ principal_id,
+ "getGrazingIntentions",
+ )
+
+ return await fdm
+ .select()
+ .from(schema.intendingGrazing)
+ .where(eq(schema.intendingGrazing.b_id_farm, b_id_farm))
+ } catch (err) {
+ throw handleError(err, "Exception for getGrazingIntentions", {
+ b_id_farm,
+ })
+ }
+}
+
+/**
+ * Retrieves the grazing intention for a specific farm and year.
+ *
+ * @param fdm The FDM instance providing the connection to the database.
+ * @param principal_id The ID of the principal making the request.
+ * @param b_id_farm The unique identifier of the farm.
+ * @param b_grazing_intention_year The year to retrieve the grazing intention for.
+ * @returns A Promise resolving to a boolean representing the grazing intention. Returns `false` if no intention is found.
+ * @alpha
+ */
+export async function getGrazingIntention(
+ fdm: FdmType,
+ principal_id: PrincipalId,
+ b_id_farm: schema.farmsTypeSelect["b_id_farm"],
+ b_grazing_intention_year: number,
+): Promise {
+ try {
+ await checkPermission(
+ fdm,
+ "farm",
+ "read",
+ b_id_farm,
+ principal_id,
+ "getGrazingIntention",
+ )
+
+ const result = await fdm
+ .select({ intention: schema.intendingGrazing.b_grazing_intention })
+ .from(schema.intendingGrazing)
+ .where(
+ and(
+ eq(schema.intendingGrazing.b_id_farm, b_id_farm),
+ eq(
+ schema.intendingGrazing.b_grazing_intention_year,
+ b_grazing_intention_year,
+ ),
+ ),
+ )
+ .limit(1)
+
+ return result[0]?.intention ?? false
+ } catch (err) {
+ throw handleError(err, "Exception for getGrazingIntention", {
+ b_id_farm,
+ b_grazing_intention_year,
+ })
+ }
+}
diff --git a/fdm-core/src/index.ts b/fdm-core/src/index.ts
index b42d22efc..f776c20ba 100644
--- a/fdm-core/src/index.ts
+++ b/fdm-core/src/index.ts
@@ -158,3 +158,9 @@ export {
removeOrganicCertification,
} from "./organic"
export type { OrganicCertification } from "./organic.d"
+export {
+ setGrazingIntention,
+ removeGrazingIntention,
+ getGrazingIntention,
+ getGrazingIntentions,
+} from "./grazing_intention"
From caec86e53fa9eaf07ff09d36132d82dc6ea8f051 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Wed, 15 Oct 2025 13:10:47 +0200
Subject: [PATCH 044/243] chore: add db migration
---
.../db/migrations/0015_square_arclight.sql | 29 +
.../src/db/migrations/meta/0015_snapshot.json | 3353 +++++++++++++++++
fdm-core/src/db/migrations/meta/_journal.json | 7 +
fdm-core/src/db/schema.ts | 2 +-
4 files changed, 3390 insertions(+), 1 deletion(-)
create mode 100644 fdm-core/src/db/migrations/0015_square_arclight.sql
create mode 100644 fdm-core/src/db/migrations/meta/0015_snapshot.json
diff --git a/fdm-core/src/db/migrations/0015_square_arclight.sql b/fdm-core/src/db/migrations/0015_square_arclight.sql
new file mode 100644
index 000000000..71cee9e0e
--- /dev/null
+++ b/fdm-core/src/db/migrations/0015_square_arclight.sql
@@ -0,0 +1,29 @@
+CREATE TYPE "fdm"."p_type_rvo" AS ENUM('10', '11', '12', '13', '14', '17', '18', '19', '23', '30', '31', '32', '33', '35', '39', '40', '41', '42', '43', '46', '50', '56', '60', '61', '75', '76', '80', '81', '90', '91', '92', '25', '26', '27', '95', '96', '97', '98', '99', '100', '101', '102', '103', '104', '105', '106', '107', '108', '109', '110', '111', '112', '113', '114', '115', '116', '117', '120');--> statement-breakpoint
+CREATE TABLE "fdm"."intending_grazing" (
+ "b_id_farm" text PRIMARY KEY NOT NULL,
+ "b_grazing_intention" boolean NOT NULL,
+ "b_grazing_intention_year" integer NOT NULL,
+ "created" timestamp with time zone DEFAULT now() NOT NULL,
+ "updated" timestamp with time zone
+);
+--> statement-breakpoint
+CREATE TABLE "fdm"."organic_certifications" (
+ "b_id_organic" text PRIMARY KEY NOT NULL,
+ "b_organic_traces" text,
+ "b_organic_skal" text,
+ "b_organic_issued" timestamp with time zone,
+ "b_organic_expires" timestamp with time zone,
+ "created" timestamp with time zone DEFAULT now() NOT NULL,
+ "updated" timestamp with time zone
+);
+--> statement-breakpoint
+CREATE TABLE "fdm"."organic_certifications_holding" (
+ "b_id_farm" text NOT NULL,
+ "b_id_organic" text NOT NULL,
+ "created" timestamp with time zone DEFAULT now() NOT NULL,
+ "updated" timestamp with time zone
+);
+--> statement-breakpoint
+ALTER TABLE "fdm"."fertilizers_catalogue" ADD COLUMN "p_type_rvo" "fdm"."p_type_rvo";--> statement-breakpoint
+ALTER TABLE "fdm"."organic_certifications_holding" ADD CONSTRAINT "organic_certifications_holding_b_id_farm_farms_b_id_farm_fk" FOREIGN KEY ("b_id_farm") REFERENCES "fdm"."farms"("b_id_farm") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
+ALTER TABLE "fdm"."organic_certifications_holding" ADD CONSTRAINT "organic_certifications_holding_b_id_organic_organic_certifications_b_id_organic_fk" FOREIGN KEY ("b_id_organic") REFERENCES "fdm"."organic_certifications"("b_id_organic") ON DELETE no action ON UPDATE no action;
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/0015_snapshot.json b/fdm-core/src/db/migrations/meta/0015_snapshot.json
new file mode 100644
index 000000000..9cddc06cf
--- /dev/null
+++ b/fdm-core/src/db/migrations/meta/0015_snapshot.json
@@ -0,0 +1,3353 @@
+{
+ "id": "e37fbf35-5e1f-447a-ad42-35405b02dbc4",
+ "prevId": "45dcb87d-89c8-4cf7-a504-0db74ba68640",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "fdm.cultivation_catalogue_selecting": {
+ "name": "cultivation_catalogue_selecting",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_source": {
+ "name": "b_lu_source",
+ "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": {},
+ "foreignKeys": {
+ "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk": {
+ "name": "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "cultivation_catalogue_selecting",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_ending": {
+ "name": "cultivation_ending",
+ "schema": "fdm",
+ "columns": {
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_end": {
+ "name": "b_lu_end",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "m_cropresidue": {
+ "name": "m_cropresidue",
+ "type": "boolean",
+ "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": {
+ "cultivation_ending_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_ending_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_ending",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_harvesting": {
+ "name": "cultivation_harvesting",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvesting": {
+ "name": "b_id_harvesting",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_harvest_date": {
+ "name": "b_lu_harvest_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk": {
+ "name": "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk",
+ "tableFrom": "cultivation_harvesting",
+ "tableTo": "harvestables",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable"
+ ],
+ "columnsTo": [
+ "b_id_harvestable"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "cultivation_harvesting_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_harvesting_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_harvesting",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_starting": {
+ "name": "cultivation_starting",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_start": {
+ "name": "b_lu_start",
+ "type": "timestamp with time zone",
+ "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": {
+ "cultivation_starting_b_id_fields_b_id_fk": {
+ "name": "cultivation_starting_b_id_fields_b_id_fk",
+ "tableFrom": "cultivation_starting",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "cultivation_starting_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_starting_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_starting",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivations": {
+ "name": "cultivations",
+ "schema": "fdm",
+ "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
+ },
+ "b_lu_variety": {
+ "name": "b_lu_variety",
+ "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": {
+ "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",
+ "columnsFrom": [
+ "b_lu_catalogue"
+ ],
+ "columnsTo": [
+ "b_lu_catalogue"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivations_catalogue": {
+ "name": "cultivations_catalogue",
+ "schema": "fdm",
+ "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_harvestable": {
+ "name": "b_lu_harvestable",
+ "type": "b_lu_harvestable",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "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
+ },
+ "b_lu_croprotation": {
+ "name": "b_lu_croprotation",
+ "type": "b_lu_croprotation",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_yield": {
+ "name": "b_lu_yield",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_hi": {
+ "name": "b_lu_hi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_harvestable": {
+ "name": "b_lu_n_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_residue": {
+ "name": "b_lu_n_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_n_fixation": {
+ "name": "b_n_fixation",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_rest_oravib": {
+ "name": "b_lu_rest_oravib",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_variety_options": {
+ "name": "b_lu_variety_options",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "hash": {
+ "name": "hash",
+ "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": {
+ "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": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.derogation_applying": {
+ "name": "derogation_applying",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_derogation": {
+ "name": "b_id_derogation",
+ "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": {},
+ "foreignKeys": {
+ "derogation_applying_b_id_farm_farms_b_id_farm_fk": {
+ "name": "derogation_applying_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "derogation_applying",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk": {
+ "name": "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk",
+ "tableFrom": "derogation_applying",
+ "tableTo": "derogations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_derogation"
+ ],
+ "columnsTo": [
+ "b_id_derogation"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.derogations": {
+ "name": "derogations",
+ "schema": "fdm",
+ "columns": {
+ "b_id_derogation": {
+ "name": "b_id_derogation",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_derogation_year": {
+ "name": "b_derogation_year",
+ "type": "integer",
+ "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": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.farms": {
+ "name": "farms",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_name_farm": {
+ "name": "b_name_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_businessid_farm": {
+ "name": "b_businessid_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_address_farm": {
+ "name": "b_address_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_postalcode_farm": {
+ "name": "b_postalcode_farm",
+ "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": {
+ "b_id_farm_idx": {
+ "name": "b_id_farm_idx",
+ "columns": [
+ {
+ "expression": "b_id_farm",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_acquiring": {
+ "name": "fertilizer_acquiring",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_acquiring_amount": {
+ "name": "p_acquiring_amount",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_acquiring_date": {
+ "name": "p_acquiring_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk": {
+ "name": "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "fertilizer_acquiring",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_acquiring_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_acquiring_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_acquiring",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_applying": {
+ "name": "fertilizer_applying",
+ "schema": "fdm",
+ "columns": {
+ "p_app_id": {
+ "name": "p_app_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_app_amount": {
+ "name": "p_app_amount",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_method": {
+ "name": "p_app_method",
+ "type": "p_app_method",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_date": {
+ "name": "p_app_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "p_app_idx": {
+ "name": "p_app_idx",
+ "columns": [
+ {
+ "expression": "p_app_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "fertilizer_applying_b_id_fields_b_id_fk": {
+ "name": "fertilizer_applying_b_id_fields_b_id_fk",
+ "tableFrom": "fertilizer_applying",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_applying_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_applying_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_applying",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_catalogue_enabling": {
+ "name": "fertilizer_catalogue_enabling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_source": {
+ "name": "p_source",
+ "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": {},
+ "foreignKeys": {
+ "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk": {
+ "name": "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "fertilizer_catalogue_enabling",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_picking": {
+ "name": "fertilizer_picking",
+ "schema": "fdm",
+ "columns": {
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id_catalogue": {
+ "name": "p_id_catalogue",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_picking_date": {
+ "name": "p_picking_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "fertilizer_picking_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_picking_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_picking",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk": {
+ "name": "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk",
+ "tableFrom": "fertilizer_picking",
+ "tableTo": "fertilizers_catalogue",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id_catalogue"
+ ],
+ "columnsTo": [
+ "p_id_catalogue"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizers": {
+ "name": "fertilizers",
+ "schema": "fdm",
+ "columns": {
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": true,
+ "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": {
+ "p_id_idx": {
+ "name": "p_id_idx",
+ "columns": [
+ {
+ "expression": "p_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizers_catalogue": {
+ "name": "fertilizers_catalogue",
+ "schema": "fdm",
+ "columns": {
+ "p_id_catalogue": {
+ "name": "p_id_catalogue",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "p_source": {
+ "name": "p_source",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_name_nl": {
+ "name": "p_name_nl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_name_en": {
+ "name": "p_name_en",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_description": {
+ "name": "p_description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_method_options": {
+ "name": "p_app_method_options",
+ "type": "p_app_method[]",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_dm": {
+ "name": "p_dm",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_density": {
+ "name": "p_density",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_om": {
+ "name": "p_om",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_a": {
+ "name": "p_a",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_hc": {
+ "name": "p_hc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_eom": {
+ "name": "p_eom",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_eoc": {
+ "name": "p_eoc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_rt": {
+ "name": "p_c_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_of": {
+ "name": "p_c_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_if": {
+ "name": "p_c_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_fr": {
+ "name": "p_c_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cn_of": {
+ "name": "p_cn_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_rt": {
+ "name": "p_n_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_if": {
+ "name": "p_n_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_of": {
+ "name": "p_n_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_wc": {
+ "name": "p_n_wc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_no3_rt": {
+ "name": "p_no3_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_nh4_rt": {
+ "name": "p_nh4_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_p_rt": {
+ "name": "p_p_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_k_rt": {
+ "name": "p_k_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mg_rt": {
+ "name": "p_mg_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ca_rt": {
+ "name": "p_ca_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ne": {
+ "name": "p_ne",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_s_rt": {
+ "name": "p_s_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_s_wc": {
+ "name": "p_s_wc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cu_rt": {
+ "name": "p_cu_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_zn_rt": {
+ "name": "p_zn_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_na_rt": {
+ "name": "p_na_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_si_rt": {
+ "name": "p_si_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_b_rt": {
+ "name": "p_b_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mn_rt": {
+ "name": "p_mn_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ni_rt": {
+ "name": "p_ni_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_fe_rt": {
+ "name": "p_fe_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mo_rt": {
+ "name": "p_mo_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_co_rt": {
+ "name": "p_co_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_as_rt": {
+ "name": "p_as_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cd_rt": {
+ "name": "p_cd_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cr_rt": {
+ "name": "p_cr_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cr_vi": {
+ "name": "p_cr_vi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_pb_rt": {
+ "name": "p_pb_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_hg_rt": {
+ "name": "p_hg_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cl_rt": {
+ "name": "p_cl_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ef_nh3": {
+ "name": "p_ef_nh3",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_manure": {
+ "name": "p_type_manure",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_mineral": {
+ "name": "p_type_mineral",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_compost": {
+ "name": "p_type_compost",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_rvo": {
+ "name": "p_type_rvo",
+ "type": "p_type_rvo",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "hash": {
+ "name": "hash",
+ "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": {
+ "p_id_catalogue_idx": {
+ "name": "p_id_catalogue_idx",
+ "columns": [
+ {
+ "expression": "p_id_catalogue",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.field_acquiring": {
+ "name": "field_acquiring",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_start": {
+ "name": "b_start",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_acquiring_method": {
+ "name": "b_acquiring_method",
+ "type": "b_acquiring_method",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'unknown'"
+ },
+ "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_acquiring_b_id_fields_b_id_fk": {
+ "name": "field_acquiring_b_id_fields_b_id_fk",
+ "tableFrom": "field_acquiring",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "field_acquiring_b_id_farm_farms_b_id_farm_fk": {
+ "name": "field_acquiring_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "field_acquiring",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.field_discarding": {
+ "name": "field_discarding",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_end": {
+ "name": "b_end",
+ "type": "timestamp with time zone",
+ "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_discarding_b_id_fields_b_id_fk": {
+ "name": "field_discarding_b_id_fields_b_id_fk",
+ "tableFrom": "field_discarding",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fields": {
+ "name": "fields",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_name": {
+ "name": "b_name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_geometry": {
+ "name": "b_geometry",
+ "type": "geometry(Polygon,4326)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_id_source": {
+ "name": "b_id_source",
+ "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": {
+ "b_id_idx": {
+ "name": "b_id_idx",
+ "columns": [
+ {
+ "expression": "b_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "b_geom_idx": {
+ "name": "b_geom_idx",
+ "columns": [
+ {
+ "expression": "b_geometry",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "gist",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestable_analyses": {
+ "name": "harvestable_analyses",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable_analysis": {
+ "name": "b_id_harvestable_analysis",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_lu_yield": {
+ "name": "b_lu_yield",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_harvestable": {
+ "name": "b_lu_n_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_residue": {
+ "name": "b_lu_n_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_p_harvestable": {
+ "name": "b_lu_p_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_p_residue": {
+ "name": "b_lu_p_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_k_harvestable": {
+ "name": "b_lu_k_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_k_residue": {
+ "name": "b_lu_k_residue",
+ "type": "numeric",
+ "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": {
+ "b_id_harvestable_analyses_idx": {
+ "name": "b_id_harvestable_analyses_idx",
+ "columns": [
+ {
+ "expression": "b_id_harvestable_analysis",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestable_sampling": {
+ "name": "harvestable_sampling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_harvestable_analysis": {
+ "name": "b_id_harvestable_analysis",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_sampling_date": {
+ "name": "b_sampling_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk": {
+ "name": "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk",
+ "tableFrom": "harvestable_sampling",
+ "tableTo": "harvestables",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable"
+ ],
+ "columnsTo": [
+ "b_id_harvestable"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk": {
+ "name": "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk",
+ "tableFrom": "harvestable_sampling",
+ "tableTo": "harvestable_analyses",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable_analysis"
+ ],
+ "columnsTo": [
+ "b_id_harvestable_analysis"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestables": {
+ "name": "harvestables",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": true,
+ "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_id_harvestable_idx": {
+ "name": "b_id_harvestable_idx",
+ "columns": [
+ {
+ "expression": "b_id_harvestable",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.intending_grazing": {
+ "name": "intending_grazing",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_grazing_intention": {
+ "name": "b_grazing_intention",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_grazing_intention_year": {
+ "name": "b_grazing_intention_year",
+ "type": "integer",
+ "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": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.organic_certifications": {
+ "name": "organic_certifications",
+ "schema": "fdm",
+ "columns": {
+ "b_id_organic": {
+ "name": "b_id_organic",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_organic_traces": {
+ "name": "b_organic_traces",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_organic_skal": {
+ "name": "b_organic_skal",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_organic_issued": {
+ "name": "b_organic_issued",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_organic_expires": {
+ "name": "b_organic_expires",
+ "type": "timestamp with time zone",
+ "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": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.organic_certifications_holding": {
+ "name": "organic_certifications_holding",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_organic": {
+ "name": "b_id_organic",
+ "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": {},
+ "foreignKeys": {
+ "organic_certifications_holding_b_id_farm_farms_b_id_farm_fk": {
+ "name": "organic_certifications_holding_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "organic_certifications_holding",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "organic_certifications_holding_b_id_organic_organic_certifications_b_id_organic_fk": {
+ "name": "organic_certifications_holding_b_id_organic_organic_certifications_b_id_organic_fk",
+ "tableFrom": "organic_certifications_holding",
+ "tableTo": "organic_certifications",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_organic"
+ ],
+ "columnsTo": [
+ "b_id_organic"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.soil_analysis": {
+ "name": "soil_analysis",
+ "schema": "fdm",
+ "columns": {
+ "a_id": {
+ "name": "a_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "a_date": {
+ "name": "a_date",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_source": {
+ "name": "a_source",
+ "type": "a_source",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'other'"
+ },
+ "a_al_ox": {
+ "name": "a_al_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_c_of": {
+ "name": "a_c_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ca_co": {
+ "name": "a_ca_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ca_co_po": {
+ "name": "a_ca_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_caco3_if": {
+ "name": "a_caco3_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cec_co": {
+ "name": "a_cec_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_clay_mi": {
+ "name": "a_clay_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cn_fr": {
+ "name": "a_cn_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_com_fr": {
+ "name": "a_com_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cu_cc": {
+ "name": "a_cu_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_density_sa": {
+ "name": "a_density_sa",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_fe_ox": {
+ "name": "a_fe_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_cc": {
+ "name": "a_k_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_co": {
+ "name": "a_k_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_co_po": {
+ "name": "a_k_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_cc": {
+ "name": "a_mg_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_co": {
+ "name": "a_mg_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_co_po": {
+ "name": "a_mg_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_n_pmn": {
+ "name": "a_n_pmn",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_n_rt": {
+ "name": "a_n_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_nh4_cc": {
+ "name": "a_nh4_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_nmin_cc": {
+ "name": "a_nmin_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_no3_cc": {
+ "name": "a_no3_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_al": {
+ "name": "a_p_al",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_cc": {
+ "name": "a_p_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_ox": {
+ "name": "a_p_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_rt": {
+ "name": "a_p_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_sg": {
+ "name": "a_p_sg",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_wa": {
+ "name": "a_p_wa",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ph_cc": {
+ "name": "a_ph_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_s_rt": {
+ "name": "a_s_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_sand_mi": {
+ "name": "a_sand_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_silt_mi": {
+ "name": "a_silt_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_som_loi": {
+ "name": "a_som_loi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_zn_cc": {
+ "name": "a_zn_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_gwl_class": {
+ "name": "b_gwl_class",
+ "type": "b_gwl_class",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_soiltype_agr": {
+ "name": "b_soiltype_agr",
+ "type": "b_soiltype_agr",
+ "typeSchema": "fdm",
+ "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": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.soil_sampling": {
+ "name": "soil_sampling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_sampling": {
+ "name": "b_id_sampling",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "a_id": {
+ "name": "a_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "a_depth_upper": {
+ "name": "a_depth_upper",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ },
+ "a_depth_lower": {
+ "name": "a_depth_lower",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_sampling_date": {
+ "name": "b_sampling_date",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_sampling_geometry": {
+ "name": "b_sampling_geometry",
+ "type": "geometry(MultiPoint,4326)",
+ "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": {
+ "soil_sampling_b_id_fields_b_id_fk": {
+ "name": "soil_sampling_b_id_fields_b_id_fk",
+ "tableFrom": "soil_sampling",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "soil_sampling_a_id_soil_analysis_a_id_fk": {
+ "name": "soil_sampling_a_id_soil_analysis_a_id_fk",
+ "tableFrom": "soil_sampling",
+ "tableTo": "soil_analysis",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "a_id"
+ ],
+ "columnsTo": [
+ "a_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.account": {
+ "name": "account",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "account_id": {
+ "name": "account_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider_id": {
+ "name": "provider_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "id_token": {
+ "name": "id_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token_expires_at": {
+ "name": "access_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token_expires_at": {
+ "name": "refresh_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "account_user_id_user_id_fk": {
+ "name": "account_user_id_user_id_fk",
+ "tableFrom": "account",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.invitation": {
+ "name": "invitation",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "inviter_id": {
+ "name": "inviter_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "invitation_organization_id_organization_id_fk": {
+ "name": "invitation_organization_id_organization_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "organization",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "invitation_inviter_id_user_id_fk": {
+ "name": "invitation_inviter_id_user_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "inviter_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.member": {
+ "name": "member",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "member_organization_id_organization_id_fk": {
+ "name": "member_organization_id_organization_id_fk",
+ "tableFrom": "member",
+ "tableTo": "organization",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "member_user_id_user_id_fk": {
+ "name": "member_user_id_user_id_fk",
+ "tableFrom": "member",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.organization": {
+ "name": "organization",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slug": {
+ "name": "slug",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "logo": {
+ "name": "logo",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "organization_slug_unique": {
+ "name": "organization_slug_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "slug"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.rate_limit": {
+ "name": "rate_limit",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "key": {
+ "name": "key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "count": {
+ "name": "count",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_request": {
+ "name": "last_request",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.session": {
+ "name": "session",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "token": {
+ "name": "token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ip_address": {
+ "name": "ip_address",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_agent": {
+ "name": "user_agent",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "active_organization_id": {
+ "name": "active_organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "session_user_id_user_id_fk": {
+ "name": "session_user_id_user_id_fk",
+ "tableFrom": "session",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "session_token_unique": {
+ "name": "session_token_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "token"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.user": {
+ "name": "user",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email_verified": {
+ "name": "email_verified",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "display_username": {
+ "name": "display_username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "firstname": {
+ "name": "firstname",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "surname": {
+ "name": "surname",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "lang": {
+ "name": "lang",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "farm_active": {
+ "name": "farm_active",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "user_email_unique": {
+ "name": "user_email_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "email"
+ ]
+ },
+ "user_username_unique": {
+ "name": "user_username_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "username"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.verification": {
+ "name": "verification",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "identifier": {
+ "name": "identifier",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authz.audit": {
+ "name": "audit",
+ "schema": "fdm-authz",
+ "columns": {
+ "audit_id": {
+ "name": "audit_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "audit_timestamp": {
+ "name": "audit_timestamp",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "audit_origin": {
+ "name": "audit_origin",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "principal_id": {
+ "name": "principal_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "target_resource": {
+ "name": "target_resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "target_resource_id": {
+ "name": "target_resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "granting_resource": {
+ "name": "granting_resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "granting_resource_id": {
+ "name": "granting_resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "action": {
+ "name": "action",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "allowed": {
+ "name": "allowed",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "duration": {
+ "name": "duration",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authz.role": {
+ "name": "role",
+ "schema": "fdm-authz",
+ "columns": {
+ "role_id": {
+ "name": "role_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "resource": {
+ "name": "resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "resource_id": {
+ "name": "resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "principal_id": {
+ "name": "principal_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created": {
+ "name": "created",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "deleted": {
+ "name": "deleted",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {
+ "role_idx": {
+ "name": "role_idx",
+ "columns": [
+ {
+ "expression": "resource",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "resource_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "principal_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "role",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "deleted",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {
+ "fdm.b_acquiring_method": {
+ "name": "b_acquiring_method",
+ "schema": "fdm",
+ "values": [
+ "nl_01",
+ "nl_02",
+ "nl_03",
+ "nl_04",
+ "nl_07",
+ "nl_09",
+ "nl_10",
+ "nl_11",
+ "nl_12",
+ "nl_13",
+ "nl_61",
+ "nl_63",
+ "unknown"
+ ]
+ },
+ "fdm.p_app_method": {
+ "name": "p_app_method",
+ "schema": "fdm",
+ "values": [
+ "slotted coulter",
+ "incorporation",
+ "incorporation 2 tracks",
+ "injection",
+ "shallow injection",
+ "spraying",
+ "broadcasting",
+ "spoke wheel",
+ "pocket placement",
+ "narrowband"
+ ]
+ },
+ "fdm.b_gwl_class": {
+ "name": "b_gwl_class",
+ "schema": "fdm",
+ "values": [
+ "I",
+ "Ia",
+ "Ic",
+ "II",
+ "IIa",
+ "IIb",
+ "IIc",
+ "III",
+ "IIIa",
+ "IIIb",
+ "IV",
+ "IVu",
+ "IVc",
+ "V",
+ "Va",
+ "Vao",
+ "Vad",
+ "Vb",
+ "Vbo",
+ "Vbd",
+ "sV",
+ "sVb",
+ "VI",
+ "VIo",
+ "VId",
+ "VII",
+ "VIIo",
+ "VIId",
+ "VIII",
+ "VIIIo",
+ "VIIId"
+ ]
+ },
+ "fdm.b_lu_harvestable": {
+ "name": "b_lu_harvestable",
+ "schema": "fdm",
+ "values": [
+ "none",
+ "once",
+ "multiple"
+ ]
+ },
+ "fdm.b_lu_croprotation": {
+ "name": "b_lu_croprotation",
+ "schema": "fdm",
+ "values": [
+ "other",
+ "clover",
+ "nature",
+ "potato",
+ "grass",
+ "rapeseed",
+ "starch",
+ "maize",
+ "cereal",
+ "sugarbeet",
+ "alfalfa",
+ "catchcrop"
+ ]
+ },
+ "fdm.a_source": {
+ "name": "a_source",
+ "schema": "fdm",
+ "values": [
+ "nl-rva-l122",
+ "nl-rva-l136",
+ "nl-rva-l264",
+ "nl-rva-l320",
+ "nl-rva-l335",
+ "nl-rva-l610",
+ "nl-rva-l648",
+ "nl-rva-l697",
+ "nl-other-nmi",
+ "other"
+ ]
+ },
+ "fdm.b_soiltype_agr": {
+ "name": "b_soiltype_agr",
+ "schema": "fdm",
+ "values": [
+ "moerige_klei",
+ "rivierklei",
+ "dekzand",
+ "zeeklei",
+ "dalgrond",
+ "veen",
+ "loess",
+ "duinzand",
+ "maasklei"
+ ]
+ },
+ "fdm.p_type_rvo": {
+ "name": "p_type_rvo",
+ "schema": "fdm",
+ "values": [
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "17",
+ "18",
+ "19",
+ "23",
+ "30",
+ "31",
+ "32",
+ "33",
+ "35",
+ "39",
+ "40",
+ "41",
+ "42",
+ "43",
+ "46",
+ "50",
+ "56",
+ "60",
+ "61",
+ "75",
+ "76",
+ "80",
+ "81",
+ "90",
+ "91",
+ "92",
+ "25",
+ "26",
+ "27",
+ "95",
+ "96",
+ "97",
+ "98",
+ "99",
+ "100",
+ "101",
+ "102",
+ "103",
+ "104",
+ "105",
+ "106",
+ "107",
+ "108",
+ "109",
+ "110",
+ "111",
+ "112",
+ "113",
+ "114",
+ "115",
+ "116",
+ "117",
+ "120"
+ ]
+ }
+ },
+ "schemas": {
+ "fdm": "fdm",
+ "fdm-authn": "fdm-authn",
+ "fdm-authz": "fdm-authz"
+ },
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/_journal.json b/fdm-core/src/db/migrations/meta/_journal.json
index 1d8df0db1..4c405c09c 100644
--- a/fdm-core/src/db/migrations/meta/_journal.json
+++ b/fdm-core/src/db/migrations/meta/_journal.json
@@ -106,6 +106,13 @@
"when": 1760450273146,
"tag": "0014_smart_malice",
"breakpoints": true
+ },
+ {
+ "idx": 15,
+ "version": "7",
+ "when": 1760526983873,
+ "tag": "0015_square_arclight",
+ "breakpoints": true
}
]
}
\ No newline at end of file
diff --git a/fdm-core/src/db/schema.ts b/fdm-core/src/db/schema.ts
index c7b0e672d..f92bc6c63 100644
--- a/fdm-core/src/db/schema.ts
+++ b/fdm-core/src/db/schema.ts
@@ -277,7 +277,7 @@ export const typeRvoOptions = [
{ value: "117", label: "Gescheiden champost" },
{ value: "120", label: "Mineralenconcentraat" },
]
-const typeRvoEnum = fdmSchema.enum(
+export const typeRvoEnum = fdmSchema.enum(
"p_type_rvo",
typeRvoOptions.map((x) => x.value) as [string, ...string[]],
)
From b5adfdeaac2fa3b71263a6bb11cabda790c1650f Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Wed, 15 Oct 2025 13:20:38 +0200
Subject: [PATCH 045/243] test: fix
---
fdm-core/src/fertilizer.test.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fdm-core/src/fertilizer.test.ts b/fdm-core/src/fertilizer.test.ts
index 34936d689..f4aed69a9 100644
--- a/fdm-core/src/fertilizer.test.ts
+++ b/fdm-core/src/fertilizer.test.ts
@@ -1066,7 +1066,7 @@ describe("Fertilizer Data Model", () => {
describe("getFertilizerParametersDescription", () => {
it("should return the correct fertilizer parameter descriptions for NL-nl locale", () => {
const descriptions = getFertilizerParametersDescription("NL-nl")
- expect(descriptions).toHaveLength(24)
+ expect(descriptions).toHaveLength(25)
for (const description of descriptions) {
expect(description).toHaveProperty("parameter")
expect(description).toHaveProperty("unit")
@@ -1091,7 +1091,7 @@ describe("getFertilizerParametersDescription", () => {
it("should return the correct fertilizer parameter descriptions for default locale", () => {
const descriptions = getFertilizerParametersDescription()
- expect(descriptions).toHaveLength(24)
+ expect(descriptions).toHaveLength(25)
for (const description of descriptions) {
expect(description).toHaveProperty("parameter")
expect(description).toHaveProperty("unit")
From 14ab28125a0f1db007d4afc33f185c008b339ce7 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Wed, 15 Oct 2025 13:30:22 +0200
Subject: [PATCH 046/243] fix: reference to farm table
---
...clight.sql => 0015_polite_jane_foster.sql} | 5 ++--
.../src/db/migrations/meta/0015_snapshot.json | 23 +++++++++++++++----
fdm-core/src/db/migrations/meta/_journal.json | 4 ++--
fdm-core/src/db/schema.ts | 6 +++--
4 files changed, 28 insertions(+), 10 deletions(-)
rename fdm-core/src/db/migrations/{0015_square_arclight.sql => 0015_polite_jane_foster.sql} (86%)
diff --git a/fdm-core/src/db/migrations/0015_square_arclight.sql b/fdm-core/src/db/migrations/0015_polite_jane_foster.sql
similarity index 86%
rename from fdm-core/src/db/migrations/0015_square_arclight.sql
rename to fdm-core/src/db/migrations/0015_polite_jane_foster.sql
index 71cee9e0e..262e4828a 100644
--- a/fdm-core/src/db/migrations/0015_square_arclight.sql
+++ b/fdm-core/src/db/migrations/0015_polite_jane_foster.sql
@@ -1,7 +1,7 @@
CREATE TYPE "fdm"."p_type_rvo" AS ENUM('10', '11', '12', '13', '14', '17', '18', '19', '23', '30', '31', '32', '33', '35', '39', '40', '41', '42', '43', '46', '50', '56', '60', '61', '75', '76', '80', '81', '90', '91', '92', '25', '26', '27', '95', '96', '97', '98', '99', '100', '101', '102', '103', '104', '105', '106', '107', '108', '109', '110', '111', '112', '113', '114', '115', '116', '117', '120');--> statement-breakpoint
CREATE TABLE "fdm"."intending_grazing" (
- "b_id_farm" text PRIMARY KEY NOT NULL,
- "b_grazing_intention" boolean NOT NULL,
+ "b_id_farm" text NOT NULL,
+ "b_grazing_intention" boolean,
"b_grazing_intention_year" integer NOT NULL,
"created" timestamp with time zone DEFAULT now() NOT NULL,
"updated" timestamp with time zone
@@ -25,5 +25,6 @@ CREATE TABLE "fdm"."organic_certifications_holding" (
);
--> statement-breakpoint
ALTER TABLE "fdm"."fertilizers_catalogue" ADD COLUMN "p_type_rvo" "fdm"."p_type_rvo";--> statement-breakpoint
+ALTER TABLE "fdm"."intending_grazing" ADD CONSTRAINT "intending_grazing_b_id_farm_farms_b_id_farm_fk" FOREIGN KEY ("b_id_farm") REFERENCES "fdm"."farms"("b_id_farm") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "fdm"."organic_certifications_holding" ADD CONSTRAINT "organic_certifications_holding_b_id_farm_farms_b_id_farm_fk" FOREIGN KEY ("b_id_farm") REFERENCES "fdm"."farms"("b_id_farm") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "fdm"."organic_certifications_holding" ADD CONSTRAINT "organic_certifications_holding_b_id_organic_organic_certifications_b_id_organic_fk" FOREIGN KEY ("b_id_organic") REFERENCES "fdm"."organic_certifications"("b_id_organic") ON DELETE no action ON UPDATE no action;
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/0015_snapshot.json b/fdm-core/src/db/migrations/meta/0015_snapshot.json
index 9cddc06cf..a98560df1 100644
--- a/fdm-core/src/db/migrations/meta/0015_snapshot.json
+++ b/fdm-core/src/db/migrations/meta/0015_snapshot.json
@@ -1,5 +1,5 @@
{
- "id": "e37fbf35-5e1f-447a-ad42-35405b02dbc4",
+ "id": "ff3e17ab-43af-4427-8582-e5057365e136",
"prevId": "45dcb87d-89c8-4cf7-a504-0db74ba68640",
"version": "7",
"dialect": "postgresql",
@@ -1834,14 +1834,14 @@
"b_id_farm": {
"name": "b_id_farm",
"type": "text",
- "primaryKey": true,
+ "primaryKey": false,
"notNull": true
},
"b_grazing_intention": {
"name": "b_grazing_intention",
"type": "boolean",
"primaryKey": false,
- "notNull": true
+ "notNull": false
},
"b_grazing_intention_year": {
"name": "b_grazing_intention_year",
@@ -1864,7 +1864,22 @@
}
},
"indexes": {},
- "foreignKeys": {},
+ "foreignKeys": {
+ "intending_grazing_b_id_farm_farms_b_id_farm_fk": {
+ "name": "intending_grazing_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "intending_grazing",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
diff --git a/fdm-core/src/db/migrations/meta/_journal.json b/fdm-core/src/db/migrations/meta/_journal.json
index 4c405c09c..be533f17c 100644
--- a/fdm-core/src/db/migrations/meta/_journal.json
+++ b/fdm-core/src/db/migrations/meta/_journal.json
@@ -110,8 +110,8 @@
{
"idx": 15,
"version": "7",
- "when": 1760526983873,
- "tag": "0015_square_arclight",
+ "when": 1760527725262,
+ "tag": "0015_polite_jane_foster",
"breakpoints": true
}
]
diff --git a/fdm-core/src/db/schema.ts b/fdm-core/src/db/schema.ts
index f92bc6c63..11b320cf2 100644
--- a/fdm-core/src/db/schema.ts
+++ b/fdm-core/src/db/schema.ts
@@ -843,8 +843,10 @@ export type organicCertificationsHoldingTypeInsert =
export const intendingGrazing = fdmSchema.table(
"intending_grazing",
{
- b_id_farm: text().primaryKey(),
- b_grazing_intention: boolean().notNull(),
+ b_id_farm: text()
+ .notNull()
+ .references(() => farms.b_id_farm),
+ b_grazing_intention: boolean(),
b_grazing_intention_year: integer().notNull(),
created: timestamp({ withTimezone: true }).notNull().defaultNow(),
updated: timestamp({ withTimezone: true }),
From 97c487f47c79e7e5d654bb0907c0485457ea35c1 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Wed, 15 Oct 2025 13:38:15 +0200
Subject: [PATCH 047/243] feat: at removeFarm delete the associated
derogations, organic certifications and grazing intentions as well
---
fdm-core/src/farm.ts | 54 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/fdm-core/src/farm.ts b/fdm-core/src/farm.ts
index 488972464..1e5e6894f 100644
--- a/fdm-core/src/farm.ts
+++ b/fdm-core/src/farm.ts
@@ -663,9 +663,63 @@ export async function removeFarm(
.where(inArray(schema.fertilizerPicking.p_id, pIds))
}
+ // Get all derogation IDs associated with this farm
+ const derogationIdsToDelete = await tx
+ .select({ b_id_derogation: schema.derogationApplying.b_id_derogation })
+ .from(schema.derogationApplying)
+ .where(eq(schema.derogationApplying.b_id_farm, b_id_farm))
+
+ // Delete derogation applying records
await tx
.delete(schema.derogationApplying)
.where(eq(schema.derogationApplying.b_id_farm, b_id_farm))
+
+ // Delete derogations that were associated with this farm
+ if (derogationIdsToDelete.length > 0) {
+ const bIdsDerogation = derogationIdsToDelete.map(
+ (d: { b_id_derogation: schema.derogationsTypeSelect["b_id_derogation"] }) =>
+ d.b_id_derogation,
+ )
+ await tx
+ .delete(schema.derogations)
+ .where(
+ inArray(
+ schema.derogations.b_id_derogation,
+ bIdsDerogation,
+ ),
+ )
+ }
+
+ // Get all organic certification IDs associated with this farm
+ const organicCertificationIdsToDelete = await tx
+ .select({ b_id_organic: schema.organicCertificationsHolding.b_id_organic })
+ .from(schema.organicCertificationsHolding)
+ .where(eq(schema.organicCertificationsHolding.b_id_farm, b_id_farm))
+
+ // Delete organic certifications holding records
+ await tx
+ .delete(schema.organicCertificationsHolding)
+ .where(eq(schema.organicCertificationsHolding.b_id_farm, b_id_farm))
+
+ // Delete organic certifications that were associated with this farm
+ if (organicCertificationIdsToDelete.length > 0) {
+ const bIdsOrganic = organicCertificationIdsToDelete.map(
+ (o: { b_id_organic: schema.organicCertificationsTypeSelect["b_id_organic"] }) =>
+ o.b_id_organic,
+ )
+ await tx
+ .delete(schema.organicCertifications)
+ .where(
+ inArray(
+ schema.organicCertifications.b_id_organic,
+ bIdsOrganic,
+ ),
+ )
+ }
+
+ await tx
+ .delete(schema.intendingGrazing)
+ .where(eq(schema.intendingGrazing.b_id_farm, b_id_farm))
await tx
.delete(schema.fertilizerCatalogueEnabling)
.where(
From 80aa92e3fb27d6f74c77d3225ee5df59feb92a74 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Wed, 15 Oct 2025 13:52:09 +0200
Subject: [PATCH 048/243] fix: key on intending_grazing table
---
...015_polite_jane_foster.sql => 0015_new_stick.sql} | 3 ++-
fdm-core/src/db/migrations/meta/0015_snapshot.json | 12 ++++++++++--
fdm-core/src/db/migrations/meta/_journal.json | 4 ++--
fdm-core/src/db/schema.ts | 12 +++++-------
4 files changed, 19 insertions(+), 12 deletions(-)
rename fdm-core/src/db/migrations/{0015_polite_jane_foster.sql => 0015_new_stick.sql} (93%)
diff --git a/fdm-core/src/db/migrations/0015_polite_jane_foster.sql b/fdm-core/src/db/migrations/0015_new_stick.sql
similarity index 93%
rename from fdm-core/src/db/migrations/0015_polite_jane_foster.sql
rename to fdm-core/src/db/migrations/0015_new_stick.sql
index 262e4828a..f9cafee14 100644
--- a/fdm-core/src/db/migrations/0015_polite_jane_foster.sql
+++ b/fdm-core/src/db/migrations/0015_new_stick.sql
@@ -4,7 +4,8 @@ CREATE TABLE "fdm"."intending_grazing" (
"b_grazing_intention" boolean,
"b_grazing_intention_year" integer NOT NULL,
"created" timestamp with time zone DEFAULT now() NOT NULL,
- "updated" timestamp with time zone
+ "updated" timestamp with time zone,
+ CONSTRAINT "intending_grazing_b_id_farm_b_grazing_intention_year_pk" PRIMARY KEY("b_id_farm","b_grazing_intention_year")
);
--> statement-breakpoint
CREATE TABLE "fdm"."organic_certifications" (
diff --git a/fdm-core/src/db/migrations/meta/0015_snapshot.json b/fdm-core/src/db/migrations/meta/0015_snapshot.json
index a98560df1..120c1390e 100644
--- a/fdm-core/src/db/migrations/meta/0015_snapshot.json
+++ b/fdm-core/src/db/migrations/meta/0015_snapshot.json
@@ -1,5 +1,5 @@
{
- "id": "ff3e17ab-43af-4427-8582-e5057365e136",
+ "id": "ce358cf4-6c4f-4551-87de-35e01db3ed67",
"prevId": "45dcb87d-89c8-4cf7-a504-0db74ba68640",
"version": "7",
"dialect": "postgresql",
@@ -1880,7 +1880,15 @@
"onUpdate": "no action"
}
},
- "compositePrimaryKeys": {},
+ "compositePrimaryKeys": {
+ "intending_grazing_b_id_farm_b_grazing_intention_year_pk": {
+ "name": "intending_grazing_b_id_farm_b_grazing_intention_year_pk",
+ "columns": [
+ "b_id_farm",
+ "b_grazing_intention_year"
+ ]
+ }
+ },
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
diff --git a/fdm-core/src/db/migrations/meta/_journal.json b/fdm-core/src/db/migrations/meta/_journal.json
index be533f17c..eaf890b40 100644
--- a/fdm-core/src/db/migrations/meta/_journal.json
+++ b/fdm-core/src/db/migrations/meta/_journal.json
@@ -110,8 +110,8 @@
{
"idx": 15,
"version": "7",
- "when": 1760527725262,
- "tag": "0015_polite_jane_foster",
+ "when": 1760528792955,
+ "tag": "0015_new_stick",
"breakpoints": true
}
]
diff --git a/fdm-core/src/db/schema.ts b/fdm-core/src/db/schema.ts
index 11b320cf2..7a1417410 100644
--- a/fdm-core/src/db/schema.ts
+++ b/fdm-core/src/db/schema.ts
@@ -851,13 +851,11 @@ export const intendingGrazing = fdmSchema.table(
created: timestamp({ withTimezone: true }).notNull().defaultNow(),
updated: timestamp({ withTimezone: true }),
},
- (table) => {
- return [
- {
- pk: primaryKey({ columns: [table.b_id_farm, table.b_grazing_intention_year] }),
- },
- ]
- },
+ (table) => ({
+ pk: primaryKey({
+ columns: [table.b_id_farm, table.b_grazing_intention_year],
+ }),
+ }),
)
export type intendingGrazingTypeSelect = typeof intendingGrazing.$inferSelect
From 05048a42168779a17e0e7c71f91b5e950d79db7f Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Wed, 15 Oct 2025 13:56:13 +0200
Subject: [PATCH 049/243] test: fix setup for organic certifications
---
fdm-core/src/organic.test.ts | 83 ++++++++++++++++++------------------
1 file changed, 42 insertions(+), 41 deletions(-)
diff --git a/fdm-core/src/organic.test.ts b/fdm-core/src/organic.test.ts
index 663af1a67..28ca32027 100644
--- a/fdm-core/src/organic.test.ts
+++ b/fdm-core/src/organic.test.ts
@@ -1,8 +1,7 @@
import { eq } from "drizzle-orm"
-import { afterEach, beforeEach, describe, expect, it } from "vitest"
+import { beforeEach, describe, expect, inject, it } from "vitest"
import { createFdmServer } from "./fdm-server"
import * as schema from "./db/schema"
-import * as authNSchema from "./db/schema-authn"
import { addFarm } from "./farm"
import {
addOrganicCertification,
@@ -11,48 +10,38 @@ import {
listOrganicCertifications,
removeOrganicCertification,
} from "./organic"
-
-// Helper function to create a principal for testing purposes
-async function createPrincipal(fdm: Awaited>, username: string): Promise {
- const newPrincipalId = `principal-${Math.random().toString(36).substring(2, 9)}`
- await fdm.insert(authNSchema.user).values({
- id: newPrincipalId,
- name: username,
- email: `${username}@example.com`,
- emailVerified: true,
- createdAt: new Date(),
- updatedAt: new Date(),
- username: username,
- lang: "en-US",
- })
- return newPrincipalId
-}
+import type { FdmServerType } from "./fdm-server.d"
+import { createId } from "./id"
describe("Organic Certifications", () => {
- let fdm: Awaited>
- let principalId: string
+ let fdm: FdmServerType
let farmId: string
+ let principalId: string
beforeEach(async () => {
- fdm = createFdmServer(
- "localhost",
- 5432,
- "postgres",
- "postgres",
- "fdm",
+ const host = inject("host")
+ const port = inject("port")
+ const user = inject("user")
+ const password = inject("password")
+ const database = inject("database")
+ fdm = createFdmServer(host, port, user, password, database)
+
+ // Create test field and analyses before each test
+ const farmName = "Test Farm"
+ const farmBusinessId = "123456"
+ const farmAddress = "123 Farm Lane"
+ const farmPostalCode = "12345"
+ principalId = createId()
+ farmId = await addFarm(
+ fdm,
+ principalId,
+ farmName,
+ farmBusinessId,
+ farmAddress,
+ farmPostalCode,
)
- principalId = await createPrincipal(fdm, "test-principal")
- farmId = await addFarm(fdm, principalId, "Test Farm", undefined, undefined, undefined)
})
- // afterEach(async () => {
- // await fdm.delete(schema.farms)
- // await fdm.delete(authNSchema.user) // Corrected to authNSchema.user
- // await fdm.delete(schema.organicCertifications)
- // await fdm.delete(schema.organicCertificationsHolding)
- // await fdm.$client.end()
- // })
-
it("should add a new organic certification", async () => {
const traces = "NL-BIO-01.528-0002967.2025.001"
const skal = "026281"
@@ -74,15 +63,25 @@ describe("Organic Certifications", () => {
const certifications = await fdm
.select()
.from(schema.organicCertifications)
- .where(eq(schema.organicCertifications.b_id_organic, certificationId))
+ .where(
+ eq(schema.organicCertifications.b_id_organic, certificationId),
+ )
expect(certifications.length).toBe(1)
expect(certifications[0].b_organic_traces).toBe(traces)
expect(certifications[0].b_organic_skal).toBe(skal)
- expect(certifications[0].b_organic_issued?.toISOString()).toBe(issued.toISOString())
- expect(certifications[0].b_organic_expires?.toISOString()).toBe(expires.toISOString())
+ expect(certifications[0].b_organic_issued?.toISOString()).toBe(
+ issued.toISOString(),
+ )
+ expect(certifications[0].b_organic_expires?.toISOString()).toBe(
+ expires.toISOString(),
+ )
- const fetchedCertification = await getOrganicCertification(fdm, principalId, certificationId)
+ const fetchedCertification = await getOrganicCertification(
+ fdm,
+ principalId,
+ certificationId,
+ )
expect(fetchedCertification).toBeDefined()
expect(fetchedCertification?.b_id_organic).toBe(certificationId)
expect(fetchedCertification?.b_organic_traces).toBe(traces)
@@ -206,7 +205,9 @@ describe("Organic Certifications", () => {
const certifications = await fdm
.select()
.from(schema.organicCertifications)
- .where(eq(schema.organicCertifications.b_id_organic, certificationId))
+ .where(
+ eq(schema.organicCertifications.b_id_organic, certificationId),
+ )
expect(certifications.length).toBe(0)
})
From 726ae00d12b03abb3f134b05dd9b65d0815e67e7 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Wed, 15 Oct 2025 14:09:04 +0200
Subject: [PATCH 050/243] Fix: differentiate stikstofgebruiksnorm for grassland
based on "beweiden" or "volledig maaien"
---
.changeset/free-lizards-serve.md | 5 +++
fdm-calculator/src/norms/nl/2025/input.ts | 13 +++++-
.../nl/2025/stikstofgebruiksnorm-data.ts | 43 ++++++++++---------
.../src/norms/nl/2025/stikstofgebruiksnorm.ts | 12 +++++-
fdm-calculator/src/norms/nl/2025/types.d.ts | 1 +
5 files changed, 50 insertions(+), 24 deletions(-)
create mode 100644 .changeset/free-lizards-serve.md
diff --git a/.changeset/free-lizards-serve.md b/.changeset/free-lizards-serve.md
new file mode 100644
index 000000000..c3c4215bd
--- /dev/null
+++ b/.changeset/free-lizards-serve.md
@@ -0,0 +1,5 @@
+---
+"@svenvw/fdm-calculator": patch
+---
+
+Fixes to differentiate stikstofgebruiksnorm for grassland based on "beweiden" or "volledig maaien"
diff --git a/fdm-calculator/src/norms/nl/2025/input.ts b/fdm-calculator/src/norms/nl/2025/input.ts
index 9e3853e04..ae99529c9 100644
--- a/fdm-calculator/src/norms/nl/2025/input.ts
+++ b/fdm-calculator/src/norms/nl/2025/input.ts
@@ -5,6 +5,8 @@ import {
getField,
isDerogationGrantedForYear,
type Timeframe,
+ getGrazingIntention,
+ type PrincipalId,
} from "@svenvw/fdm-core"
import type { NL2025NormsInput } from "./types.d"
@@ -46,7 +48,15 @@ export async function collectNL2025InputForNorms(
2025,
)
- // 3. Get the details of the cultivations
+ // 3. Get the grazing intention for the farm
+ const has_grazing_intention = await getGrazingIntention(
+ fdm,
+ principal_id as PrincipalId,
+ field.b_id_farm,
+ 2025,
+ )
+
+ // 4. Get the details of the cultivations
const cultivations = await getCultivations(
fdm,
principal_id,
@@ -75,6 +85,7 @@ export async function collectNL2025InputForNorms(
return {
farm: {
is_derogatie_bedrijf,
+ has_grazing_intention,
},
field: field,
cultivations: cultivations,
diff --git a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm-data.ts b/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm-data.ts
index 29a93b63d..1bd4182dc 100644
--- a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm-data.ts
+++ b/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm-data.ts
@@ -5,27 +5,28 @@ export const nitrogenStandardsData = [
type: "grasland",
is_winterteelt: true,
is_vanggewas: false,
- norms: {
- klei: { standard: 345, nv_area: 276 },
- zand_nwc: { standard: 250, nv_area: 200 },
- zand_zuid: { standard: 250, nv_area: 200 },
- loess: { standard: 250, nv_area: 200 },
- veen: { standard: 265, nv_area: 212 },
- },
- },
- {
- cultivation_rvo_table2: "Grasland met volledig maaien",
- b_lu_catalogue_match: ["nl_265", "nl_331"],
- type: "grasland",
- is_winterteelt: true,
- is_vanggewas: false,
- norms: {
- klei: { standard: 385, nv_area: 308 },
- zand_nwc: { standard: 320, nv_area: 256 },
- zand_zuid: { standard: 320, nv_area: 256 },
- loess: { standard: 320, nv_area: 256 },
- veen: { standard: 300, nv_area: 240 },
- },
+ sub_types: [
+ {
+ omschrijving: "beweiden",
+ norms: {
+ klei: { standard: 345, nv_area: 276 },
+ zand_nwc: { standard: 250, nv_area: 200 },
+ zand_zuid: { standard: 250, nv_area: 200 },
+ loess: { standard: 250, nv_area: 200 },
+ veen: { standard: 265, nv_area: 212 },
+ },
+ },
+ {
+ omschrijving: "volledig maaien",
+ norms: {
+ klei: { standard: 385, nv_area: 308 },
+ zand_nwc: { standard: 320, nv_area: 256 },
+ zand_zuid: { standard: 320, nv_area: 256 },
+ loess: { standard: 320, nv_area: 256 },
+ veen: { standard: 300, nv_area: 240 },
+ },
+ },
+ ],
},
{
cultivation_rvo_table2: "Tijdelijk grasland",
diff --git a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.ts
index 6025078b0..4c3a8e7ea 100644
--- a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.ts
@@ -147,7 +147,7 @@ export async function getRegion(
function getNormsForCultivation(
selectedStandard: NitrogenStandard,
b_lu_end: Date,
- subTypeOmschrijving?: string, // New parameter
+ subTypeOmschrijving?: string,
): NormsByRegion | undefined {
if (selectedStandard.sub_types) {
type SubType = NonNullable[number]
@@ -207,7 +207,13 @@ function determineSubTypeOmschrijving(
standard: NitrogenStandard,
is_derogatie_bedrijf: boolean | undefined,
cultivations: NL2025NormsInputForCultivation[],
+ has_grazing_intention: boolean | undefined,
): string | undefined {
+ // Grasland logic based on grazing intention
+ if (standard.type === "grasland") {
+ return has_grazing_intention ? "beweiden" : "volledig maaien"
+ }
+
// Potato logic based on variety
if (standard.type === "aardappel") {
if (cultivation.b_lu_variety) {
@@ -527,6 +533,7 @@ export async function getNL2025StikstofGebruiksNorm(
input: NL2025NormsInput,
): Promise {
const is_derogatie_bedrijf = input.farm.is_derogatie_bedrijf
+ const has_grazing_intention = input.farm.has_grazing_intention
const field = input.field
const cultivations = input.cultivations
@@ -596,12 +603,13 @@ export async function getNL2025StikstofGebruiksNorm(
selectedStandard,
is_derogatie_bedrijf,
cultivations,
+ has_grazing_intention,
)
const applicableNorms = getNormsForCultivation(
selectedStandard,
cultivation.b_lu_end,
- subTypeOmschrijving, // Pass the determined subTypeOmschrijving
+ subTypeOmschrijving,
)
if (!applicableNorms) {
diff --git a/fdm-calculator/src/norms/nl/2025/types.d.ts b/fdm-calculator/src/norms/nl/2025/types.d.ts
index 68062b107..d7e2cce05 100644
--- a/fdm-calculator/src/norms/nl/2025/types.d.ts
+++ b/fdm-calculator/src/norms/nl/2025/types.d.ts
@@ -15,6 +15,7 @@ export type NL2025NormsInput = {
/** Farm-level properties, such as derogation status. */
farm: {
is_derogatie_bedrijf: boolean
+ has_grazing_intention: boolean
}
/** The field record from fdm-core, including its ID and centroid for location-based checks. */
field: Pick
From d7ecb611e07ad87f79d239572a75f7af53ff388f Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Wed, 15 Oct 2025 14:24:34 +0200
Subject: [PATCH 051/243] test: update for grazing intention
---
.../src/norms/nl/2025/input.test.ts | 21 ++++--
.../nl/2025/stikstofgebruiksnorm.test.ts | 68 ++++++++++++-------
2 files changed, 60 insertions(+), 29 deletions(-)
diff --git a/fdm-calculator/src/norms/nl/2025/input.test.ts b/fdm-calculator/src/norms/nl/2025/input.test.ts
index b729d3523..b2f84053a 100644
--- a/fdm-calculator/src/norms/nl/2025/input.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/input.test.ts
@@ -16,6 +16,7 @@ vi.mock("@svenvw/fdm-core", async () => {
getCultivations: vi.fn(),
getCurrentSoilData: vi.fn(),
isDerogationGrantedForYear: vi.fn(),
+ getGrazingIntention: vi.fn(),
}
})
@@ -52,6 +53,7 @@ describe("collectNL2025InputForNorms", () => {
mockSoilAnalysis as unknown as SoilAnalysis[],
)
vi.mocked(fdmCore.isDerogationGrantedForYear).mockResolvedValue(false)
+ vi.mocked(fdmCore.getGrazingIntention).mockResolvedValue(false)
const result = await collectNL2025InputForNorms(
mockFdm,
@@ -60,6 +62,7 @@ describe("collectNL2025InputForNorms", () => {
)
expect(result.farm.is_derogatie_bedrijf).toBe(false)
+ expect(result.farm.has_grazing_intention).toBe(false)
expect(result.field).toBe(mockField)
expect(result.cultivations).toBe(mockCultivations)
expect(result.soilAnalysis).toEqual({ a_p_cc: 1.0, a_p_al: 20 })
@@ -68,6 +71,18 @@ describe("collectNL2025InputForNorms", () => {
mockPrincipalId,
mockFieldId,
)
+ expect(fdmCore.isDerogationGrantedForYear).toHaveBeenCalledWith(
+ mockFdm,
+ mockPrincipalId,
+ "farm-1",
+ 2025,
+ )
+ expect(fdmCore.getGrazingIntention).toHaveBeenCalledWith(
+ mockFdm,
+ mockPrincipalId,
+ "farm-1",
+ 2025,
+ )
expect(fdmCore.getCultivations).toHaveBeenCalledWith(
mockFdm,
mockPrincipalId,
@@ -80,11 +95,5 @@ describe("collectNL2025InputForNorms", () => {
mockFieldId,
timeframe,
)
- expect(fdmCore.isDerogationGrantedForYear).toHaveBeenCalledWith(
- mockFdm,
- mockPrincipalId,
- "farm-1",
- 2025,
- )
})
})
diff --git a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.test.ts
index 8c6d13366..d0d549a80 100644
--- a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.test.ts
@@ -35,9 +35,9 @@ describe("stikstofgebruiksnorm helpers", () => {
})
describe("getNL2025StikstofGebruiksNorm", () => {
- it("should return the correct norm for grasland", async () => {
+ it("should return the correct norm for grasland (beweiden)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: true },
field: {
b_id: "1",
b_centroid: [5.6279889, 51.975571],
@@ -54,12 +54,34 @@ describe("getNL2025StikstofGebruiksNorm", () => {
const result = await getNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(345)
- expect(result.normSource).toEqual("Grasland.")
+ expect(result.normSource).toEqual("Grasland (beweiden).")
+ })
+
+ it("should return the correct norm for grasland (volledig maaien)", async () => {
+ const mockInput: NL2025NormsInput = {
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
+ field: {
+ b_id: "1",
+ b_centroid: [5.6279889, 51.975571],
+ } as Field,
+ cultivations: [
+ {
+ b_lu_catalogue: "nl_265",
+ b_lu_start: new Date(2025, 0, 1), // Current year cultivation
+ b_lu_end: new Date(2025, 5, 1),
+ } as Partial,
+ ] as NL2025NormsInputForCultivation[],
+ soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
+ }
+
+ const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ expect(result.normValue).toBe(385)
+ expect(result.normSource).toEqual("Grasland (volledig maaien).")
})
it("should return the correct norm for potatoes", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.6279889, 51.975571],
@@ -84,7 +106,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should apply 0 korting if winterteelt is present in zand_nwc region (hoofdteelt 2025)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: true },
field: {
b_id: "1",
b_centroid: [5.656346970245633, 51.987872886419524], // This centroid is in 'zand_nwc'
@@ -104,13 +126,13 @@ describe("getNL2025StikstofGebruiksNorm", () => {
// The base norm for Grasland in zand_nwc is 200 in nv-gebied. With winterteelt, korting should be 0.
expect(result.normValue).toBe(200)
expect(result.normSource).toEqual(
- "Grasland. Geen korting: winterteelt aanwezig",
+ "Grasland (beweiden). Geen korting: winterteelt aanwezig",
)
})
it("should apply 0 korting if vanggewas is present (sown <= Oct 1st)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.656346970245633, 51.987872886419524], // This centroid is in 'zand_nwc'
@@ -140,7 +162,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should apply 5 korting if vanggewas is present (sown Oct 2nd - Oct 14th)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.656346970245633, 51.987872886419524], // This centroid is in 'zand_nwc'
@@ -170,7 +192,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should apply 10 korting if vanggewas is present (sown Oct 15th - Oct 31st)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.656346970245633, 51.987872886419524], // This centroid is in 'zand_nwc'
@@ -200,7 +222,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should apply 20 korting if vanggewas is present (sown Nov 1st or later)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.656346970245633, 51.987872886419524], // This centroid is in 'zand_nwc'
@@ -230,7 +252,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should apply 20 korting if no winterteelt or vanggewas is present in zand_nwc region", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.656346970245633, 51.987872886419524], // This centroid is in 'zand_nwc'
@@ -260,7 +282,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should not apply korting if region is not sandy or loess, even without winterteelt/vanggewas", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.648307588666836, 51.96484772224782], // This centroid is in 'klei'
@@ -290,7 +312,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should return the correct norm for Gras voor industriële verwerking (eerste jaar)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.6279889, 51.975571], // Klei region
@@ -314,7 +336,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should return the correct norm for Gras voor industriële verwerking (volgende jaren)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.6279889, 51.975571], // Klei region
@@ -343,7 +365,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should return the correct norm for Graszaad, Engels raaigras (1e jaars)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.6279889, 51.975571], // Klei region
@@ -367,7 +389,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should return the correct norm for Graszaad, Engels raaigras (overjarig)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.6279889, 51.975571], // Klei region
@@ -396,7 +418,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should return the correct norm for Akkerbouwgewassen, Roodzwenkgras (1e jaars)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.6279889, 51.975571], // Klei region
@@ -420,7 +442,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should return the correct norm for Akkerbouwgewassen, Roodzwenkgras (overjarig)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.6279889, 51.975571], // Klei region
@@ -449,7 +471,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should return the correct norm for Winterui (1e jaars)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.6279889, 51.975571], // Klei region
@@ -473,7 +495,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should return the correct norm for Winterui (2e jaars)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.6279889, 51.975571], // Klei region
@@ -497,7 +519,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should return the correct norm for Bladgewassen, Spinazie (1e teelt)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.6279889, 51.975571], // Klei region
@@ -519,7 +541,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should return the correct norm for Bladgewassen, Slasoorten (1e teelt)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.6279889, 51.975571], // Klei region
@@ -543,7 +565,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
it("should return the correct norm for Bladgewassen, Andijvie eerste teelt volgteelt (1e teelt)", async () => {
const mockInput: NL2025NormsInput = {
- farm: { is_derogatie_bedrijf: false },
+ farm: { is_derogatie_bedrijf: false, has_grazing_intention: false },
field: {
b_id: "1",
b_centroid: [5.6279889, 51.975571], // Klei region
From 81497ddd66fa0ac919bab724365b91dad257dcc3 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Wed, 15 Oct 2025 16:11:08 +0200
Subject: [PATCH 052/243] feat: add table 11
---
.../nl/2025/filling/table-11-mestcodes.ts | 336 ++++++++++++++++++
.../src/norms/nl/2025/filling/types.d.ts | 8 +
2 files changed, 344 insertions(+)
create mode 100644 fdm-calculator/src/norms/nl/2025/filling/table-11-mestcodes.ts
create mode 100644 fdm-calculator/src/norms/nl/2025/filling/types.d.ts
diff --git a/fdm-calculator/src/norms/nl/2025/filling/table-11-mestcodes.ts b/fdm-calculator/src/norms/nl/2025/filling/table-11-mestcodes.ts
new file mode 100644
index 000000000..bbac1b3fc
--- /dev/null
+++ b/fdm-calculator/src/norms/nl/2025/filling/table-11-mestcodes.ts
@@ -0,0 +1,336 @@
+import type { Table11Mestcodes } from "./types"
+
+export const table11Mestcodes: Table11Mestcodes = [
+ {
+ p_type_rvo: "10",
+ p_type_animal: true,
+ p_n_rt: 6.4,
+ p_p_rt: 3.2,
+ },
+ {
+ p_type_rvo: "11",
+ p_type_animal: true,
+ p_n_rt: 4.0,
+ p_p_rt: 1.3,
+ },
+ {
+ p_type_rvo: "12",
+ p_type_animal: true,
+ p_n_rt: 4.0,
+ p_p_rt: 0.2,
+ },
+ {
+ p_type_rvo: "13",
+ p_type_animal: true,
+ p_n_rt: 9.2,
+ p_p_rt: 9.2,
+ },
+ {
+ p_type_rvo: "14",
+ p_type_animal: true,
+ p_n_rt: 4.0,
+ p_p_rt: 1.5,
+ },
+ {
+ p_type_rvo: "17",
+ p_type_animal: true,
+ p_n_rt: 4.2,
+ p_p_rt: 5.0,
+ },
+ {
+ p_type_rvo: "18",
+ p_type_animal: true,
+ p_n_rt: 3.2,
+ p_p_rt: 1.2,
+ },
+ {
+ p_type_rvo: "19",
+ p_type_animal: true,
+ p_n_rt: 5.5,
+ p_p_rt: 2.2,
+ },
+ {
+ p_type_rvo: "23",
+ p_type_animal: true,
+ p_n_rt: 30.1,
+ p_p_rt: 22.9,
+ },
+ {
+ p_type_rvo: "30",
+ p_type_animal: true,
+ p_n_rt: 9.9,
+ p_p_rt: 6.2,
+ },
+ {
+ p_type_rvo: "31",
+ p_type_animal: true,
+ p_n_rt: 24.3,
+ p_p_rt: 22.1,
+ },
+ {
+ p_type_rvo: "32",
+ p_type_animal: true,
+ p_n_rt: 26.0,
+ p_p_rt: 20.9,
+ },
+ {
+ p_type_rvo: "33",
+ p_type_animal: true,
+ p_n_rt: 32.6,
+ p_p_rt: 26.3,
+ },
+ {
+ p_type_rvo: "35",
+ p_type_animal: true,
+ p_n_rt: 26.8,
+ p_p_rt: 24.9,
+ },
+ {
+ p_type_rvo: "39",
+ p_type_animal: true,
+ p_n_rt: 31.1,
+ p_p_rt: 15.4,
+ },
+ {
+ p_type_rvo: "40",
+ p_type_animal: true,
+ p_n_rt: 8.1,
+ p_p_rt: 8.0,
+ },
+ {
+ p_type_rvo: "41",
+ p_type_animal: true,
+ p_n_rt: 6.8,
+ p_p_rt: 1.6,
+ },
+ {
+ p_type_rvo: "42",
+ p_type_animal: true,
+ p_n_rt: 2.0,
+ p_p_rt: 0.9,
+ },
+ {
+ p_type_rvo: "43",
+ p_type_animal: true,
+ p_n_rt: 11.0,
+ p_p_rt: 17.8,
+ },
+ {
+ p_type_rvo: "46",
+ p_type_animal: true,
+ p_n_rt: 3.8,
+ p_p_rt: 2.4,
+ },
+ {
+ p_type_rvo: "50",
+ p_type_animal: true,
+ p_n_rt: 6.4,
+ p_p_rt: 3.8,
+ },
+ {
+ p_type_rvo: "56",
+ p_type_animal: true,
+ p_n_rt: 8.5,
+ p_p_rt: 4.7,
+ },
+ {
+ p_type_rvo: "60",
+ p_type_animal: true,
+ p_n_rt: 4.8,
+ p_p_rt: 2.5,
+ },
+ {
+ p_type_rvo: "61",
+ p_type_animal: true,
+ p_n_rt: 9.1,
+ p_p_rt: 4.8,
+ },
+ {
+ p_type_rvo: "75",
+ p_type_animal: true,
+ p_n_rt: 27.7,
+ p_p_rt: 45.7,
+ },
+ {
+ p_type_rvo: "76",
+ p_type_animal: true,
+ p_n_rt: 7.9,
+ p_p_rt: 3.1,
+ },
+ {
+ p_type_rvo: "80",
+ p_type_animal: true,
+ p_n_rt: 9.7,
+ p_p_rt: 9.4,
+ },
+ {
+ p_type_rvo: "81",
+ p_type_animal: true,
+ p_n_rt: 5.8,
+ p_p_rt: 3.8,
+ },
+ {
+ p_type_rvo: "90",
+ p_type_animal: true,
+ p_n_rt: 11.3,
+ p_p_rt: 11.7,
+ },
+ {
+ p_type_rvo: "91",
+ p_type_animal: true,
+ p_n_rt: 0.81,
+ p_p_rt: 0.14,
+ },
+ {
+ p_type_rvo: "92",
+ p_type_animal: true,
+ p_n_rt: 4.4,
+ p_p_rt: 3.0,
+ },
+ {
+ p_type_rvo: "25",
+ p_type_animal: true,
+ p_n_rt: 4.8,
+ p_p_rt: 2.5,
+ },
+ {
+ p_type_rvo: "26",
+ p_type_animal: true,
+ p_n_rt: 5.0,
+ p_p_rt: 3.0,
+ },
+ {
+ p_type_rvo: "27",
+ p_type_animal: true,
+ p_n_rt: 4.7,
+ p_p_rt: 3.2,
+ },
+ {
+ p_type_rvo: "95",
+ p_type_animal: true,
+ p_n_rt: 7.1,
+ p_p_rt: 5.3,
+ },
+ {
+ p_type_rvo: "96",
+ p_type_animal: true,
+ p_n_rt: 4.1,
+ p_p_rt: 2.1,
+ },
+ {
+ p_type_rvo: "97",
+ p_type_animal: true,
+ p_n_rt: 8.9,
+ p_p_rt: 8.1,
+ },
+ {
+ p_type_rvo: "98",
+ p_type_animal: true,
+ p_n_rt: 8.9,
+ p_p_rt: 8.1,
+ },
+ {
+ p_type_rvo: "99",
+ p_type_animal: true,
+ p_n_rt: 32.6,
+ p_p_rt: 17.7,
+ },
+ {
+ p_type_rvo: "100",
+ p_type_animal: true,
+ p_n_rt: 23.1,
+ p_p_rt: 18.7,
+ },
+ {
+ p_type_rvo: "101",
+ p_type_animal: true,
+ p_n_rt: 23.1,
+ p_p_rt: 18.7,
+ },
+ {
+ p_type_rvo: "102",
+ p_type_animal: true,
+ p_n_rt: 11.9,
+ p_p_rt: 11.7,
+ },
+ {
+ p_type_rvo: "103",
+ p_type_animal: true,
+ p_n_rt: 11.9,
+ p_p_rt: 11.7,
+ },
+ {
+ p_type_rvo: "104",
+ p_type_animal: true,
+ p_n_rt: 11.9,
+ p_p_rt: 11.7,
+ },
+ {
+ p_type_rvo: "105",
+ p_type_animal: true,
+ p_n_rt: 11.9,
+ p_p_rt: 11.7,
+ },
+ {
+ p_type_rvo: "106",
+ p_type_animal: true,
+ p_n_rt: 11.9,
+ p_p_rt: 11.7,
+ },
+ {
+ p_type_rvo: "107",
+ p_type_animal: true,
+ p_n_rt: 5.5,
+ p_p_rt: 3.1,
+ },
+ {
+ p_type_rvo: "108",
+ p_type_animal: true,
+ },
+ {
+ p_type_rvo: "109",
+ p_type_animal: true,
+ p_n_rt: 8.0,
+ p_p_rt: 4.4,
+ },
+ {
+ p_type_rvo: "110",
+ p_type_animal: true,
+ p_n_rt: 7.0,
+ p_p_rt: 3.9,
+ },
+ {
+ p_type_rvo: "111",
+ p_type_animal: false,
+ },
+ {
+ p_type_rvo: "112",
+ p_type_animal: false,
+ },
+ {
+ p_type_rvo: "113",
+ p_type_animal: false,
+ },
+ {
+ p_type_rvo: "114",
+ p_type_animal: false,
+ },
+ {
+ p_type_rvo: "115",
+ p_type_animal: false,
+ },
+ {
+ p_type_rvo: "116",
+ p_type_animal: false,
+ },
+ {
+ p_type_rvo: "117",
+ p_type_animal: true,
+ p_n_rt: 7.1,
+ p_p_rt: 4.1,
+ },
+ {
+ p_type_rvo: "120",
+ p_type_animal: true,
+ },
+]
diff --git a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
new file mode 100644
index 000000000..385266db3
--- /dev/null
+++ b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
@@ -0,0 +1,8 @@
+import type { fdmSchema } from "@svenvw/fdm-core"
+
+export type Table11Mestcodes = {
+ p_type_rvo: fdmSchema.fertilizersCatalogueTypeSelect["p_type_rvo"]
+ p_type_animal: boolean
+ p_n_rt?: number
+ p_p_rt?: number
+}[]
From 6f5d0b41d17e732d6fbfa269a14a6ed593632122 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Thu, 16 Oct 2025 09:59:56 +0200
Subject: [PATCH 053/243] feat: implement the function to calculate the filling
for dierlijke mest gebruiksnorm
---
fdm-calculator/src/norms/index.test.ts | 8 +-
fdm-calculator/src/norms/index.ts | 8 +-
.../dierlijke-mest-gebruiksnorm.test.ts | 152 ++++++++++++++++++
.../filling/dierlijke-mest-gebruiksnorm.ts | 96 +++++++++++
.../nl/2025/filling/table-11-mestcodes.ts | 116 ++++++-------
.../src/norms/nl/2025/filling/types.d.ts | 10 +-
6 files changed, 322 insertions(+), 68 deletions(-)
create mode 100644 fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.test.ts
create mode 100644 fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.ts
diff --git a/fdm-calculator/src/norms/index.test.ts b/fdm-calculator/src/norms/index.test.ts
index 47b971ad0..f19f49f87 100644
--- a/fdm-calculator/src/norms/index.test.ts
+++ b/fdm-calculator/src/norms/index.test.ts
@@ -8,6 +8,8 @@ import { getNL2025DierlijkeMestGebruiksNorm } from "./nl/2025/dierlijke-mest-geb
import { getNL2025FosfaatGebruiksNorm } from "./nl/2025/fosfaatgebruiksnorm"
import { collectNL2025InputForNorms } from "./nl/2025/input"
import { getNL2025StikstofGebruiksNorm } from "./nl/2025/stikstofgebruiksnorm"
+import { calculateFertilizerApplicationFillingForPhosphate } from "./nl/2025/filling/fosfaatgebruiksnorm"
+import { calculateFertilizerApplicationFillingForManure } from "./nl/2025/filling/dierlijke-mest-gebruiksnorm"
describe("createFunctionsForNorms", () => {
it("should return the correct functions for NL region and year 2025", () => {
@@ -56,10 +58,8 @@ describe("createFunctionsForFertilizerApplicationFilling", () => {
).toThrowError(
"calculateFertilizerApplicationFillingForNitrogen is not implemented yet",
)
- expect(
- functions.calculateFertilizerApplicationFillingForManure,
- ).toThrowError(
- "calculateFertilizerApplicationFillingForManure is not implemented yet",
+ expect(functions.calculateFertilizerApplicationFillingForManure).toBe(
+ calculateFertilizerApplicationFillingForManure,
)
expect(
functions.calculateFertilizerApplicationFillingForPhosphate,
diff --git a/fdm-calculator/src/norms/index.ts b/fdm-calculator/src/norms/index.ts
index 5dfa708fb..bfce0591f 100644
--- a/fdm-calculator/src/norms/index.ts
+++ b/fdm-calculator/src/norms/index.ts
@@ -1,5 +1,6 @@
import { aggregateNormsToFarmLevel } from "./farm"
import { getNL2025DierlijkeMestGebruiksNorm } from "./nl/2025/dierlijke-mest-gebruiksnorm"
+import { calculateFertilizerApplicationFillingForManure } from "./nl/2025/filling/dierlijke-mest-gebruiksnorm"
import { getNL2025FosfaatGebruiksNorm } from "./nl/2025/fosfaatgebruiksnorm"
import { collectNL2025InputForNorms } from "./nl/2025/input"
import { getNL2025StikstofGebruiksNorm } from "./nl/2025/stikstofgebruiksnorm"
@@ -38,11 +39,8 @@ export function createFunctionsForFertilizerApplicationFilling(
"calculateFertilizerApplicationFillingForNitrogen is not implemented yet",
)
},
- calculateFertilizerApplicationFillingForManure: () => {
- throw new Error(
- "calculateFertilizerApplicationFillingForManure is not implemented yet",
- )
- },
+ calculateFertilizerApplicationFillingForManure:
+ calculateFertilizerApplicationFillingForManure,
calculateFertilizerApplicationFillingForPhosphate: () => {
throw new Error(
"calculateFertilizerApplicationFillingForPhosphate is not implemented yet",
diff --git a/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.test.ts
new file mode 100644
index 000000000..2833ed3a1
--- /dev/null
+++ b/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.test.ts
@@ -0,0 +1,152 @@
+import { describe, it, expect } from "vitest"
+import type { Fertilizer, FertilizerApplication } from "@svenvw/fdm-core"
+import { calculateFertilizerApplicationFillingForManure } from "./dierlijke-mest-gebruiksnorm"
+
+describe("calculateFertilizerApplicationFillingForManure", () => {
+ const mockFertilizers: Fertilizer[] = [
+ {
+ p_id_catalogue: "1",
+ p_type_rvo: "11",
+ p_n_rt: 0.5,
+ },
+ {
+ p_id_catalogue: "2",
+ p_type_rvo: "12",
+ },
+ {
+ p_id_catalogue: "3",
+ p_type_rvo: "200", // Not in table11Mestcodes
+ },
+ {
+ p_id_catalogue: "4",
+ // No p_type_rvo
+ },
+ {
+ p_id_catalogue: "5",
+ p_type_rvo: "115", // Not relevant for nitrates directive
+ },
+ ]
+
+ const mockApplications: FertilizerApplication[] = [
+ {
+ p_app_id: "app1",
+ p_id_catalogue: "1",
+ p_app_amount: 10000,
+ },
+ {
+ p_app_id: "app2",
+ p_id_catalogue: "2",
+ p_app_amount: 20000,
+ },
+ ]
+
+ it("should calculate the norm filling for a single application", () => {
+ const result = calculateFertilizerApplicationFillingForManure({
+ applications: [mockApplications[0]],
+ fertilizers: mockFertilizers,
+ })
+
+ expect(result.normFilling).toBe(5)
+ expect(result.applicationFilling).toEqual([
+ {
+ p_app_id: "app1",
+ normFilling: 5,
+ },
+ ])
+ })
+
+ it("should calculate the norm filling for multiple applications", () => {
+ const result = calculateFertilizerApplicationFillingForManure({
+ applications: mockApplications,
+ fertilizers: mockFertilizers,
+ })
+
+ expect(result.normFilling).toBe(85) // 5 + 80
+ expect(result.applicationFilling).toEqual([
+ {
+ p_app_id: "app1",
+ normFilling: 5,
+ },
+ {
+ p_app_id: "app2",
+ normFilling: 80,
+ },
+ ])
+ })
+
+ it("should return zero filling for fertilizers not relevant to the nitrates directive", () => {
+ const result = calculateFertilizerApplicationFillingForManure({
+ applications: [
+ {
+ p_app_id: "app3",
+ p_id_catalogue: "5",
+ p_app_amount: 10,
+ },
+ ],
+ fertilizers: mockFertilizers,
+ })
+
+ expect(result.normFilling).toBe(0)
+ expect(result.applicationFilling).toEqual([
+ {
+ p_app_id: "app3",
+ normFilling: 0,
+ },
+ ])
+ })
+
+ it("should throw an error if a fertilizer is not found", () => {
+ expect(() =>
+ calculateFertilizerApplicationFillingForManure({
+ applications: [
+ {
+ p_app_id: "app4",
+ p_id_catalogue: "999",
+ p_app_amount: 10,
+ },
+ ],
+ fertilizers: mockFertilizers,
+ }),
+ ).toThrow("Fertilizer 999 not found for application app4")
+ })
+
+ it("should throw an error if a fertilizer has no p_type_rvo", () => {
+ expect(() =>
+ calculateFertilizerApplicationFillingForManure({
+ applications: [
+ {
+ p_app_id: "app5",
+ p_id_catalogue: "4",
+ p_app_amount: 10,
+ },
+ ],
+ fertilizers: mockFertilizers,
+ }),
+ ).toThrow("Fertilizer 4 has no p_type_rvo")
+ })
+
+ it("should throw an error if a fertilizer has an unknown p_type_rvo", () => {
+ expect(() =>
+ calculateFertilizerApplicationFillingForManure({
+ applications: [
+ {
+ p_app_id: "app6",
+ p_id_catalogue: "3",
+ p_app_amount: 10,
+ },
+ ],
+ fertilizers: mockFertilizers,
+ }),
+ ).toThrow("Fertilizer 3 has unknown p_type_rvo 200")
+ })
+
+ it("should return zero filling when no applications are provided", () => {
+ const result = calculateFertilizerApplicationFillingForManure({
+ applications: [],
+ fertilizers: mockFertilizers,
+ })
+
+ expect(result.normFilling).toBe(0)
+ expect(result.applicationFilling).toEqual([])
+ })
+})
diff --git a/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.ts
new file mode 100644
index 000000000..8dd16f02d
--- /dev/null
+++ b/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.ts
@@ -0,0 +1,96 @@
+import type { Fertilizer, FertilizerApplication } from "@svenvw/fdm-core"
+import Decimal from "decimal.js"
+import { table11Mestcodes } from "./table-11-mestcodes"
+import type { NormFilling } from "./types"
+
+/**
+ * Calculates the nitrogen usage from animal manure for a list of fertilizer applications.
+ *
+ * This function determines the contribution of each fertilizer application to the nitrogen norm
+ * based on the type of manure used. It uses predefined values from `table11Mestcodes` to identify
+ * which fertilizers are considered animal manure and to find their nitrogen content.
+ *
+ * @param {object} params - The parameters for the calculation.
+ * @param {FertilizerApplication[]} params.applications - A list of fertilizer applications, each specifying the amount and type of fertilizer used.
+ * @param {Fertilizer[]} params.fertilizers - A list of available fertilizers, providing details like nitrogen content.
+ * @returns {NormFilling} An object containing the total nitrogen usage (`normFilling`) and a detailed breakdown per application (`applicationFilling`).
+ * @throws {Error} Throws an error if a fertilizer or its RVO type is not found, ensuring data integrity.
+ */
+export function calculateFertilizerApplicationFillingForManure({
+ applications,
+ fertilizers,
+}: {
+ applications: FertilizerApplication[]
+ fertilizers: Fertilizer[]
+}): NormFilling {
+ // Create maps for efficient lookups of fertilizers and RVO types.
+ // This avoids iterating over the arrays repeatedly in a loop.
+ const fertilizersMap = new Map(
+ fertilizers.map((fertilizer) => [fertilizer.p_id_catalogue, fertilizer]),
+ )
+ const rvoTypeMap = new Map(
+ table11Mestcodes.map((rvoType) => [rvoType.p_type_rvo, rvoType]),
+ )
+
+ // Use reduce to iterate over applications and calculate the total norm filling.
+ const { totalFilling, applicationFilling } = applications.reduce(
+ (acc, application) => {
+ // Retrieve the fertilizer for the current application.
+ const fertilizer = fertilizersMap.get(application.p_id_catalogue)
+ if (!fertilizer) {
+ throw new Error(
+ `Fertilizer ${application.p_id_catalogue} not found for application ${application.p_app_id}`,
+ )
+ }
+
+ // Get the RVO type of the fertilizer.
+ const p_type_rvo = fertilizer.p_type_rvo
+ if (!p_type_rvo) {
+ throw new Error(
+ `Fertilizer ${application.p_id_catalogue} has no p_type_rvo`,
+ )
+ }
+
+ // Find the properties associated with the RVO type.
+ const rvoTypeProperties = rvoTypeMap.get(p_type_rvo)
+ if (!rvoTypeProperties) {
+ throw new Error(
+ `Fertilizer ${application.p_id_catalogue} has unknown p_type_rvo ${p_type_rvo}`,
+ )
+ }
+
+ let normFilling = new Decimal(0)
+ // Check if the fertilizer is relevant for the nitrates directive.
+ if (rvoTypeProperties.p_type_nitratesdirective) {
+ const amount = new Decimal(application.p_app_amount)
+ // Determine the nitrogen content, using specific values if available, otherwise fallback to default.
+ const p_n_rt = new Decimal(
+ fertilizer.p_n_rt ?? rvoTypeProperties.p_n_rt ?? 0,
+ )
+ // Calculate the norm filling for this application.
+ normFilling = amount.times(p_n_rt).dividedBy(1000)
+ }
+
+ // Add the filling of the current application to the total.
+ acc.totalFilling = acc.totalFilling.plus(normFilling)
+ // Add the detailed filling for this application to the list.
+ acc.applicationFilling.push({
+ p_app_id: application.p_app_id,
+ normFilling: normFilling.toNumber(),
+ })
+
+ return acc
+ },
+ // Initial value for the accumulator.
+ {
+ totalFilling: new Decimal(0),
+ applicationFilling: [] as { p_app_id: string; normFilling: number }[],
+ },
+ )
+
+ // Return the total norm filling and the breakdown per application.
+ return {
+ normFilling: totalFilling.toNumber(),
+ applicationFilling,
+ }
+}
diff --git a/fdm-calculator/src/norms/nl/2025/filling/table-11-mestcodes.ts b/fdm-calculator/src/norms/nl/2025/filling/table-11-mestcodes.ts
index bbac1b3fc..34d5d38a2 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/table-11-mestcodes.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/table-11-mestcodes.ts
@@ -3,334 +3,334 @@ import type { Table11Mestcodes } from "./types"
export const table11Mestcodes: Table11Mestcodes = [
{
p_type_rvo: "10",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 6.4,
p_p_rt: 3.2,
},
{
p_type_rvo: "11",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 4.0,
p_p_rt: 1.3,
},
{
p_type_rvo: "12",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 4.0,
p_p_rt: 0.2,
},
{
p_type_rvo: "13",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 9.2,
p_p_rt: 9.2,
},
{
p_type_rvo: "14",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 4.0,
p_p_rt: 1.5,
},
{
p_type_rvo: "17",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 4.2,
p_p_rt: 5.0,
},
{
p_type_rvo: "18",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 3.2,
p_p_rt: 1.2,
},
{
p_type_rvo: "19",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 5.5,
p_p_rt: 2.2,
},
{
p_type_rvo: "23",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 30.1,
p_p_rt: 22.9,
},
{
p_type_rvo: "30",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 9.9,
p_p_rt: 6.2,
},
{
p_type_rvo: "31",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 24.3,
p_p_rt: 22.1,
},
{
p_type_rvo: "32",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 26.0,
p_p_rt: 20.9,
},
{
p_type_rvo: "33",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 32.6,
p_p_rt: 26.3,
},
{
p_type_rvo: "35",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 26.8,
p_p_rt: 24.9,
},
{
p_type_rvo: "39",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 31.1,
p_p_rt: 15.4,
},
{
p_type_rvo: "40",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 8.1,
p_p_rt: 8.0,
},
{
p_type_rvo: "41",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 6.8,
p_p_rt: 1.6,
},
{
p_type_rvo: "42",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 2.0,
p_p_rt: 0.9,
},
{
p_type_rvo: "43",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 11.0,
p_p_rt: 17.8,
},
{
p_type_rvo: "46",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 3.8,
p_p_rt: 2.4,
},
{
p_type_rvo: "50",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 6.4,
p_p_rt: 3.8,
},
{
p_type_rvo: "56",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 8.5,
p_p_rt: 4.7,
},
{
p_type_rvo: "60",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 4.8,
p_p_rt: 2.5,
},
{
p_type_rvo: "61",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 9.1,
p_p_rt: 4.8,
},
{
p_type_rvo: "75",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 27.7,
p_p_rt: 45.7,
},
{
p_type_rvo: "76",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 7.9,
p_p_rt: 3.1,
},
{
p_type_rvo: "80",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 9.7,
p_p_rt: 9.4,
},
{
p_type_rvo: "81",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 5.8,
p_p_rt: 3.8,
},
{
p_type_rvo: "90",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 11.3,
p_p_rt: 11.7,
},
{
p_type_rvo: "91",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 0.81,
p_p_rt: 0.14,
},
{
p_type_rvo: "92",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 4.4,
p_p_rt: 3.0,
},
{
p_type_rvo: "25",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 4.8,
p_p_rt: 2.5,
},
{
p_type_rvo: "26",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 5.0,
p_p_rt: 3.0,
},
{
p_type_rvo: "27",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 4.7,
p_p_rt: 3.2,
},
{
p_type_rvo: "95",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 7.1,
p_p_rt: 5.3,
},
{
p_type_rvo: "96",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 4.1,
p_p_rt: 2.1,
},
{
p_type_rvo: "97",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 8.9,
p_p_rt: 8.1,
},
{
p_type_rvo: "98",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 8.9,
p_p_rt: 8.1,
},
{
p_type_rvo: "99",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 32.6,
p_p_rt: 17.7,
},
{
p_type_rvo: "100",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 23.1,
p_p_rt: 18.7,
},
{
p_type_rvo: "101",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 23.1,
p_p_rt: 18.7,
},
{
p_type_rvo: "102",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 11.9,
p_p_rt: 11.7,
},
{
p_type_rvo: "103",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 11.9,
p_p_rt: 11.7,
},
{
p_type_rvo: "104",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 11.9,
p_p_rt: 11.7,
},
{
p_type_rvo: "105",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 11.9,
p_p_rt: 11.7,
},
{
p_type_rvo: "106",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 11.9,
p_p_rt: 11.7,
},
{
p_type_rvo: "107",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 5.5,
p_p_rt: 3.1,
},
{
p_type_rvo: "108",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
},
{
p_type_rvo: "109",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 8.0,
p_p_rt: 4.4,
},
{
p_type_rvo: "110",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 7.0,
p_p_rt: 3.9,
},
{
p_type_rvo: "111",
- p_type_animal: false,
+ p_type_nitratesdirective: false,
},
{
p_type_rvo: "112",
- p_type_animal: false,
+ p_type_nitratesdirective: false,
},
{
p_type_rvo: "113",
- p_type_animal: false,
+ p_type_nitratesdirective: false,
},
{
p_type_rvo: "114",
- p_type_animal: false,
+ p_type_nitratesdirective: false,
},
{
p_type_rvo: "115",
- p_type_animal: false,
+ p_type_nitratesdirective: false,
},
{
p_type_rvo: "116",
- p_type_animal: false,
+ p_type_nitratesdirective: false,
},
{
p_type_rvo: "117",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
p_n_rt: 7.1,
p_p_rt: 4.1,
},
{
p_type_rvo: "120",
- p_type_animal: true,
+ p_type_nitratesdirective: true,
},
]
diff --git a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
index 385266db3..5e38f06a7 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
@@ -1,8 +1,16 @@
import type { fdmSchema } from "@svenvw/fdm-core"
+export type NormFilling = {
+ normFilling: number
+ applicationFilling: {
+ p_app_id: string
+ normFilling: number
+ }[]
+}
+
export type Table11Mestcodes = {
p_type_rvo: fdmSchema.fertilizersCatalogueTypeSelect["p_type_rvo"]
- p_type_animal: boolean
+ p_type_nitratesdirective: boolean
p_n_rt?: number
p_p_rt?: number
}[]
From a38d20777d999421e5a2e7b54898678232c9c104 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Thu, 16 Oct 2025 15:32:49 +0200
Subject: [PATCH 054/243] chore: remove migration to merge dev branch
---
.../migrations/0014_ancient_ezekiel_stane.sql | 4 -
.../src/db/migrations/meta/0014_snapshot.json | 3117 -----------------
fdm-core/src/db/migrations/meta/_journal.json | 213 +-
3 files changed, 103 insertions(+), 3231 deletions(-)
delete mode 100644 fdm-core/src/db/migrations/0014_ancient_ezekiel_stane.sql
delete mode 100644 fdm-core/src/db/migrations/meta/0014_snapshot.json
diff --git a/fdm-core/src/db/migrations/0014_ancient_ezekiel_stane.sql b/fdm-core/src/db/migrations/0014_ancient_ezekiel_stane.sql
deleted file mode 100644
index 6d904c5e6..000000000
--- a/fdm-core/src/db/migrations/0014_ancient_ezekiel_stane.sql
+++ /dev/null
@@ -1,4 +0,0 @@
-ALTER TABLE "fdm"."cultivations_catalogue" ADD COLUMN "b_lu_start_default" text;--> statement-breakpoint
-ALTER TABLE "fdm"."cultivations_catalogue" ADD COLUMN "b_date_harvest_default" text;--> statement-breakpoint
-ALTER TABLE "fdm"."cultivations_catalogue" ADD CONSTRAINT "b_lu_start_default_format" CHECK (b_lu_start_default IS NULL OR b_lu_start_default ~ '^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$');--> statement-breakpoint
-ALTER TABLE "fdm"."cultivations_catalogue" ADD CONSTRAINT "b_date_harvest_default_format" CHECK (b_date_harvest_default IS NULL OR b_date_harvest_default ~ '^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$');
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/0014_snapshot.json b/fdm-core/src/db/migrations/meta/0014_snapshot.json
deleted file mode 100644
index b67a8d35e..000000000
--- a/fdm-core/src/db/migrations/meta/0014_snapshot.json
+++ /dev/null
@@ -1,3117 +0,0 @@
-{
- "id": "5ba4f7c3-7e93-40b0-b184-e837bcbc41cc",
- "prevId": "c953a71f-8431-4aea-94b9-e49a5a96cf0c",
- "version": "7",
- "dialect": "postgresql",
- "tables": {
- "fdm.cultivation_catalogue_selecting": {
- "name": "cultivation_catalogue_selecting",
- "schema": "fdm",
- "columns": {
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_lu_source": {
- "name": "b_lu_source",
- "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": {},
- "foreignKeys": {
- "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk": {
- "name": "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk",
- "tableFrom": "cultivation_catalogue_selecting",
- "tableTo": "farms",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_farm"
- ],
- "columnsTo": [
- "b_id_farm"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.cultivation_ending": {
- "name": "cultivation_ending",
- "schema": "fdm",
- "columns": {
- "b_lu": {
- "name": "b_lu",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_lu_end": {
- "name": "b_lu_end",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": false
- },
- "m_cropresidue": {
- "name": "m_cropresidue",
- "type": "boolean",
- "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": {
- "cultivation_ending_b_lu_cultivations_b_lu_fk": {
- "name": "cultivation_ending_b_lu_cultivations_b_lu_fk",
- "tableFrom": "cultivation_ending",
- "tableTo": "cultivations",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_lu"
- ],
- "columnsTo": [
- "b_lu"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.cultivation_harvesting": {
- "name": "cultivation_harvesting",
- "schema": "fdm",
- "columns": {
- "b_id_harvesting": {
- "name": "b_id_harvesting",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_id_harvestable": {
- "name": "b_id_harvestable",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_lu": {
- "name": "b_lu",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_lu_harvest_date": {
- "name": "b_lu_harvest_date",
- "type": "timestamp with time zone",
- "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": {
- "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk": {
- "name": "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk",
- "tableFrom": "cultivation_harvesting",
- "tableTo": "harvestables",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_harvestable"
- ],
- "columnsTo": [
- "b_id_harvestable"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "cultivation_harvesting_b_lu_cultivations_b_lu_fk": {
- "name": "cultivation_harvesting_b_lu_cultivations_b_lu_fk",
- "tableFrom": "cultivation_harvesting",
- "tableTo": "cultivations",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_lu"
- ],
- "columnsTo": [
- "b_lu"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.cultivation_starting": {
- "name": "cultivation_starting",
- "schema": "fdm",
- "columns": {
- "b_id": {
- "name": "b_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_lu": {
- "name": "b_lu",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_lu_start": {
- "name": "b_lu_start",
- "type": "timestamp with time zone",
- "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": {
- "cultivation_starting_b_id_fields_b_id_fk": {
- "name": "cultivation_starting_b_id_fields_b_id_fk",
- "tableFrom": "cultivation_starting",
- "tableTo": "fields",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id"
- ],
- "columnsTo": [
- "b_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "cultivation_starting_b_lu_cultivations_b_lu_fk": {
- "name": "cultivation_starting_b_lu_cultivations_b_lu_fk",
- "tableFrom": "cultivation_starting",
- "tableTo": "cultivations",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_lu"
- ],
- "columnsTo": [
- "b_lu"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.cultivations": {
- "name": "cultivations",
- "schema": "fdm",
- "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
- },
- "b_lu_variety": {
- "name": "b_lu_variety",
- "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": {
- "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",
- "columnsFrom": [
- "b_lu_catalogue"
- ],
- "columnsTo": [
- "b_lu_catalogue"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.cultivations_catalogue": {
- "name": "cultivations_catalogue",
- "schema": "fdm",
- "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_harvestable": {
- "name": "b_lu_harvestable",
- "type": "b_lu_harvestable",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": true
- },
- "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
- },
- "b_lu_croprotation": {
- "name": "b_lu_croprotation",
- "type": "b_lu_croprotation",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_yield": {
- "name": "b_lu_yield",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_hi": {
- "name": "b_lu_hi",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_n_harvestable": {
- "name": "b_lu_n_harvestable",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_n_residue": {
- "name": "b_lu_n_residue",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_n_fixation": {
- "name": "b_n_fixation",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_rest_oravib": {
- "name": "b_lu_rest_oravib",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_variety_options": {
- "name": "b_lu_variety_options",
- "type": "text[]",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_start_default": {
- "name": "b_lu_start_default",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "b_date_harvest_default": {
- "name": "b_date_harvest_default",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "hash": {
- "name": "hash",
- "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": {
- "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": {},
- "policies": {},
- "checkConstraints": {
- "b_lu_start_default_format": {
- "name": "b_lu_start_default_format",
- "value": "b_lu_start_default IS NULL OR b_lu_start_default ~ '^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$'"
- },
- "b_date_harvest_default_format": {
- "name": "b_date_harvest_default_format",
- "value": "b_date_harvest_default IS NULL OR b_date_harvest_default ~ '^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$'"
- }
- },
- "isRLSEnabled": false
- },
- "fdm.derogation_applying": {
- "name": "derogation_applying",
- "schema": "fdm",
- "columns": {
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_id_derogation": {
- "name": "b_id_derogation",
- "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": {},
- "foreignKeys": {
- "derogation_applying_b_id_farm_farms_b_id_farm_fk": {
- "name": "derogation_applying_b_id_farm_farms_b_id_farm_fk",
- "tableFrom": "derogation_applying",
- "tableTo": "farms",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_farm"
- ],
- "columnsTo": [
- "b_id_farm"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk": {
- "name": "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk",
- "tableFrom": "derogation_applying",
- "tableTo": "derogations",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_derogation"
- ],
- "columnsTo": [
- "b_id_derogation"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.derogations": {
- "name": "derogations",
- "schema": "fdm",
- "columns": {
- "b_id_derogation": {
- "name": "b_id_derogation",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_derogation_year": {
- "name": "b_derogation_year",
- "type": "integer",
- "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": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.farms": {
- "name": "farms",
- "schema": "fdm",
- "columns": {
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_name_farm": {
- "name": "b_name_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "b_businessid_farm": {
- "name": "b_businessid_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "b_address_farm": {
- "name": "b_address_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "b_postalcode_farm": {
- "name": "b_postalcode_farm",
- "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": {
- "b_id_farm_idx": {
- "name": "b_id_farm_idx",
- "columns": [
- {
- "expression": "b_id_farm",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fertilizer_acquiring": {
- "name": "fertilizer_acquiring",
- "schema": "fdm",
- "columns": {
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_id": {
- "name": "p_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_acquiring_amount": {
- "name": "p_acquiring_amount",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_acquiring_date": {
- "name": "p_acquiring_date",
- "type": "timestamp with time zone",
- "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": {
- "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk": {
- "name": "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk",
- "tableFrom": "fertilizer_acquiring",
- "tableTo": "farms",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_farm"
- ],
- "columnsTo": [
- "b_id_farm"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "fertilizer_acquiring_p_id_fertilizers_p_id_fk": {
- "name": "fertilizer_acquiring_p_id_fertilizers_p_id_fk",
- "tableFrom": "fertilizer_acquiring",
- "tableTo": "fertilizers",
- "schemaTo": "fdm",
- "columnsFrom": [
- "p_id"
- ],
- "columnsTo": [
- "p_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fertilizer_applying": {
- "name": "fertilizer_applying",
- "schema": "fdm",
- "columns": {
- "p_app_id": {
- "name": "p_app_id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_id": {
- "name": "b_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_id": {
- "name": "p_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_app_amount": {
- "name": "p_app_amount",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_app_method": {
- "name": "p_app_method",
- "type": "p_app_method",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": false
- },
- "p_app_date": {
- "name": "p_app_date",
- "type": "timestamp with time zone",
- "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": {
- "p_app_idx": {
- "name": "p_app_idx",
- "columns": [
- {
- "expression": "p_app_id",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {
- "fertilizer_applying_b_id_fields_b_id_fk": {
- "name": "fertilizer_applying_b_id_fields_b_id_fk",
- "tableFrom": "fertilizer_applying",
- "tableTo": "fields",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id"
- ],
- "columnsTo": [
- "b_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "fertilizer_applying_p_id_fertilizers_p_id_fk": {
- "name": "fertilizer_applying_p_id_fertilizers_p_id_fk",
- "tableFrom": "fertilizer_applying",
- "tableTo": "fertilizers",
- "schemaTo": "fdm",
- "columnsFrom": [
- "p_id"
- ],
- "columnsTo": [
- "p_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fertilizer_catalogue_enabling": {
- "name": "fertilizer_catalogue_enabling",
- "schema": "fdm",
- "columns": {
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_source": {
- "name": "p_source",
- "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": {},
- "foreignKeys": {
- "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk": {
- "name": "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk",
- "tableFrom": "fertilizer_catalogue_enabling",
- "tableTo": "farms",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_farm"
- ],
- "columnsTo": [
- "b_id_farm"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fertilizer_picking": {
- "name": "fertilizer_picking",
- "schema": "fdm",
- "columns": {
- "p_id": {
- "name": "p_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_id_catalogue": {
- "name": "p_id_catalogue",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_picking_date": {
- "name": "p_picking_date",
- "type": "timestamp with time zone",
- "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": {
- "fertilizer_picking_p_id_fertilizers_p_id_fk": {
- "name": "fertilizer_picking_p_id_fertilizers_p_id_fk",
- "tableFrom": "fertilizer_picking",
- "tableTo": "fertilizers",
- "schemaTo": "fdm",
- "columnsFrom": [
- "p_id"
- ],
- "columnsTo": [
- "p_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk": {
- "name": "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk",
- "tableFrom": "fertilizer_picking",
- "tableTo": "fertilizers_catalogue",
- "schemaTo": "fdm",
- "columnsFrom": [
- "p_id_catalogue"
- ],
- "columnsTo": [
- "p_id_catalogue"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fertilizers": {
- "name": "fertilizers",
- "schema": "fdm",
- "columns": {
- "p_id": {
- "name": "p_id",
- "type": "text",
- "primaryKey": true,
- "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": {
- "p_id_idx": {
- "name": "p_id_idx",
- "columns": [
- {
- "expression": "p_id",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fertilizers_catalogue": {
- "name": "fertilizers_catalogue",
- "schema": "fdm",
- "columns": {
- "p_id_catalogue": {
- "name": "p_id_catalogue",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "p_source": {
- "name": "p_source",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_name_nl": {
- "name": "p_name_nl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_name_en": {
- "name": "p_name_en",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "p_description": {
- "name": "p_description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "p_app_method_options": {
- "name": "p_app_method_options",
- "type": "p_app_method[]",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": false
- },
- "p_dm": {
- "name": "p_dm",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_density": {
- "name": "p_density",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_om": {
- "name": "p_om",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_a": {
- "name": "p_a",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_hc": {
- "name": "p_hc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_eom": {
- "name": "p_eom",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_eoc": {
- "name": "p_eoc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_c_rt": {
- "name": "p_c_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_c_of": {
- "name": "p_c_of",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_c_if": {
- "name": "p_c_if",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_c_fr": {
- "name": "p_c_fr",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_cn_of": {
- "name": "p_cn_of",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_n_rt": {
- "name": "p_n_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_n_if": {
- "name": "p_n_if",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_n_of": {
- "name": "p_n_of",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_n_wc": {
- "name": "p_n_wc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_no3_rt": {
- "name": "p_no3_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_nh4_rt": {
- "name": "p_nh4_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_p_rt": {
- "name": "p_p_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_k_rt": {
- "name": "p_k_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_mg_rt": {
- "name": "p_mg_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_ca_rt": {
- "name": "p_ca_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_ne": {
- "name": "p_ne",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_s_rt": {
- "name": "p_s_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_s_wc": {
- "name": "p_s_wc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_cu_rt": {
- "name": "p_cu_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_zn_rt": {
- "name": "p_zn_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_na_rt": {
- "name": "p_na_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_si_rt": {
- "name": "p_si_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_b_rt": {
- "name": "p_b_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_mn_rt": {
- "name": "p_mn_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_ni_rt": {
- "name": "p_ni_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_fe_rt": {
- "name": "p_fe_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_mo_rt": {
- "name": "p_mo_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_co_rt": {
- "name": "p_co_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_as_rt": {
- "name": "p_as_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_cd_rt": {
- "name": "p_cd_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_cr_rt": {
- "name": "p_cr_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_cr_vi": {
- "name": "p_cr_vi",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_pb_rt": {
- "name": "p_pb_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_hg_rt": {
- "name": "p_hg_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_cl_rt": {
- "name": "p_cl_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_ef_nh3": {
- "name": "p_ef_nh3",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_type_manure": {
- "name": "p_type_manure",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "p_type_mineral": {
- "name": "p_type_mineral",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "p_type_compost": {
- "name": "p_type_compost",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "hash": {
- "name": "hash",
- "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": {
- "p_id_catalogue_idx": {
- "name": "p_id_catalogue_idx",
- "columns": [
- {
- "expression": "p_id_catalogue",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.field_acquiring": {
- "name": "field_acquiring",
- "schema": "fdm",
- "columns": {
- "b_id": {
- "name": "b_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_start": {
- "name": "b_start",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": false
- },
- "b_acquiring_method": {
- "name": "b_acquiring_method",
- "type": "b_acquiring_method",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": true,
- "default": "'unknown'"
- },
- "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_acquiring_b_id_fields_b_id_fk": {
- "name": "field_acquiring_b_id_fields_b_id_fk",
- "tableFrom": "field_acquiring",
- "tableTo": "fields",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id"
- ],
- "columnsTo": [
- "b_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "field_acquiring_b_id_farm_farms_b_id_farm_fk": {
- "name": "field_acquiring_b_id_farm_farms_b_id_farm_fk",
- "tableFrom": "field_acquiring",
- "tableTo": "farms",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_farm"
- ],
- "columnsTo": [
- "b_id_farm"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.field_discarding": {
- "name": "field_discarding",
- "schema": "fdm",
- "columns": {
- "b_id": {
- "name": "b_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_end": {
- "name": "b_end",
- "type": "timestamp with time zone",
- "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_discarding_b_id_fields_b_id_fk": {
- "name": "field_discarding_b_id_fields_b_id_fk",
- "tableFrom": "field_discarding",
- "tableTo": "fields",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id"
- ],
- "columnsTo": [
- "b_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fields": {
- "name": "fields",
- "schema": "fdm",
- "columns": {
- "b_id": {
- "name": "b_id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_name": {
- "name": "b_name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_geometry": {
- "name": "b_geometry",
- "type": "geometry(Polygon,4326)",
- "primaryKey": false,
- "notNull": false
- },
- "b_id_source": {
- "name": "b_id_source",
- "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": {
- "b_id_idx": {
- "name": "b_id_idx",
- "columns": [
- {
- "expression": "b_id",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- },
- "b_geom_idx": {
- "name": "b_geom_idx",
- "columns": [
- {
- "expression": "b_geometry",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": false,
- "concurrently": false,
- "method": "gist",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.harvestable_analyses": {
- "name": "harvestable_analyses",
- "schema": "fdm",
- "columns": {
- "b_id_harvestable_analysis": {
- "name": "b_id_harvestable_analysis",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_lu_yield": {
- "name": "b_lu_yield",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_n_harvestable": {
- "name": "b_lu_n_harvestable",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_n_residue": {
- "name": "b_lu_n_residue",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_p_harvestable": {
- "name": "b_lu_p_harvestable",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_p_residue": {
- "name": "b_lu_p_residue",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_k_harvestable": {
- "name": "b_lu_k_harvestable",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_k_residue": {
- "name": "b_lu_k_residue",
- "type": "numeric",
- "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": {
- "b_id_harvestable_analyses_idx": {
- "name": "b_id_harvestable_analyses_idx",
- "columns": [
- {
- "expression": "b_id_harvestable_analysis",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.harvestable_sampling": {
- "name": "harvestable_sampling",
- "schema": "fdm",
- "columns": {
- "b_id_harvestable": {
- "name": "b_id_harvestable",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_id_harvestable_analysis": {
- "name": "b_id_harvestable_analysis",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_sampling_date": {
- "name": "b_sampling_date",
- "type": "timestamp with time zone",
- "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": {
- "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk": {
- "name": "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk",
- "tableFrom": "harvestable_sampling",
- "tableTo": "harvestables",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_harvestable"
- ],
- "columnsTo": [
- "b_id_harvestable"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk": {
- "name": "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk",
- "tableFrom": "harvestable_sampling",
- "tableTo": "harvestable_analyses",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_harvestable_analysis"
- ],
- "columnsTo": [
- "b_id_harvestable_analysis"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.harvestables": {
- "name": "harvestables",
- "schema": "fdm",
- "columns": {
- "b_id_harvestable": {
- "name": "b_id_harvestable",
- "type": "text",
- "primaryKey": true,
- "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_id_harvestable_idx": {
- "name": "b_id_harvestable_idx",
- "columns": [
- {
- "expression": "b_id_harvestable",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.soil_analysis": {
- "name": "soil_analysis",
- "schema": "fdm",
- "columns": {
- "a_id": {
- "name": "a_id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "a_date": {
- "name": "a_date",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": false
- },
- "a_source": {
- "name": "a_source",
- "type": "a_source",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": false,
- "default": "'other'"
- },
- "a_al_ox": {
- "name": "a_al_ox",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_c_of": {
- "name": "a_c_of",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_ca_co": {
- "name": "a_ca_co",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_ca_co_po": {
- "name": "a_ca_co_po",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_caco3_if": {
- "name": "a_caco3_if",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_cec_co": {
- "name": "a_cec_co",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_clay_mi": {
- "name": "a_clay_mi",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_cn_fr": {
- "name": "a_cn_fr",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_com_fr": {
- "name": "a_com_fr",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_cu_cc": {
- "name": "a_cu_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_density_sa": {
- "name": "a_density_sa",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_fe_ox": {
- "name": "a_fe_ox",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_k_cc": {
- "name": "a_k_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_k_co": {
- "name": "a_k_co",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_k_co_po": {
- "name": "a_k_co_po",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_mg_cc": {
- "name": "a_mg_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_mg_co": {
- "name": "a_mg_co",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_mg_co_po": {
- "name": "a_mg_co_po",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_n_pmn": {
- "name": "a_n_pmn",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_n_rt": {
- "name": "a_n_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_nh4_cc": {
- "name": "a_nh4_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_nmin_cc": {
- "name": "a_nmin_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_no3_cc": {
- "name": "a_no3_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_p_al": {
- "name": "a_p_al",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_p_cc": {
- "name": "a_p_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_p_ox": {
- "name": "a_p_ox",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_p_rt": {
- "name": "a_p_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_p_sg": {
- "name": "a_p_sg",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_p_wa": {
- "name": "a_p_wa",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_ph_cc": {
- "name": "a_ph_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_s_rt": {
- "name": "a_s_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_sand_mi": {
- "name": "a_sand_mi",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_silt_mi": {
- "name": "a_silt_mi",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_som_loi": {
- "name": "a_som_loi",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_zn_cc": {
- "name": "a_zn_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_gwl_class": {
- "name": "b_gwl_class",
- "type": "b_gwl_class",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": false
- },
- "b_soiltype_agr": {
- "name": "b_soiltype_agr",
- "type": "b_soiltype_agr",
- "typeSchema": "fdm",
- "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": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.soil_sampling": {
- "name": "soil_sampling",
- "schema": "fdm",
- "columns": {
- "b_id_sampling": {
- "name": "b_id_sampling",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_id": {
- "name": "b_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "a_id": {
- "name": "a_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "a_depth_upper": {
- "name": "a_depth_upper",
- "type": "numeric",
- "primaryKey": false,
- "notNull": true,
- "default": 0
- },
- "a_depth_lower": {
- "name": "a_depth_lower",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_sampling_date": {
- "name": "b_sampling_date",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": false
- },
- "b_sampling_geometry": {
- "name": "b_sampling_geometry",
- "type": "geometry(MultiPoint,4326)",
- "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": {
- "soil_sampling_b_id_fields_b_id_fk": {
- "name": "soil_sampling_b_id_fields_b_id_fk",
- "tableFrom": "soil_sampling",
- "tableTo": "fields",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id"
- ],
- "columnsTo": [
- "b_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "soil_sampling_a_id_soil_analysis_a_id_fk": {
- "name": "soil_sampling_a_id_soil_analysis_a_id_fk",
- "tableFrom": "soil_sampling",
- "tableTo": "soil_analysis",
- "schemaTo": "fdm",
- "columnsFrom": [
- "a_id"
- ],
- "columnsTo": [
- "a_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.account": {
- "name": "account",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "account_id": {
- "name": "account_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "provider_id": {
- "name": "provider_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "access_token": {
- "name": "access_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token": {
- "name": "refresh_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "id_token": {
- "name": "id_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "access_token_expires_at": {
- "name": "access_token_expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token_expires_at": {
- "name": "refresh_token_expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "scope": {
- "name": "scope",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "account_user_id_user_id_fk": {
- "name": "account_user_id_user_id_fk",
- "tableFrom": "account",
- "tableTo": "user",
- "schemaTo": "fdm-authn",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.invitation": {
- "name": "invitation",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "organization_id": {
- "name": "organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "email": {
- "name": "email",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "status": {
- "name": "status",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "inviter_id": {
- "name": "inviter_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "invitation_organization_id_organization_id_fk": {
- "name": "invitation_organization_id_organization_id_fk",
- "tableFrom": "invitation",
- "tableTo": "organization",
- "schemaTo": "fdm-authn",
- "columnsFrom": [
- "organization_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "invitation_inviter_id_user_id_fk": {
- "name": "invitation_inviter_id_user_id_fk",
- "tableFrom": "invitation",
- "tableTo": "user",
- "schemaTo": "fdm-authn",
- "columnsFrom": [
- "inviter_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.member": {
- "name": "member",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "organization_id": {
- "name": "organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "member_organization_id_organization_id_fk": {
- "name": "member_organization_id_organization_id_fk",
- "tableFrom": "member",
- "tableTo": "organization",
- "schemaTo": "fdm-authn",
- "columnsFrom": [
- "organization_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "member_user_id_user_id_fk": {
- "name": "member_user_id_user_id_fk",
- "tableFrom": "member",
- "tableTo": "user",
- "schemaTo": "fdm-authn",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.organization": {
- "name": "organization",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "slug": {
- "name": "slug",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "logo": {
- "name": "logo",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "metadata": {
- "name": "metadata",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "organization_slug_unique": {
- "name": "organization_slug_unique",
- "nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.rate_limit": {
- "name": "rate_limit",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "key": {
- "name": "key",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "count": {
- "name": "count",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "last_request": {
- "name": "last_request",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.session": {
- "name": "session",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "token": {
- "name": "token",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "ip_address": {
- "name": "ip_address",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "user_agent": {
- "name": "user_agent",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "active_organization_id": {
- "name": "active_organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "session_user_id_user_id_fk": {
- "name": "session_user_id_user_id_fk",
- "tableFrom": "session",
- "tableTo": "user",
- "schemaTo": "fdm-authn",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "session_token_unique": {
- "name": "session_token_unique",
- "nullsNotDistinct": false,
- "columns": [
- "token"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.user": {
- "name": "user",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "email": {
- "name": "email",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "email_verified": {
- "name": "email_verified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true
- },
- "image": {
- "name": "image",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "display_username": {
- "name": "display_username",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "firstname": {
- "name": "firstname",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "surname": {
- "name": "surname",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "lang": {
- "name": "lang",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "farm_active": {
- "name": "farm_active",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "user_email_unique": {
- "name": "user_email_unique",
- "nullsNotDistinct": false,
- "columns": [
- "email"
- ]
- },
- "user_username_unique": {
- "name": "user_username_unique",
- "nullsNotDistinct": false,
- "columns": [
- "username"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.verification": {
- "name": "verification",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "identifier": {
- "name": "identifier",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "value": {
- "name": "value",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authz.audit": {
- "name": "audit",
- "schema": "fdm-authz",
- "columns": {
- "audit_id": {
- "name": "audit_id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "audit_timestamp": {
- "name": "audit_timestamp",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- },
- "audit_origin": {
- "name": "audit_origin",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "principal_id": {
- "name": "principal_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "target_resource": {
- "name": "target_resource",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "target_resource_id": {
- "name": "target_resource_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "granting_resource": {
- "name": "granting_resource",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "granting_resource_id": {
- "name": "granting_resource_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "action": {
- "name": "action",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "allowed": {
- "name": "allowed",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true
- },
- "duration": {
- "name": "duration",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authz.role": {
- "name": "role",
- "schema": "fdm-authz",
- "columns": {
- "role_id": {
- "name": "role_id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "resource": {
- "name": "resource",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "resource_id": {
- "name": "resource_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "principal_id": {
- "name": "principal_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created": {
- "name": "created",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- },
- "deleted": {
- "name": "deleted",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {
- "role_idx": {
- "name": "role_idx",
- "columns": [
- {
- "expression": "resource",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- },
- {
- "expression": "resource_id",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- },
- {
- "expression": "principal_id",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- },
- {
- "expression": "role",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- },
- {
- "expression": "deleted",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": false,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- }
- },
- "enums": {
- "fdm.p_app_method": {
- "name": "p_app_method",
- "schema": "fdm",
- "values": [
- "slotted coulter",
- "incorporation",
- "incorporation 2 tracks",
- "injection",
- "shallow injection",
- "spraying",
- "broadcasting",
- "spoke wheel",
- "pocket placement",
- "narrowband"
- ]
- },
- "fdm.b_gwl_class": {
- "name": "b_gwl_class",
- "schema": "fdm",
- "values": [
- "I",
- "Ia",
- "Ic",
- "II",
- "IIa",
- "IIb",
- "IIc",
- "III",
- "IIIa",
- "IIIb",
- "IV",
- "IVu",
- "IVc",
- "V",
- "Va",
- "Vao",
- "Vad",
- "Vb",
- "Vbo",
- "Vbd",
- "sV",
- "sVb",
- "VI",
- "VIo",
- "VId",
- "VII",
- "VIIo",
- "VIId",
- "VIII",
- "VIIIo",
- "VIIId"
- ]
- },
- "fdm.b_lu_harvestable": {
- "name": "b_lu_harvestable",
- "schema": "fdm",
- "values": [
- "none",
- "once",
- "multiple"
- ]
- },
- "fdm.b_lu_croprotation": {
- "name": "b_lu_croprotation",
- "schema": "fdm",
- "values": [
- "other",
- "clover",
- "nature",
- "potato",
- "grass",
- "rapeseed",
- "starch",
- "maize",
- "cereal",
- "sugarbeet",
- "alfalfa",
- "catchcrop"
- ]
- },
- "fdm.a_source": {
- "name": "a_source",
- "schema": "fdm",
- "values": [
- "nl-rva-l122",
- "nl-rva-l136",
- "nl-rva-l264",
- "nl-rva-l320",
- "nl-rva-l335",
- "nl-rva-l610",
- "nl-rva-l648",
- "nl-rva-l697",
- "nl-other-nmi",
- "other"
- ]
- },
- "fdm.b_soiltype_agr": {
- "name": "b_soiltype_agr",
- "schema": "fdm",
- "values": [
- "moerige_klei",
- "rivierklei",
- "dekzand",
- "zeeklei",
- "dalgrond",
- "veen",
- "loess",
- "duinzand",
- "maasklei"
- ]
- }
- },
- "schemas": {
- "fdm": "fdm",
- "fdm-authn": "fdm-authn",
- "fdm-authz": "fdm-authz"
- },
- "sequences": {},
- "roles": {},
- "policies": {},
- "views": {},
- "_meta": {
- "columns": {},
- "schemas": {},
- "tables": {}
- }
-}
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/_journal.json b/fdm-core/src/db/migrations/meta/_journal.json
index 86770ff78..7d4a6b8e7 100644
--- a/fdm-core/src/db/migrations/meta/_journal.json
+++ b/fdm-core/src/db/migrations/meta/_journal.json
@@ -1,111 +1,104 @@
{
- "version": "7",
- "dialect": "postgresql",
- "entries": [
- {
- "idx": 0,
- "version": "7",
- "when": 1731414293847,
- "tag": "0000_v0",
- "breakpoints": true
- },
- {
- "idx": 1,
- "version": "7",
- "when": 1741267610502,
- "tag": "0001_v0-15-0",
- "breakpoints": true
- },
- {
- "idx": 2,
- "version": "7",
- "when": 1743420907290,
- "tag": "0002_v0-18-0",
- "breakpoints": true
- },
- {
- "idx": 3,
- "version": "7",
- "when": 1744205441260,
- "tag": "0003_v0-20-0-1",
- "breakpoints": true
- },
- {
- "idx": 4,
- "version": "7",
- "when": 1745410821339,
- "tag": "0004_v0-20-0-2",
- "breakpoints": true
- },
- {
- "idx": 5,
- "version": "7",
- "when": 1748353081475,
- "tag": "0005_v0-20-0-3",
- "breakpoints": true
- },
- {
- "idx": 6,
- "version": "7",
- "when": 1748353926519,
- "tag": "0006_v0-20-0-4",
- "breakpoints": true
- },
- {
- "idx": 7,
- "version": "7",
- "when": 1750146397071,
- "tag": "0007_v0-21-0-1",
- "breakpoints": true
- },
- {
- "idx": 8,
- "version": "7",
- "when": 1750751079210,
- "tag": "0008_v0-21-0-2",
- "breakpoints": true
- },
- {
- "idx": 9,
- "version": "7",
- "when": 1752056714510,
- "tag": "0009_v0-22-0-1",
- "breakpoints": true
- },
- {
- "idx": 10,
- "version": "7",
- "when": 1753084974762,
- "tag": "0010_v0-22-0-2",
- "breakpoints": true
- },
- {
- "idx": 11,
- "version": "7",
- "when": 1754396961710,
- "tag": "0011_v0-22-1-1",
- "breakpoints": true
- },
- {
- "idx": 12,
- "version": "7",
- "when": 1754661913554,
- "tag": "0012_v0-24-0-1",
- "breakpoints": true
- },
- {
- "idx": 13,
- "version": "7",
- "when": 1755074095394,
- "tag": "0013_v0-24-0-2",
- "breakpoints": true
- },
- {
- "idx": 14,
- "version": "7",
- "when": 1760089257152,
- "tag": "0014_ancient_ezekiel_stane",
- "breakpoints": true
- }
- ]
-}
\ No newline at end of file
+ "version": "7",
+ "dialect": "postgresql",
+ "entries": [
+ {
+ "idx": 0,
+ "version": "7",
+ "when": 1731414293847,
+ "tag": "0000_v0",
+ "breakpoints": true
+ },
+ {
+ "idx": 1,
+ "version": "7",
+ "when": 1741267610502,
+ "tag": "0001_v0-15-0",
+ "breakpoints": true
+ },
+ {
+ "idx": 2,
+ "version": "7",
+ "when": 1743420907290,
+ "tag": "0002_v0-18-0",
+ "breakpoints": true
+ },
+ {
+ "idx": 3,
+ "version": "7",
+ "when": 1744205441260,
+ "tag": "0003_v0-20-0-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 4,
+ "version": "7",
+ "when": 1745410821339,
+ "tag": "0004_v0-20-0-2",
+ "breakpoints": true
+ },
+ {
+ "idx": 5,
+ "version": "7",
+ "when": 1748353081475,
+ "tag": "0005_v0-20-0-3",
+ "breakpoints": true
+ },
+ {
+ "idx": 6,
+ "version": "7",
+ "when": 1748353926519,
+ "tag": "0006_v0-20-0-4",
+ "breakpoints": true
+ },
+ {
+ "idx": 7,
+ "version": "7",
+ "when": 1750146397071,
+ "tag": "0007_v0-21-0-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 8,
+ "version": "7",
+ "when": 1750751079210,
+ "tag": "0008_v0-21-0-2",
+ "breakpoints": true
+ },
+ {
+ "idx": 9,
+ "version": "7",
+ "when": 1752056714510,
+ "tag": "0009_v0-22-0-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 10,
+ "version": "7",
+ "when": 1753084974762,
+ "tag": "0010_v0-22-0-2",
+ "breakpoints": true
+ },
+ {
+ "idx": 11,
+ "version": "7",
+ "when": 1754396961710,
+ "tag": "0011_v0-22-1-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 12,
+ "version": "7",
+ "when": 1754661913554,
+ "tag": "0012_v0-24-0-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 13,
+ "version": "7",
+ "when": 1755074095394,
+ "tag": "0013_v0-24-0-2",
+ "breakpoints": true
+ }
+ ]
+}
From d30a616dbdb791ea19b44368e91875c5b231bf19 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Thu, 16 Oct 2025 15:35:37 +0200
Subject: [PATCH 055/243] chore: add db migration
---
.../src/db/migrations/0015_flippant_spyke.sql | 4 +
.../src/db/migrations/meta/0015_snapshot.json | 3136 +++++++++++++++++
fdm-core/src/db/migrations/meta/_journal.json | 7 +
3 files changed, 3147 insertions(+)
create mode 100644 fdm-core/src/db/migrations/0015_flippant_spyke.sql
create mode 100644 fdm-core/src/db/migrations/meta/0015_snapshot.json
diff --git a/fdm-core/src/db/migrations/0015_flippant_spyke.sql b/fdm-core/src/db/migrations/0015_flippant_spyke.sql
new file mode 100644
index 000000000..6d904c5e6
--- /dev/null
+++ b/fdm-core/src/db/migrations/0015_flippant_spyke.sql
@@ -0,0 +1,4 @@
+ALTER TABLE "fdm"."cultivations_catalogue" ADD COLUMN "b_lu_start_default" text;--> statement-breakpoint
+ALTER TABLE "fdm"."cultivations_catalogue" ADD COLUMN "b_date_harvest_default" text;--> statement-breakpoint
+ALTER TABLE "fdm"."cultivations_catalogue" ADD CONSTRAINT "b_lu_start_default_format" CHECK (b_lu_start_default IS NULL OR b_lu_start_default ~ '^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$');--> statement-breakpoint
+ALTER TABLE "fdm"."cultivations_catalogue" ADD CONSTRAINT "b_date_harvest_default_format" CHECK (b_date_harvest_default IS NULL OR b_date_harvest_default ~ '^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$');
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/0015_snapshot.json b/fdm-core/src/db/migrations/meta/0015_snapshot.json
new file mode 100644
index 000000000..0f0676e27
--- /dev/null
+++ b/fdm-core/src/db/migrations/meta/0015_snapshot.json
@@ -0,0 +1,3136 @@
+{
+ "id": "60e262a4-309d-4384-ae3d-130a6e208f05",
+ "prevId": "45dcb87d-89c8-4cf7-a504-0db74ba68640",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "fdm.cultivation_catalogue_selecting": {
+ "name": "cultivation_catalogue_selecting",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_source": {
+ "name": "b_lu_source",
+ "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": {},
+ "foreignKeys": {
+ "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk": {
+ "name": "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "cultivation_catalogue_selecting",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_ending": {
+ "name": "cultivation_ending",
+ "schema": "fdm",
+ "columns": {
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_end": {
+ "name": "b_lu_end",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "m_cropresidue": {
+ "name": "m_cropresidue",
+ "type": "boolean",
+ "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": {
+ "cultivation_ending_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_ending_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_ending",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_harvesting": {
+ "name": "cultivation_harvesting",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvesting": {
+ "name": "b_id_harvesting",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_harvest_date": {
+ "name": "b_lu_harvest_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk": {
+ "name": "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk",
+ "tableFrom": "cultivation_harvesting",
+ "tableTo": "harvestables",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable"
+ ],
+ "columnsTo": [
+ "b_id_harvestable"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "cultivation_harvesting_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_harvesting_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_harvesting",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_starting": {
+ "name": "cultivation_starting",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_start": {
+ "name": "b_lu_start",
+ "type": "timestamp with time zone",
+ "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": {
+ "cultivation_starting_b_id_fields_b_id_fk": {
+ "name": "cultivation_starting_b_id_fields_b_id_fk",
+ "tableFrom": "cultivation_starting",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "cultivation_starting_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_starting_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_starting",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivations": {
+ "name": "cultivations",
+ "schema": "fdm",
+ "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
+ },
+ "b_lu_variety": {
+ "name": "b_lu_variety",
+ "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": {
+ "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",
+ "columnsFrom": [
+ "b_lu_catalogue"
+ ],
+ "columnsTo": [
+ "b_lu_catalogue"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivations_catalogue": {
+ "name": "cultivations_catalogue",
+ "schema": "fdm",
+ "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_harvestable": {
+ "name": "b_lu_harvestable",
+ "type": "b_lu_harvestable",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "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
+ },
+ "b_lu_croprotation": {
+ "name": "b_lu_croprotation",
+ "type": "b_lu_croprotation",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_yield": {
+ "name": "b_lu_yield",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_hi": {
+ "name": "b_lu_hi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_harvestable": {
+ "name": "b_lu_n_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_residue": {
+ "name": "b_lu_n_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_n_fixation": {
+ "name": "b_n_fixation",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_rest_oravib": {
+ "name": "b_lu_rest_oravib",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_variety_options": {
+ "name": "b_lu_variety_options",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_start_default": {
+ "name": "b_lu_start_default",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_date_harvest_default": {
+ "name": "b_date_harvest_default",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "hash": {
+ "name": "hash",
+ "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": {
+ "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": {},
+ "policies": {},
+ "checkConstraints": {
+ "b_lu_start_default_format": {
+ "name": "b_lu_start_default_format",
+ "value": "b_lu_start_default IS NULL OR b_lu_start_default ~ '^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$'"
+ },
+ "b_date_harvest_default_format": {
+ "name": "b_date_harvest_default_format",
+ "value": "b_date_harvest_default IS NULL OR b_date_harvest_default ~ '^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$'"
+ }
+ },
+ "isRLSEnabled": false
+ },
+ "fdm.derogation_applying": {
+ "name": "derogation_applying",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_derogation": {
+ "name": "b_id_derogation",
+ "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": {},
+ "foreignKeys": {
+ "derogation_applying_b_id_farm_farms_b_id_farm_fk": {
+ "name": "derogation_applying_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "derogation_applying",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk": {
+ "name": "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk",
+ "tableFrom": "derogation_applying",
+ "tableTo": "derogations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_derogation"
+ ],
+ "columnsTo": [
+ "b_id_derogation"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.derogations": {
+ "name": "derogations",
+ "schema": "fdm",
+ "columns": {
+ "b_id_derogation": {
+ "name": "b_id_derogation",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_derogation_year": {
+ "name": "b_derogation_year",
+ "type": "integer",
+ "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": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.farms": {
+ "name": "farms",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_name_farm": {
+ "name": "b_name_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_businessid_farm": {
+ "name": "b_businessid_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_address_farm": {
+ "name": "b_address_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_postalcode_farm": {
+ "name": "b_postalcode_farm",
+ "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": {
+ "b_id_farm_idx": {
+ "name": "b_id_farm_idx",
+ "columns": [
+ {
+ "expression": "b_id_farm",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_acquiring": {
+ "name": "fertilizer_acquiring",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_acquiring_amount": {
+ "name": "p_acquiring_amount",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_acquiring_date": {
+ "name": "p_acquiring_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk": {
+ "name": "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "fertilizer_acquiring",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_acquiring_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_acquiring_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_acquiring",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_applying": {
+ "name": "fertilizer_applying",
+ "schema": "fdm",
+ "columns": {
+ "p_app_id": {
+ "name": "p_app_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_app_amount": {
+ "name": "p_app_amount",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_method": {
+ "name": "p_app_method",
+ "type": "p_app_method",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_date": {
+ "name": "p_app_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "p_app_idx": {
+ "name": "p_app_idx",
+ "columns": [
+ {
+ "expression": "p_app_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "fertilizer_applying_b_id_fields_b_id_fk": {
+ "name": "fertilizer_applying_b_id_fields_b_id_fk",
+ "tableFrom": "fertilizer_applying",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_applying_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_applying_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_applying",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_catalogue_enabling": {
+ "name": "fertilizer_catalogue_enabling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_source": {
+ "name": "p_source",
+ "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": {},
+ "foreignKeys": {
+ "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk": {
+ "name": "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "fertilizer_catalogue_enabling",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_picking": {
+ "name": "fertilizer_picking",
+ "schema": "fdm",
+ "columns": {
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id_catalogue": {
+ "name": "p_id_catalogue",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_picking_date": {
+ "name": "p_picking_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "fertilizer_picking_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_picking_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_picking",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk": {
+ "name": "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk",
+ "tableFrom": "fertilizer_picking",
+ "tableTo": "fertilizers_catalogue",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id_catalogue"
+ ],
+ "columnsTo": [
+ "p_id_catalogue"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizers": {
+ "name": "fertilizers",
+ "schema": "fdm",
+ "columns": {
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": true,
+ "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": {
+ "p_id_idx": {
+ "name": "p_id_idx",
+ "columns": [
+ {
+ "expression": "p_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizers_catalogue": {
+ "name": "fertilizers_catalogue",
+ "schema": "fdm",
+ "columns": {
+ "p_id_catalogue": {
+ "name": "p_id_catalogue",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "p_source": {
+ "name": "p_source",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_name_nl": {
+ "name": "p_name_nl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_name_en": {
+ "name": "p_name_en",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_description": {
+ "name": "p_description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_method_options": {
+ "name": "p_app_method_options",
+ "type": "p_app_method[]",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_dm": {
+ "name": "p_dm",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_density": {
+ "name": "p_density",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_om": {
+ "name": "p_om",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_a": {
+ "name": "p_a",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_hc": {
+ "name": "p_hc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_eom": {
+ "name": "p_eom",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_eoc": {
+ "name": "p_eoc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_rt": {
+ "name": "p_c_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_of": {
+ "name": "p_c_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_if": {
+ "name": "p_c_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_fr": {
+ "name": "p_c_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cn_of": {
+ "name": "p_cn_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_rt": {
+ "name": "p_n_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_if": {
+ "name": "p_n_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_of": {
+ "name": "p_n_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_wc": {
+ "name": "p_n_wc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_no3_rt": {
+ "name": "p_no3_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_nh4_rt": {
+ "name": "p_nh4_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_p_rt": {
+ "name": "p_p_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_k_rt": {
+ "name": "p_k_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mg_rt": {
+ "name": "p_mg_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ca_rt": {
+ "name": "p_ca_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ne": {
+ "name": "p_ne",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_s_rt": {
+ "name": "p_s_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_s_wc": {
+ "name": "p_s_wc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cu_rt": {
+ "name": "p_cu_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_zn_rt": {
+ "name": "p_zn_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_na_rt": {
+ "name": "p_na_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_si_rt": {
+ "name": "p_si_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_b_rt": {
+ "name": "p_b_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mn_rt": {
+ "name": "p_mn_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ni_rt": {
+ "name": "p_ni_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_fe_rt": {
+ "name": "p_fe_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mo_rt": {
+ "name": "p_mo_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_co_rt": {
+ "name": "p_co_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_as_rt": {
+ "name": "p_as_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cd_rt": {
+ "name": "p_cd_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cr_rt": {
+ "name": "p_cr_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cr_vi": {
+ "name": "p_cr_vi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_pb_rt": {
+ "name": "p_pb_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_hg_rt": {
+ "name": "p_hg_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cl_rt": {
+ "name": "p_cl_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ef_nh3": {
+ "name": "p_ef_nh3",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_manure": {
+ "name": "p_type_manure",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_mineral": {
+ "name": "p_type_mineral",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_compost": {
+ "name": "p_type_compost",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "hash": {
+ "name": "hash",
+ "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": {
+ "p_id_catalogue_idx": {
+ "name": "p_id_catalogue_idx",
+ "columns": [
+ {
+ "expression": "p_id_catalogue",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.field_acquiring": {
+ "name": "field_acquiring",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_start": {
+ "name": "b_start",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_acquiring_method": {
+ "name": "b_acquiring_method",
+ "type": "b_acquiring_method",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'unknown'"
+ },
+ "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_acquiring_b_id_fields_b_id_fk": {
+ "name": "field_acquiring_b_id_fields_b_id_fk",
+ "tableFrom": "field_acquiring",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "field_acquiring_b_id_farm_farms_b_id_farm_fk": {
+ "name": "field_acquiring_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "field_acquiring",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.field_discarding": {
+ "name": "field_discarding",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_end": {
+ "name": "b_end",
+ "type": "timestamp with time zone",
+ "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_discarding_b_id_fields_b_id_fk": {
+ "name": "field_discarding_b_id_fields_b_id_fk",
+ "tableFrom": "field_discarding",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fields": {
+ "name": "fields",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_name": {
+ "name": "b_name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_geometry": {
+ "name": "b_geometry",
+ "type": "geometry(Polygon,4326)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_id_source": {
+ "name": "b_id_source",
+ "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": {
+ "b_id_idx": {
+ "name": "b_id_idx",
+ "columns": [
+ {
+ "expression": "b_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "b_geom_idx": {
+ "name": "b_geom_idx",
+ "columns": [
+ {
+ "expression": "b_geometry",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "gist",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestable_analyses": {
+ "name": "harvestable_analyses",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable_analysis": {
+ "name": "b_id_harvestable_analysis",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_lu_yield": {
+ "name": "b_lu_yield",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_harvestable": {
+ "name": "b_lu_n_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_residue": {
+ "name": "b_lu_n_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_p_harvestable": {
+ "name": "b_lu_p_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_p_residue": {
+ "name": "b_lu_p_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_k_harvestable": {
+ "name": "b_lu_k_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_k_residue": {
+ "name": "b_lu_k_residue",
+ "type": "numeric",
+ "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": {
+ "b_id_harvestable_analyses_idx": {
+ "name": "b_id_harvestable_analyses_idx",
+ "columns": [
+ {
+ "expression": "b_id_harvestable_analysis",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestable_sampling": {
+ "name": "harvestable_sampling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_harvestable_analysis": {
+ "name": "b_id_harvestable_analysis",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_sampling_date": {
+ "name": "b_sampling_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk": {
+ "name": "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk",
+ "tableFrom": "harvestable_sampling",
+ "tableTo": "harvestables",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable"
+ ],
+ "columnsTo": [
+ "b_id_harvestable"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk": {
+ "name": "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk",
+ "tableFrom": "harvestable_sampling",
+ "tableTo": "harvestable_analyses",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable_analysis"
+ ],
+ "columnsTo": [
+ "b_id_harvestable_analysis"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestables": {
+ "name": "harvestables",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": true,
+ "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_id_harvestable_idx": {
+ "name": "b_id_harvestable_idx",
+ "columns": [
+ {
+ "expression": "b_id_harvestable",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.soil_analysis": {
+ "name": "soil_analysis",
+ "schema": "fdm",
+ "columns": {
+ "a_id": {
+ "name": "a_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "a_date": {
+ "name": "a_date",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_source": {
+ "name": "a_source",
+ "type": "a_source",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'other'"
+ },
+ "a_al_ox": {
+ "name": "a_al_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_c_of": {
+ "name": "a_c_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ca_co": {
+ "name": "a_ca_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ca_co_po": {
+ "name": "a_ca_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_caco3_if": {
+ "name": "a_caco3_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cec_co": {
+ "name": "a_cec_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_clay_mi": {
+ "name": "a_clay_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cn_fr": {
+ "name": "a_cn_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_com_fr": {
+ "name": "a_com_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cu_cc": {
+ "name": "a_cu_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_density_sa": {
+ "name": "a_density_sa",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_fe_ox": {
+ "name": "a_fe_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_cc": {
+ "name": "a_k_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_co": {
+ "name": "a_k_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_co_po": {
+ "name": "a_k_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_cc": {
+ "name": "a_mg_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_co": {
+ "name": "a_mg_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_co_po": {
+ "name": "a_mg_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_n_pmn": {
+ "name": "a_n_pmn",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_n_rt": {
+ "name": "a_n_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_nh4_cc": {
+ "name": "a_nh4_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_nmin_cc": {
+ "name": "a_nmin_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_no3_cc": {
+ "name": "a_no3_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_al": {
+ "name": "a_p_al",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_cc": {
+ "name": "a_p_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_ox": {
+ "name": "a_p_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_rt": {
+ "name": "a_p_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_sg": {
+ "name": "a_p_sg",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_wa": {
+ "name": "a_p_wa",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ph_cc": {
+ "name": "a_ph_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_s_rt": {
+ "name": "a_s_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_sand_mi": {
+ "name": "a_sand_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_silt_mi": {
+ "name": "a_silt_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_som_loi": {
+ "name": "a_som_loi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_zn_cc": {
+ "name": "a_zn_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_gwl_class": {
+ "name": "b_gwl_class",
+ "type": "b_gwl_class",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_soiltype_agr": {
+ "name": "b_soiltype_agr",
+ "type": "b_soiltype_agr",
+ "typeSchema": "fdm",
+ "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": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.soil_sampling": {
+ "name": "soil_sampling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_sampling": {
+ "name": "b_id_sampling",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "a_id": {
+ "name": "a_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "a_depth_upper": {
+ "name": "a_depth_upper",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ },
+ "a_depth_lower": {
+ "name": "a_depth_lower",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_sampling_date": {
+ "name": "b_sampling_date",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_sampling_geometry": {
+ "name": "b_sampling_geometry",
+ "type": "geometry(MultiPoint,4326)",
+ "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": {
+ "soil_sampling_b_id_fields_b_id_fk": {
+ "name": "soil_sampling_b_id_fields_b_id_fk",
+ "tableFrom": "soil_sampling",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "soil_sampling_a_id_soil_analysis_a_id_fk": {
+ "name": "soil_sampling_a_id_soil_analysis_a_id_fk",
+ "tableFrom": "soil_sampling",
+ "tableTo": "soil_analysis",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "a_id"
+ ],
+ "columnsTo": [
+ "a_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.account": {
+ "name": "account",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "account_id": {
+ "name": "account_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider_id": {
+ "name": "provider_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "id_token": {
+ "name": "id_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token_expires_at": {
+ "name": "access_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token_expires_at": {
+ "name": "refresh_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "account_user_id_user_id_fk": {
+ "name": "account_user_id_user_id_fk",
+ "tableFrom": "account",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.invitation": {
+ "name": "invitation",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "inviter_id": {
+ "name": "inviter_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "invitation_organization_id_organization_id_fk": {
+ "name": "invitation_organization_id_organization_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "organization",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "invitation_inviter_id_user_id_fk": {
+ "name": "invitation_inviter_id_user_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "inviter_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.member": {
+ "name": "member",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "member_organization_id_organization_id_fk": {
+ "name": "member_organization_id_organization_id_fk",
+ "tableFrom": "member",
+ "tableTo": "organization",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "member_user_id_user_id_fk": {
+ "name": "member_user_id_user_id_fk",
+ "tableFrom": "member",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.organization": {
+ "name": "organization",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slug": {
+ "name": "slug",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "logo": {
+ "name": "logo",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "organization_slug_unique": {
+ "name": "organization_slug_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "slug"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.rate_limit": {
+ "name": "rate_limit",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "key": {
+ "name": "key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "count": {
+ "name": "count",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_request": {
+ "name": "last_request",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.session": {
+ "name": "session",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "token": {
+ "name": "token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ip_address": {
+ "name": "ip_address",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_agent": {
+ "name": "user_agent",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "active_organization_id": {
+ "name": "active_organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "session_user_id_user_id_fk": {
+ "name": "session_user_id_user_id_fk",
+ "tableFrom": "session",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "session_token_unique": {
+ "name": "session_token_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "token"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.user": {
+ "name": "user",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email_verified": {
+ "name": "email_verified",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "display_username": {
+ "name": "display_username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "firstname": {
+ "name": "firstname",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "surname": {
+ "name": "surname",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "lang": {
+ "name": "lang",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "farm_active": {
+ "name": "farm_active",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "user_email_unique": {
+ "name": "user_email_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "email"
+ ]
+ },
+ "user_username_unique": {
+ "name": "user_username_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "username"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.verification": {
+ "name": "verification",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "identifier": {
+ "name": "identifier",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authz.audit": {
+ "name": "audit",
+ "schema": "fdm-authz",
+ "columns": {
+ "audit_id": {
+ "name": "audit_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "audit_timestamp": {
+ "name": "audit_timestamp",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "audit_origin": {
+ "name": "audit_origin",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "principal_id": {
+ "name": "principal_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "target_resource": {
+ "name": "target_resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "target_resource_id": {
+ "name": "target_resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "granting_resource": {
+ "name": "granting_resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "granting_resource_id": {
+ "name": "granting_resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "action": {
+ "name": "action",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "allowed": {
+ "name": "allowed",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "duration": {
+ "name": "duration",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authz.role": {
+ "name": "role",
+ "schema": "fdm-authz",
+ "columns": {
+ "role_id": {
+ "name": "role_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "resource": {
+ "name": "resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "resource_id": {
+ "name": "resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "principal_id": {
+ "name": "principal_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created": {
+ "name": "created",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "deleted": {
+ "name": "deleted",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {
+ "role_idx": {
+ "name": "role_idx",
+ "columns": [
+ {
+ "expression": "resource",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "resource_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "principal_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "role",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "deleted",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {
+ "fdm.b_acquiring_method": {
+ "name": "b_acquiring_method",
+ "schema": "fdm",
+ "values": [
+ "nl_01",
+ "nl_02",
+ "nl_03",
+ "nl_04",
+ "nl_07",
+ "nl_09",
+ "nl_10",
+ "nl_11",
+ "nl_12",
+ "nl_13",
+ "nl_61",
+ "nl_63",
+ "unknown"
+ ]
+ },
+ "fdm.p_app_method": {
+ "name": "p_app_method",
+ "schema": "fdm",
+ "values": [
+ "slotted coulter",
+ "incorporation",
+ "incorporation 2 tracks",
+ "injection",
+ "shallow injection",
+ "spraying",
+ "broadcasting",
+ "spoke wheel",
+ "pocket placement",
+ "narrowband"
+ ]
+ },
+ "fdm.b_gwl_class": {
+ "name": "b_gwl_class",
+ "schema": "fdm",
+ "values": [
+ "I",
+ "Ia",
+ "Ic",
+ "II",
+ "IIa",
+ "IIb",
+ "IIc",
+ "III",
+ "IIIa",
+ "IIIb",
+ "IV",
+ "IVu",
+ "IVc",
+ "V",
+ "Va",
+ "Vao",
+ "Vad",
+ "Vb",
+ "Vbo",
+ "Vbd",
+ "sV",
+ "sVb",
+ "VI",
+ "VIo",
+ "VId",
+ "VII",
+ "VIIo",
+ "VIId",
+ "VIII",
+ "VIIIo",
+ "VIIId"
+ ]
+ },
+ "fdm.b_lu_harvestable": {
+ "name": "b_lu_harvestable",
+ "schema": "fdm",
+ "values": [
+ "none",
+ "once",
+ "multiple"
+ ]
+ },
+ "fdm.b_lu_croprotation": {
+ "name": "b_lu_croprotation",
+ "schema": "fdm",
+ "values": [
+ "other",
+ "clover",
+ "nature",
+ "potato",
+ "grass",
+ "rapeseed",
+ "starch",
+ "maize",
+ "cereal",
+ "sugarbeet",
+ "alfalfa",
+ "catchcrop"
+ ]
+ },
+ "fdm.a_source": {
+ "name": "a_source",
+ "schema": "fdm",
+ "values": [
+ "nl-rva-l122",
+ "nl-rva-l136",
+ "nl-rva-l264",
+ "nl-rva-l320",
+ "nl-rva-l335",
+ "nl-rva-l610",
+ "nl-rva-l648",
+ "nl-rva-l697",
+ "nl-other-nmi",
+ "other"
+ ]
+ },
+ "fdm.b_soiltype_agr": {
+ "name": "b_soiltype_agr",
+ "schema": "fdm",
+ "values": [
+ "moerige_klei",
+ "rivierklei",
+ "dekzand",
+ "zeeklei",
+ "dalgrond",
+ "veen",
+ "loess",
+ "duinzand",
+ "maasklei"
+ ]
+ }
+ },
+ "schemas": {
+ "fdm": "fdm",
+ "fdm-authn": "fdm-authn",
+ "fdm-authz": "fdm-authz"
+ },
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/_journal.json b/fdm-core/src/db/migrations/meta/_journal.json
index 1d8df0db1..9780a70da 100644
--- a/fdm-core/src/db/migrations/meta/_journal.json
+++ b/fdm-core/src/db/migrations/meta/_journal.json
@@ -106,6 +106,13 @@
"when": 1760450273146,
"tag": "0014_smart_malice",
"breakpoints": true
+ },
+ {
+ "idx": 15,
+ "version": "7",
+ "when": 1760621691069,
+ "tag": "0015_flippant_spyke",
+ "breakpoints": true
}
]
}
\ No newline at end of file
From 60e5933f90092cb553b7aef188f3c558ee402b50 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Thu, 16 Oct 2025 17:38:47 +0200
Subject: [PATCH 056/243] feat: implement filling calculation of
fosfaatgebruiksnorm
---
fdm-calculator/src/norms/index.test.ts | 4 +-
fdm-calculator/src/norms/index.ts | 8 +-
.../2025/filling/fosfaatgebruiksnorm.test.ts | 394 ++++++++++++++++++
.../nl/2025/filling/fosfaatgebruiksnorm.ts | 298 +++++++++++++
.../src/norms/nl/2025/filling/types.d.ts | 1 +
5 files changed, 698 insertions(+), 7 deletions(-)
create mode 100644 fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
create mode 100644 fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts
diff --git a/fdm-calculator/src/norms/index.test.ts b/fdm-calculator/src/norms/index.test.ts
index f19f49f87..aa8c9b94d 100644
--- a/fdm-calculator/src/norms/index.test.ts
+++ b/fdm-calculator/src/norms/index.test.ts
@@ -63,8 +63,8 @@ describe("createFunctionsForFertilizerApplicationFilling", () => {
)
expect(
functions.calculateFertilizerApplicationFillingForPhosphate,
- ).toThrowError(
- "calculateFertilizerApplicationFillingForPhosphate is not implemented yet",
+ ).toBe(
+ calculateFertilizerApplicationFillingForPhosphate,
)
})
diff --git a/fdm-calculator/src/norms/index.ts b/fdm-calculator/src/norms/index.ts
index bfce0591f..54f1e6a4c 100644
--- a/fdm-calculator/src/norms/index.ts
+++ b/fdm-calculator/src/norms/index.ts
@@ -1,6 +1,7 @@
import { aggregateNormsToFarmLevel } from "./farm"
import { getNL2025DierlijkeMestGebruiksNorm } from "./nl/2025/dierlijke-mest-gebruiksnorm"
import { calculateFertilizerApplicationFillingForManure } from "./nl/2025/filling/dierlijke-mest-gebruiksnorm"
+import { calculateFertilizerApplicationFillingForPhosphate } from "./nl/2025/filling/fosfaatgebruiksnorm"
import { getNL2025FosfaatGebruiksNorm } from "./nl/2025/fosfaatgebruiksnorm"
import { collectNL2025InputForNorms } from "./nl/2025/input"
import { getNL2025StikstofGebruiksNorm } from "./nl/2025/stikstofgebruiksnorm"
@@ -41,11 +42,8 @@ export function createFunctionsForFertilizerApplicationFilling(
},
calculateFertilizerApplicationFillingForManure:
calculateFertilizerApplicationFillingForManure,
- calculateFertilizerApplicationFillingForPhosphate: () => {
- throw new Error(
- "calculateFertilizerApplicationFillingForPhosphate is not implemented yet",
- )
- },
+ calculateFertilizerApplicationFillingForPhosphate:
+ calculateFertilizerApplicationFillingForPhosphate,
}
}
throw new Error("Year not supported")
diff --git a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
new file mode 100644
index 000000000..503486924
--- /dev/null
+++ b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
@@ -0,0 +1,394 @@
+import { describe, it, expect } from "vitest"
+import type { Fertilizer, FertilizerApplication } from "@svenvw/fdm-core"
+import { calculateFertilizerApplicationFillingForPhosphate } from "./fosfaatgebruiksnorm"
+
+// Mock data for fertilizers
+const mockFertilizers: Fertilizer[] = [
+ {
+ p_id_catalogue: "f1",
+ p_name_nl: "Drijfmest van rundvee",
+ p_type: "manure",
+ p_type_rvo: "14",
+ p_p_rt: 1.5, // Example 1: 30kg P / 20 = 1.5
+ },
+ {
+ p_id_catalogue: "f2",
+ p_name_nl: "Strorijke vaste mest van rundvee",
+ p_type: "manure",
+ p_type_rvo: "10",
+ p_p_rt: 0.75, // Example 1: 30kg P / 40 = 0.75
+ },
+ {
+ p_id_catalogue: "f3",
+ p_name_nl: "Groencompost",
+ p_type: "compost",
+ p_type_rvo: "111",
+ p_p_rt: 10, // Example 2: 1200 kg P / 120 = 10
+ },
+ {
+ p_id_catalogue: "f4",
+ p_name_nl: "Drijfmest",
+ p_type: "manure",
+ p_type_rvo: "14",
+ p_p_rt: 1.0, // Example 3: 60kg P / 60 = 1.0
+ },
+ {
+ p_id_catalogue: "f5",
+ p_name_nl: "GFT-compost",
+ p_type: "compost",
+ p_type_rvo: "112",
+ p_p_rt: 0.25, // Example 4: 10kg P / 40 = 0.25
+ },
+ {
+ p_id_catalogue: "f6",
+ p_name_nl: "Strorijke vaste mest van paarden",
+ p_type: "manure",
+ p_type_rvo: "25",
+ p_p_rt: 0.75, // Example 4: 10kg P / 13.3 = 0.75
+ },
+ {
+ p_id_catalogue: "f7",
+ p_name_nl: "Vaste mest varkens (biologisch)",
+ p_type: "manure",
+ p_type_rvo: "40",
+ p_p_rt: 0.75,
+ },
+ {
+ p_id_catalogue: "f8",
+ p_name_nl: "Kunstmest",
+ p_type: "mineral",
+ p_type_rvo: "115",
+ p_p_rt: 50,
+ },
+ {
+ p_id_catalogue: "f9",
+ p_name_nl: "Fertilizer with no p_p_rt",
+ p_type: "manure",
+ p_type_rvo: "108", // A type_rvo that has no p_p_rt in table11Mestcodes
+ p_p_rt: null,
+ },
+ {
+ p_id_catalogue: "f10",
+ p_name_nl: "Fertilizer with p_p_rt in table11Mestcodes",
+ p_type: "manure",
+ p_type_rvo: "107", // A type_rvo that has p_p_rt in table11Mestcodes (3.1)
+ p_p_rt: null,
+ },
+]
+
+describe("calculateFertilizerApplicationFillingForPhosphate", () => {
+ // Helper to create a FertilizerApplication
+ const createApplication = (
+ fertilizerId: string,
+ amount: number,
+ appId: string,
+ ): FertilizerApplication => ({
+ p_app_id: appId,
+ p_id_catalogue: fertilizerId,
+ p_name_nl: `Application for ${fertilizerId}`,
+ p_app_amount: amount,
+ p_app_method: "spreading",
+ p_app_date: new Date(),
+ })
+
+ describe("5 examples from Staatscourant 2023-5152", () => {
+ // Example 1: Strorijke vaste mest van rundvee
+ it("should correctly calculate for Example 1 (Strorijke vaste mest)", () => {
+ const applications = [
+ createApplication("f1", 20000, "app1"), // Drijfmest: 30kg P (20000 kg fertilizer * 1.5 P_RT / 1000)
+ createApplication("f2", 53333.33, "app2"), // Strorijke vaste mest: 40kg P (53333.33 kg fertilizer * 0.75 P_RT / 1000)
+ ]
+ const fosfaatgebruiksnorm = 60
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm,
+ })
+
+ expect(result.normFilling).toBeCloseTo(60)
+ expect(result.applicationFilling).toHaveLength(2)
+ expect(result.applicationFilling[0].normFilling).toBeCloseTo(30) // Standard
+ expect(result.applicationFilling[1].normFilling).toBeCloseTo(30) // OS-rich (40 * 0.75)
+ })
+
+ // Example 2a: Groencompost
+ it("should correctly calculate for Example 2 (Groencompost)", () => {
+ const applications = [
+ createApplication("f3", 12000, "app1"), // Groencompost: 120kg P (12000 kg fertilizer * 10 P_RT / 1000)
+ createApplication("f3", 9000, "app2"), // Groencompost: 90kg P (9000 kg fertilizer * 10 P_RT / 1000)
+ ]
+ const fosfaatgebruiksnorm = 120
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm,
+ })
+ // console.log(result) // Keep for debugging if needed
+
+ expect(result.normFilling).toBeCloseTo(120)
+ expect(result.applicationFilling).toHaveLength(2)
+ expect(result.applicationFilling[0].normFilling).toBeCloseTo(30) // OS-rich (120 * 0.25)
+ expect(result.applicationFilling[1].normFilling).toBeCloseTo(90) // OS-rich (90 * 1.00)
+ })
+
+ // Example 2b: Groencompost (This test case seems to be a duplicate or misinterpretation of Example 2 in the document. The document's Example 2 has only one OS-rich application of 120kg P, and then an additional 90kg P is mentioned as "extra space". The test here uses two applications of f3, which is fine, but the expected output for the first application is 120, which is the total norm. This needs to be adjusted to reflect the actual contribution of the first application.)
+ // Based on the document's Example 2, the total actual P from Groencompost is 120kg + 90kg = 210kg.
+ // 120kg is discounted at 25% -> 30kg.
+ // Remaining 90kg is counted at 100% -> 90kg.
+ // Total norm filling = 30 + 90 = 120kg.
+ // The test should reflect this breakdown.
+ it("should correctly calculate for Example 2 (Groencompost) - detailed breakdown", () => {
+ const applications = [
+ createApplication("f3", 12000, "app1"), // Groencompost: 120kg P
+ createApplication("f3", 9000, "app2"), // Groencompost: 90kg P
+ ]
+ const fosfaatgebruiksnorm = 120
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm,
+ })
+ // console.log(result) // Keep for debugging if needed
+
+ expect(result.normFilling).toBeCloseTo(120)
+ expect(result.applicationFilling).toHaveLength(2)
+ expect(result.applicationFilling[0].normFilling).toBeCloseTo(30) // 120kg * 0.25
+ expect(result.applicationFilling[1].normFilling).toBeCloseTo(90) // 90kg * 1.00 (beyond discounted limit)
+ })
+
+ // Example 3: Groencompost with Drijfmest
+ it("should correctly calculate for Example 3 (Groencompost with Drijfmest)", () => {
+ const applications = [
+ createApplication("f4", 60000, "app1"), // Drijfmest: 60kg P
+ createApplication("f3", 10500, "app2"), // Groencompost: 105kg P
+ ]
+ const fosfaatgebruiksnorm = 105
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm,
+ })
+
+ expect(result.normFilling).toBeCloseTo(86.25) // 60 + (105 * 0.25)
+ expect(result.applicationFilling).toHaveLength(2)
+ expect(result.applicationFilling[0].normFilling).toBeCloseTo(60) // Standard
+ expect(result.applicationFilling[1].normFilling).toBeCloseTo(26.25) // OS-rich (105 * 0.25)
+ })
+
+ // Example 4: GFT-compost and Strorijke mest van paarden with Drijfmest
+ it("should correctly calculate for Example 4 (Mixed OS-rich with Drijfmest)", () => {
+ const applications = [
+ createApplication("f4", 40000, "app1"), // Drijfmest: 40kg P
+ createApplication("f5", 160000, "app2"), // GFT-compost: 40kg P
+ createApplication("f6", 17733.33, "app3"), // Strorijke mest paarden: 13.3kg P
+ ]
+ const fosfaatgebruiksnorm = 60
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm,
+ })
+
+ expect(result.normFilling).toBeCloseTo(59.975) // 40 + (40 * 0.25) + (13.3 * 0.75) = 40 + 10 + 9.975 = 59.975
+ expect(result.applicationFilling).toHaveLength(3)
+ expect(result.applicationFilling[0].normFilling).toBeCloseTo(40) // Standard
+ expect(result.applicationFilling[1].normFilling).toBeCloseTo(10) // OS-rich (40 * 0.25)
+ expect(result.applicationFilling[2].normFilling).toBeCloseTo(9.975) // OS-rich (13.3 * 0.75)
+ })
+
+ // Example 5: Groencompost with Drijfmest, not filling the norm completely
+ it("should correctly calculate for Example 5 (Groencompost, Drijfmest, partial filling)", () => {
+ const applications = [
+ createApplication("f3", 12000, "app1"), // Groencompost: 120kg P
+ createApplication("f4", 40000, "app2"), // Drijfmest: 40kg P
+ ]
+ const fosfaatgebruiksnorm = 120
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm,
+ })
+
+ expect(result.normFilling).toBeCloseTo(70) // (120 * 0.25) + 40 = 30 + 40
+ expect(result.applicationFilling).toHaveLength(2)
+ expect(result.applicationFilling[0].normFilling).toBeCloseTo(30) // OS-rich (120 * 0.25)
+ expect(result.applicationFilling[1].normFilling).toBeCloseTo(40) // Standard
+ })
+ })
+
+ // Additional Test Cases for coverage
+
+ it("should return 0 for no applications", () => {
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications: [],
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm: 100,
+ })
+ expect(result.normFilling).toBe(0)
+ expect(result.applicationFilling).toHaveLength(0)
+ })
+
+ it("should handle applications with only standard fertilizers", () => {
+ const applications = [
+ createApplication("f1", 10000, "app1"), // Drijfmest: 10 * 1.5 = 15kg P
+ createApplication("f4", 20000, "app2"), // Drijfmest: 20 * 1.0 = 20kg P
+ ]
+ const fosfaatgebruiksnorm = 100
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm,
+ })
+ expect(result.normFilling).toBeCloseTo(35)
+ expect(result.applicationFilling).toHaveLength(2)
+ })
+
+ it("should count OS-rich fertilizers at 100% if total applied is below 20kg threshold", () => {
+ const applications = [
+ createApplication("f3", 1000, "app1"), // Groencompost: 10kg P (below 20kg threshold)
+ ]
+ const fosfaatgebruiksnorm = 100
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm,
+ })
+ expect(result.normFilling).toBeCloseTo(10) // 100% counted
+ expect(result.applicationFilling[0].normFillingDetails).toContain(
+ "OS-rijke meststof, minimumdrempel niet gehaald, 100% geteld.",
+ )
+ })
+
+ it("should correctly apply 75% discount for organic pig manure on an organic farm", () => {
+ const applications = [
+ createApplication("f7", 40000, "app1"), // Vaste mest varkens (biologisch): 30kg P (75% discounted)
+ ]
+ const fosfaatgebruiksnorm = 100
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: true,
+ fosfaatgebruiksnorm,
+ })
+ expect(result.normFilling).toBeCloseTo(22.5) // 30 * 0.75 = 22.5
+ expect(result.applicationFilling[0].normFillingDetails).toContain(
+ "75% korting",
+ )
+ })
+
+ it("should count organic pig manure at 100% on a non-organic farm", () => {
+ const applications = [
+ createApplication("f7", 40000, "app1"), // Vaste mest varkens (biologisch): 30kg P (100% counted)
+ ]
+ const fosfaatgebruiksnorm = 100
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm,
+ })
+ expect(result.normFilling).toBeCloseTo(30) // 100% counted
+ expect(result.applicationFilling[0].normFillingDetails).toContain(
+ "Standaard meststof",
+ )
+ })
+
+ it("should use p_p_rt from table11Mestcodes if not on fertilizer object", () => {
+ const applications = [
+ createApplication("f10", 10000, "app1"), // Fertilizer with p_p_rt in table11Mestcodes (3.1)
+ ]
+ const fosfaatgebruiksnorm = 100
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm,
+ })
+ expect(result.normFilling).toBeCloseTo(10 * 3.1) // 31
+ })
+
+ it("should use 0 if p_p_rt is not on fertilizer and not in table11Mestcodes", () => {
+ const applications = [
+ createApplication("f9", 10000, "app1"), // Fertilizer with no p_p_rt
+ ]
+ const fosfaatgebruiksnorm = 100
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm,
+ })
+ expect(result.normFilling).toBe(0)
+ })
+
+ it("should correctly handle OS-rich applications exceeding the norm", () => {
+ const applications = [
+ createApplication("f4", 10000, "app1"), // Drijfmest: 10 * 1.0 = 10kg P
+ createApplication("f3", 20000, "app2"), // Groencompost: 200 * 0.25 = 50kg P (25% discounted)
+ ]
+ const fosfaatgebruiksnorm = 30 // Small norm
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm,
+ })
+ // Standard: 10kg. Remaining norm: 20kg.
+ // Groencompost: 200kg actual P. Discounted: 50kg.
+ // To fill 20kg norm with 25% discounted: need 20 / 0.25 = 80kg actual P.
+ // So 80kg of Groencompost is discounted to 20kg.
+ // Remaining Groencompost: 200 - 80 = 120kg. This counts 100%.
+ // Standard: 10kg. Remaining norm: 20kg.
+ // Groencompost: 200kg actual P. Discounted: 50kg.
+ // To fill 20kg norm with 25% discounted: need 20 / 0.25 = 80kg actual P.
+ // So 80kg of Groencompost is discounted to 20kg.
+ // Remaining Groencompost: 200 - 80 = 120kg. This counts 100%.
+ // Total: 10 (standard) + 177.5 (Groencompost) = 187.5. Capped at 30.
+ expect(result.normFilling).toBeCloseTo(30)
+ expect(result.applicationFilling[1].normFilling).toBeCloseTo(177.5) // 7.5 (discounted) + 170 (100% counted)
+ expect(result.applicationFilling[1].normFillingDetails).toContain(
+ "OS-rijke meststof (25% korting) draagt 7.50kg bij aan de norm. Plus 170.00kg (100% geteld) boven de kortingslimiet.",
+ )
+ })
+
+ it("should handle multiple OS-rich applications filling and exceeding the norm", () => {
+ const applications = [
+ createApplication("f4", 10000, "app1"), // Drijfmest: 10kg P
+ createApplication("f3", 4000, "app2"), // Groencompost: 40kg actual P (25% discounted)
+ createApplication("f2", 20000, "app3"), // Strorijke vaste mest: 20kg actual P (75% discounted)
+ ]
+ const fosfaatgebruiksnorm = 30
+ const result = calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers: mockFertilizers,
+ has_organic_certification: false,
+ fosfaatgebruiksnorm,
+ })
+ // Standard: 10kg.
+ // App2 (Groencompost): 40kg actual P.
+ // Eligible for discount: min(40, 30 - 0) = 30kg. Discounted: 30 * 0.25 = 7.5kg.
+ // Remaining actual P: 40 - 30 = 10kg. This counts 100%.
+ // App2 contribution: 7.5 + 10 = 17.5kg.
+ // App3 (Strorijke mest): 20kg actual P.
+ // Eligible for discount: min(20, 30 - 30) = 0kg. Discounted: 0kg.
+ // Remaining actual P: 20 - 0 = 20kg. This counts 100%.
+ // App3 contribution: 0 + 20 = 20kg.
+ // Total: 10 (app1) + 17.5 (app2) + 20 (app3) = 47.5kg. Capped at 30.
+ expect(result.normFilling).toBeCloseTo(30)
+ expect(result.applicationFilling[0].normFilling).toBeCloseTo(10)
+ expect(result.applicationFilling[1].normFilling).toBeCloseTo(17.5)
+ expect(result.applicationFilling[2].normFilling).toBeCloseTo(20)
+ expect(result.applicationFilling[2].normFillingDetails).toContain(
+ "OS-rijke meststof (75% korting) draagt 0.00kg bij aan de norm. Plus 20.00kg (100% geteld) boven de kortingslimiet.",
+ )
+ })
+})
diff --git a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts
new file mode 100644
index 000000000..a12a74747
--- /dev/null
+++ b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts
@@ -0,0 +1,298 @@
+import type { Fertilizer, FertilizerApplication } from "@svenvw/fdm-core"
+import type { NormFilling } from "./types"
+import { table11Mestcodes } from "./table-11-mestcodes"
+import Decimal from "decimal.js"
+const rvoMestcodesOrganicRich25Percent = ["111", "112"] // Compost, Zeer schone compost
+const rvoMestcodesOrganicRich75Percent = ["110", "10", "61", "25", "56"] // Champost, Rundvee - Vaste mest, Geiten - Vaste mest, Paarden - Vaste mest, Schapen - Mest, alle systemen
+const rvoMestcodesOrganicRich75PercentOrganic = ["40"] // Varkens - Vaste mest (for organic certification)
+
+/**
+ * Calculates the norm filling for phosphate application, taking into account the
+ * "Stimuleren organische stofrijke meststoffen" (Stimulating organic-rich fertilizers) regulation.
+ *
+ * This regulation, detailed in Staatscourant 2023, nr. 5152, aims to encourage the use of
+ * organic-rich fertilizers by applying a differentiated percentage to their phosphate content
+ * when calculating against the phosphate usage norm.
+ *
+ * Key aspects of the regulation implemented:
+ * 1. **Minimum Threshold (Condition 1):** A discount is only applied if at least 20 kg/ha of
+ * phosphate from organic-rich fertilizers is applied.
+ * 2. **Iterative Discounting:** The differentiated percentage (25% or 75% mee) is applied
+ * iteratively. The discount is only valid for the portion of organic-rich phosphate
+ * that, when summed with other discounted organic-rich phosphate, does not exceed
+ * the `fosfaatgebruiksnorm`. Any organic-rich phosphate applied beyond this limit
+ * is counted at 100% towards the norm.
+ * 3. **Prioritization:** To maximize the benefit for the farmer, fertilizers with a 25%
+ * contribution factor (e.g., compost) are prioritized for the discount over those
+ * with a 75% contribution factor (e.g., strorijke vaste mest).
+ * This has been acknowledged by RVO to be possible in personal communication with Sven.
+ *
+ * @param {object} params - The parameters for the calculation.
+ * @param {FertilizerApplication[]} params.applications - An array of fertilizer applications.
+ * @param {Fertilizer[]} params.fertilizers - An array of available fertilizers.
+ * @param {boolean} params.has_organic_certification - Indicates if the farm has organic certification, which affects certain fertilizer types.
+ * @param {number} params.fosfaatgebruiksnorm - The maximum phosphate usage norm in kg/ha.
+ * @returns {NormFilling} An object containing the total norm filling and a breakdown per application.
+ */
+export function calculateFertilizerApplicationFillingForPhosphate({
+ applications,
+ fertilizers,
+ has_organic_certification,
+ fosfaatgebruiksnorm,
+}: {
+ applications: FertilizerApplication[]
+ fertilizers: Fertilizer[]
+ has_organic_certification: boolean
+ fosfaatgebruiksnorm: number
+}): NormFilling {
+ // Create maps for efficient lookups of fertilizers and RVO types.
+ // This avoids iterating over the arrays repeatedly in a loop.
+ const fertilizersMap = new Map(
+ fertilizers.map((fertilizer) => [
+ fertilizer.p_id_catalogue,
+ fertilizer,
+ ]),
+ )
+
+ // Determines if at least 20 kg P2O5 / ha is applied with organic-rich fertilizers
+ const condition1 =
+ determineCondition1StimuleringOrganischeStofrijkeMeststoffen({
+ applications,
+ fertilizersMap,
+ has_organic_certification,
+ })
+
+ let totalFilling = new Decimal(0)
+ const applicationsFilling = [] as {
+ p_app_id: string
+ normFilling: number
+ normFillingDetails?: string
+ }[]
+ const normLimit = new Decimal(fosfaatgebruiksnorm)
+ let remainingDiscountablePhosphate = normLimit // This tracks the remaining P that can be discounted
+
+ // Separate applications into standard and organic-rich
+ const standardApplications: {
+ application: FertilizerApplication
+ p_p_rt: Decimal
+ p_app_amount: Decimal
+ }[] = []
+ const organicRichApplications: {
+ application: FertilizerApplication
+ p_p_rt: Decimal
+ p_app_amount: Decimal
+ p_type_rvo: string
+ discountFactor: Decimal
+ originalIndex: number
+ }[] = []
+
+ applications.forEach((application, index) => {
+ const p_app_amount = new Decimal(application.p_app_amount ?? 0)
+ const p_p_rt = new Decimal(
+ fertilizersMap.get(application.p_id_catalogue)?.p_p_rt ??
+ table11Mestcodes.find(
+ (t) =>
+ t.p_type_rvo ===
+ fertilizersMap.get(application.p_id_catalogue)
+ ?.p_type_rvo,
+ )?.p_p_rt ??
+ 0,
+ )
+ const p_type_rvo =
+ fertilizersMap.get(application.p_id_catalogue)?.p_type_rvo ?? ""
+
+ if (
+ rvoMestcodesOrganicRich25Percent.includes(p_type_rvo) ||
+ rvoMestcodesOrganicRich75Percent.includes(p_type_rvo) ||
+ (rvoMestcodesOrganicRich75PercentOrganic.includes(p_type_rvo) &&
+ has_organic_certification)
+ ) {
+ let discountFactor: Decimal
+ if (rvoMestcodesOrganicRich25Percent.includes(p_type_rvo)) {
+ discountFactor = new Decimal(0.25)
+ } else {
+ discountFactor = new Decimal(0.75)
+ }
+ organicRichApplications.push({
+ application,
+ p_p_rt,
+ p_app_amount,
+ p_type_rvo,
+ discountFactor,
+ originalIndex: index,
+ })
+ } else {
+ standardApplications.push({ application, p_p_rt, p_app_amount })
+ }
+ })
+
+ // Sort organic-rich applications to prioritize 25% discount over 75% discount
+ organicRichApplications.sort((a, b) =>
+ a.discountFactor.cmp(b.discountFactor),
+ )
+
+ // Initialize applicationsFilling with placeholders to maintain original order
+ const orderedApplicationsFilling: {
+ p_app_id: string
+ normFilling: number
+ normFillingDetails?: string
+ }[] = new Array(applications.length)
+
+ // Process standard applications first
+ for (const { application, p_p_rt, p_app_amount } of standardApplications) {
+ const normFilling = p_app_amount.times(p_p_rt).dividedBy(1000)
+ totalFilling = totalFilling.plus(normFilling)
+ orderedApplicationsFilling[
+ applications.findIndex((app) => app.p_app_id === application.p_app_id)
+ ] = {
+ p_app_id: application.p_app_id,
+ normFilling: normFilling.toNumber(),
+ normFillingDetails: "Standaard meststof",
+ }
+ }
+
+ // Process organic-rich applications with iterative discounting
+ if (condition1) {
+ for (const {
+ application,
+ p_p_rt,
+ p_app_amount,
+ discountFactor,
+ originalIndex,
+ } of organicRichApplications) {
+ const actualPhosphateApplied = p_app_amount
+ .times(p_p_rt)
+ .dividedBy(1000)
+ let currentApplicationFilling = new Decimal(0)
+ let normFillingDetails: string
+
+ // Calculate how much of this application can be discounted
+ const phosphateToDiscount = Decimal.min(
+ actualPhosphateApplied,
+ remainingDiscountablePhosphate,
+ )
+
+ if (phosphateToDiscount.gt(0)) {
+ currentApplicationFilling = currentApplicationFilling.plus(
+ phosphateToDiscount.times(discountFactor),
+ )
+ remainingDiscountablePhosphate =
+ remainingDiscountablePhosphate.minus(phosphateToDiscount)
+ normFillingDetails = `OS-rijke meststof (${discountFactor.times(
+ 100,
+ )}% korting) draagt ${phosphateToDiscount
+ .times(discountFactor)
+ .toFixed(2)}kg bij aan de norm.`
+ } else {
+ normFillingDetails =
+ "OS-rijke meststof, geen korting toegepast."
+ }
+
+ // Add any remaining actual phosphate (beyond the discountable limit) at 100%
+ const phosphateBeyondDiscount =
+ actualPhosphateApplied.minus(phosphateToDiscount)
+ if (phosphateBeyondDiscount.gt(0)) {
+ currentApplicationFilling = currentApplicationFilling.plus(
+ phosphateBeyondDiscount,
+ )
+ normFillingDetails += ` Plus ${phosphateBeyondDiscount.toFixed(
+ 2,
+ )}kg (100% geteld) boven de kortingslimiet.`
+ }
+
+ totalFilling = totalFilling.plus(currentApplicationFilling)
+ orderedApplicationsFilling[originalIndex] = {
+ p_app_id: application.p_app_id,
+ normFilling: currentApplicationFilling.toNumber(),
+ normFillingDetails: normFillingDetails,
+ }
+ }
+ } else {
+ // If condition1 is not met, organic-rich fertilizers are counted at 100%
+ for (const {
+ application,
+ p_p_rt,
+ p_app_amount,
+ originalIndex,
+ } of organicRichApplications) {
+ const normFilling = p_app_amount.times(p_p_rt).dividedBy(1000)
+ totalFilling = totalFilling.plus(normFilling)
+ orderedApplicationsFilling[originalIndex] = {
+ p_app_id: application.p_app_id,
+ normFilling: normFilling.toNumber(),
+ normFillingDetails:
+ "OS-rijke meststof, minimumdrempel niet gehaald, 100% geteld.",
+ }
+ }
+ }
+
+ // Ensure totalFilling does not exceed fosfaatgebruiksnorm
+ const finalTotalFilling = Decimal.min(totalFilling, normLimit)
+
+ // Return the total norm filling and the breakdown per application.
+ return {
+ normFilling: finalTotalFilling.toNumber(),
+ applicationFilling: orderedApplicationsFilling,
+ }
+}
+
+/**
+ * Determines if at least 20 kg P2O5 / ha is applied with organic-rich fertilizers.
+ * This is Condition 1 for the "Stimuleren organische stofrijke meststoffen" regulation.
+ *
+ * @param {object} params - The parameters for the condition check.
+ * @param {FertilizerApplication[]} params.applications - An array of fertilizer applications.
+ * @param {Map} params.fertilizersMap - A map of fertilizers for efficient lookup.
+ * @param {boolean} params.has_organic_certification - Indicates if the farm has organic certification.
+ * @returns {boolean} True if the 20 kg/ha threshold is met, false otherwise.
+ */
+function determineCondition1StimuleringOrganischeStofrijkeMeststoffen({
+ applications,
+ fertilizersMap,
+ has_organic_certification,
+}: {
+ applications: FertilizerApplication[]
+ fertilizersMap: Map
+ has_organic_certification: boolean
+}): boolean {
+ // Set the RVO mestcodes for organic-rich fertilizers
+ const rvoMestcodesOrganicRich = [
+ ...rvoMestcodesOrganicRich25Percent,
+ ...rvoMestcodesOrganicRich75Percent,
+ ]
+ if (has_organic_certification) {
+ rvoMestcodesOrganicRich.push(...rvoMestcodesOrganicRich75PercentOrganic)
+ }
+
+ // Sum the phosphate dose of organic-rich fertilizers
+ const totalPhosphateDoseOrganicDose = applications.reduce(
+ (acc, application) => {
+ const fertilizer = fertilizersMap.get(application.p_id_catalogue)
+ if (!fertilizer) {
+ return acc
+ }
+
+ const p_p_rt = new Decimal(
+ fertilizer.p_p_rt ??
+ table11Mestcodes.find(
+ (t) => t.p_type_rvo === fertilizer.p_type_rvo,
+ )?.p_p_rt ??
+ 0,
+ )
+
+ if (p_p_rt.isZero()) {
+ return acc
+ }
+
+ const p_app_amount = new Decimal(application.p_app_amount ?? 0)
+ const actualPhosphate = p_app_amount.times(p_p_rt).dividedBy(1000)
+
+ if (rvoMestcodesOrganicRich.includes(fertilizer.p_type_rvo ?? "")) {
+ return acc.plus(actualPhosphate)
+ }
+ return acc
+ },
+ new Decimal(0),
+ )
+ return totalPhosphateDoseOrganicDose.gte(20)
+}
diff --git a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
index 5e38f06a7..3df543bdc 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
@@ -5,6 +5,7 @@ export type NormFilling = {
applicationFilling: {
p_app_id: string
normFilling: number
+ normFillingDetails?: string
}[]
}
From 12ff3a0b7be8fa0cd6e31c1ecfb5653ae25eb9fb Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 10:09:45 +0200
Subject: [PATCH 057/243] docs: fix comment
---
.../routes/farm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx
index 9d5c46a1a..9f4856ee7 100644
--- a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx
+++ b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx
@@ -63,7 +63,7 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
})
}
- // Get the farm id
+ // Get the field id
const b_id = params.b_id
if (!b_id) {
throw data("invalid: b_id", {
From e41b18902a06bc71f925888277c0a1725a18aaf3 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 11:27:53 +0200
Subject: [PATCH 058/243] fix: broken lockfile
---
pnpm-lock.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 820109d1b..3d4df7969 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -192,7 +192,7 @@ importers:
version: 3.15.0
nanoid:
specifier: ^5.1.5
- version: 5.1.5
+ version: 5.1.6
next-themes:
specifier: ^0.4.6
version: 0.4.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
From 75d573354d096b7daff7ff77c168e76a2a78d0c1 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 13:28:39 +0200
Subject: [PATCH 059/243] feat: implement function to determine the filling of
stikstofgebruiksnorm
---
.../2025/filling/stikstofgebruiksnorm.test.ts | 714 ++++++++++++++++++
.../nl/2025/filling/stikstofgebruiksnorm.ts | 247 ++++++
.../src/norms/nl/2025/filling/table-9.ts | 178 +++++
.../src/norms/nl/2025/filling/types.d.ts | 16 +
4 files changed, 1155 insertions(+)
create mode 100644 fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts
create mode 100644 fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
create mode 100644 fdm-calculator/src/norms/nl/2025/filling/table-9.ts
diff --git a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts
new file mode 100644
index 000000000..c8e330d47
--- /dev/null
+++ b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts
@@ -0,0 +1,714 @@
+import { describe, it, expect, vi, beforeEach, afterEach } from "vitest"
+import {
+ calculateFertilizerApplicationFillingForNitrogen,
+ isBouwland,
+ getWorkingCoefficient,
+} from "./stikstofgebruiksnorm"
+import { getRegion } from "../stikstofgebruiksnorm"
+import type {
+ Fertilizer,
+ FertilizerApplication,
+ CurrentSoilData,
+ Cultivation,
+} from "@svenvw/fdm-core"
+import type { RegionKey } from "../types"
+
+// Mock getRegion
+vi.mock("../stikstofgebruiksnorm", () => ({
+ getRegion: vi.fn(),
+}))
+
+describe("isBouwland", () => {
+ it("should return true if cultivation is not in non-bouwland codes", () => {
+ const cultivations: Cultivation[] = [
+ {
+ b_lu: "cult1",
+ b_start: "2025-01-01",
+ b_lu_catalogue: "nl_2014", // A generic bouwland code
+ },
+ ]
+ const applicationDate = new Date("2025-06-15")
+ expect(isBouwland(cultivations, applicationDate)).toBe(true)
+ })
+
+ it("should return false if cultivation is in non-bouwland codes", () => {
+ const cultivations: Cultivation[] = [
+ {
+ b_lu: "cult1",
+ b_start: "2025-01-01",
+ b_lu_catalogue: "nl_265", // Grasland
+ },
+ ]
+ const applicationDate = new Date("2025-06-15")
+ expect(isBouwland(cultivations, applicationDate)).toBe(false)
+ })
+
+ it("should return false if no active cultivation exists", () => {
+ const cultivations: Cultivation[] = [
+ {
+ b_lu: "cult1",
+ b_start: "2024-01-01",
+ b_end: "2024-12-31",
+ b_lu_catalogue: "nl_2014",
+ },
+ ]
+ const applicationDate = new Date("2025-06-15")
+ expect(isBouwland(cultivations, applicationDate)).toBe(false)
+ })
+
+ it("should return true for a cultivation spanning the application date", () => {
+ const cultivations: Cultivation[] = [
+ {
+ b_lu: "cult1",
+ b_start: "2025-01-01",
+ b_end: "2025-12-31",
+ b_lu_catalogue: "nl_2014",
+ },
+ ]
+ const applicationDate = new Date("2025-07-01")
+ expect(isBouwland(cultivations, applicationDate)).toBe(true)
+ })
+
+ it("should return false for a cultivation ending before the application date", () => {
+ const cultivations: Cultivation[] = [
+ {
+ b_lu: "cult1",
+ b_start: "2025-01-01",
+ b_end: "2025-06-30",
+ b_lu_catalogue: "nl_2014",
+ },
+ ]
+ const applicationDate = new Date("2025-07-01")
+ expect(isBouwland(cultivations, applicationDate)).toBe(false)
+ })
+
+ it("should return false for a cultivation starting after the application date", () => {
+ const cultivations: Cultivation[] = [
+ {
+ b_lu: "cult1",
+ b_start: "2025-08-01",
+ b_end: "2025-12-31",
+ b_lu_catalogue: "nl_2014",
+ },
+ ]
+ const applicationDate = new Date("2025-07-01")
+ expect(isBouwland(cultivations, applicationDate)).toBe(false)
+ })
+})
+
+describe("getWorkingCoefficient", () => {
+ // Helper to determine onFarmProduced for tests
+ const isDrijfmest = (p_type_rvo: string) =>
+ [
+ "14",
+ "18",
+ "19",
+ "60",
+ "46",
+ "50",
+ "30",
+ "76",
+ "81",
+ "91",
+ "92",
+ ].includes(p_type_rvo)
+ const isVasteMest = (p_type_rvo: string) =>
+ [
+ "10",
+ "56",
+ "61",
+ "25",
+ "26",
+ "27",
+ "95",
+ "96",
+ "23",
+ "31",
+ "32",
+ "33",
+ "35",
+ "39",
+ "40",
+ "43",
+ "75",
+ "80",
+ "90",
+ "97",
+ "98",
+ "99",
+ "100",
+ "101",
+ "102",
+ "103",
+ "104",
+ "105",
+ "106",
+ "11",
+ "13",
+ ].includes(p_type_rvo)
+
+ it("should return 1.0 if p_type_rvo is null or undefined", () => {
+ expect(
+ getWorkingCoefficient(
+ null,
+ "zand_nwc",
+ true,
+ true,
+ new Date(),
+ false,
+ ),
+ ).toBe(1.0)
+ expect(
+ getWorkingCoefficient(
+ undefined,
+ "zand_nwc",
+ true,
+ true,
+ new Date(),
+ false,
+ ),
+ ).toBe(1.0)
+ })
+
+ it("should return 1.0 if p_type_rvo is not found in table9", () => {
+ expect(
+ getWorkingCoefficient(
+ "999",
+ "zand_nwc",
+ true,
+ true,
+ new Date(),
+ false,
+ ),
+ ).toBe(1.0)
+ })
+
+ // Drijfmest van graasdieren op het eigen bedrijf geproduceerd
+ describe("Drijfmest van graasdieren op het eigen bedrijf geproduceerd (onFarmProduced: true)", () => {
+ const p_type_rvo = "14" // Drijfmest rundvee
+ const soilType: RegionKey = "zand_nwc"
+ const isBouwland = false // Grasland
+ const fertilizerOnFarmProduced = isDrijfmest(p_type_rvo)
+
+ it("should return 0.45 for on-farm produced drijfmest with grazing intention", () => {
+ const b_grazing_intention = true
+ const applicationDate = new Date("2025-06-15")
+ expect(
+ getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ ),
+ ).toBe(0.45)
+ })
+
+ it("should return 0.60 for on-farm produced drijfmest without grazing intention", () => {
+ const b_grazing_intention = false
+ const applicationDate = new Date("2025-06-15")
+ expect(
+ getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ ),
+ ).toBe(0.6)
+ })
+ })
+
+ // Drijfmest van graasdieren aangevoerd
+ it("should return 0.60 for aangevoerd drijfmest (onFarmProduced: false)", () => {
+ const p_type_rvo = "14" // Drijfmest rundvee
+ const soilType: RegionKey = "zand_nwc"
+ const b_grazing_intention = true
+ const isBouwland = false
+ const applicationDate = new Date("2025-06-15")
+ const fertilizerOnFarmProduced = false // Explicitly false for aangevoerd
+ expect(
+ getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ ),
+ ).toBe(0.6)
+ })
+
+ // Drijfmest van varkens
+ describe("Drijfmest van varkens", () => {
+ const p_type_rvo = "46" // Drijfmest fokzeugen
+ const b_grazing_intention = false
+ const isBouwland = true
+ const applicationDate = new Date("2025-06-15")
+ const fertilizerOnFarmProduced = isDrijfmest(p_type_rvo)
+
+ it("should return 0.60 for klei en veen soil", () => {
+ const soilType: RegionKey = "klei"
+ expect(
+ getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ ),
+ ).toBe(0.6)
+ })
+
+ it("should return 0.80 for zand en löss soil", () => {
+ const soilType: RegionKey = "zand_nwc"
+ expect(
+ getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ ),
+ ).toBe(0.8)
+ })
+ })
+
+ // Dunnen fractie na mestbewerking en gier
+ it("should return 0.80 for dunne fractie", () => {
+ const p_type_rvo = "12" // Filtraat na mestscheiding
+ const soilType: RegionKey = "zand_nwc"
+ const b_grazing_intention = false
+ const isBouwland = true
+ const applicationDate = new Date("2025-06-15")
+ const fertilizerOnFarmProduced = isDrijfmest(p_type_rvo)
+ expect(
+ getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ ),
+ ).toBe(0.8)
+ })
+
+ // Vaste mest van graasdieren op het eigen bedrijf geproduceerd
+ describe("Vaste mest van graasdieren op het eigen bedrijf geproduceerd (onFarmProduced: true)", () => {
+ const p_type_rvo = "10" // Vaste mest rundvee
+ const fertilizerOnFarmProduced = true
+ const b_grazing_intention = false
+ const isBouwland = true
+ const soilType: RegionKey = "klei"
+
+ it("should return 0.30 for bouwland on klei/veen from Sep 1 to Jan 31", () => {
+ const applicationDate = new Date("2025-10-15") // October
+ expect(
+ getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ ),
+ ).toBe(0.3)
+ })
+
+ it("should return 0.45 for overige toepassingen on bedrijf met beweiding (outside Sep-Jan period)", () => {
+ const applicationDate = new Date("2025-03-15") // March
+ const b_grazing_intention_true = true
+ expect(
+ getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention_true,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ ),
+ ).toBe(0.45)
+ })
+
+ it("should return 0.60 for overige toepassingen on bedrijf zonder beweiding (outside Sep-Jan period)", () => {
+ const applicationDate = new Date("2025-03-15") // March
+ const b_grazing_intention_false = false
+ expect(
+ getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention_false,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ ),
+ ).toBe(0.6)
+ })
+ })
+
+ // Vaste mest van graasdieren aangevoerd
+ it("should return 0.40 for aangevoerd vaste mest (onFarmProduced: false) overige toepassingen", () => {
+ const p_type_rvo = "10" // Vaste mest rundvee
+ const soilType: RegionKey = "zand_nwc"
+ const b_grazing_intention = false
+ const isBouwland = true
+ const applicationDate = new Date("2025-06-15")
+ const fertilizerOnFarmProduced = false // Explicitly false for aangevoerd
+ expect(
+ getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ ),
+ ).toBe(0.4)
+ })
+
+ // Vaste mest van varkens, pluimvee en nertsen
+ it("should return 0.55 for vaste mest van varkens, pluimvee en nertsen", () => {
+ const p_type_rvo = "40" // Varkens, vaste mest
+ const soilType: RegionKey = "zand_nwc"
+ const b_grazing_intention = false
+ const isBouwland = true
+ const applicationDate = new Date("2025-06-15")
+ const fertilizerOnFarmProduced = isVasteMest(p_type_rvo)
+ expect(
+ getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ ),
+ ).toBe(0.55)
+ })
+
+ // Vaste mest van overige diersoorten
+ describe("Vaste mest van overige diersoorten", () => {
+ const p_type_rvo = "104" // Cavia, vaste mest
+ const soilType: RegionKey = "klei"
+ const b_grazing_intention = false
+ const isBouwland = true
+ const fertilizerOnFarmProduced = isVasteMest(p_type_rvo)
+
+ it("should return 0.30 for bouwland on klei/veen from Sep 1 to Jan 31", () => {
+ const applicationDate = new Date("2025-11-01") // November
+ expect(
+ getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ ),
+ ).toBe(0.3)
+ })
+
+ it("should return 0.40 for overige toepassingen (outside Sep-Jan period)", () => {
+ const applicationDate = new Date("2025-04-01") // April
+ expect(
+ getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ ),
+ ).toBe(0.4)
+ })
+ })
+
+ // Overig (top-level entries)
+ it("should return 0.10 for Compost", () => {
+ expect(
+ getWorkingCoefficient(
+ "111",
+ "zand_nwc",
+ false,
+ true,
+ new Date(),
+ false,
+ ),
+ ).toBe(0.1)
+ })
+
+ it("should return 0.25 for Champost", () => {
+ expect(
+ getWorkingCoefficient(
+ "110",
+ "zand_nwc",
+ false,
+ true,
+ new Date(),
+ false,
+ ),
+ ).toBe(0.25)
+ })
+
+ it("should return 0.40 for Zuiveringsslib", () => {
+ expect(
+ getWorkingCoefficient(
+ "114",
+ "zand_nwc",
+ false,
+ true,
+ new Date(),
+ false,
+ ),
+ ).toBe(0.4)
+ })
+
+ it("should return 0.50 for Overige organische meststoffen", () => {
+ expect(
+ getWorkingCoefficient(
+ "116",
+ "zand_nwc",
+ false,
+ true,
+ new Date(),
+ false,
+ ),
+ ).toBe(0.5)
+ })
+
+ it("should return 1.0 for Kunstmest", () => {
+ expect(
+ getWorkingCoefficient(
+ "115",
+ "zand_nwc",
+ false,
+ true,
+ new Date(),
+ false,
+ ),
+ ).toBe(1.0)
+ })
+
+ it("should return 1.0 for Mineralenconcentraat", () => {
+ expect(
+ getWorkingCoefficient(
+ "120",
+ "zand_nwc",
+ false,
+ true,
+ new Date(),
+ false,
+ ),
+ ).toBe(1.0)
+ })
+})
+
+describe("calculateFertilizerApplicationFillingForNitrogen", () => {
+ // Mock getRegion to return a consistent soil type for these tests
+ beforeEach(() => {
+ vi.mocked(getRegion).mockResolvedValue("zand_nwc")
+ })
+
+ afterEach(() => {
+ vi.clearAllMocks()
+ })
+
+ it("should calculate norm filling correctly for a single application with known nitrogen content", async () => {
+ const applications: FertilizerApplication[] = [
+ {
+ p_app_id: "app1",
+ b_id: "field1",
+ p_app_date: "2025-05-01",
+ p_app_amount: 1000,
+ p_id_catalogue: "fert1",
+ },
+ ]
+ const fertilizers: Fertilizer[] = [
+ {
+ p_id_catalogue: "fert1",
+ p_n_rt: 5, // 5 kg N per ton
+ p_type_rvo: "115", // Kunstmest (working coefficient 1.0)
+ },
+ ]
+ const soilData: CurrentSoilData[] = [] // Mocked
+ const b_grazing_intention = false
+ const cultivations: Cultivation[] = []
+
+ const result = await calculateFertilizerApplicationFillingForNitrogen({
+ applications,
+ fertilizers,
+ soilData,
+ b_grazing_intention,
+ cultivations,
+ })
+
+ // Expected: 1000 kg * 5 kg/ton * 1.0 (100%) / 1000 = 5
+ expect(result.normFilling).toBeCloseTo(5)
+ expect(result.applicationFilling[0].normFilling).toBeCloseTo(5)
+ })
+
+ it("should calculate norm filling correctly for multiple applications", async () => {
+ const applications: FertilizerApplication[] = [
+ {
+ p_app_id: "app1",
+ b_id: "field1",
+ p_app_date: "2025-05-01",
+ p_app_amount: 1000,
+ p_id_catalogue: "fert1",
+ },
+ {
+ p_app_id: "app2",
+ b_id: "field1",
+ p_app_date: "2025-03-15",
+ p_app_amount: 500,
+ p_id_catalogue: "fert2",
+ },
+ ]
+ const fertilizers: Fertilizer[] = [
+ {
+ p_id_catalogue: "fert1",
+ p_n_rt: 5, // 5 kg N per ton
+ p_type_rvo: "115", // Kunstmest (working coefficient 1.0)
+ },
+ {
+ p_id_catalogue: "fert2",
+ p_n_rt: 10, // 10 kg N per ton
+ p_type_rvo: "111", // Compost (working coefficient 0.1)
+ },
+ ]
+ const soilData: CurrentSoilData[] = [] // Mocked
+ const b_grazing_intention = false
+ const cultivations: Cultivation[] = []
+
+ const result = await calculateFertilizerApplicationFillingForNitrogen({
+ applications,
+ fertilizers,
+ soilData,
+ b_grazing_intention,
+ cultivations,
+ })
+ console.log(result)
+
+ // App1: 1000 * 5 * 1.0 / 1000 = 5
+ // App2: 500 * 10 * 0.1 / 1000 = 0.5
+ // Total: 5.5
+ expect(result.normFilling).toBeCloseTo(5.5)
+ expect(result.applicationFilling[0].normFilling).toBeCloseTo(5)
+ expect(result.applicationFilling[1].normFilling).toBeCloseTo(0.5)
+ })
+
+ it("should use table11Mestcodes for nitrogen content if p_n_rt is 0", async () => {
+ const applications: FertilizerApplication[] = [
+ {
+ p_app_id: "app1",
+ b_id: "field1",
+ p_app_date: "2025-05-01",
+ p_app_amount: 1000,
+ p_id_catalogue: "fert1",
+ },
+ ]
+ const fertilizers: Fertilizer[] = [
+ {
+ p_id_catalogue: "fert1",
+ p_n_rt: 0, // Nitrogen content not directly known
+ p_type_rvo: "14", // Drijfmest rundvee (Table 11: 4.0 kg N/ton)
+ },
+ ]
+ const soilData: CurrentSoilData[] = [] // Mocked
+ const b_grazing_intention = true // Drijfmest graasdieren, met beweiding -> 0.45
+ const cultivations: Cultivation[] = []
+
+ const result = await calculateFertilizerApplicationFillingForNitrogen({
+ applications,
+ fertilizers,
+ soilData,
+ b_grazing_intention,
+ cultivations,
+ })
+
+ // Expected: 1000 * 4.0 (from Table 11) * 0.45 (from Table 9) / 1000 = 1.8
+ expect(result.normFilling).toBeCloseTo(1.8)
+ expect(result.applicationFilling[0].normFilling).toBeCloseTo(1.8)
+ })
+
+ it("should throw an error if fertilizer cannot be found", async () => {
+ const applications: FertilizerApplication[] = [
+ {
+ p_app_id: "app1",
+ b_id: "field1",
+ p_app_date: "2025-05-01",
+ p_app_amount: 1000,
+ p_id_catalogue: "nonExistentFert",
+ },
+ ]
+ const fertilizers: Fertilizer[] = [] // Empty fertilizers array
+ const soilData: CurrentSoilData[] = []
+ const b_grazing_intention = false
+ const cultivations: Cultivation[] = []
+
+ await expect(() =>
+ calculateFertilizerApplicationFillingForNitrogen({
+ applications,
+ fertilizers,
+ soilData,
+ b_grazing_intention,
+ cultivations,
+ }),
+ ).rejects.toThrow(
+ "Fertilizer nonExistentFert not found for application app1",
+ )
+ })
+
+ it("should correctly apply bouwland logic for working coefficient", async () => {
+ vi.mocked(getRegion).mockResolvedValue("klei") // Soil type for bouwland rule
+ const applications: FertilizerApplication[] = [
+ {
+ p_app_id: "app1",
+ b_id: "field1",
+ p_app_date: "2025-10-15", // Sep 1 to Jan 31 period
+ p_app_amount: 1000,
+ p_id_catalogue: "fert1",
+ },
+ ]
+ const fertilizers: Fertilizer[] = [
+ {
+ p_id_catalogue: "fert1",
+ p_n_rt: 10, // 10 kg N per ton
+ p_type_rvo: "10", // Vaste mest rundvee (onFarmProduced: true in table9, but our temp logic makes it false)
+ },
+ ]
+ const soilData: CurrentSoilData[] = []
+ const b_grazing_intention = false
+ const cultivations: Cultivation[] = [
+ {
+ b_lu: "cult1",
+ b_start: "2025-01-01",
+ b_end: "2025-12-31",
+ b_lu_catalogue: "nl_2014", // Bouwland
+ },
+ ]
+
+ const result = await calculateFertilizerApplicationFillingForNitrogen({
+ applications,
+ fertilizers,
+ soilData,
+ b_grazing_intention,
+ cultivations,
+ })
+
+ // For p_type_rvo "10" (Vaste mest rundvee), onFarmProduced: true in table9.
+ // Our temporary logic `onFarmProduced = isDrijfmest` makes it `false`.
+ // This means the `entry.onFarmProduced !== onFarmProduced` check will cause it to `continue`.
+ // It will then fall through to the "Vaste mest van graasdieren aangevoerd" entry,
+ // which has onFarmProduced: false.
+ // For "bouwland op klei en veen, van 1 september t/m 31 januari", p_n_wcl is 0.3.
+ // Expected: 1000 * 10 * 0.3 / 1000 = 3
+ expect(result.normFilling).toBeCloseTo(3)
+ expect(result.applicationFilling[0].normFilling).toBeCloseTo(3)
+ })
+})
diff --git a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
new file mode 100644
index 000000000..9c4fd57b6
--- /dev/null
+++ b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
@@ -0,0 +1,247 @@
+import type {
+ Fertilizer,
+ FertilizerApplication,
+ CurrentSoilData,
+ Cultivation,
+} from "@svenvw/fdm-core"
+import type { NormFilling } from "./types"
+import { table11Mestcodes } from "./table-11-mestcodes"
+import { table9 } from "./table-9"
+import { getRegion } from "../stikstofgebruiksnorm"
+import type { RegionKey } from "../types"
+import Decimal from "decimal.js"
+
+/**
+ * Calculates the nitrogen utilization norm filling for a set of fertilizer applications.
+ * This function determines the amount of effective nitrogen applied, taking into account
+ * fertilizer type, nitrogen content, working coefficients, soil type, grazing intention,
+ * and land use (bouwland/arable land).
+ *
+ * @param {Object} params - The parameters for the calculation.
+ * @param {FertilizerApplication[]} params.applications - An array of fertilizer applications.
+ * @param {Fertilizer[]} params.fertilizers - An array of available fertilizers.
+ * @param {CurrentSoilData[]} params.soilData - Current soil data for the farm.
+ * @param {boolean} params.b_grazing_intention - Indicates if there is a grazing intention for the farm.
+ * @param {Cultivation[]} params.cultivations - An array of cultivations for the farm.
+ * @returns {Promise} An object containing the total norm filling and details for each application.
+ */
+export async function calculateFertilizerApplicationFillingForNitrogen({
+ applications,
+ fertilizers,
+ soilData,
+ b_grazing_intention,
+ cultivations,
+}: {
+ applications: FertilizerApplication[]
+ fertilizers: Fertilizer[]
+ soilData: CurrentSoilData[]
+ b_grazing_intention: boolean
+ cultivations: Cultivation[]
+}): Promise {
+ const applicationFillings: NormFilling["applicationFilling"] = []
+ let totalNormFilling = new Decimal(0)
+
+ const soilType = await getRegion(soilData)
+
+ for (const application of applications) {
+ const fertilizer = fertilizers.find(
+ (f) => f.p_id_catalogue === application.p_id_catalogue,
+ )
+ if (!fertilizer) {
+ throw new Error(
+ `Fertilizer ${application.p_id_catalogue} not found for application ${application.p_app_id}`,
+ )
+ }
+
+ // If nitrogen content is not known (explicitly 0 or undefined/null), use the value from Table 11 based on p_type_rvo
+ let nitrogenContentValue = fertilizer.p_n_rt
+ if (
+ nitrogenContentValue === 0 ||
+ nitrogenContentValue === undefined ||
+ nitrogenContentValue === null
+ ) {
+ const table11Entry = table11Mestcodes.find(
+ (entry) => entry.p_type_rvo === fertilizer.p_type_rvo,
+ )
+ nitrogenContentValue = table11Entry?.p_n_rt ?? 0
+ }
+ const p_n_rt = new Decimal(nitrogenContentValue)
+
+ const p_app_date = new Date(application.p_app_date)
+ const isCurrentBouwland = isBouwland(cultivations, p_app_date)
+
+ // Determine the onFarmProduced status of the *actual fertilizer* based on temporary logic.
+ // TODO: Implement proper determination of onFarmProduced based on actual farm data.
+ const isDrijfmest = [
+ "14",
+ "18",
+ "19",
+ "60",
+ "46",
+ "50",
+ "30",
+ "76",
+ "81",
+ "91",
+ "92",
+ ].includes(fertilizer.p_type_rvo ?? "")
+ const fertilizerOnFarmProduced = isDrijfmest // Assume drijfmest is on-farm, vaste mest is not for now.
+
+ const p_n_wcl = getWorkingCoefficient(
+ fertilizer.p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isCurrentBouwland,
+ p_app_date,
+ fertilizerOnFarmProduced, // Pass the determined onFarmProduced status
+ )
+
+ // Calculate norm filling: amount * nitrogen content * (working coefficient / 100) / 1000
+ const p_app_amount = new Decimal(application.p_app_amount)
+ const normFilling = p_app_amount
+ .times(p_n_rt)
+ .times(p_n_wcl)
+ .dividedBy(1000)
+ totalNormFilling = totalNormFilling.plus(normFilling)
+
+ applicationFillings.push({
+ p_app_id: application.p_app_id,
+ normFilling: normFilling.toNumber(),
+ })
+ }
+
+ return {
+ normFilling: totalNormFilling.toNumber(),
+ applicationFilling: applicationFillings,
+ }
+}
+
+/**
+ * Determines if a field is considered "Bouwland" (arable land) at a given application date.
+ * A field is not considered Bouwland if its active cultivation's `b_lu_catalogue` code
+ * is one of the specified non-bouwland codes.
+ *
+ * @param {Cultivation[]} cultivations - An array of cultivations for the farm.
+ * @param {Date} p_app_date - The date of the fertilizer application.
+ * @returns {boolean} True if the field is considered Bouwland, false otherwise.
+ */
+export function isBouwland(
+ cultivations: Cultivation[],
+ p_app_date: Date,
+): boolean {
+ const nonBouwlandCodes = ["nl_265", "nl_266", "nl_331", "nl_332"]
+
+ const activeCultivation = cultivations.find((c) => {
+ const startDate = new Date(c.b_start)
+ const endDate = c.b_end ? new Date(c.b_end) : undefined
+ return (
+ p_app_date >= startDate &&
+ (endDate === undefined || p_app_date <= endDate)
+ )
+ })
+
+ if (
+ !activeCultivation ||
+ nonBouwlandCodes.includes(activeCultivation.b_lu_catalogue)
+ ) {
+ return false
+ }
+
+ return true
+}
+
+/**
+ * Determines the working coefficient for a given fertilizer application based on various conditions.
+ * The working coefficient is retrieved from `table9` and depends on the fertilizer type,
+ * whether it's produced on-farm, soil type, grazing intention, land use, and application date.
+ *
+ * @param {string | null | undefined} p_type_rvo - The RVO fertilizer type code.
+ * @param {RegionKey | undefined} soilType - The soil type of the field.
+ * @param {boolean} b_grazing_intention - Indicates if there is a grazing intention for the farm.
+ * @param {boolean} isBouwland - True if the land is arable land (bouwland), false otherwise.
+ * @param {Date} p_app_date - The date of the fertilizer application.
+ * @param {boolean} fertilizerOnFarmProduced - True if the fertilizer is produced on the farm, false otherwise.
+ * @returns {number} The working coefficient as a decimal (e.g., 0.45 for 45%). Defaults to 1.0 (100%) if no specific rule applies.
+ */
+export function getWorkingCoefficient(
+ p_type_rvo: string | null | undefined,
+ soilType: RegionKey | undefined,
+ b_grazing_intention: boolean,
+ isBouwland: boolean,
+ p_app_date: Date,
+ fertilizerOnFarmProduced: boolean, // New parameter
+): number {
+ const p_n_wcl = 1.0 // Default working coefficient is 100% (1.0)
+
+ if (!p_type_rvo) {
+ return p_n_wcl
+ }
+
+ for (const entry of table9) {
+ if (entry.p_type_rvo.includes(p_type_rvo)) {
+ // If the table entry explicitly specifies an onFarmProduced requirement,
+ // the fertilizer's onFarmProduced status must match it.
+ if (
+ entry.onFarmProduced !== undefined &&
+ entry.onFarmProduced !== fertilizerOnFarmProduced
+ ) {
+ continue // Mismatch, try next entry
+ }
+
+ if (entry.subTypes) {
+ const matchingSubType = entry.subTypes.find((subType) => {
+ if (
+ subType.b_grazing_intention !== undefined &&
+ subType.b_grazing_intention !== b_grazing_intention
+ ) {
+ return false
+ }
+
+ if (
+ subType.grondsoortCode &&
+ !subType.grondsoortCode.includes(soilType as any)
+ ) {
+ return false
+ }
+
+ if (
+ subType.isBouwland !== undefined &&
+ subType.isBouwland !== isBouwland
+ ) {
+ return false
+ }
+
+ if (subType.applicationPeriod) {
+ const appMonth = p_app_date.getMonth() // 0-11 (Jan is 0, Dec is 11)
+ const appDay = p_app_date.getDate()
+
+ if (
+ subType.applicationPeriod ===
+ "1 september t/m 31 januari"
+ ) {
+ // September (month 8) to January (month 0)
+ if (
+ !(
+ (appMonth >= 8 && appMonth <= 11) ||
+ (appMonth === 0 && appDay <= 31)
+ )
+ ) {
+ return false
+ }
+ }
+ }
+ return true // All conditions for this subType match
+ })
+
+ if (matchingSubType) {
+ return matchingSubType.p_n_wcl
+ }
+ } else if (entry.p_n_wcl !== undefined) {
+ // If no subTypes, use the main entry's p_n_wcl
+ return entry.p_n_wcl
+ }
+ }
+ }
+
+ return p_n_wcl // If no specific rule is found, return the default 100% (1.0)
+}
diff --git a/fdm-calculator/src/norms/nl/2025/filling/table-9.ts b/fdm-calculator/src/norms/nl/2025/filling/table-9.ts
new file mode 100644
index 000000000..8dc288730
--- /dev/null
+++ b/fdm-calculator/src/norms/nl/2025/filling/table-9.ts
@@ -0,0 +1,178 @@
+import type { Table9 } from "./types"
+
+export const table9: Table9 = [
+ {
+ description:
+ "Drijfmest van graasdieren op het eigen bedrijf geproduceerd",
+ p_type_rvo: ["14", "60", "18", "19"],
+ onFarmProduced: true,
+ subTypes: [
+ {
+ description: "Op bedrijf met beweiding",
+ b_grazing_intention: true,
+ p_n_wcl: 0.45,
+ },
+ {
+ description: "Op bedrijf zonder beweiding",
+ b_grazing_intention: false,
+ p_n_wcl: 0.6,
+ },
+ ],
+ },
+ {
+ description: "Drijfmest van graasdieren aangevoerd",
+ p_type_rvo: ["14", "60", "18", "19"],
+ onFarmProduced: false,
+ p_n_wcl: 0.6,
+ },
+ {
+ description: "Drijfmest van varkens",
+ p_type_rvo: ["46", "50"],
+ subTypes: [
+ {
+ description: "Op klei en veen",
+ grondsoortCode: ["klei", "veen"],
+ p_n_wcl: 0.6,
+ },
+ {
+ description: "Op zand en löss",
+ grondsoortCode: ["zand_nwc", "zand_zuid", "loess"],
+ p_n_wcl: 0.8,
+ },
+ ],
+ },
+ {
+ description: "Drijfmest van overige diersoorten",
+ p_type_rvo: ["30", "76", "81", "91", "92"],
+ p_n_wcl: 0.6,
+ },
+ {
+ description: "Dunne fractie na mestbewerking en gier",
+ p_type_rvo: ["12", "17", "41", "42"],
+ p_n_wcl: 0.8,
+ },
+ {
+ description:
+ "Vaste mest van graasdieren op het eigen bedrijf geproduceerd",
+ p_type_rvo: ["10", "56", "61", "25", "26", "27", "95", "96"],
+ onFarmProduced: true,
+ subTypes: [
+ {
+ description:
+ "Op bouwland op klei en veen, van 1 september t/m 31 januari",
+ grondsoortCode: ["klei", "veen"],
+ isBouwland: true,
+ applicationPeriod: "1 september t/m 31 januari",
+ p_n_wcl: 0.3,
+ },
+ {
+ description: "Overige toepassingen op bedrijf met beweiding",
+ b_grazing_intention: true,
+ p_n_wcl: 0.45,
+ },
+ {
+ description: "Overige toepassingen op bedrijf zonder beweiding",
+ b_grazing_intention: false,
+ p_n_wcl: 0.6,
+ },
+ ],
+ },
+ {
+ description: "Vaste mest van graasdieren aangevoerd",
+ p_type_rvo: ["10", "56", "61", "25", "26", "27", "95", "96"],
+ onFarmProduced: false,
+ subTypes: [
+ {
+ description:
+ "Op bouwland op klei en veen, van 1 september t/m 31 januari",
+ grondsoortCode: ["klei", "veen"],
+ isBouwland: true,
+ applicationPeriod: "1 september t/m 31 januari",
+ p_n_wcl: 0.3,
+ },
+ {
+ description: "Overige toepassingen",
+ p_n_wcl: 0.4,
+ },
+ ],
+ },
+ {
+ description: "Vaste mest van varkens, pluimvee en nertsen",
+ p_type_rvo: [
+ "23",
+ "31",
+ "32",
+ "33",
+ "35",
+ "39",
+ "40",
+ "43",
+ "75",
+ "80",
+ "97",
+ "98",
+ "99",
+ "100",
+ "101",
+ ],
+ p_n_wcl: 0.55,
+ },
+ {
+ description: "Vaste mest van overige diersoorten",
+ p_type_rvo: [
+ "11",
+ "13",
+ "24",
+ "30",
+ "76",
+ "81",
+ "90",
+ "91",
+ "92",
+ "102",
+ "103",
+ "104",
+ "105",
+ "106",
+ ],
+ subTypes: [
+ {
+ description:
+ "Op bouwland op klei en veen, van 1 september t/m 31 januari",
+ grondsoortCode: ["klei", "veen"],
+ isBouwland: true,
+ applicationPeriod: "1 september t/m 31 januari",
+ p_n_wcl: 0.3,
+ },
+ {
+ description: "Overige toepassingen",
+ p_n_wcl: 0.4,
+ },
+ ],
+ },
+ {
+ description: "Compost",
+ p_type_rvo: ["111", "112"],
+ p_n_wcl: 0.1,
+ },
+ {
+ description: "Champost",
+ p_type_rvo: ["110", "117"],
+ p_n_wcl: 0.25,
+ },
+ {
+ description: "Zuiveringsslib",
+ p_type_rvo: ["113", "114"],
+ p_n_wcl: 0.4,
+ },
+ {
+ description: "Overige organische meststoffen",
+ p_type_rvo: ["116"],
+ p_n_wcl: 0.5,
+ },
+ {
+ description: "Mineralenconcentraat",
+ p_type_rvo: ["120"],
+ p_n_wcl: 1,
+ },
+]
diff --git a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
index 3df543bdc..2c5edfdc1 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
@@ -1,4 +1,5 @@
import type { fdmSchema } from "@svenvw/fdm-core"
+import { RegionKey } from "../types"
export type NormFilling = {
normFilling: number
@@ -15,3 +16,18 @@ export type Table11Mestcodes = {
p_n_rt?: number
p_p_rt?: number
}[]
+
+export type Table9 = {
+ description: string
+ p_type_rvo: fdmSchema.fertilizersCatalogueTypeSelect["p_type_rvo"][]
+ onFarmProduced?: boolean
+ subTypes?: {
+ description: string
+ b_grazing_intention?: boolean
+ grondsoortCode?: RegionKey[]
+ applicationPeriod?: "1 september t/m 31 januari" | "hele jaar"
+ isBouwland?: boolean
+ p_n_wcl: number
+ }[]
+ p_n_wcl?: number
+}[]
From a9daa3e3dbe964746d983f4a707c47976bf5da66 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 13:47:21 +0200
Subject: [PATCH 060/243] chore: ignore coverage folder at fdm-calculator
---
fdm-calculator/.gitignore | 1 +
.../2025/filling/stikstofgebruiksnorm.test.ts | 500 ++++++++++--------
.../nl/2025/filling/stikstofgebruiksnorm.ts | 37 +-
.../src/norms/nl/2025/filling/types.d.ts | 6 +
4 files changed, 310 insertions(+), 234 deletions(-)
diff --git a/fdm-calculator/.gitignore b/fdm-calculator/.gitignore
index 1cac5597e..231bf6cdf 100644
--- a/fdm-calculator/.gitignore
+++ b/fdm-calculator/.gitignore
@@ -11,6 +11,7 @@ node_modules
dist
dist-ssr
*.local
+coverage
# Editor directories and files
.vscode/*
diff --git a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts
index c8e330d47..515191764 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts
@@ -147,40 +147,32 @@ describe("getWorkingCoefficient", () => {
"13",
].includes(p_type_rvo)
- it("should return 1.0 if p_type_rvo is null or undefined", () => {
- expect(
- getWorkingCoefficient(
- null,
- "zand_nwc",
- true,
- true,
- new Date(),
- false,
- ),
- ).toBe(1.0)
- expect(
- getWorkingCoefficient(
- undefined,
- "zand_nwc",
- true,
- true,
- new Date(),
- false,
- ),
- ).toBe(1.0)
+ it("should return default details if p_type_rvo is null or undefined", () => {
+ const result = getWorkingCoefficient(
+ null,
+ "zand_nwc",
+ true,
+ true,
+ new Date(),
+ false,
+ )
+ expect(result.p_n_wcl).toBe(1.0)
+ expect(result.description).toBe("Kunstmest of niet gevonden in Tabel 9")
+ expect(result.subTypeDescription).toBeUndefined()
})
- it("should return 1.0 if p_type_rvo is not found in table9", () => {
- expect(
- getWorkingCoefficient(
- "999",
- "zand_nwc",
- true,
- true,
- new Date(),
- false,
- ),
- ).toBe(1.0)
+ it("should return default details if p_type_rvo is not found in table9", () => {
+ const result = getWorkingCoefficient(
+ "999",
+ "zand_nwc",
+ true,
+ true,
+ new Date(),
+ false,
+ )
+ expect(result.p_n_wcl).toBe(1.0)
+ expect(result.description).toBe("Kunstmest of niet gevonden in Tabel 9")
+ expect(result.subTypeDescription).toBeUndefined()
})
// Drijfmest van graasdieren op het eigen bedrijf geproduceerd
@@ -193,31 +185,39 @@ describe("getWorkingCoefficient", () => {
it("should return 0.45 for on-farm produced drijfmest with grazing intention", () => {
const b_grazing_intention = true
const applicationDate = new Date("2025-06-15")
- expect(
- getWorkingCoefficient(
- p_type_rvo,
- soilType,
- b_grazing_intention,
- isBouwland,
- applicationDate,
- fertilizerOnFarmProduced,
- ),
- ).toBe(0.45)
+ const result = getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ )
+ expect(result.p_n_wcl).toBe(0.45)
+ expect(result.description).toBe(
+ "Drijfmest van graasdieren op het eigen bedrijf geproduceerd",
+ )
+ expect(result.subTypeDescription).toBe("Op bedrijf met beweiding")
})
it("should return 0.60 for on-farm produced drijfmest without grazing intention", () => {
const b_grazing_intention = false
const applicationDate = new Date("2025-06-15")
- expect(
- getWorkingCoefficient(
- p_type_rvo,
- soilType,
- b_grazing_intention,
- isBouwland,
- applicationDate,
- fertilizerOnFarmProduced,
- ),
- ).toBe(0.6)
+ const result = getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ )
+ expect(result.p_n_wcl).toBe(0.6)
+ expect(result.description).toBe(
+ "Drijfmest van graasdieren op het eigen bedrijf geproduceerd",
+ )
+ expect(result.subTypeDescription).toBe(
+ "Op bedrijf zonder beweiding",
+ )
})
})
@@ -229,16 +229,17 @@ describe("getWorkingCoefficient", () => {
const isBouwland = false
const applicationDate = new Date("2025-06-15")
const fertilizerOnFarmProduced = false // Explicitly false for aangevoerd
- expect(
- getWorkingCoefficient(
- p_type_rvo,
- soilType,
- b_grazing_intention,
- isBouwland,
- applicationDate,
- fertilizerOnFarmProduced,
- ),
- ).toBe(0.6)
+ const result = getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ )
+ expect(result.p_n_wcl).toBe(0.6)
+ expect(result.description).toBe("Drijfmest van graasdieren aangevoerd")
+ expect(result.subTypeDescription).toBeUndefined()
})
// Drijfmest van varkens
@@ -251,30 +252,32 @@ describe("getWorkingCoefficient", () => {
it("should return 0.60 for klei en veen soil", () => {
const soilType: RegionKey = "klei"
- expect(
- getWorkingCoefficient(
- p_type_rvo,
- soilType,
- b_grazing_intention,
- isBouwland,
- applicationDate,
- fertilizerOnFarmProduced,
- ),
- ).toBe(0.6)
+ const result = getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ )
+ expect(result.p_n_wcl).toBe(0.6)
+ expect(result.description).toBe("Drijfmest van varkens")
+ expect(result.subTypeDescription).toBe("Op klei en veen")
})
it("should return 0.80 for zand en löss soil", () => {
const soilType: RegionKey = "zand_nwc"
- expect(
- getWorkingCoefficient(
- p_type_rvo,
- soilType,
- b_grazing_intention,
- isBouwland,
- applicationDate,
- fertilizerOnFarmProduced,
- ),
- ).toBe(0.8)
+ const result = getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ )
+ expect(result.p_n_wcl).toBe(0.8)
+ expect(result.description).toBe("Drijfmest van varkens")
+ expect(result.subTypeDescription).toBe("Op zand en löss")
})
})
@@ -286,16 +289,19 @@ describe("getWorkingCoefficient", () => {
const isBouwland = true
const applicationDate = new Date("2025-06-15")
const fertilizerOnFarmProduced = isDrijfmest(p_type_rvo)
- expect(
- getWorkingCoefficient(
- p_type_rvo,
- soilType,
- b_grazing_intention,
- isBouwland,
- applicationDate,
- fertilizerOnFarmProduced,
- ),
- ).toBe(0.8)
+ const result = getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ )
+ expect(result.p_n_wcl).toBe(0.8)
+ expect(result.description).toBe(
+ "Dunne fractie na mestbewerking en gier",
+ )
+ expect(result.subTypeDescription).toBeUndefined()
})
// Vaste mest van graasdieren op het eigen bedrijf geproduceerd
@@ -308,46 +314,61 @@ describe("getWorkingCoefficient", () => {
it("should return 0.30 for bouwland on klei/veen from Sep 1 to Jan 31", () => {
const applicationDate = new Date("2025-10-15") // October
- expect(
- getWorkingCoefficient(
- p_type_rvo,
- soilType,
- b_grazing_intention,
- isBouwland,
- applicationDate,
- fertilizerOnFarmProduced,
- ),
- ).toBe(0.3)
+ const result = getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ )
+ expect(result.p_n_wcl).toBe(0.3)
+ expect(result.description).toBe(
+ "Vaste mest van graasdieren op het eigen bedrijf geproduceerd",
+ )
+ expect(result.subTypeDescription).toBe(
+ "Op bouwland op klei en veen, van 1 september t/m 31 januari",
+ )
})
it("should return 0.45 for overige toepassingen on bedrijf met beweiding (outside Sep-Jan period)", () => {
const applicationDate = new Date("2025-03-15") // March
const b_grazing_intention_true = true
- expect(
- getWorkingCoefficient(
- p_type_rvo,
- soilType,
- b_grazing_intention_true,
- isBouwland,
- applicationDate,
- fertilizerOnFarmProduced,
- ),
- ).toBe(0.45)
+ const result = getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention_true,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ )
+ expect(result.p_n_wcl).toBe(0.45)
+ expect(result.description).toBe(
+ "Vaste mest van graasdieren op het eigen bedrijf geproduceerd",
+ )
+ expect(result.subTypeDescription).toBe(
+ "Overige toepassingen op bedrijf met beweiding",
+ )
})
it("should return 0.60 for overige toepassingen on bedrijf zonder beweiding (outside Sep-Jan period)", () => {
const applicationDate = new Date("2025-03-15") // March
const b_grazing_intention_false = false
- expect(
- getWorkingCoefficient(
- p_type_rvo,
- soilType,
- b_grazing_intention_false,
- isBouwland,
- applicationDate,
- fertilizerOnFarmProduced,
- ),
- ).toBe(0.6)
+ const result = getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention_false,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ )
+ expect(result.p_n_wcl).toBe(0.6)
+ expect(result.description).toBe(
+ "Vaste mest van graasdieren op het eigen bedrijf geproduceerd",
+ )
+ expect(result.subTypeDescription).toBe(
+ "Overige toepassingen op bedrijf zonder beweiding",
+ )
})
})
@@ -359,16 +380,17 @@ describe("getWorkingCoefficient", () => {
const isBouwland = true
const applicationDate = new Date("2025-06-15")
const fertilizerOnFarmProduced = false // Explicitly false for aangevoerd
- expect(
- getWorkingCoefficient(
- p_type_rvo,
- soilType,
- b_grazing_intention,
- isBouwland,
- applicationDate,
- fertilizerOnFarmProduced,
- ),
- ).toBe(0.4)
+ const result = getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ )
+ expect(result.p_n_wcl).toBe(0.4)
+ expect(result.description).toBe("Vaste mest van graasdieren aangevoerd")
+ expect(result.subTypeDescription).toBe("Overige toepassingen")
})
// Vaste mest van varkens, pluimvee en nertsen
@@ -379,16 +401,19 @@ describe("getWorkingCoefficient", () => {
const isBouwland = true
const applicationDate = new Date("2025-06-15")
const fertilizerOnFarmProduced = isVasteMest(p_type_rvo)
- expect(
- getWorkingCoefficient(
- p_type_rvo,
- soilType,
- b_grazing_intention,
- isBouwland,
- applicationDate,
- fertilizerOnFarmProduced,
- ),
- ).toBe(0.55)
+ const result = getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ )
+ expect(result.p_n_wcl).toBe(0.55)
+ expect(result.description).toBe(
+ "Vaste mest van varkens, pluimvee en nertsen",
+ )
+ expect(result.subTypeDescription).toBeUndefined()
})
// Vaste mest van overige diersoorten
@@ -401,110 +426,124 @@ describe("getWorkingCoefficient", () => {
it("should return 0.30 for bouwland on klei/veen from Sep 1 to Jan 31", () => {
const applicationDate = new Date("2025-11-01") // November
- expect(
- getWorkingCoefficient(
- p_type_rvo,
- soilType,
- b_grazing_intention,
- isBouwland,
- applicationDate,
- fertilizerOnFarmProduced,
- ),
- ).toBe(0.3)
+ const result = getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ )
+ expect(result.p_n_wcl).toBe(0.3)
+ expect(result.description).toBe(
+ "Vaste mest van overige diersoorten",
+ )
+ expect(result.subTypeDescription).toBe(
+ "Op bouwland op klei en veen, van 1 september t/m 31 januari",
+ )
})
it("should return 0.40 for overige toepassingen (outside Sep-Jan period)", () => {
const applicationDate = new Date("2025-04-01") // April
- expect(
- getWorkingCoefficient(
- p_type_rvo,
- soilType,
- b_grazing_intention,
- isBouwland,
- applicationDate,
- fertilizerOnFarmProduced,
- ),
- ).toBe(0.4)
+ const result = getWorkingCoefficient(
+ p_type_rvo,
+ soilType,
+ b_grazing_intention,
+ isBouwland,
+ applicationDate,
+ fertilizerOnFarmProduced,
+ )
+ expect(result.p_n_wcl).toBe(0.4)
+ expect(result.description).toBe(
+ "Vaste mest van overige diersoorten",
+ )
+ expect(result.subTypeDescription).toBe("Overige toepassingen")
})
})
// Overig (top-level entries)
it("should return 0.10 for Compost", () => {
- expect(
- getWorkingCoefficient(
- "111",
- "zand_nwc",
- false,
- true,
- new Date(),
- false,
- ),
- ).toBe(0.1)
+ const result = getWorkingCoefficient(
+ "111",
+ "zand_nwc",
+ false,
+ true,
+ new Date(),
+ false,
+ )
+ expect(result.p_n_wcl).toBe(0.1)
+ expect(result.description).toBe("Compost")
+ expect(result.subTypeDescription).toBeUndefined()
})
it("should return 0.25 for Champost", () => {
- expect(
- getWorkingCoefficient(
- "110",
- "zand_nwc",
- false,
- true,
- new Date(),
- false,
- ),
- ).toBe(0.25)
+ const result = getWorkingCoefficient(
+ "110",
+ "zand_nwc",
+ false,
+ true,
+ new Date(),
+ false,
+ )
+ expect(result.p_n_wcl).toBe(0.25)
+ expect(result.description).toBe("Champost")
+ expect(result.subTypeDescription).toBeUndefined()
})
it("should return 0.40 for Zuiveringsslib", () => {
- expect(
- getWorkingCoefficient(
- "114",
- "zand_nwc",
- false,
- true,
- new Date(),
- false,
- ),
- ).toBe(0.4)
+ const result = getWorkingCoefficient(
+ "114",
+ "zand_nwc",
+ false,
+ true,
+ new Date(),
+ false,
+ )
+ expect(result.p_n_wcl).toBe(0.4)
+ expect(result.description).toBe("Zuiveringsslib")
+ expect(result.subTypeDescription).toBeUndefined()
})
it("should return 0.50 for Overige organische meststoffen", () => {
- expect(
- getWorkingCoefficient(
- "116",
- "zand_nwc",
- false,
- true,
- new Date(),
- false,
- ),
- ).toBe(0.5)
+ const result = getWorkingCoefficient(
+ "116",
+ "zand_nwc",
+ false,
+ true,
+ new Date(),
+ false,
+ )
+ expect(result.p_n_wcl).toBe(0.5)
+ expect(result.description).toBe("Overige organische meststoffen")
+ expect(result.subTypeDescription).toBeUndefined()
})
it("should return 1.0 for Kunstmest", () => {
- expect(
- getWorkingCoefficient(
- "115",
- "zand_nwc",
- false,
- true,
- new Date(),
- false,
- ),
- ).toBe(1.0)
+ const result = getWorkingCoefficient(
+ "115",
+ "zand_nwc",
+ false,
+ true,
+ new Date(),
+ false,
+ )
+ expect(result.p_n_wcl).toBe(1.0)
+ expect(result.description).toBe("Kunstmest of niet gevonden in Tabel 9")
+ expect(result.subTypeDescription).toBeUndefined()
})
it("should return 1.0 for Mineralenconcentraat", () => {
- expect(
- getWorkingCoefficient(
- "120",
- "zand_nwc",
- false,
- true,
- new Date(),
- false,
- ),
- ).toBe(1.0)
+ const result = getWorkingCoefficient(
+ "120",
+ "zand_nwc",
+ false,
+ true,
+ new Date(),
+ false,
+ )
+ expect(result.p_n_wcl).toBe(1.0)
+ expect(result.description).toBe("Mineralenconcentraat")
+ expect(result.subTypeDescription).toBeUndefined()
})
})
@@ -550,6 +589,9 @@ describe("calculateFertilizerApplicationFillingForNitrogen", () => {
// Expected: 1000 kg * 5 kg/ton * 1.0 (100%) / 1000 = 5
expect(result.normFilling).toBeCloseTo(5)
expect(result.applicationFilling[0].normFilling).toBeCloseTo(5)
+ expect(result.applicationFilling[0].normFillingDetails).toBe(
+ "Werkingscoëfficiënt: 100% - Kunstmest of niet gevonden in Tabel 9",
+ )
})
it("should calculate norm filling correctly for multiple applications", async () => {
@@ -592,14 +634,19 @@ describe("calculateFertilizerApplicationFillingForNitrogen", () => {
b_grazing_intention,
cultivations,
})
- console.log(result)
// App1: 1000 * 5 * 1.0 / 1000 = 5
// App2: 500 * 10 * 0.1 / 1000 = 0.5
// Total: 5.5
expect(result.normFilling).toBeCloseTo(5.5)
expect(result.applicationFilling[0].normFilling).toBeCloseTo(5)
+ expect(result.applicationFilling[0].normFillingDetails).toBe(
+ "Werkingscoëfficiënt: 100% - Kunstmest of niet gevonden in Tabel 9",
+ )
expect(result.applicationFilling[1].normFilling).toBeCloseTo(0.5)
+ expect(result.applicationFilling[1].normFillingDetails).toBe(
+ "Werkingscoëfficiënt: 10% - Compost",
+ )
})
it("should use table11Mestcodes for nitrogen content if p_n_rt is 0", async () => {
@@ -634,6 +681,9 @@ describe("calculateFertilizerApplicationFillingForNitrogen", () => {
// Expected: 1000 * 4.0 (from Table 11) * 0.45 (from Table 9) / 1000 = 1.8
expect(result.normFilling).toBeCloseTo(1.8)
expect(result.applicationFilling[0].normFilling).toBeCloseTo(1.8)
+ expect(result.applicationFilling[0].normFillingDetails).toBe(
+ "Werkingscoëfficiënt: 45% - Drijfmest van graasdieren op het eigen bedrijf geproduceerd - Op bedrijf met beweiding",
+ )
})
it("should throw an error if fertilizer cannot be found", async () => {
@@ -703,12 +753,14 @@ describe("calculateFertilizerApplicationFillingForNitrogen", () => {
// For p_type_rvo "10" (Vaste mest rundvee), onFarmProduced: true in table9.
// Our temporary logic `onFarmProduced = isDrijfmest` makes it `false`.
- // This means the `entry.onFarmProduced !== onFarmProduced` check will cause it to `continue`.
// It will then fall through to the "Vaste mest van graasdieren aangevoerd" entry,
// which has onFarmProduced: false.
// For "bouwland op klei en veen, van 1 september t/m 31 januari", p_n_wcl is 0.3.
// Expected: 1000 * 10 * 0.3 / 1000 = 3
expect(result.normFilling).toBeCloseTo(3)
expect(result.applicationFilling[0].normFilling).toBeCloseTo(3)
+ expect(result.applicationFilling[0].normFillingDetails).toBe(
+ "Werkingscoëfficiënt: 30% - Vaste mest van graasdieren aangevoerd - Op bouwland op klei en veen, van 1 september t/m 31 januari",
+ )
})
})
diff --git a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
index 9c4fd57b6..ead5f1af4 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
@@ -4,7 +4,7 @@ import type {
CurrentSoilData,
Cultivation,
} from "@svenvw/fdm-core"
-import type { NormFilling } from "./types"
+import type { NormFilling, WorkingCoefficientDetails } from "./types"
import { table11Mestcodes } from "./table-11-mestcodes"
import { table9 } from "./table-9"
import { getRegion } from "../stikstofgebruiksnorm"
@@ -87,7 +87,7 @@ export async function calculateFertilizerApplicationFillingForNitrogen({
].includes(fertilizer.p_type_rvo ?? "")
const fertilizerOnFarmProduced = isDrijfmest // Assume drijfmest is on-farm, vaste mest is not for now.
- const p_n_wcl = getWorkingCoefficient(
+ const workingCoefficientDetails = getWorkingCoefficient(
fertilizer.p_type_rvo,
soilType,
b_grazing_intention,
@@ -100,13 +100,20 @@ export async function calculateFertilizerApplicationFillingForNitrogen({
const p_app_amount = new Decimal(application.p_app_amount)
const normFilling = p_app_amount
.times(p_n_rt)
- .times(p_n_wcl)
+ .times(workingCoefficientDetails.p_n_wcl)
.dividedBy(1000)
totalNormFilling = totalNormFilling.plus(normFilling)
+ const descriptionParts = [workingCoefficientDetails.description]
+ if (workingCoefficientDetails.subTypeDescription) {
+ descriptionParts.push(workingCoefficientDetails.subTypeDescription)
+ }
+ const normFillingDetailString = `Werkingscoëfficiënt: ${workingCoefficientDetails.p_n_wcl * 100}% - ${descriptionParts.join(" - ")}`
+
applicationFillings.push({
p_app_id: application.p_app_id,
normFilling: normFilling.toNumber(),
+ normFillingDetails: normFillingDetailString,
})
}
@@ -161,7 +168,7 @@ export function isBouwland(
* @param {boolean} isBouwland - True if the land is arable land (bouwland), false otherwise.
* @param {Date} p_app_date - The date of the fertilizer application.
* @param {boolean} fertilizerOnFarmProduced - True if the fertilizer is produced on the farm, false otherwise.
- * @returns {number} The working coefficient as a decimal (e.g., 0.45 for 45%). Defaults to 1.0 (100%) if no specific rule applies.
+ * @returns {WorkingCoefficientDetails} An object containing the working coefficient, its main description, and an optional subtype description.
*/
export function getWorkingCoefficient(
p_type_rvo: string | null | undefined,
@@ -170,11 +177,14 @@ export function getWorkingCoefficient(
isBouwland: boolean,
p_app_date: Date,
fertilizerOnFarmProduced: boolean, // New parameter
-): number {
- const p_n_wcl = 1.0 // Default working coefficient is 100% (1.0)
+): WorkingCoefficientDetails {
+ const defaultDetails: WorkingCoefficientDetails = {
+ p_n_wcl: 1.0,
+ description: "Kunstmest of niet gevonden in Tabel 9",
+ }
if (!p_type_rvo) {
- return p_n_wcl
+ return defaultDetails
}
for (const entry of table9) {
@@ -234,14 +244,21 @@ export function getWorkingCoefficient(
})
if (matchingSubType) {
- return matchingSubType.p_n_wcl
+ return {
+ p_n_wcl: matchingSubType.p_n_wcl,
+ description: entry.description,
+ subTypeDescription: matchingSubType.description,
+ }
}
} else if (entry.p_n_wcl !== undefined) {
// If no subTypes, use the main entry's p_n_wcl
- return entry.p_n_wcl
+ return {
+ p_n_wcl: entry.p_n_wcl,
+ description: entry.description,
+ }
}
}
}
- return p_n_wcl // If no specific rule is found, return the default 100% (1.0)
+ return defaultDetails // If no specific rule is found, return the default 100% (1.0)
}
diff --git a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
index 2c5edfdc1..2557e53ab 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
@@ -31,3 +31,9 @@ export type Table9 = {
}[]
p_n_wcl?: number
}[]
+
+export type WorkingCoefficientDetails = {
+ p_n_wcl: number
+ description: string
+ subTypeDescription?: string
+}
From 3cf2845795a0ec389dac3abe482eb0746aeecbf8 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 14:13:49 +0200
Subject: [PATCH 061/243] fix: remove capping
---
.../nl/2025/filling/fosfaatgebruiksnorm.test.ts | 8 ++++----
.../norms/nl/2025/filling/fosfaatgebruiksnorm.ts | 16 +++++-----------
2 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
index 503486924..cb617d533 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
@@ -352,8 +352,8 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
// To fill 20kg norm with 25% discounted: need 20 / 0.25 = 80kg actual P.
// So 80kg of Groencompost is discounted to 20kg.
// Remaining Groencompost: 200 - 80 = 120kg. This counts 100%.
- // Total: 10 (standard) + 177.5 (Groencompost) = 187.5. Capped at 30.
- expect(result.normFilling).toBeCloseTo(30)
+ // Total: 10 (standard) + 177.5 (Groencompost) = 187.5.
+ expect(result.normFilling).toBeCloseTo(187.5)
expect(result.applicationFilling[1].normFilling).toBeCloseTo(177.5) // 7.5 (discounted) + 170 (100% counted)
expect(result.applicationFilling[1].normFillingDetails).toContain(
"OS-rijke meststof (25% korting) draagt 7.50kg bij aan de norm. Plus 170.00kg (100% geteld) boven de kortingslimiet.",
@@ -382,8 +382,8 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
// Eligible for discount: min(20, 30 - 30) = 0kg. Discounted: 0kg.
// Remaining actual P: 20 - 0 = 20kg. This counts 100%.
// App3 contribution: 0 + 20 = 20kg.
- // Total: 10 (app1) + 17.5 (app2) + 20 (app3) = 47.5kg. Capped at 30.
- expect(result.normFilling).toBeCloseTo(30)
+ // Total: 10 (app1) + 17.5 (app2) + 20 (app3) = 47.5kg.
+ expect(result.normFilling).toBeCloseTo(47.5)
expect(result.applicationFilling[0].normFilling).toBeCloseTo(10)
expect(result.applicationFilling[1].normFilling).toBeCloseTo(17.5)
expect(result.applicationFilling[2].normFilling).toBeCloseTo(20)
diff --git a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts
index a12a74747..7c3ba5527 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts
@@ -63,11 +63,6 @@ export function calculateFertilizerApplicationFillingForPhosphate({
})
let totalFilling = new Decimal(0)
- const applicationsFilling = [] as {
- p_app_id: string
- normFilling: number
- normFillingDetails?: string
- }[]
const normLimit = new Decimal(fosfaatgebruiksnorm)
let remainingDiscountablePhosphate = normLimit // This tracks the remaining P that can be discounted
@@ -83,7 +78,7 @@ export function calculateFertilizerApplicationFillingForPhosphate({
p_app_amount: Decimal
p_type_rvo: string
discountFactor: Decimal
- originalIndex: number
+ originalIndex: number
}[] = []
applications.forEach((application, index) => {
@@ -143,7 +138,9 @@ export function calculateFertilizerApplicationFillingForPhosphate({
const normFilling = p_app_amount.times(p_p_rt).dividedBy(1000)
totalFilling = totalFilling.plus(normFilling)
orderedApplicationsFilling[
- applications.findIndex((app) => app.p_app_id === application.p_app_id)
+ applications.findIndex(
+ (app) => app.p_app_id === application.p_app_id,
+ )
] = {
p_app_id: application.p_app_id,
normFilling: normFilling.toNumber(),
@@ -226,12 +223,9 @@ export function calculateFertilizerApplicationFillingForPhosphate({
}
}
- // Ensure totalFilling does not exceed fosfaatgebruiksnorm
- const finalTotalFilling = Decimal.min(totalFilling, normLimit)
-
// Return the total norm filling and the breakdown per application.
return {
- normFilling: finalTotalFilling.toNumber(),
+ normFilling: totalFilling.toNumber(),
applicationFilling: orderedApplicationsFilling,
}
}
From 87a7cc7c2cc4a0b68a32f40a9af9b07e93eabdc6 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 15:29:38 +0200
Subject: [PATCH 062/243] test: fixes
---
.../nl/2025/filling/fosfaatgebruiksnorm.test.ts | 12 +++++-------
.../src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts | 1 -
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
index cb617d533..e7f65cb8d 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
@@ -297,9 +297,7 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fosfaatgebruiksnorm,
})
expect(result.normFilling).toBeCloseTo(30) // 100% counted
- expect(result.applicationFilling[0].normFillingDetails).toContain(
- "Standaard meststof",
- )
+ expect(result.applicationFilling[0].normFillingDetails).toBeUndefined()
})
it("should use p_p_rt from table11Mestcodes if not on fertilizer object", () => {
@@ -382,13 +380,13 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
// Eligible for discount: min(20, 30 - 30) = 0kg. Discounted: 0kg.
// Remaining actual P: 20 - 0 = 20kg. This counts 100%.
// App3 contribution: 0 + 20 = 20kg.
- // Total: 10 (app1) + 17.5 (app2) + 20 (app3) = 47.5kg.
- expect(result.normFilling).toBeCloseTo(47.5)
+ // Total: 10 (app1) + 17.5 (app2) + 15 (app3) = 42.5kg.
+ expect(result.normFilling).toBeCloseTo(42.5)
expect(result.applicationFilling[0].normFilling).toBeCloseTo(10)
expect(result.applicationFilling[1].normFilling).toBeCloseTo(17.5)
- expect(result.applicationFilling[2].normFilling).toBeCloseTo(20)
+ expect(result.applicationFilling[2].normFilling).toBeCloseTo(15)
expect(result.applicationFilling[2].normFillingDetails).toContain(
- "OS-rijke meststof (75% korting) draagt 0.00kg bij aan de norm. Plus 20.00kg (100% geteld) boven de kortingslimiet.",
+ "OS-rijke meststof, geen korting toegepast. Plus 15.00kg (100% geteld) boven de kortingslimiet.",
)
})
})
diff --git a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts
index 7c3ba5527..f202dc003 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts
@@ -144,7 +144,6 @@ export function calculateFertilizerApplicationFillingForPhosphate({
] = {
p_app_id: application.p_app_id,
normFilling: normFilling.toNumber(),
- normFillingDetails: "Standaard meststof",
}
}
From 05f933b269121b131ccc8eb37ec5c4da3c488a98 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 15:31:38 +0200
Subject: [PATCH 063/243] fix: type
---
.../src/norms/nl/2025/filling/stikstofgebruiksnorm.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
index ead5f1af4..e06a4bb5a 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
@@ -209,7 +209,7 @@ export function getWorkingCoefficient(
if (
subType.grondsoortCode &&
- !subType.grondsoortCode.includes(soilType as any)
+ !subType.grondsoortCode.includes(soilType as RegionKey)
) {
return false
}
From a960b16d84789a4b9b36d57a2c60a72cafd537ab Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 15:33:10 +0200
Subject: [PATCH 064/243] feat: include the nitrogen filling functions
---
fdm-calculator/src/norms/index.test.ts | 11 ++++-------
fdm-calculator/src/norms/index.ts | 8 +++-----
2 files changed, 7 insertions(+), 12 deletions(-)
diff --git a/fdm-calculator/src/norms/index.test.ts b/fdm-calculator/src/norms/index.test.ts
index aa8c9b94d..f337a85e4 100644
--- a/fdm-calculator/src/norms/index.test.ts
+++ b/fdm-calculator/src/norms/index.test.ts
@@ -10,6 +10,7 @@ import { collectNL2025InputForNorms } from "./nl/2025/input"
import { getNL2025StikstofGebruiksNorm } from "./nl/2025/stikstofgebruiksnorm"
import { calculateFertilizerApplicationFillingForPhosphate } from "./nl/2025/filling/fosfaatgebruiksnorm"
import { calculateFertilizerApplicationFillingForManure } from "./nl/2025/filling/dierlijke-mest-gebruiksnorm"
+import { calculateFertilizerApplicationFillingForNitrogen } from "./nl/2025/filling/stikstofgebruiksnorm"
describe("createFunctionsForNorms", () => {
it("should return the correct functions for NL region and year 2025", () => {
@@ -53,19 +54,15 @@ describe("createFunctionsForFertilizerApplicationFilling", () => {
).toThrowError(
"collectInputForFertilizerApplicationFilling is not implemented yet",
)
- expect(
- functions.calculateFertilizerApplicationFillingForNitrogen,
- ).toThrowError(
- "calculateFertilizerApplicationFillingForNitrogen is not implemented yet",
+ expect(functions.calculateFertilizerApplicationFillingForNitrogen).toBe(
+ calculateFertilizerApplicationFillingForNitrogen,
)
expect(functions.calculateFertilizerApplicationFillingForManure).toBe(
calculateFertilizerApplicationFillingForManure,
)
expect(
functions.calculateFertilizerApplicationFillingForPhosphate,
- ).toBe(
- calculateFertilizerApplicationFillingForPhosphate,
- )
+ ).toBe(calculateFertilizerApplicationFillingForPhosphate)
})
it("should throw an error for an unsupported year", () => {
diff --git a/fdm-calculator/src/norms/index.ts b/fdm-calculator/src/norms/index.ts
index 54f1e6a4c..b523309cb 100644
--- a/fdm-calculator/src/norms/index.ts
+++ b/fdm-calculator/src/norms/index.ts
@@ -2,6 +2,7 @@ import { aggregateNormsToFarmLevel } from "./farm"
import { getNL2025DierlijkeMestGebruiksNorm } from "./nl/2025/dierlijke-mest-gebruiksnorm"
import { calculateFertilizerApplicationFillingForManure } from "./nl/2025/filling/dierlijke-mest-gebruiksnorm"
import { calculateFertilizerApplicationFillingForPhosphate } from "./nl/2025/filling/fosfaatgebruiksnorm"
+import { calculateFertilizerApplicationFillingForNitrogen } from "./nl/2025/filling/stikstofgebruiksnorm"
import { getNL2025FosfaatGebruiksNorm } from "./nl/2025/fosfaatgebruiksnorm"
import { collectNL2025InputForNorms } from "./nl/2025/input"
import { getNL2025StikstofGebruiksNorm } from "./nl/2025/stikstofgebruiksnorm"
@@ -35,11 +36,8 @@ export function createFunctionsForFertilizerApplicationFilling(
"collectInputForFertilizerApplicationFilling is not implemented yet",
)
},
- calculateFertilizerApplicationFillingForNitrogen: () => {
- throw new Error(
- "calculateFertilizerApplicationFillingForNitrogen is not implemented yet",
- )
- },
+ calculateFertilizerApplicationFillingForNitrogen:
+ calculateFertilizerApplicationFillingForNitrogen,
calculateFertilizerApplicationFillingForManure:
calculateFertilizerApplicationFillingForManure,
calculateFertilizerApplicationFillingForPhosphate:
From 62a45db744ce5f17937a1aeed65721eec722d50d Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 16:33:47 +0200
Subject: [PATCH 065/243] feat: add function to collect input data for norm
filling calculation
---
fdm-calculator/src/norms/index.test.ts | 7 +-
fdm-calculator/src/norms/index.ts | 8 +-
.../dierlijke-mest-gebruiksnorm.test.ts | 52 +++++-
.../filling/dierlijke-mest-gebruiksnorm.ts | 20 +--
.../2025/filling/fosfaatgebruiksnorm.test.ts | 78 +++++++--
.../nl/2025/filling/fosfaatgebruiksnorm.ts | 52 +++---
.../src/norms/nl/2025/filling/input.test.ts | 151 ++++++++++++++++++
.../src/norms/nl/2025/filling/input.ts | 96 +++++++++++
.../2025/filling/stikstofgebruiksnorm.test.ts | 62 ++++---
.../nl/2025/filling/stikstofgebruiksnorm.ts | 38 ++---
.../src/norms/nl/2025/filling/types.d.ts | 10 ++
11 files changed, 442 insertions(+), 132 deletions(-)
create mode 100644 fdm-calculator/src/norms/nl/2025/filling/input.test.ts
create mode 100644 fdm-calculator/src/norms/nl/2025/filling/input.ts
diff --git a/fdm-calculator/src/norms/index.test.ts b/fdm-calculator/src/norms/index.test.ts
index f337a85e4..fa93d8245 100644
--- a/fdm-calculator/src/norms/index.test.ts
+++ b/fdm-calculator/src/norms/index.test.ts
@@ -11,6 +11,7 @@ import { getNL2025StikstofGebruiksNorm } from "./nl/2025/stikstofgebruiksnorm"
import { calculateFertilizerApplicationFillingForPhosphate } from "./nl/2025/filling/fosfaatgebruiksnorm"
import { calculateFertilizerApplicationFillingForManure } from "./nl/2025/filling/dierlijke-mest-gebruiksnorm"
import { calculateFertilizerApplicationFillingForNitrogen } from "./nl/2025/filling/stikstofgebruiksnorm"
+import { collectInputForFertilizerApplicationFilling } from "./nl/2025/filling/input"
describe("createFunctionsForNorms", () => {
it("should return the correct functions for NL region and year 2025", () => {
@@ -49,10 +50,8 @@ describe("createFunctionsForFertilizerApplicationFilling", () => {
"NL",
"2025",
)
- expect(
- functions.collectInputForFertilizerApplicationFilling,
- ).toThrowError(
- "collectInputForFertilizerApplicationFilling is not implemented yet",
+ expect(functions.collectInputForFertilizerApplicationFilling).toBe(
+ collectInputForFertilizerApplicationFilling,
)
expect(functions.calculateFertilizerApplicationFillingForNitrogen).toBe(
calculateFertilizerApplicationFillingForNitrogen,
diff --git a/fdm-calculator/src/norms/index.ts b/fdm-calculator/src/norms/index.ts
index b523309cb..74dfc3393 100644
--- a/fdm-calculator/src/norms/index.ts
+++ b/fdm-calculator/src/norms/index.ts
@@ -2,6 +2,7 @@ import { aggregateNormsToFarmLevel } from "./farm"
import { getNL2025DierlijkeMestGebruiksNorm } from "./nl/2025/dierlijke-mest-gebruiksnorm"
import { calculateFertilizerApplicationFillingForManure } from "./nl/2025/filling/dierlijke-mest-gebruiksnorm"
import { calculateFertilizerApplicationFillingForPhosphate } from "./nl/2025/filling/fosfaatgebruiksnorm"
+import { collectInputForFertilizerApplicationFilling } from "./nl/2025/filling/input"
import { calculateFertilizerApplicationFillingForNitrogen } from "./nl/2025/filling/stikstofgebruiksnorm"
import { getNL2025FosfaatGebruiksNorm } from "./nl/2025/fosfaatgebruiksnorm"
import { collectNL2025InputForNorms } from "./nl/2025/input"
@@ -31,11 +32,8 @@ export function createFunctionsForFertilizerApplicationFilling(
if (year === "2025") {
// TODO: Implement fertilizer application filling functions for NL 2025
return {
- collectInputForFertilizerApplicationFilling: () => {
- throw new Error(
- "collectInputForFertilizerApplicationFilling is not implemented yet",
- )
- },
+ collectInputForFertilizerApplicationFilling:
+ collectInputForFertilizerApplicationFilling,
calculateFertilizerApplicationFillingForNitrogen:
calculateFertilizerApplicationFillingForNitrogen,
calculateFertilizerApplicationFillingForManure:
diff --git a/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.test.ts
index 2833ed3a1..e8971b26b 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.test.ts
@@ -1,6 +1,7 @@
import { describe, it, expect } from "vitest"
-import type { Fertilizer, FertilizerApplication } from "@svenvw/fdm-core"
+import type { Fertilizer, FertilizerApplication, Cultivation } from "@svenvw/fdm-core"
import { calculateFertilizerApplicationFillingForManure } from "./dierlijke-mest-gebruiksnorm"
+import type { NL2025NormsFillingInput } from "./types"
describe("calculateFertilizerApplicationFillingForManure", () => {
const mockFertilizers: Fertilizer[] = [
@@ -44,7 +45,12 @@ describe("calculateFertilizerApplicationFillingForManure", () => {
const result = calculateFertilizerApplicationFillingForManure({
applications: [mockApplications[0]],
fertilizers: mockFertilizers,
- })
+ cultivations: [],
+ has_organic_certification: false,
+ has_grazining_intention: false,
+ fosfaatgebruiksnorm: 0,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBe(5)
expect(result.applicationFilling).toEqual([
@@ -59,7 +65,12 @@ describe("calculateFertilizerApplicationFillingForManure", () => {
const result = calculateFertilizerApplicationFillingForManure({
applications: mockApplications,
fertilizers: mockFertilizers,
- })
+ cultivations: [],
+ has_organic_certification: false,
+ has_grazining_intention: false,
+ fosfaatgebruiksnorm: 0,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBe(85) // 5 + 80
expect(result.applicationFilling).toEqual([
@@ -84,7 +95,12 @@ describe("calculateFertilizerApplicationFillingForManure", () => {
},
],
fertilizers: mockFertilizers,
- })
+ cultivations: [],
+ has_organic_certification: false,
+ has_grazining_intention: false,
+ fosfaatgebruiksnorm: 0,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBe(0)
expect(result.applicationFilling).toEqual([
@@ -106,7 +122,12 @@ describe("calculateFertilizerApplicationFillingForManure", () => {
},
],
fertilizers: mockFertilizers,
- }),
+ cultivations: [],
+ has_organic_certification: false,
+ has_grazining_intention: false,
+ fosfaatgebruiksnorm: 0,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput),
).toThrow("Fertilizer 999 not found for application app4")
})
@@ -121,7 +142,12 @@ describe("calculateFertilizerApplicationFillingForManure", () => {
},
],
fertilizers: mockFertilizers,
- }),
+ cultivations: [],
+ has_organic_certification: false,
+ has_grazining_intention: false,
+ fosfaatgebruiksnorm: 0,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput),
).toThrow("Fertilizer 4 has no p_type_rvo")
})
@@ -136,7 +162,12 @@ describe("calculateFertilizerApplicationFillingForManure", () => {
},
],
fertilizers: mockFertilizers,
- }),
+ cultivations: [],
+ has_organic_certification: false,
+ has_grazining_intention: false,
+ fosfaatgebruiksnorm: 0,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput),
).toThrow("Fertilizer 3 has unknown p_type_rvo 200")
})
@@ -144,7 +175,12 @@ describe("calculateFertilizerApplicationFillingForManure", () => {
const result = calculateFertilizerApplicationFillingForManure({
applications: [],
fertilizers: mockFertilizers,
- })
+ cultivations: [],
+ has_organic_certification: false,
+ has_grazining_intention: false,
+ fosfaatgebruiksnorm: 0,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBe(0)
expect(result.applicationFilling).toEqual([])
diff --git a/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.ts
index 8dd16f02d..65b7c6678 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.ts
@@ -1,7 +1,7 @@
-import type { Fertilizer, FertilizerApplication } from "@svenvw/fdm-core"
import Decimal from "decimal.js"
import { table11Mestcodes } from "./table-11-mestcodes"
-import type { NormFilling } from "./types"
+import type { NormFilling, NL2025NormsFillingInput } from "./types"
+import type { Fertilizer, FertilizerApplication } from "@svenvw/fdm-core"
/**
* Calculates the nitrogen usage from animal manure for a list of fertilizer applications.
@@ -10,19 +10,15 @@ import type { NormFilling } from "./types"
* based on the type of manure used. It uses predefined values from `table11Mestcodes` to identify
* which fertilizers are considered animal manure and to find their nitrogen content.
*
- * @param {object} params - The parameters for the calculation.
- * @param {FertilizerApplication[]} params.applications - A list of fertilizer applications, each specifying the amount and type of fertilizer used.
- * @param {Fertilizer[]} params.fertilizers - A list of available fertilizers, providing details like nitrogen content.
+ * @param {NL2025NormsFillingInput} input - The standardized input object containing all necessary data.
* @returns {NormFilling} An object containing the total nitrogen usage (`normFilling`) and a detailed breakdown per application (`applicationFilling`).
* @throws {Error} Throws an error if a fertilizer or its RVO type is not found, ensuring data integrity.
*/
-export function calculateFertilizerApplicationFillingForManure({
- applications,
- fertilizers,
-}: {
- applications: FertilizerApplication[]
- fertilizers: Fertilizer[]
-}): NormFilling {
+export function calculateFertilizerApplicationFillingForManure(
+ input: NL2025NormsFillingInput,
+): NormFilling {
+ const { applications, fertilizers } = input;
+
// Create maps for efficient lookups of fertilizers and RVO types.
// This avoids iterating over the arrays repeatedly in a loop.
const fertilizersMap = new Map(
diff --git a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
index e7f65cb8d..005a65c41 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
@@ -1,6 +1,7 @@
import { describe, it, expect } from "vitest"
-import type { Fertilizer, FertilizerApplication } from "@svenvw/fdm-core"
+import type { Fertilizer, FertilizerApplication, Cultivation } from "@svenvw/fdm-core"
import { calculateFertilizerApplicationFillingForPhosphate } from "./fosfaatgebruiksnorm"
+import type { NL2025NormsFillingInput } from "./types"
// Mock data for fertilizers
const mockFertilizers: Fertilizer[] = [
@@ -104,7 +105,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBeCloseTo(60)
expect(result.applicationFilling).toHaveLength(2)
@@ -124,7 +128,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
// console.log(result) // Keep for debugging if needed
expect(result.normFilling).toBeCloseTo(120)
@@ -150,7 +157,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
// console.log(result) // Keep for debugging if needed
expect(result.normFilling).toBeCloseTo(120)
@@ -171,7 +181,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBeCloseTo(86.25) // 60 + (105 * 0.25)
expect(result.applicationFilling).toHaveLength(2)
@@ -192,7 +205,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBeCloseTo(59.975) // 40 + (40 * 0.25) + (13.3 * 0.75) = 40 + 10 + 9.975 = 59.975
expect(result.applicationFilling).toHaveLength(3)
@@ -213,7 +229,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBeCloseTo(70) // (120 * 0.25) + 40 = 30 + 40
expect(result.applicationFilling).toHaveLength(2)
@@ -230,7 +249,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm: 100,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBe(0)
expect(result.applicationFilling).toHaveLength(0)
})
@@ -246,7 +268,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBeCloseTo(35)
expect(result.applicationFilling).toHaveLength(2)
})
@@ -261,7 +286,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBeCloseTo(10) // 100% counted
expect(result.applicationFilling[0].normFillingDetails).toContain(
"OS-rijke meststof, minimumdrempel niet gehaald, 100% geteld.",
@@ -278,7 +306,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: true,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBeCloseTo(22.5) // 30 * 0.75 = 22.5
expect(result.applicationFilling[0].normFillingDetails).toContain(
"75% korting",
@@ -295,7 +326,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBeCloseTo(30) // 100% counted
expect(result.applicationFilling[0].normFillingDetails).toBeUndefined()
})
@@ -310,7 +344,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBeCloseTo(10 * 3.1) // 31
})
@@ -324,7 +361,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
expect(result.normFilling).toBe(0)
})
@@ -339,7 +379,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
// Standard: 10kg. Remaining norm: 20kg.
// Groencompost: 200kg actual P. Discounted: 50kg.
// To fill 20kg norm with 25% discounted: need 20 / 0.25 = 80kg actual P.
@@ -370,7 +413,10 @@ describe("calculateFertilizerApplicationFillingForPhosphate", () => {
fertilizers: mockFertilizers,
has_organic_certification: false,
fosfaatgebruiksnorm,
- })
+ cultivations: [],
+ has_grazining_intention: false,
+ b_centroid: [0, 0],
+ } as NL2025NormsFillingInput)
// Standard: 10kg.
// App2 (Groencompost): 40kg actual P.
// Eligible for discount: min(40, 30 - 0) = 30kg. Discounted: 30 * 0.25 = 7.5kg.
diff --git a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts
index f202dc003..8d35d4fc2 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.ts
@@ -1,7 +1,8 @@
-import type { Fertilizer, FertilizerApplication } from "@svenvw/fdm-core"
-import type { NormFilling } from "./types"
+import type { NormFilling, NL2025NormsFillingInput } from "./types"
import { table11Mestcodes } from "./table-11-mestcodes"
import Decimal from "decimal.js"
+import type { Fertilizer, FertilizerApplication } from "@svenvw/fdm-core"
+
const rvoMestcodesOrganicRich25Percent = ["111", "112"] // Compost, Zeer schone compost
const rvoMestcodesOrganicRich75Percent = ["110", "10", "61", "25", "56"] // Champost, Rundvee - Vaste mest, Geiten - Vaste mest, Paarden - Vaste mest, Schapen - Mest, alle systemen
const rvoMestcodesOrganicRich75PercentOrganic = ["40"] // Varkens - Vaste mest (for organic certification)
@@ -27,24 +28,14 @@ const rvoMestcodesOrganicRich75PercentOrganic = ["40"] // Varkens - Vaste mest (
* with a 75% contribution factor (e.g., strorijke vaste mest).
* This has been acknowledged by RVO to be possible in personal communication with Sven.
*
- * @param {object} params - The parameters for the calculation.
- * @param {FertilizerApplication[]} params.applications - An array of fertilizer applications.
- * @param {Fertilizer[]} params.fertilizers - An array of available fertilizers.
- * @param {boolean} params.has_organic_certification - Indicates if the farm has organic certification, which affects certain fertilizer types.
- * @param {number} params.fosfaatgebruiksnorm - The maximum phosphate usage norm in kg/ha.
+ * @param {NL2025NormsFillingInput} input - The standardized input object containing all necessary data.
* @returns {NormFilling} An object containing the total norm filling and a breakdown per application.
*/
-export function calculateFertilizerApplicationFillingForPhosphate({
- applications,
- fertilizers,
- has_organic_certification,
- fosfaatgebruiksnorm,
-}: {
- applications: FertilizerApplication[]
- fertilizers: Fertilizer[]
- has_organic_certification: boolean
- fosfaatgebruiksnorm: number
-}): NormFilling {
+export function calculateFertilizerApplicationFillingForPhosphate(
+ input: NL2025NormsFillingInput,
+): NormFilling {
+ const { applications, fertilizers, has_organic_certification, fosfaatgebruiksnorm } = input;
+
// Create maps for efficient lookups of fertilizers and RVO types.
// This avoids iterating over the arrays repeatedly in a loop.
const fertilizersMap = new Map(
@@ -56,11 +47,11 @@ export function calculateFertilizerApplicationFillingForPhosphate({
// Determines if at least 20 kg P2O5 / ha is applied with organic-rich fertilizers
const condition1 =
- determineCondition1StimuleringOrganischeStofrijkeMeststoffen({
+ determineCondition1StimuleringOrganischeStofrijkeMeststoffen(
applications,
fertilizersMap,
has_organic_certification,
- })
+ )
let totalFilling = new Decimal(0)
const normLimit = new Decimal(fosfaatgebruiksnorm)
@@ -233,21 +224,16 @@ export function calculateFertilizerApplicationFillingForPhosphate({
* Determines if at least 20 kg P2O5 / ha is applied with organic-rich fertilizers.
* This is Condition 1 for the "Stimuleren organische stofrijke meststoffen" regulation.
*
- * @param {object} params - The parameters for the condition check.
- * @param {FertilizerApplication[]} params.applications - An array of fertilizer applications.
- * @param {Map} params.fertilizersMap - A map of fertilizers for efficient lookup.
- * @param {boolean} params.has_organic_certification - Indicates if the farm has organic certification.
+ * @param {FertilizerApplication[]} applications - An array of fertilizer applications.
+ * @param {Map} fertilizersMap - A map of fertilizers for efficient lookup.
+ * @param {boolean} has_organic_certification - Indicates if the farm has organic certification.
* @returns {boolean} True if the 20 kg/ha threshold is met, false otherwise.
*/
-function determineCondition1StimuleringOrganischeStofrijkeMeststoffen({
- applications,
- fertilizersMap,
- has_organic_certification,
-}: {
- applications: FertilizerApplication[]
- fertilizersMap: Map
- has_organic_certification: boolean
-}): boolean {
+function determineCondition1StimuleringOrganischeStofrijkeMeststoffen(
+ applications: FertilizerApplication[],
+ fertilizersMap: Map,
+ has_organic_certification: boolean,
+): boolean {
// Set the RVO mestcodes for organic-rich fertilizers
const rvoMestcodesOrganicRich = [
...rvoMestcodesOrganicRich25Percent,
diff --git a/fdm-calculator/src/norms/nl/2025/filling/input.test.ts b/fdm-calculator/src/norms/nl/2025/filling/input.test.ts
new file mode 100644
index 000000000..a28ae0e7d
--- /dev/null
+++ b/fdm-calculator/src/norms/nl/2025/filling/input.test.ts
@@ -0,0 +1,151 @@
+import { describe, it, expect, vi, beforeEach, afterEach } from "vitest"
+import { collectInputForFertilizerApplicationFilling } from "./input"
+import type {
+ FdmType,
+ Field,
+ Cultivation,
+ FertilizerApplication,
+ Fertilizer,
+} from "@svenvw/fdm-core"
+import type { NL2025NormsFillingInput } from "./types"
+
+// Mock the entire @svenvw/fdm-core module
+vi.mock("@svenvw/fdm-core", () => ({
+ getField: vi.fn(),
+ getGrazingIntention: vi.fn(),
+ isOrganicCertificationValid: vi.fn(),
+ getCultivations: vi.fn(),
+ getFertilizerApplications: vi.fn(),
+ getFertilizers: vi.fn(),
+}))
+
+// Import the mocked functions
+import {
+ getField,
+ getGrazingIntention,
+ isOrganicCertificationValid,
+ getCultivations,
+ getFertilizerApplications,
+ getFertilizers,
+} from "@svenvw/fdm-core"
+
+describe("collectInputForFertilizerApplicationFilling", () => {
+ const mockFdm = {} as FdmType
+ const mockPrincipalId = "principal123"
+ const mockFieldId = "field456"
+ const mockFosfaatgebruiksnorm = 100
+
+ beforeEach(() => {
+ // Reset all mocks before each test
+ vi.clearAllMocks()
+
+ // Set up default mock implementations for a successful scenario
+ vi.mocked(getField).mockResolvedValue({
+ b_id: mockFieldId,
+ b_id_farm: "farm789",
+ b_centroid: [10, 20],
+ // Add other necessary Field properties
+ } as Field)
+ vi.mocked(getGrazingIntention).mockResolvedValue(true)
+ vi.mocked(isOrganicCertificationValid).mockResolvedValue(false)
+ vi.mocked(getCultivations).mockResolvedValue([
+ { b_lu: "cult1", b_start: "2025-01-01", b_lu_catalogue: "nl_2014" },
+ ] as Cultivation[])
+ vi.mocked(getFertilizerApplications).mockResolvedValue([
+ { p_app_id: "app1", p_id_catalogue: "fert1", p_app_amount: 1000 },
+ ] as FertilizerApplication[])
+ vi.mocked(getFertilizers).mockResolvedValue([
+ { p_id_catalogue: "fert1", p_n_rt: 5, p_type_rvo: "115" },
+ ] as Fertilizer[])
+ })
+
+ it("should successfully collect all input data for a valid scenario", async () => {
+ const expectedB_centroid: [number, number] = [10, 20]
+ const expectedCultivations: Cultivation[] = [
+ { b_lu: "cult1", b_start: "2025-01-01", b_lu_catalogue: "nl_2014" },
+ ]
+ const expectedApplications: FertilizerApplication[] = [
+ { p_app_id: "app1", p_id_catalogue: "fert1", p_app_amount: 1000 },
+ ]
+ const expectedFertilizers: Fertilizer[] = [
+ { p_id_catalogue: "fert1", p_n_rt: 5, p_type_rvo: "115" },
+ ]
+
+ const result = await collectInputForFertilizerApplicationFilling(
+ mockFdm,
+ mockPrincipalId,
+ mockFieldId,
+ mockFosfaatgebruiksnorm,
+ )
+
+ // Assert that all fdm-core functions were called with the correct arguments
+ expect(getField).toHaveBeenCalledWith(
+ mockFdm,
+ mockPrincipalId,
+ mockFieldId,
+ )
+ expect(getGrazingIntention).toHaveBeenCalledWith(
+ mockFdm,
+ mockPrincipalId,
+ "farm789",
+ 2025,
+ )
+ expect(isOrganicCertificationValid).toHaveBeenCalledWith(
+ mockFdm,
+ mockPrincipalId,
+ "farm789",
+ new Date(2025, 4, 15),
+ )
+ expect(getCultivations).toHaveBeenCalledWith(
+ mockFdm,
+ mockPrincipalId,
+ mockFieldId,
+ { start: new Date(2025, 0, 1), end: new Date(2025, 11, 31) },
+ )
+ expect(getFertilizerApplications).toHaveBeenCalledWith(
+ mockFdm,
+ mockPrincipalId,
+ "field456",
+ { start: new Date(2025, 0, 1), end: new Date(2025, 11, 31) },
+ )
+ expect(getFertilizers).toHaveBeenCalledWith(
+ mockFdm,
+ mockPrincipalId,
+ "farm789",
+ )
+
+ // Assert the structure and content of the returned NL2025NormsFillingInput object
+ expect(result).toEqual({
+ cultivations: expectedCultivations,
+ applications: expectedApplications,
+ fertilizers: expectedFertilizers,
+ has_organic_certification: false,
+ has_grazining_intention: true,
+ fosfaatgebruiksnorm: mockFosfaatgebruiksnorm,
+ b_centroid: expectedB_centroid,
+ } as NL2025NormsFillingInput)
+ })
+
+ it("should throw an error if the field is not found", async () => {
+ vi.mocked(getField).mockResolvedValue(null) // Simulate field not found
+
+ await expect(
+ collectInputForFertilizerApplicationFilling(
+ mockFdm,
+ mockPrincipalId,
+ mockFieldId,
+ mockFosfaatgebruiksnorm,
+ ),
+ ).rejects.toThrow(
+ `Field with id ${mockFieldId} not found for principal ${mockPrincipalId}`,
+ )
+ })
+
+ // Add more tests for edge cases and different scenarios as needed
+ // For example:
+ // - No cultivations
+ // - No applications
+ // - No fertilizers
+ // - Different grazing intention / organic certification status
+ // - Empty b_centroid (if getField returns a field without centroid, though current mock ensures it has one)
+})
diff --git a/fdm-calculator/src/norms/nl/2025/filling/input.ts b/fdm-calculator/src/norms/nl/2025/filling/input.ts
new file mode 100644
index 000000000..118b0672d
--- /dev/null
+++ b/fdm-calculator/src/norms/nl/2025/filling/input.ts
@@ -0,0 +1,96 @@
+import type { FdmType, Timeframe } from "@svenvw/fdm-core"
+import type { NL2025NormsFillingInput } from "./types"
+import {
+ getCultivations,
+ getFertilizerApplications,
+ getFertilizers,
+ isOrganicCertificationValid,
+ getField,
+ getGrazingIntention,
+} from "@svenvw/fdm-core"
+
+/**
+ * Collects all necessary input data from fdm-core functions for the NL 2025 norms filling calculations.
+ * This function standardizes the data collection process, ensuring all calculation functions
+ * receive a unified input object (NL2025NormsFillingInput).
+ *
+ * @param {FdmType} fdm - The FdmType instance for interacting with the Farm Data Model.
+ * @param {string} principal_id - The ID of the principal (user or organization) performing the calculation.
+ * @param {string} b_id - The ID of the field for which the norms are being calculated.
+ * @param {number} fosfaatgebruiksnorm - The phosphate usage norm in kg/ha for the current calculation.
+ * @returns {Promise} A promise that resolves to a standardized input object
+ * containing cultivations, fertilizer applications, fertilizers, organic certification status,
+ * grazing intention status, the phosphate usage norm, and the field's centroid.
+ * @throws {Error} Throws an error if the specified field cannot be found.
+ */
+export async function collectInputForFertilizerApplicationFilling(
+ fdm: FdmType,
+ principal_id: string,
+ b_id: string,
+ fosfaatgebruiksnorm: number,
+): Promise {
+ // Define the calendar year for the norms calculation.
+ const year = 2025
+ // Define the timeframe for data collection for the current year.
+ const startOfYear = new Date(year, 0, 1) // January 1st of the specified year
+ const endOfYear = new Date(year, 11, 31) // December 31st of the specified year
+ const timeframe2025: Timeframe = { start: startOfYear, end: endOfYear }
+
+ // 1. Retrieve field details using the field ID.
+ // This is crucial for obtaining the farm ID and the field's geographical centroid.
+ const field = await getField(fdm, principal_id, b_id)
+ if (!field) {
+ throw new Error(`Field with id ${b_id} not found for principal ${principal_id}`);
+ }
+ const b_id_farm = field.b_id_farm
+ const b_centroid = field.b_centroid
+
+ // 2. Retrieve the grazing intention status for the farm for the specified year.
+ // This indicates whether grazing is intended on the farm, affecting certain norm calculations.
+ const has_grazing_intention = await getGrazingIntention(
+ fdm,
+ principal_id,
+ b_id_farm,
+ year,
+ )
+
+ // 3. Check the organic certification status for the farm.
+ // This is relevant for specific organic-rich fertilizer regulations.
+ // The date is set to mid-year to ensure it falls within the certification period if applicable.
+ const has_organic_certification = await isOrganicCertificationValid(
+ fdm,
+ principal_id,
+ b_id_farm,
+ new Date(year, 4, 15), // May 15th of the specified year
+ )
+
+ // 4. Retrieve all cultivations associated with the field within the defined cultivation timeframe.
+ // This data is used to determine land use (e.g., bouwland/grasland).
+ const cultivations = await getCultivations(
+ fdm,
+ principal_id,
+ b_id,
+ timeframe2025,
+ )
+
+ // 5. Retrieve all fertilizer applications for the farm within the current year's timeframe.
+ const applications = await getFertilizerApplications(
+ fdm,
+ principal_id,
+ b_id,
+ timeframe2025,
+ )
+ // 6. Retrieve details of all fertilizers used on the farm.
+ const fertilizers = await getFertilizers(fdm, principal_id, b_id_farm)
+
+ // Assemble all collected data into the standardized NL2025NormsFillingInput object.
+ return {
+ cultivations: cultivations,
+ applications: applications,
+ fertilizers: fertilizers,
+ has_organic_certification: has_organic_certification,
+ has_grazining_intention: has_grazing_intention,
+ fosfaatgebruiksnorm: fosfaatgebruiksnorm,
+ b_centroid: b_centroid,
+ }
+}
diff --git a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts
index 515191764..11cccbfbd 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts
@@ -8,10 +8,10 @@ import { getRegion } from "../stikstofgebruiksnorm"
import type {
Fertilizer,
FertilizerApplication,
- CurrentSoilData,
Cultivation,
} from "@svenvw/fdm-core"
import type { RegionKey } from "../types"
+import type { NL2025NormsFillingInput } from "./types"
// Mock getRegion
vi.mock("../stikstofgebruiksnorm", () => ({
@@ -574,17 +574,19 @@ describe("calculateFertilizerApplicationFillingForNitrogen", () => {
p_type_rvo: "115", // Kunstmest (working coefficient 1.0)
},
]
- const soilData: CurrentSoilData[] = [] // Mocked
- const b_grazing_intention = false
+ const b_centroid: [number, number] = [0, 0]
+ const has_grazining_intention = false
const cultivations: Cultivation[] = []
const result = await calculateFertilizerApplicationFillingForNitrogen({
applications,
fertilizers,
- soilData,
- b_grazing_intention,
+ b_centroid,
+ has_grazining_intention,
cultivations,
- })
+ has_organic_certification: false, // Default value for tests
+ fosfaatgebruiksnorm: 0, // Default value for tests
+ } as NL2025NormsFillingInput)
// Expected: 1000 kg * 5 kg/ton * 1.0 (100%) / 1000 = 5
expect(result.normFilling).toBeCloseTo(5)
@@ -623,17 +625,19 @@ describe("calculateFertilizerApplicationFillingForNitrogen", () => {
p_type_rvo: "111", // Compost (working coefficient 0.1)
},
]
- const soilData: CurrentSoilData[] = [] // Mocked
- const b_grazing_intention = false
+ const b_centroid: [number, number] = [0, 0]
+ const has_grazining_intention = false
const cultivations: Cultivation[] = []
const result = await calculateFertilizerApplicationFillingForNitrogen({
applications,
fertilizers,
- soilData,
- b_grazing_intention,
+ b_centroid,
+ has_grazining_intention,
cultivations,
- })
+ has_organic_certification: false, // Default value for tests
+ fosfaatgebruiksnorm: 0, // Default value for tests
+ } as NL2025NormsFillingInput)
// App1: 1000 * 5 * 1.0 / 1000 = 5
// App2: 500 * 10 * 0.1 / 1000 = 0.5
@@ -666,17 +670,19 @@ describe("calculateFertilizerApplicationFillingForNitrogen", () => {
p_type_rvo: "14", // Drijfmest rundvee (Table 11: 4.0 kg N/ton)
},
]
- const soilData: CurrentSoilData[] = [] // Mocked
- const b_grazing_intention = true // Drijfmest graasdieren, met beweiding -> 0.45
+ const b_centroid: [number, number] = [0, 0]
+ const has_grazining_intention = true // Drijfmest graasdieren, met beweiding -> 0.45
const cultivations: Cultivation[] = []
const result = await calculateFertilizerApplicationFillingForNitrogen({
applications,
fertilizers,
- soilData,
- b_grazing_intention,
+ b_centroid,
+ has_grazining_intention,
cultivations,
- })
+ has_organic_certification: false, // Default value for tests
+ fosfaatgebruiksnorm: 0, // Default value for tests
+ } as NL2025NormsFillingInput)
// Expected: 1000 * 4.0 (from Table 11) * 0.45 (from Table 9) / 1000 = 1.8
expect(result.normFilling).toBeCloseTo(1.8)
@@ -697,18 +703,20 @@ describe("calculateFertilizerApplicationFillingForNitrogen", () => {
},
]
const fertilizers: Fertilizer[] = [] // Empty fertilizers array
- const soilData: CurrentSoilData[] = []
- const b_grazing_intention = false
+ const b_centroid: [number, number] = [0, 0]
+ const has_grazining_intention = false
const cultivations: Cultivation[] = []
await expect(() =>
calculateFertilizerApplicationFillingForNitrogen({
applications,
fertilizers,
- soilData,
- b_grazing_intention,
+ b_centroid,
+ has_grazining_intention,
cultivations,
- }),
+ has_organic_certification: false, // Default value for tests
+ fosfaatgebruiksnorm: 0, // Default value for tests
+ } as NL2025NormsFillingInput),
).rejects.toThrow(
"Fertilizer nonExistentFert not found for application app1",
)
@@ -732,8 +740,8 @@ describe("calculateFertilizerApplicationFillingForNitrogen", () => {
p_type_rvo: "10", // Vaste mest rundvee (onFarmProduced: true in table9, but our temp logic makes it false)
},
]
- const soilData: CurrentSoilData[] = []
- const b_grazing_intention = false
+ const b_centroid: [number, number] = [0, 0]
+ const has_grazining_intention = false
const cultivations: Cultivation[] = [
{
b_lu: "cult1",
@@ -746,10 +754,12 @@ describe("calculateFertilizerApplicationFillingForNitrogen", () => {
const result = await calculateFertilizerApplicationFillingForNitrogen({
applications,
fertilizers,
- soilData,
- b_grazing_intention,
+ b_centroid,
+ has_grazining_intention,
cultivations,
- })
+ has_organic_certification: false, // Default value for tests
+ fosfaatgebruiksnorm: 0, // Default value for tests
+ } as NL2025NormsFillingInput)
// For p_type_rvo "10" (Vaste mest rundvee), onFarmProduced: true in table9.
// Our temporary logic `onFarmProduced = isDrijfmest` makes it `false`.
diff --git a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
index e06a4bb5a..0f7c4b258 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
@@ -1,10 +1,5 @@
-import type {
- Fertilizer,
- FertilizerApplication,
- CurrentSoilData,
- Cultivation,
-} from "@svenvw/fdm-core"
-import type { NormFilling, WorkingCoefficientDetails } from "./types"
+import type { Cultivation } from "@svenvw/fdm-core"
+import type { NormFilling, WorkingCoefficientDetails, NL2025NormsFillingInput } from "./types"
import { table11Mestcodes } from "./table-11-mestcodes"
import { table9 } from "./table-9"
import { getRegion } from "../stikstofgebruiksnorm"
@@ -17,31 +12,18 @@ import Decimal from "decimal.js"
* fertilizer type, nitrogen content, working coefficients, soil type, grazing intention,
* and land use (bouwland/arable land).
*
- * @param {Object} params - The parameters for the calculation.
- * @param {FertilizerApplication[]} params.applications - An array of fertilizer applications.
- * @param {Fertilizer[]} params.fertilizers - An array of available fertilizers.
- * @param {CurrentSoilData[]} params.soilData - Current soil data for the farm.
- * @param {boolean} params.b_grazing_intention - Indicates if there is a grazing intention for the farm.
- * @param {Cultivation[]} params.cultivations - An array of cultivations for the farm.
+ * @param {NL2025NormsFillingInput} input - The standardized input object containing all necessary data.
* @returns {Promise} An object containing the total norm filling and details for each application.
*/
-export async function calculateFertilizerApplicationFillingForNitrogen({
- applications,
- fertilizers,
- soilData,
- b_grazing_intention,
- cultivations,
-}: {
- applications: FertilizerApplication[]
- fertilizers: Fertilizer[]
- soilData: CurrentSoilData[]
- b_grazing_intention: boolean
- cultivations: Cultivation[]
-}): Promise {
+export async function calculateFertilizerApplicationFillingForNitrogen(
+ input: NL2025NormsFillingInput,
+): Promise {
+ const { applications, fertilizers, b_centroid, has_grazining_intention, cultivations } = input;
+
const applicationFillings: NormFilling["applicationFilling"] = []
let totalNormFilling = new Decimal(0)
- const soilType = await getRegion(soilData)
+ const soilType = await getRegion(b_centroid)
for (const application of applications) {
const fertilizer = fertilizers.find(
@@ -90,7 +72,7 @@ export async function calculateFertilizerApplicationFillingForNitrogen({
const workingCoefficientDetails = getWorkingCoefficient(
fertilizer.p_type_rvo,
soilType,
- b_grazing_intention,
+ has_grazining_intention,
isCurrentBouwland,
p_app_date,
fertilizerOnFarmProduced, // Pass the determined onFarmProduced status
diff --git a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
index 2557e53ab..95ffe7028 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
@@ -37,3 +37,13 @@ export type WorkingCoefficientDetails = {
description: string
subTypeDescription?: string
}
+
+export type NL2025NormsFillingInput = {
+ cultivations: cultivations
+ applications: FertilizerApplication[]
+ fertilizers: Fertilizer[]
+ has_organic_certification: boolean
+ has_grazining_intention: boolean
+ fosfaatgebruiksnorm: number
+ b_centroid: Field["b_centroid"]
+}
From c09c94e9dbbaca9c5a0aaf011cf551c9fb0db480 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 16:34:48 +0200
Subject: [PATCH 066/243] chore: cleanup
---
.../norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.test.ts | 2 +-
.../src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.ts | 1 -
.../src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts | 2 +-
fdm-calculator/src/norms/nl/2025/filling/input.test.ts | 2 +-
fdm-calculator/src/norms/nl/2025/filling/types.d.ts | 2 +-
5 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.test.ts
index e8971b26b..025ca76ee 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.test.ts
@@ -1,5 +1,5 @@
import { describe, it, expect } from "vitest"
-import type { Fertilizer, FertilizerApplication, Cultivation } from "@svenvw/fdm-core"
+import type { Fertilizer, FertilizerApplication } from "@svenvw/fdm-core"
import { calculateFertilizerApplicationFillingForManure } from "./dierlijke-mest-gebruiksnorm"
import type { NL2025NormsFillingInput } from "./types"
diff --git a/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.ts
index 65b7c6678..f6af73022 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/dierlijke-mest-gebruiksnorm.ts
@@ -1,7 +1,6 @@
import Decimal from "decimal.js"
import { table11Mestcodes } from "./table-11-mestcodes"
import type { NormFilling, NL2025NormsFillingInput } from "./types"
-import type { Fertilizer, FertilizerApplication } from "@svenvw/fdm-core"
/**
* Calculates the nitrogen usage from animal manure for a list of fertilizer applications.
diff --git a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
index 005a65c41..a7630ed1b 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/fosfaatgebruiksnorm.test.ts
@@ -1,5 +1,5 @@
import { describe, it, expect } from "vitest"
-import type { Fertilizer, FertilizerApplication, Cultivation } from "@svenvw/fdm-core"
+import type { Fertilizer, FertilizerApplication} from "@svenvw/fdm-core"
import { calculateFertilizerApplicationFillingForPhosphate } from "./fosfaatgebruiksnorm"
import type { NL2025NormsFillingInput } from "./types"
diff --git a/fdm-calculator/src/norms/nl/2025/filling/input.test.ts b/fdm-calculator/src/norms/nl/2025/filling/input.test.ts
index a28ae0e7d..ed34e5021 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/input.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/input.test.ts
@@ -1,4 +1,4 @@
-import { describe, it, expect, vi, beforeEach, afterEach } from "vitest"
+import { describe, it, expect, vi, beforeEach} from "vitest"
import { collectInputForFertilizerApplicationFilling } from "./input"
import type {
FdmType,
diff --git a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
index 95ffe7028..86054911c 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
@@ -1,5 +1,5 @@
import type { fdmSchema } from "@svenvw/fdm-core"
-import { RegionKey } from "../types"
+import type { RegionKey } from "../types"
export type NormFilling = {
normFilling: number
From 7b44f22b8275a2c4372479ace0f1efd4e690a1a3 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 16:36:41 +0200
Subject: [PATCH 067/243] chore: restructure files
---
fdm-calculator/src/index.ts | 6 +++---
fdm-calculator/src/norms/farm.test.ts | 2 +-
fdm-calculator/src/norms/farm.ts | 2 +-
fdm-calculator/src/norms/index.test.ts | 8 ++++----
fdm-calculator/src/norms/index.ts | 8 ++++----
.../2025/filling/stikstofgebruiksnorm.test.ts | 4 ++--
.../nl/2025/filling/stikstofgebruiksnorm.ts | 18 ++++++++++++++----
.../src/norms/nl/2025/filling/types.d.ts | 2 +-
.../dierlijke-mest-gebruiksnorm.test.ts | 0
.../{ => value}/dierlijke-mest-gebruiksnorm.ts | 4 ++--
.../{ => value}/fosfaatgebruiksnorm-data.ts | 0
.../{ => value}/fosfaatgebruiksnorm.test.ts | 0
.../nl/2025/{ => value}/fosfaatgebruiksnorm.ts | 0
.../nl/2025/{ => value}/hoofdteelt.test.ts | 0
.../norms/nl/2025/{ => value}/hoofdteelt.ts | 0
.../norms/nl/2025/{ => value}/input.test.ts | 0
.../src/norms/nl/2025/{ => value}/input.ts | 0
.../{ => value}/stikstofgebruiksnorm-data.ts | 0
.../{ => value}/stikstofgebruiksnorm.test.ts | 0
.../2025/{ => value}/stikstofgebruiksnorm.ts | 4 ++--
.../src/norms/nl/2025/{ => value}/types.d.ts | 0
21 files changed, 34 insertions(+), 24 deletions(-)
rename fdm-calculator/src/norms/nl/2025/{ => value}/dierlijke-mest-gebruiksnorm.test.ts (100%)
rename fdm-calculator/src/norms/nl/2025/{ => value}/dierlijke-mest-gebruiksnorm.ts (98%)
rename fdm-calculator/src/norms/nl/2025/{ => value}/fosfaatgebruiksnorm-data.ts (100%)
rename fdm-calculator/src/norms/nl/2025/{ => value}/fosfaatgebruiksnorm.test.ts (100%)
rename fdm-calculator/src/norms/nl/2025/{ => value}/fosfaatgebruiksnorm.ts (100%)
rename fdm-calculator/src/norms/nl/2025/{ => value}/hoofdteelt.test.ts (100%)
rename fdm-calculator/src/norms/nl/2025/{ => value}/hoofdteelt.ts (100%)
rename fdm-calculator/src/norms/nl/2025/{ => value}/input.test.ts (100%)
rename fdm-calculator/src/norms/nl/2025/{ => value}/input.ts (100%)
rename fdm-calculator/src/norms/nl/2025/{ => value}/stikstofgebruiksnorm-data.ts (100%)
rename fdm-calculator/src/norms/nl/2025/{ => value}/stikstofgebruiksnorm.test.ts (100%)
rename fdm-calculator/src/norms/nl/2025/{ => value}/stikstofgebruiksnorm.ts (99%)
rename fdm-calculator/src/norms/nl/2025/{ => value}/types.d.ts (100%)
diff --git a/fdm-calculator/src/index.ts b/fdm-calculator/src/index.ts
index 0d0eaa3d6..9c5ef4534 100644
--- a/fdm-calculator/src/index.ts
+++ b/fdm-calculator/src/index.ts
@@ -27,12 +27,12 @@ export type { AggregatedNormsToFarmLevel } from "./norms/farm"
export {
isFieldInGWGBGebied,
isFieldInNatura2000Gebied,
-} from "./norms/nl/2025/dierlijke-mest-gebruiksnorm"
+} from "./norms/nl/2025/value/dierlijke-mest-gebruiksnorm"
export {
getRegion,
isFieldInNVGebied,
-} from "./norms/nl/2025/stikstofgebruiksnorm"
+} from "./norms/nl/2025/value/stikstofgebruiksnorm"
export type {
GebruiksnormResult,
NL2025NormsInput,
-} from "./norms/nl/2025/types.d"
+} from "./norms/nl/2025/value/types"
diff --git a/fdm-calculator/src/norms/farm.test.ts b/fdm-calculator/src/norms/farm.test.ts
index 1e0f83a95..326a93478 100644
--- a/fdm-calculator/src/norms/farm.test.ts
+++ b/fdm-calculator/src/norms/farm.test.ts
@@ -1,6 +1,6 @@
import { describe, expect, it } from "vitest"
import { aggregateNormsToFarmLevel } from "./farm"
-import type { GebruiksnormResult } from "./nl/2025/types"
+import type { GebruiksnormResult } from "./nl/2025/value/types"
describe("aggregateNormsToFarmLevel", () => {
it("should correctly aggregate norms from multiple fields", () => {
diff --git a/fdm-calculator/src/norms/farm.ts b/fdm-calculator/src/norms/farm.ts
index 3890b0c10..3692ef5ef 100644
--- a/fdm-calculator/src/norms/farm.ts
+++ b/fdm-calculator/src/norms/farm.ts
@@ -1,5 +1,5 @@
import { Decimal } from "decimal.js"
-import type { GebruiksnormResult } from "./nl/2025/types"
+import type { GebruiksnormResult } from "./nl/2025/value/types"
/**
* Represents the input structure for the `aggregateNormsToFarmLevel` function.
diff --git a/fdm-calculator/src/norms/index.test.ts b/fdm-calculator/src/norms/index.test.ts
index fa93d8245..d26e44b3d 100644
--- a/fdm-calculator/src/norms/index.test.ts
+++ b/fdm-calculator/src/norms/index.test.ts
@@ -4,10 +4,10 @@ import {
createFunctionsForFertilizerApplicationFilling,
createFunctionsForNorms,
} from "./index"
-import { getNL2025DierlijkeMestGebruiksNorm } from "./nl/2025/dierlijke-mest-gebruiksnorm"
-import { getNL2025FosfaatGebruiksNorm } from "./nl/2025/fosfaatgebruiksnorm"
-import { collectNL2025InputForNorms } from "./nl/2025/input"
-import { getNL2025StikstofGebruiksNorm } from "./nl/2025/stikstofgebruiksnorm"
+import { getNL2025DierlijkeMestGebruiksNorm } from "./nl/2025/value/dierlijke-mest-gebruiksnorm"
+import { getNL2025FosfaatGebruiksNorm } from "./nl/2025/value/fosfaatgebruiksnorm"
+import { collectNL2025InputForNorms } from "./nl/2025/value/input"
+import { getNL2025StikstofGebruiksNorm } from "./nl/2025/value/stikstofgebruiksnorm"
import { calculateFertilizerApplicationFillingForPhosphate } from "./nl/2025/filling/fosfaatgebruiksnorm"
import { calculateFertilizerApplicationFillingForManure } from "./nl/2025/filling/dierlijke-mest-gebruiksnorm"
import { calculateFertilizerApplicationFillingForNitrogen } from "./nl/2025/filling/stikstofgebruiksnorm"
diff --git a/fdm-calculator/src/norms/index.ts b/fdm-calculator/src/norms/index.ts
index 74dfc3393..fee1158b8 100644
--- a/fdm-calculator/src/norms/index.ts
+++ b/fdm-calculator/src/norms/index.ts
@@ -1,12 +1,12 @@
import { aggregateNormsToFarmLevel } from "./farm"
-import { getNL2025DierlijkeMestGebruiksNorm } from "./nl/2025/dierlijke-mest-gebruiksnorm"
+import { getNL2025DierlijkeMestGebruiksNorm } from "./nl/2025/value/dierlijke-mest-gebruiksnorm"
import { calculateFertilizerApplicationFillingForManure } from "./nl/2025/filling/dierlijke-mest-gebruiksnorm"
import { calculateFertilizerApplicationFillingForPhosphate } from "./nl/2025/filling/fosfaatgebruiksnorm"
import { collectInputForFertilizerApplicationFilling } from "./nl/2025/filling/input"
import { calculateFertilizerApplicationFillingForNitrogen } from "./nl/2025/filling/stikstofgebruiksnorm"
-import { getNL2025FosfaatGebruiksNorm } from "./nl/2025/fosfaatgebruiksnorm"
-import { collectNL2025InputForNorms } from "./nl/2025/input"
-import { getNL2025StikstofGebruiksNorm } from "./nl/2025/stikstofgebruiksnorm"
+import { getNL2025FosfaatGebruiksNorm } from "./nl/2025/value/fosfaatgebruiksnorm"
+import { collectNL2025InputForNorms } from "./nl/2025/value/input"
+import { getNL2025StikstofGebruiksNorm } from "./nl/2025/value/stikstofgebruiksnorm"
export function createFunctionsForNorms(b_region: "NL", year: "2025") {
if (b_region === "NL") {
diff --git a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts
index 11cccbfbd..ef58da9b1 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.test.ts
@@ -4,13 +4,13 @@ import {
isBouwland,
getWorkingCoefficient,
} from "./stikstofgebruiksnorm"
-import { getRegion } from "../stikstofgebruiksnorm"
+import { getRegion } from "../value/stikstofgebruiksnorm"
import type {
Fertilizer,
FertilizerApplication,
Cultivation,
} from "@svenvw/fdm-core"
-import type { RegionKey } from "../types"
+import type { RegionKey } from "../value/types"
import type { NL2025NormsFillingInput } from "./types"
// Mock getRegion
diff --git a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
index 0f7c4b258..4700b73d5 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/stikstofgebruiksnorm.ts
@@ -1,9 +1,13 @@
import type { Cultivation } from "@svenvw/fdm-core"
-import type { NormFilling, WorkingCoefficientDetails, NL2025NormsFillingInput } from "./types"
+import type {
+ NormFilling,
+ WorkingCoefficientDetails,
+ NL2025NormsFillingInput,
+} from "./types"
import { table11Mestcodes } from "./table-11-mestcodes"
import { table9 } from "./table-9"
-import { getRegion } from "../stikstofgebruiksnorm"
-import type { RegionKey } from "../types"
+import { getRegion } from "../value/stikstofgebruiksnorm"
+import type { RegionKey } from "../value/types"
import Decimal from "decimal.js"
/**
@@ -18,7 +22,13 @@ import Decimal from "decimal.js"
export async function calculateFertilizerApplicationFillingForNitrogen(
input: NL2025NormsFillingInput,
): Promise {
- const { applications, fertilizers, b_centroid, has_grazining_intention, cultivations } = input;
+ const {
+ applications,
+ fertilizers,
+ b_centroid,
+ has_grazining_intention,
+ cultivations,
+ } = input
const applicationFillings: NormFilling["applicationFilling"] = []
let totalNormFilling = new Decimal(0)
diff --git a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
index 86054911c..2af89c4c2 100644
--- a/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
+++ b/fdm-calculator/src/norms/nl/2025/filling/types.d.ts
@@ -1,5 +1,5 @@
import type { fdmSchema } from "@svenvw/fdm-core"
-import type { RegionKey } from "../types"
+import type { RegionKey } from "../value/types"
export type NormFilling = {
normFilling: number
diff --git a/fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/value/dierlijke-mest-gebruiksnorm.test.ts
similarity index 100%
rename from fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.test.ts
rename to fdm-calculator/src/norms/nl/2025/value/dierlijke-mest-gebruiksnorm.test.ts
diff --git a/fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/value/dierlijke-mest-gebruiksnorm.ts
similarity index 98%
rename from fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.ts
rename to fdm-calculator/src/norms/nl/2025/value/dierlijke-mest-gebruiksnorm.ts
index c6046ec16..c668d026d 100644
--- a/fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/value/dierlijke-mest-gebruiksnorm.ts
@@ -1,6 +1,6 @@
import type { Field } from "@svenvw/fdm-core"
-import { getGeoTiffValue } from "../../../shared/geotiff"
-import { getFdmPublicDataUrl } from "../../../shared/public-data-url"
+import { getGeoTiffValue } from "../../../../shared/geotiff"
+import { getFdmPublicDataUrl } from "../../../../shared/public-data-url"
import { isFieldInNVGebied } from "./stikstofgebruiksnorm"
import type {
DierlijkeMestGebruiksnormResult,
diff --git a/fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm-data.ts b/fdm-calculator/src/norms/nl/2025/value/fosfaatgebruiksnorm-data.ts
similarity index 100%
rename from fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm-data.ts
rename to fdm-calculator/src/norms/nl/2025/value/fosfaatgebruiksnorm-data.ts
diff --git a/fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/value/fosfaatgebruiksnorm.test.ts
similarity index 100%
rename from fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm.test.ts
rename to fdm-calculator/src/norms/nl/2025/value/fosfaatgebruiksnorm.test.ts
diff --git a/fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/value/fosfaatgebruiksnorm.ts
similarity index 100%
rename from fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm.ts
rename to fdm-calculator/src/norms/nl/2025/value/fosfaatgebruiksnorm.ts
diff --git a/fdm-calculator/src/norms/nl/2025/hoofdteelt.test.ts b/fdm-calculator/src/norms/nl/2025/value/hoofdteelt.test.ts
similarity index 100%
rename from fdm-calculator/src/norms/nl/2025/hoofdteelt.test.ts
rename to fdm-calculator/src/norms/nl/2025/value/hoofdteelt.test.ts
diff --git a/fdm-calculator/src/norms/nl/2025/hoofdteelt.ts b/fdm-calculator/src/norms/nl/2025/value/hoofdteelt.ts
similarity index 100%
rename from fdm-calculator/src/norms/nl/2025/hoofdteelt.ts
rename to fdm-calculator/src/norms/nl/2025/value/hoofdteelt.ts
diff --git a/fdm-calculator/src/norms/nl/2025/input.test.ts b/fdm-calculator/src/norms/nl/2025/value/input.test.ts
similarity index 100%
rename from fdm-calculator/src/norms/nl/2025/input.test.ts
rename to fdm-calculator/src/norms/nl/2025/value/input.test.ts
diff --git a/fdm-calculator/src/norms/nl/2025/input.ts b/fdm-calculator/src/norms/nl/2025/value/input.ts
similarity index 100%
rename from fdm-calculator/src/norms/nl/2025/input.ts
rename to fdm-calculator/src/norms/nl/2025/value/input.ts
diff --git a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm-data.ts b/fdm-calculator/src/norms/nl/2025/value/stikstofgebruiksnorm-data.ts
similarity index 100%
rename from fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm-data.ts
rename to fdm-calculator/src/norms/nl/2025/value/stikstofgebruiksnorm-data.ts
diff --git a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/value/stikstofgebruiksnorm.test.ts
similarity index 100%
rename from fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.test.ts
rename to fdm-calculator/src/norms/nl/2025/value/stikstofgebruiksnorm.test.ts
diff --git a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/value/stikstofgebruiksnorm.ts
similarity index 99%
rename from fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.ts
rename to fdm-calculator/src/norms/nl/2025/value/stikstofgebruiksnorm.ts
index 4c3a8e7ea..4b351c056 100644
--- a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/value/stikstofgebruiksnorm.ts
@@ -1,7 +1,7 @@
import type { Field } from "@svenvw/fdm-core"
import Decimal from "decimal.js"
-import { getGeoTiffValue } from "../../../shared/geotiff"
-import { getFdmPublicDataUrl } from "../../../shared/public-data-url"
+import { getGeoTiffValue } from "../../../../shared/geotiff"
+import { getFdmPublicDataUrl } from "../../../../shared/public-data-url"
import { determineNL2025Hoofdteelt } from "./hoofdteelt"
import { nitrogenStandardsData } from "./stikstofgebruiksnorm-data"
import type {
diff --git a/fdm-calculator/src/norms/nl/2025/types.d.ts b/fdm-calculator/src/norms/nl/2025/value/types.d.ts
similarity index 100%
rename from fdm-calculator/src/norms/nl/2025/types.d.ts
rename to fdm-calculator/src/norms/nl/2025/value/types.d.ts
From b5640fee80c9a937c7445a91a54a1942336129b2 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 16:37:52 +0200
Subject: [PATCH 068/243] chore: remove db migration for easier git merge
---
fdm-core/src/db/migrations/0015_new_stick.sql | 31 -
.../src/db/migrations/meta/0015_snapshot.json | 3376 -----------------
fdm-core/src/db/migrations/meta/_journal.json | 227 +-
3 files changed, 110 insertions(+), 3524 deletions(-)
delete mode 100644 fdm-core/src/db/migrations/0015_new_stick.sql
delete mode 100644 fdm-core/src/db/migrations/meta/0015_snapshot.json
diff --git a/fdm-core/src/db/migrations/0015_new_stick.sql b/fdm-core/src/db/migrations/0015_new_stick.sql
deleted file mode 100644
index f9cafee14..000000000
--- a/fdm-core/src/db/migrations/0015_new_stick.sql
+++ /dev/null
@@ -1,31 +0,0 @@
-CREATE TYPE "fdm"."p_type_rvo" AS ENUM('10', '11', '12', '13', '14', '17', '18', '19', '23', '30', '31', '32', '33', '35', '39', '40', '41', '42', '43', '46', '50', '56', '60', '61', '75', '76', '80', '81', '90', '91', '92', '25', '26', '27', '95', '96', '97', '98', '99', '100', '101', '102', '103', '104', '105', '106', '107', '108', '109', '110', '111', '112', '113', '114', '115', '116', '117', '120');--> statement-breakpoint
-CREATE TABLE "fdm"."intending_grazing" (
- "b_id_farm" text NOT NULL,
- "b_grazing_intention" boolean,
- "b_grazing_intention_year" integer NOT NULL,
- "created" timestamp with time zone DEFAULT now() NOT NULL,
- "updated" timestamp with time zone,
- CONSTRAINT "intending_grazing_b_id_farm_b_grazing_intention_year_pk" PRIMARY KEY("b_id_farm","b_grazing_intention_year")
-);
---> statement-breakpoint
-CREATE TABLE "fdm"."organic_certifications" (
- "b_id_organic" text PRIMARY KEY NOT NULL,
- "b_organic_traces" text,
- "b_organic_skal" text,
- "b_organic_issued" timestamp with time zone,
- "b_organic_expires" timestamp with time zone,
- "created" timestamp with time zone DEFAULT now() NOT NULL,
- "updated" timestamp with time zone
-);
---> statement-breakpoint
-CREATE TABLE "fdm"."organic_certifications_holding" (
- "b_id_farm" text NOT NULL,
- "b_id_organic" text NOT NULL,
- "created" timestamp with time zone DEFAULT now() NOT NULL,
- "updated" timestamp with time zone
-);
---> statement-breakpoint
-ALTER TABLE "fdm"."fertilizers_catalogue" ADD COLUMN "p_type_rvo" "fdm"."p_type_rvo";--> statement-breakpoint
-ALTER TABLE "fdm"."intending_grazing" ADD CONSTRAINT "intending_grazing_b_id_farm_farms_b_id_farm_fk" FOREIGN KEY ("b_id_farm") REFERENCES "fdm"."farms"("b_id_farm") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
-ALTER TABLE "fdm"."organic_certifications_holding" ADD CONSTRAINT "organic_certifications_holding_b_id_farm_farms_b_id_farm_fk" FOREIGN KEY ("b_id_farm") REFERENCES "fdm"."farms"("b_id_farm") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
-ALTER TABLE "fdm"."organic_certifications_holding" ADD CONSTRAINT "organic_certifications_holding_b_id_organic_organic_certifications_b_id_organic_fk" FOREIGN KEY ("b_id_organic") REFERENCES "fdm"."organic_certifications"("b_id_organic") ON DELETE no action ON UPDATE no action;
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/0015_snapshot.json b/fdm-core/src/db/migrations/meta/0015_snapshot.json
deleted file mode 100644
index 120c1390e..000000000
--- a/fdm-core/src/db/migrations/meta/0015_snapshot.json
+++ /dev/null
@@ -1,3376 +0,0 @@
-{
- "id": "ce358cf4-6c4f-4551-87de-35e01db3ed67",
- "prevId": "45dcb87d-89c8-4cf7-a504-0db74ba68640",
- "version": "7",
- "dialect": "postgresql",
- "tables": {
- "fdm.cultivation_catalogue_selecting": {
- "name": "cultivation_catalogue_selecting",
- "schema": "fdm",
- "columns": {
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_lu_source": {
- "name": "b_lu_source",
- "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": {},
- "foreignKeys": {
- "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk": {
- "name": "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk",
- "tableFrom": "cultivation_catalogue_selecting",
- "tableTo": "farms",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_farm"
- ],
- "columnsTo": [
- "b_id_farm"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.cultivation_ending": {
- "name": "cultivation_ending",
- "schema": "fdm",
- "columns": {
- "b_lu": {
- "name": "b_lu",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_lu_end": {
- "name": "b_lu_end",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": false
- },
- "m_cropresidue": {
- "name": "m_cropresidue",
- "type": "boolean",
- "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": {
- "cultivation_ending_b_lu_cultivations_b_lu_fk": {
- "name": "cultivation_ending_b_lu_cultivations_b_lu_fk",
- "tableFrom": "cultivation_ending",
- "tableTo": "cultivations",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_lu"
- ],
- "columnsTo": [
- "b_lu"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.cultivation_harvesting": {
- "name": "cultivation_harvesting",
- "schema": "fdm",
- "columns": {
- "b_id_harvesting": {
- "name": "b_id_harvesting",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_id_harvestable": {
- "name": "b_id_harvestable",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_lu": {
- "name": "b_lu",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_lu_harvest_date": {
- "name": "b_lu_harvest_date",
- "type": "timestamp with time zone",
- "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": {
- "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk": {
- "name": "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk",
- "tableFrom": "cultivation_harvesting",
- "tableTo": "harvestables",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_harvestable"
- ],
- "columnsTo": [
- "b_id_harvestable"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "cultivation_harvesting_b_lu_cultivations_b_lu_fk": {
- "name": "cultivation_harvesting_b_lu_cultivations_b_lu_fk",
- "tableFrom": "cultivation_harvesting",
- "tableTo": "cultivations",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_lu"
- ],
- "columnsTo": [
- "b_lu"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.cultivation_starting": {
- "name": "cultivation_starting",
- "schema": "fdm",
- "columns": {
- "b_id": {
- "name": "b_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_lu": {
- "name": "b_lu",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_lu_start": {
- "name": "b_lu_start",
- "type": "timestamp with time zone",
- "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": {
- "cultivation_starting_b_id_fields_b_id_fk": {
- "name": "cultivation_starting_b_id_fields_b_id_fk",
- "tableFrom": "cultivation_starting",
- "tableTo": "fields",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id"
- ],
- "columnsTo": [
- "b_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "cultivation_starting_b_lu_cultivations_b_lu_fk": {
- "name": "cultivation_starting_b_lu_cultivations_b_lu_fk",
- "tableFrom": "cultivation_starting",
- "tableTo": "cultivations",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_lu"
- ],
- "columnsTo": [
- "b_lu"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.cultivations": {
- "name": "cultivations",
- "schema": "fdm",
- "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
- },
- "b_lu_variety": {
- "name": "b_lu_variety",
- "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": {
- "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",
- "columnsFrom": [
- "b_lu_catalogue"
- ],
- "columnsTo": [
- "b_lu_catalogue"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.cultivations_catalogue": {
- "name": "cultivations_catalogue",
- "schema": "fdm",
- "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_harvestable": {
- "name": "b_lu_harvestable",
- "type": "b_lu_harvestable",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": true
- },
- "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
- },
- "b_lu_croprotation": {
- "name": "b_lu_croprotation",
- "type": "b_lu_croprotation",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_yield": {
- "name": "b_lu_yield",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_hi": {
- "name": "b_lu_hi",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_n_harvestable": {
- "name": "b_lu_n_harvestable",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_n_residue": {
- "name": "b_lu_n_residue",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_n_fixation": {
- "name": "b_n_fixation",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_rest_oravib": {
- "name": "b_lu_rest_oravib",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_variety_options": {
- "name": "b_lu_variety_options",
- "type": "text[]",
- "primaryKey": false,
- "notNull": false
- },
- "hash": {
- "name": "hash",
- "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": {
- "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": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.derogation_applying": {
- "name": "derogation_applying",
- "schema": "fdm",
- "columns": {
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_id_derogation": {
- "name": "b_id_derogation",
- "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": {},
- "foreignKeys": {
- "derogation_applying_b_id_farm_farms_b_id_farm_fk": {
- "name": "derogation_applying_b_id_farm_farms_b_id_farm_fk",
- "tableFrom": "derogation_applying",
- "tableTo": "farms",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_farm"
- ],
- "columnsTo": [
- "b_id_farm"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk": {
- "name": "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk",
- "tableFrom": "derogation_applying",
- "tableTo": "derogations",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_derogation"
- ],
- "columnsTo": [
- "b_id_derogation"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.derogations": {
- "name": "derogations",
- "schema": "fdm",
- "columns": {
- "b_id_derogation": {
- "name": "b_id_derogation",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_derogation_year": {
- "name": "b_derogation_year",
- "type": "integer",
- "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": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.farms": {
- "name": "farms",
- "schema": "fdm",
- "columns": {
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_name_farm": {
- "name": "b_name_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "b_businessid_farm": {
- "name": "b_businessid_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "b_address_farm": {
- "name": "b_address_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "b_postalcode_farm": {
- "name": "b_postalcode_farm",
- "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": {
- "b_id_farm_idx": {
- "name": "b_id_farm_idx",
- "columns": [
- {
- "expression": "b_id_farm",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fertilizer_acquiring": {
- "name": "fertilizer_acquiring",
- "schema": "fdm",
- "columns": {
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_id": {
- "name": "p_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_acquiring_amount": {
- "name": "p_acquiring_amount",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_acquiring_date": {
- "name": "p_acquiring_date",
- "type": "timestamp with time zone",
- "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": {
- "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk": {
- "name": "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk",
- "tableFrom": "fertilizer_acquiring",
- "tableTo": "farms",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_farm"
- ],
- "columnsTo": [
- "b_id_farm"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "fertilizer_acquiring_p_id_fertilizers_p_id_fk": {
- "name": "fertilizer_acquiring_p_id_fertilizers_p_id_fk",
- "tableFrom": "fertilizer_acquiring",
- "tableTo": "fertilizers",
- "schemaTo": "fdm",
- "columnsFrom": [
- "p_id"
- ],
- "columnsTo": [
- "p_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fertilizer_applying": {
- "name": "fertilizer_applying",
- "schema": "fdm",
- "columns": {
- "p_app_id": {
- "name": "p_app_id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_id": {
- "name": "b_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_id": {
- "name": "p_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_app_amount": {
- "name": "p_app_amount",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_app_method": {
- "name": "p_app_method",
- "type": "p_app_method",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": false
- },
- "p_app_date": {
- "name": "p_app_date",
- "type": "timestamp with time zone",
- "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": {
- "p_app_idx": {
- "name": "p_app_idx",
- "columns": [
- {
- "expression": "p_app_id",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {
- "fertilizer_applying_b_id_fields_b_id_fk": {
- "name": "fertilizer_applying_b_id_fields_b_id_fk",
- "tableFrom": "fertilizer_applying",
- "tableTo": "fields",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id"
- ],
- "columnsTo": [
- "b_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "fertilizer_applying_p_id_fertilizers_p_id_fk": {
- "name": "fertilizer_applying_p_id_fertilizers_p_id_fk",
- "tableFrom": "fertilizer_applying",
- "tableTo": "fertilizers",
- "schemaTo": "fdm",
- "columnsFrom": [
- "p_id"
- ],
- "columnsTo": [
- "p_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fertilizer_catalogue_enabling": {
- "name": "fertilizer_catalogue_enabling",
- "schema": "fdm",
- "columns": {
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_source": {
- "name": "p_source",
- "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": {},
- "foreignKeys": {
- "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk": {
- "name": "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk",
- "tableFrom": "fertilizer_catalogue_enabling",
- "tableTo": "farms",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_farm"
- ],
- "columnsTo": [
- "b_id_farm"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fertilizer_picking": {
- "name": "fertilizer_picking",
- "schema": "fdm",
- "columns": {
- "p_id": {
- "name": "p_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_id_catalogue": {
- "name": "p_id_catalogue",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_picking_date": {
- "name": "p_picking_date",
- "type": "timestamp with time zone",
- "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": {
- "fertilizer_picking_p_id_fertilizers_p_id_fk": {
- "name": "fertilizer_picking_p_id_fertilizers_p_id_fk",
- "tableFrom": "fertilizer_picking",
- "tableTo": "fertilizers",
- "schemaTo": "fdm",
- "columnsFrom": [
- "p_id"
- ],
- "columnsTo": [
- "p_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk": {
- "name": "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk",
- "tableFrom": "fertilizer_picking",
- "tableTo": "fertilizers_catalogue",
- "schemaTo": "fdm",
- "columnsFrom": [
- "p_id_catalogue"
- ],
- "columnsTo": [
- "p_id_catalogue"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fertilizers": {
- "name": "fertilizers",
- "schema": "fdm",
- "columns": {
- "p_id": {
- "name": "p_id",
- "type": "text",
- "primaryKey": true,
- "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": {
- "p_id_idx": {
- "name": "p_id_idx",
- "columns": [
- {
- "expression": "p_id",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fertilizers_catalogue": {
- "name": "fertilizers_catalogue",
- "schema": "fdm",
- "columns": {
- "p_id_catalogue": {
- "name": "p_id_catalogue",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "p_source": {
- "name": "p_source",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_name_nl": {
- "name": "p_name_nl",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "p_name_en": {
- "name": "p_name_en",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "p_description": {
- "name": "p_description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "p_app_method_options": {
- "name": "p_app_method_options",
- "type": "p_app_method[]",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": false
- },
- "p_dm": {
- "name": "p_dm",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_density": {
- "name": "p_density",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_om": {
- "name": "p_om",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_a": {
- "name": "p_a",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_hc": {
- "name": "p_hc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_eom": {
- "name": "p_eom",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_eoc": {
- "name": "p_eoc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_c_rt": {
- "name": "p_c_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_c_of": {
- "name": "p_c_of",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_c_if": {
- "name": "p_c_if",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_c_fr": {
- "name": "p_c_fr",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_cn_of": {
- "name": "p_cn_of",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_n_rt": {
- "name": "p_n_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_n_if": {
- "name": "p_n_if",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_n_of": {
- "name": "p_n_of",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_n_wc": {
- "name": "p_n_wc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_no3_rt": {
- "name": "p_no3_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_nh4_rt": {
- "name": "p_nh4_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_p_rt": {
- "name": "p_p_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_k_rt": {
- "name": "p_k_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_mg_rt": {
- "name": "p_mg_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_ca_rt": {
- "name": "p_ca_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_ne": {
- "name": "p_ne",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_s_rt": {
- "name": "p_s_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_s_wc": {
- "name": "p_s_wc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_cu_rt": {
- "name": "p_cu_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_zn_rt": {
- "name": "p_zn_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_na_rt": {
- "name": "p_na_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_si_rt": {
- "name": "p_si_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_b_rt": {
- "name": "p_b_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_mn_rt": {
- "name": "p_mn_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_ni_rt": {
- "name": "p_ni_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_fe_rt": {
- "name": "p_fe_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_mo_rt": {
- "name": "p_mo_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_co_rt": {
- "name": "p_co_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_as_rt": {
- "name": "p_as_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_cd_rt": {
- "name": "p_cd_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_cr_rt": {
- "name": "p_cr_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_cr_vi": {
- "name": "p_cr_vi",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_pb_rt": {
- "name": "p_pb_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_hg_rt": {
- "name": "p_hg_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_cl_rt": {
- "name": "p_cl_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_ef_nh3": {
- "name": "p_ef_nh3",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "p_type_manure": {
- "name": "p_type_manure",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "p_type_mineral": {
- "name": "p_type_mineral",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "p_type_compost": {
- "name": "p_type_compost",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "p_type_rvo": {
- "name": "p_type_rvo",
- "type": "p_type_rvo",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": false
- },
- "hash": {
- "name": "hash",
- "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": {
- "p_id_catalogue_idx": {
- "name": "p_id_catalogue_idx",
- "columns": [
- {
- "expression": "p_id_catalogue",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.field_acquiring": {
- "name": "field_acquiring",
- "schema": "fdm",
- "columns": {
- "b_id": {
- "name": "b_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_start": {
- "name": "b_start",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": false
- },
- "b_acquiring_method": {
- "name": "b_acquiring_method",
- "type": "b_acquiring_method",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": true,
- "default": "'unknown'"
- },
- "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_acquiring_b_id_fields_b_id_fk": {
- "name": "field_acquiring_b_id_fields_b_id_fk",
- "tableFrom": "field_acquiring",
- "tableTo": "fields",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id"
- ],
- "columnsTo": [
- "b_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "field_acquiring_b_id_farm_farms_b_id_farm_fk": {
- "name": "field_acquiring_b_id_farm_farms_b_id_farm_fk",
- "tableFrom": "field_acquiring",
- "tableTo": "farms",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_farm"
- ],
- "columnsTo": [
- "b_id_farm"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.field_discarding": {
- "name": "field_discarding",
- "schema": "fdm",
- "columns": {
- "b_id": {
- "name": "b_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_end": {
- "name": "b_end",
- "type": "timestamp with time zone",
- "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_discarding_b_id_fields_b_id_fk": {
- "name": "field_discarding_b_id_fields_b_id_fk",
- "tableFrom": "field_discarding",
- "tableTo": "fields",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id"
- ],
- "columnsTo": [
- "b_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.fields": {
- "name": "fields",
- "schema": "fdm",
- "columns": {
- "b_id": {
- "name": "b_id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_name": {
- "name": "b_name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_geometry": {
- "name": "b_geometry",
- "type": "geometry(Polygon,4326)",
- "primaryKey": false,
- "notNull": false
- },
- "b_id_source": {
- "name": "b_id_source",
- "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": {
- "b_id_idx": {
- "name": "b_id_idx",
- "columns": [
- {
- "expression": "b_id",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- },
- "b_geom_idx": {
- "name": "b_geom_idx",
- "columns": [
- {
- "expression": "b_geometry",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": false,
- "concurrently": false,
- "method": "gist",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.harvestable_analyses": {
- "name": "harvestable_analyses",
- "schema": "fdm",
- "columns": {
- "b_id_harvestable_analysis": {
- "name": "b_id_harvestable_analysis",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_lu_yield": {
- "name": "b_lu_yield",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_n_harvestable": {
- "name": "b_lu_n_harvestable",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_n_residue": {
- "name": "b_lu_n_residue",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_p_harvestable": {
- "name": "b_lu_p_harvestable",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_p_residue": {
- "name": "b_lu_p_residue",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_k_harvestable": {
- "name": "b_lu_k_harvestable",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_lu_k_residue": {
- "name": "b_lu_k_residue",
- "type": "numeric",
- "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": {
- "b_id_harvestable_analyses_idx": {
- "name": "b_id_harvestable_analyses_idx",
- "columns": [
- {
- "expression": "b_id_harvestable_analysis",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.harvestable_sampling": {
- "name": "harvestable_sampling",
- "schema": "fdm",
- "columns": {
- "b_id_harvestable": {
- "name": "b_id_harvestable",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_id_harvestable_analysis": {
- "name": "b_id_harvestable_analysis",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_sampling_date": {
- "name": "b_sampling_date",
- "type": "timestamp with time zone",
- "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": {
- "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk": {
- "name": "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk",
- "tableFrom": "harvestable_sampling",
- "tableTo": "harvestables",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_harvestable"
- ],
- "columnsTo": [
- "b_id_harvestable"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk": {
- "name": "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk",
- "tableFrom": "harvestable_sampling",
- "tableTo": "harvestable_analyses",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_harvestable_analysis"
- ],
- "columnsTo": [
- "b_id_harvestable_analysis"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.harvestables": {
- "name": "harvestables",
- "schema": "fdm",
- "columns": {
- "b_id_harvestable": {
- "name": "b_id_harvestable",
- "type": "text",
- "primaryKey": true,
- "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_id_harvestable_idx": {
- "name": "b_id_harvestable_idx",
- "columns": [
- {
- "expression": "b_id_harvestable",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": true,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.intending_grazing": {
- "name": "intending_grazing",
- "schema": "fdm",
- "columns": {
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_grazing_intention": {
- "name": "b_grazing_intention",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "b_grazing_intention_year": {
- "name": "b_grazing_intention_year",
- "type": "integer",
- "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": {},
- "foreignKeys": {
- "intending_grazing_b_id_farm_farms_b_id_farm_fk": {
- "name": "intending_grazing_b_id_farm_farms_b_id_farm_fk",
- "tableFrom": "intending_grazing",
- "tableTo": "farms",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_farm"
- ],
- "columnsTo": [
- "b_id_farm"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {
- "intending_grazing_b_id_farm_b_grazing_intention_year_pk": {
- "name": "intending_grazing_b_id_farm_b_grazing_intention_year_pk",
- "columns": [
- "b_id_farm",
- "b_grazing_intention_year"
- ]
- }
- },
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.organic_certifications": {
- "name": "organic_certifications",
- "schema": "fdm",
- "columns": {
- "b_id_organic": {
- "name": "b_id_organic",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_organic_traces": {
- "name": "b_organic_traces",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "b_organic_skal": {
- "name": "b_organic_skal",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "b_organic_issued": {
- "name": "b_organic_issued",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": false
- },
- "b_organic_expires": {
- "name": "b_organic_expires",
- "type": "timestamp with time zone",
- "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": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.organic_certifications_holding": {
- "name": "organic_certifications_holding",
- "schema": "fdm",
- "columns": {
- "b_id_farm": {
- "name": "b_id_farm",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "b_id_organic": {
- "name": "b_id_organic",
- "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": {},
- "foreignKeys": {
- "organic_certifications_holding_b_id_farm_farms_b_id_farm_fk": {
- "name": "organic_certifications_holding_b_id_farm_farms_b_id_farm_fk",
- "tableFrom": "organic_certifications_holding",
- "tableTo": "farms",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_farm"
- ],
- "columnsTo": [
- "b_id_farm"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "organic_certifications_holding_b_id_organic_organic_certifications_b_id_organic_fk": {
- "name": "organic_certifications_holding_b_id_organic_organic_certifications_b_id_organic_fk",
- "tableFrom": "organic_certifications_holding",
- "tableTo": "organic_certifications",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id_organic"
- ],
- "columnsTo": [
- "b_id_organic"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.soil_analysis": {
- "name": "soil_analysis",
- "schema": "fdm",
- "columns": {
- "a_id": {
- "name": "a_id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "a_date": {
- "name": "a_date",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": false
- },
- "a_source": {
- "name": "a_source",
- "type": "a_source",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": false,
- "default": "'other'"
- },
- "a_al_ox": {
- "name": "a_al_ox",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_c_of": {
- "name": "a_c_of",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_ca_co": {
- "name": "a_ca_co",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_ca_co_po": {
- "name": "a_ca_co_po",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_caco3_if": {
- "name": "a_caco3_if",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_cec_co": {
- "name": "a_cec_co",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_clay_mi": {
- "name": "a_clay_mi",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_cn_fr": {
- "name": "a_cn_fr",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_com_fr": {
- "name": "a_com_fr",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_cu_cc": {
- "name": "a_cu_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_density_sa": {
- "name": "a_density_sa",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_fe_ox": {
- "name": "a_fe_ox",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_k_cc": {
- "name": "a_k_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_k_co": {
- "name": "a_k_co",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_k_co_po": {
- "name": "a_k_co_po",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_mg_cc": {
- "name": "a_mg_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_mg_co": {
- "name": "a_mg_co",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_mg_co_po": {
- "name": "a_mg_co_po",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_n_pmn": {
- "name": "a_n_pmn",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_n_rt": {
- "name": "a_n_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_nh4_cc": {
- "name": "a_nh4_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_nmin_cc": {
- "name": "a_nmin_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_no3_cc": {
- "name": "a_no3_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_p_al": {
- "name": "a_p_al",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_p_cc": {
- "name": "a_p_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_p_ox": {
- "name": "a_p_ox",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_p_rt": {
- "name": "a_p_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_p_sg": {
- "name": "a_p_sg",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_p_wa": {
- "name": "a_p_wa",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_ph_cc": {
- "name": "a_ph_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_s_rt": {
- "name": "a_s_rt",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_sand_mi": {
- "name": "a_sand_mi",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_silt_mi": {
- "name": "a_silt_mi",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_som_loi": {
- "name": "a_som_loi",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "a_zn_cc": {
- "name": "a_zn_cc",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_gwl_class": {
- "name": "b_gwl_class",
- "type": "b_gwl_class",
- "typeSchema": "fdm",
- "primaryKey": false,
- "notNull": false
- },
- "b_soiltype_agr": {
- "name": "b_soiltype_agr",
- "type": "b_soiltype_agr",
- "typeSchema": "fdm",
- "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": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm.soil_sampling": {
- "name": "soil_sampling",
- "schema": "fdm",
- "columns": {
- "b_id_sampling": {
- "name": "b_id_sampling",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "b_id": {
- "name": "b_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "a_id": {
- "name": "a_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "a_depth_upper": {
- "name": "a_depth_upper",
- "type": "numeric",
- "primaryKey": false,
- "notNull": true,
- "default": 0
- },
- "a_depth_lower": {
- "name": "a_depth_lower",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "b_sampling_date": {
- "name": "b_sampling_date",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": false
- },
- "b_sampling_geometry": {
- "name": "b_sampling_geometry",
- "type": "geometry(MultiPoint,4326)",
- "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": {
- "soil_sampling_b_id_fields_b_id_fk": {
- "name": "soil_sampling_b_id_fields_b_id_fk",
- "tableFrom": "soil_sampling",
- "tableTo": "fields",
- "schemaTo": "fdm",
- "columnsFrom": [
- "b_id"
- ],
- "columnsTo": [
- "b_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "soil_sampling_a_id_soil_analysis_a_id_fk": {
- "name": "soil_sampling_a_id_soil_analysis_a_id_fk",
- "tableFrom": "soil_sampling",
- "tableTo": "soil_analysis",
- "schemaTo": "fdm",
- "columnsFrom": [
- "a_id"
- ],
- "columnsTo": [
- "a_id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.account": {
- "name": "account",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "account_id": {
- "name": "account_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "provider_id": {
- "name": "provider_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "access_token": {
- "name": "access_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token": {
- "name": "refresh_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "id_token": {
- "name": "id_token",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "access_token_expires_at": {
- "name": "access_token_expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "refresh_token_expires_at": {
- "name": "refresh_token_expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "scope": {
- "name": "scope",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "password": {
- "name": "password",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "account_user_id_user_id_fk": {
- "name": "account_user_id_user_id_fk",
- "tableFrom": "account",
- "tableTo": "user",
- "schemaTo": "fdm-authn",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.invitation": {
- "name": "invitation",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "organization_id": {
- "name": "organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "email": {
- "name": "email",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "status": {
- "name": "status",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "inviter_id": {
- "name": "inviter_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "invitation_organization_id_organization_id_fk": {
- "name": "invitation_organization_id_organization_id_fk",
- "tableFrom": "invitation",
- "tableTo": "organization",
- "schemaTo": "fdm-authn",
- "columnsFrom": [
- "organization_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "invitation_inviter_id_user_id_fk": {
- "name": "invitation_inviter_id_user_id_fk",
- "tableFrom": "invitation",
- "tableTo": "user",
- "schemaTo": "fdm-authn",
- "columnsFrom": [
- "inviter_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.member": {
- "name": "member",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "organization_id": {
- "name": "organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "member_organization_id_organization_id_fk": {
- "name": "member_organization_id_organization_id_fk",
- "tableFrom": "member",
- "tableTo": "organization",
- "schemaTo": "fdm-authn",
- "columnsFrom": [
- "organization_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- },
- "member_user_id_user_id_fk": {
- "name": "member_user_id_user_id_fk",
- "tableFrom": "member",
- "tableTo": "user",
- "schemaTo": "fdm-authn",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.organization": {
- "name": "organization",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "slug": {
- "name": "slug",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "logo": {
- "name": "logo",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "metadata": {
- "name": "metadata",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "organization_slug_unique": {
- "name": "organization_slug_unique",
- "nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.rate_limit": {
- "name": "rate_limit",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "key": {
- "name": "key",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "count": {
- "name": "count",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "last_request": {
- "name": "last_request",
- "type": "bigint",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.session": {
- "name": "session",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "token": {
- "name": "token",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "ip_address": {
- "name": "ip_address",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "user_agent": {
- "name": "user_agent",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "user_id": {
- "name": "user_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "active_organization_id": {
- "name": "active_organization_id",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "session_user_id_user_id_fk": {
- "name": "session_user_id_user_id_fk",
- "tableFrom": "session",
- "tableTo": "user",
- "schemaTo": "fdm-authn",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "cascade",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "session_token_unique": {
- "name": "session_token_unique",
- "nullsNotDistinct": false,
- "columns": [
- "token"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.user": {
- "name": "user",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "email": {
- "name": "email",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "email_verified": {
- "name": "email_verified",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true
- },
- "image": {
- "name": "image",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "username": {
- "name": "username",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "display_username": {
- "name": "display_username",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "firstname": {
- "name": "firstname",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "surname": {
- "name": "surname",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "lang": {
- "name": "lang",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "farm_active": {
- "name": "farm_active",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {
- "user_email_unique": {
- "name": "user_email_unique",
- "nullsNotDistinct": false,
- "columns": [
- "email"
- ]
- },
- "user_username_unique": {
- "name": "user_username_unique",
- "nullsNotDistinct": false,
- "columns": [
- "username"
- ]
- }
- },
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authn.verification": {
- "name": "verification",
- "schema": "fdm-authn",
- "columns": {
- "id": {
- "name": "id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "identifier": {
- "name": "identifier",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "value": {
- "name": "value",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "expires_at": {
- "name": "expires_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authz.audit": {
- "name": "audit",
- "schema": "fdm-authz",
- "columns": {
- "audit_id": {
- "name": "audit_id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "audit_timestamp": {
- "name": "audit_timestamp",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- },
- "audit_origin": {
- "name": "audit_origin",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "principal_id": {
- "name": "principal_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "target_resource": {
- "name": "target_resource",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "target_resource_id": {
- "name": "target_resource_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "granting_resource": {
- "name": "granting_resource",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "granting_resource_id": {
- "name": "granting_resource_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "action": {
- "name": "action",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "allowed": {
- "name": "allowed",
- "type": "boolean",
- "primaryKey": false,
- "notNull": true
- },
- "duration": {
- "name": "duration",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- },
- "fdm-authz.role": {
- "name": "role",
- "schema": "fdm-authz",
- "columns": {
- "role_id": {
- "name": "role_id",
- "type": "text",
- "primaryKey": true,
- "notNull": true
- },
- "resource": {
- "name": "resource",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "resource_id": {
- "name": "resource_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "principal_id": {
- "name": "principal_id",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "role": {
- "name": "role",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "created": {
- "name": "created",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- },
- "deleted": {
- "name": "deleted",
- "type": "timestamp with time zone",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {
- "role_idx": {
- "name": "role_idx",
- "columns": [
- {
- "expression": "resource",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- },
- {
- "expression": "resource_id",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- },
- {
- "expression": "principal_id",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- },
- {
- "expression": "role",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- },
- {
- "expression": "deleted",
- "isExpression": false,
- "asc": true,
- "nulls": "last"
- }
- ],
- "isUnique": false,
- "concurrently": false,
- "method": "btree",
- "with": {}
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {},
- "policies": {},
- "checkConstraints": {},
- "isRLSEnabled": false
- }
- },
- "enums": {
- "fdm.b_acquiring_method": {
- "name": "b_acquiring_method",
- "schema": "fdm",
- "values": [
- "nl_01",
- "nl_02",
- "nl_03",
- "nl_04",
- "nl_07",
- "nl_09",
- "nl_10",
- "nl_11",
- "nl_12",
- "nl_13",
- "nl_61",
- "nl_63",
- "unknown"
- ]
- },
- "fdm.p_app_method": {
- "name": "p_app_method",
- "schema": "fdm",
- "values": [
- "slotted coulter",
- "incorporation",
- "incorporation 2 tracks",
- "injection",
- "shallow injection",
- "spraying",
- "broadcasting",
- "spoke wheel",
- "pocket placement",
- "narrowband"
- ]
- },
- "fdm.b_gwl_class": {
- "name": "b_gwl_class",
- "schema": "fdm",
- "values": [
- "I",
- "Ia",
- "Ic",
- "II",
- "IIa",
- "IIb",
- "IIc",
- "III",
- "IIIa",
- "IIIb",
- "IV",
- "IVu",
- "IVc",
- "V",
- "Va",
- "Vao",
- "Vad",
- "Vb",
- "Vbo",
- "Vbd",
- "sV",
- "sVb",
- "VI",
- "VIo",
- "VId",
- "VII",
- "VIIo",
- "VIId",
- "VIII",
- "VIIIo",
- "VIIId"
- ]
- },
- "fdm.b_lu_harvestable": {
- "name": "b_lu_harvestable",
- "schema": "fdm",
- "values": [
- "none",
- "once",
- "multiple"
- ]
- },
- "fdm.b_lu_croprotation": {
- "name": "b_lu_croprotation",
- "schema": "fdm",
- "values": [
- "other",
- "clover",
- "nature",
- "potato",
- "grass",
- "rapeseed",
- "starch",
- "maize",
- "cereal",
- "sugarbeet",
- "alfalfa",
- "catchcrop"
- ]
- },
- "fdm.a_source": {
- "name": "a_source",
- "schema": "fdm",
- "values": [
- "nl-rva-l122",
- "nl-rva-l136",
- "nl-rva-l264",
- "nl-rva-l320",
- "nl-rva-l335",
- "nl-rva-l610",
- "nl-rva-l648",
- "nl-rva-l697",
- "nl-other-nmi",
- "other"
- ]
- },
- "fdm.b_soiltype_agr": {
- "name": "b_soiltype_agr",
- "schema": "fdm",
- "values": [
- "moerige_klei",
- "rivierklei",
- "dekzand",
- "zeeklei",
- "dalgrond",
- "veen",
- "loess",
- "duinzand",
- "maasklei"
- ]
- },
- "fdm.p_type_rvo": {
- "name": "p_type_rvo",
- "schema": "fdm",
- "values": [
- "10",
- "11",
- "12",
- "13",
- "14",
- "17",
- "18",
- "19",
- "23",
- "30",
- "31",
- "32",
- "33",
- "35",
- "39",
- "40",
- "41",
- "42",
- "43",
- "46",
- "50",
- "56",
- "60",
- "61",
- "75",
- "76",
- "80",
- "81",
- "90",
- "91",
- "92",
- "25",
- "26",
- "27",
- "95",
- "96",
- "97",
- "98",
- "99",
- "100",
- "101",
- "102",
- "103",
- "104",
- "105",
- "106",
- "107",
- "108",
- "109",
- "110",
- "111",
- "112",
- "113",
- "114",
- "115",
- "116",
- "117",
- "120"
- ]
- }
- },
- "schemas": {
- "fdm": "fdm",
- "fdm-authn": "fdm-authn",
- "fdm-authz": "fdm-authz"
- },
- "sequences": {},
- "roles": {},
- "policies": {},
- "views": {},
- "_meta": {
- "columns": {},
- "schemas": {},
- "tables": {}
- }
-}
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/_journal.json b/fdm-core/src/db/migrations/meta/_journal.json
index eaf890b40..4ab6e6e09 100644
--- a/fdm-core/src/db/migrations/meta/_journal.json
+++ b/fdm-core/src/db/migrations/meta/_journal.json
@@ -1,118 +1,111 @@
{
- "version": "7",
- "dialect": "postgresql",
- "entries": [
- {
- "idx": 0,
- "version": "7",
- "when": 1731414293847,
- "tag": "0000_v0",
- "breakpoints": true
- },
- {
- "idx": 1,
- "version": "7",
- "when": 1741267610502,
- "tag": "0001_v0-15-0",
- "breakpoints": true
- },
- {
- "idx": 2,
- "version": "7",
- "when": 1743420907290,
- "tag": "0002_v0-18-0",
- "breakpoints": true
- },
- {
- "idx": 3,
- "version": "7",
- "when": 1744205441260,
- "tag": "0003_v0-20-0-1",
- "breakpoints": true
- },
- {
- "idx": 4,
- "version": "7",
- "when": 1745410821339,
- "tag": "0004_v0-20-0-2",
- "breakpoints": true
- },
- {
- "idx": 5,
- "version": "7",
- "when": 1748353081475,
- "tag": "0005_v0-20-0-3",
- "breakpoints": true
- },
- {
- "idx": 6,
- "version": "7",
- "when": 1748353926519,
- "tag": "0006_v0-20-0-4",
- "breakpoints": true
- },
- {
- "idx": 7,
- "version": "7",
- "when": 1750146397071,
- "tag": "0007_v0-21-0-1",
- "breakpoints": true
- },
- {
- "idx": 8,
- "version": "7",
- "when": 1750751079210,
- "tag": "0008_v0-21-0-2",
- "breakpoints": true
- },
- {
- "idx": 9,
- "version": "7",
- "when": 1752056714510,
- "tag": "0009_v0-22-0-1",
- "breakpoints": true
- },
- {
- "idx": 10,
- "version": "7",
- "when": 1753084974762,
- "tag": "0010_v0-22-0-2",
- "breakpoints": true
- },
- {
- "idx": 11,
- "version": "7",
- "when": 1754396961710,
- "tag": "0011_v0-22-1-1",
- "breakpoints": true
- },
- {
- "idx": 12,
- "version": "7",
- "when": 1754661913554,
- "tag": "0012_v0-24-0-1",
- "breakpoints": true
- },
- {
- "idx": 13,
- "version": "7",
- "when": 1755074095394,
- "tag": "0013_v0-24-0-2",
- "breakpoints": true
- },
- {
- "idx": 14,
- "version": "7",
- "when": 1760450273146,
- "tag": "0014_smart_malice",
- "breakpoints": true
- },
- {
- "idx": 15,
- "version": "7",
- "when": 1760528792955,
- "tag": "0015_new_stick",
- "breakpoints": true
- }
- ]
-}
\ No newline at end of file
+ "version": "7",
+ "dialect": "postgresql",
+ "entries": [
+ {
+ "idx": 0,
+ "version": "7",
+ "when": 1731414293847,
+ "tag": "0000_v0",
+ "breakpoints": true
+ },
+ {
+ "idx": 1,
+ "version": "7",
+ "when": 1741267610502,
+ "tag": "0001_v0-15-0",
+ "breakpoints": true
+ },
+ {
+ "idx": 2,
+ "version": "7",
+ "when": 1743420907290,
+ "tag": "0002_v0-18-0",
+ "breakpoints": true
+ },
+ {
+ "idx": 3,
+ "version": "7",
+ "when": 1744205441260,
+ "tag": "0003_v0-20-0-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 4,
+ "version": "7",
+ "when": 1745410821339,
+ "tag": "0004_v0-20-0-2",
+ "breakpoints": true
+ },
+ {
+ "idx": 5,
+ "version": "7",
+ "when": 1748353081475,
+ "tag": "0005_v0-20-0-3",
+ "breakpoints": true
+ },
+ {
+ "idx": 6,
+ "version": "7",
+ "when": 1748353926519,
+ "tag": "0006_v0-20-0-4",
+ "breakpoints": true
+ },
+ {
+ "idx": 7,
+ "version": "7",
+ "when": 1750146397071,
+ "tag": "0007_v0-21-0-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 8,
+ "version": "7",
+ "when": 1750751079210,
+ "tag": "0008_v0-21-0-2",
+ "breakpoints": true
+ },
+ {
+ "idx": 9,
+ "version": "7",
+ "when": 1752056714510,
+ "tag": "0009_v0-22-0-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 10,
+ "version": "7",
+ "when": 1753084974762,
+ "tag": "0010_v0-22-0-2",
+ "breakpoints": true
+ },
+ {
+ "idx": 11,
+ "version": "7",
+ "when": 1754396961710,
+ "tag": "0011_v0-22-1-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 12,
+ "version": "7",
+ "when": 1754661913554,
+ "tag": "0012_v0-24-0-1",
+ "breakpoints": true
+ },
+ {
+ "idx": 13,
+ "version": "7",
+ "when": 1755074095394,
+ "tag": "0013_v0-24-0-2",
+ "breakpoints": true
+ },
+ {
+ "idx": 14,
+ "version": "7",
+ "when": 1760450273146,
+ "tag": "0014_smart_malice",
+ "breakpoints": true
+ }
+ ]
+}
From 6ad6146b84aaf09d461b805741b93918757e3d01 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 16:40:00 +0200
Subject: [PATCH 069/243] chore: create db migration
---
.../migrations/0016_burly_lenny_balinger.sql | 31 +
.../src/db/migrations/meta/0016_snapshot.json | 3397 +++++++++++++++++
fdm-core/src/db/migrations/meta/_journal.json | 9 +-
3 files changed, 3436 insertions(+), 1 deletion(-)
create mode 100644 fdm-core/src/db/migrations/0016_burly_lenny_balinger.sql
create mode 100644 fdm-core/src/db/migrations/meta/0016_snapshot.json
diff --git a/fdm-core/src/db/migrations/0016_burly_lenny_balinger.sql b/fdm-core/src/db/migrations/0016_burly_lenny_balinger.sql
new file mode 100644
index 000000000..f9cafee14
--- /dev/null
+++ b/fdm-core/src/db/migrations/0016_burly_lenny_balinger.sql
@@ -0,0 +1,31 @@
+CREATE TYPE "fdm"."p_type_rvo" AS ENUM('10', '11', '12', '13', '14', '17', '18', '19', '23', '30', '31', '32', '33', '35', '39', '40', '41', '42', '43', '46', '50', '56', '60', '61', '75', '76', '80', '81', '90', '91', '92', '25', '26', '27', '95', '96', '97', '98', '99', '100', '101', '102', '103', '104', '105', '106', '107', '108', '109', '110', '111', '112', '113', '114', '115', '116', '117', '120');--> statement-breakpoint
+CREATE TABLE "fdm"."intending_grazing" (
+ "b_id_farm" text NOT NULL,
+ "b_grazing_intention" boolean,
+ "b_grazing_intention_year" integer NOT NULL,
+ "created" timestamp with time zone DEFAULT now() NOT NULL,
+ "updated" timestamp with time zone,
+ CONSTRAINT "intending_grazing_b_id_farm_b_grazing_intention_year_pk" PRIMARY KEY("b_id_farm","b_grazing_intention_year")
+);
+--> statement-breakpoint
+CREATE TABLE "fdm"."organic_certifications" (
+ "b_id_organic" text PRIMARY KEY NOT NULL,
+ "b_organic_traces" text,
+ "b_organic_skal" text,
+ "b_organic_issued" timestamp with time zone,
+ "b_organic_expires" timestamp with time zone,
+ "created" timestamp with time zone DEFAULT now() NOT NULL,
+ "updated" timestamp with time zone
+);
+--> statement-breakpoint
+CREATE TABLE "fdm"."organic_certifications_holding" (
+ "b_id_farm" text NOT NULL,
+ "b_id_organic" text NOT NULL,
+ "created" timestamp with time zone DEFAULT now() NOT NULL,
+ "updated" timestamp with time zone
+);
+--> statement-breakpoint
+ALTER TABLE "fdm"."fertilizers_catalogue" ADD COLUMN "p_type_rvo" "fdm"."p_type_rvo";--> statement-breakpoint
+ALTER TABLE "fdm"."intending_grazing" ADD CONSTRAINT "intending_grazing_b_id_farm_farms_b_id_farm_fk" FOREIGN KEY ("b_id_farm") REFERENCES "fdm"."farms"("b_id_farm") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
+ALTER TABLE "fdm"."organic_certifications_holding" ADD CONSTRAINT "organic_certifications_holding_b_id_farm_farms_b_id_farm_fk" FOREIGN KEY ("b_id_farm") REFERENCES "fdm"."farms"("b_id_farm") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
+ALTER TABLE "fdm"."organic_certifications_holding" ADD CONSTRAINT "organic_certifications_holding_b_id_organic_organic_certifications_b_id_organic_fk" FOREIGN KEY ("b_id_organic") REFERENCES "fdm"."organic_certifications"("b_id_organic") ON DELETE no action ON UPDATE no action;
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/0016_snapshot.json b/fdm-core/src/db/migrations/meta/0016_snapshot.json
new file mode 100644
index 000000000..e8dc2530f
--- /dev/null
+++ b/fdm-core/src/db/migrations/meta/0016_snapshot.json
@@ -0,0 +1,3397 @@
+{
+ "id": "11582248-020a-482b-94e7-4cad07114e8c",
+ "prevId": "60e262a4-309d-4384-ae3d-130a6e208f05",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "fdm.cultivation_catalogue_selecting": {
+ "name": "cultivation_catalogue_selecting",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_source": {
+ "name": "b_lu_source",
+ "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": {},
+ "foreignKeys": {
+ "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk": {
+ "name": "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "cultivation_catalogue_selecting",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_ending": {
+ "name": "cultivation_ending",
+ "schema": "fdm",
+ "columns": {
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_end": {
+ "name": "b_lu_end",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "m_cropresidue": {
+ "name": "m_cropresidue",
+ "type": "boolean",
+ "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": {
+ "cultivation_ending_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_ending_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_ending",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_harvesting": {
+ "name": "cultivation_harvesting",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvesting": {
+ "name": "b_id_harvesting",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_harvest_date": {
+ "name": "b_lu_harvest_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk": {
+ "name": "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk",
+ "tableFrom": "cultivation_harvesting",
+ "tableTo": "harvestables",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable"
+ ],
+ "columnsTo": [
+ "b_id_harvestable"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "cultivation_harvesting_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_harvesting_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_harvesting",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_starting": {
+ "name": "cultivation_starting",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_start": {
+ "name": "b_lu_start",
+ "type": "timestamp with time zone",
+ "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": {
+ "cultivation_starting_b_id_fields_b_id_fk": {
+ "name": "cultivation_starting_b_id_fields_b_id_fk",
+ "tableFrom": "cultivation_starting",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "cultivation_starting_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_starting_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_starting",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivations": {
+ "name": "cultivations",
+ "schema": "fdm",
+ "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
+ },
+ "b_lu_variety": {
+ "name": "b_lu_variety",
+ "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": {
+ "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",
+ "columnsFrom": [
+ "b_lu_catalogue"
+ ],
+ "columnsTo": [
+ "b_lu_catalogue"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivations_catalogue": {
+ "name": "cultivations_catalogue",
+ "schema": "fdm",
+ "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_harvestable": {
+ "name": "b_lu_harvestable",
+ "type": "b_lu_harvestable",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "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
+ },
+ "b_lu_croprotation": {
+ "name": "b_lu_croprotation",
+ "type": "b_lu_croprotation",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_yield": {
+ "name": "b_lu_yield",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_hi": {
+ "name": "b_lu_hi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_harvestable": {
+ "name": "b_lu_n_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_residue": {
+ "name": "b_lu_n_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_n_fixation": {
+ "name": "b_n_fixation",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_rest_oravib": {
+ "name": "b_lu_rest_oravib",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_variety_options": {
+ "name": "b_lu_variety_options",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_start_default": {
+ "name": "b_lu_start_default",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_date_harvest_default": {
+ "name": "b_date_harvest_default",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "hash": {
+ "name": "hash",
+ "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": {
+ "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": {},
+ "policies": {},
+ "checkConstraints": {
+ "b_lu_start_default_format": {
+ "name": "b_lu_start_default_format",
+ "value": "b_lu_start_default IS NULL OR b_lu_start_default ~ '^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$'"
+ },
+ "b_date_harvest_default_format": {
+ "name": "b_date_harvest_default_format",
+ "value": "b_date_harvest_default IS NULL OR b_date_harvest_default ~ '^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$'"
+ }
+ },
+ "isRLSEnabled": false
+ },
+ "fdm.derogation_applying": {
+ "name": "derogation_applying",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_derogation": {
+ "name": "b_id_derogation",
+ "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": {},
+ "foreignKeys": {
+ "derogation_applying_b_id_farm_farms_b_id_farm_fk": {
+ "name": "derogation_applying_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "derogation_applying",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk": {
+ "name": "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk",
+ "tableFrom": "derogation_applying",
+ "tableTo": "derogations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_derogation"
+ ],
+ "columnsTo": [
+ "b_id_derogation"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.derogations": {
+ "name": "derogations",
+ "schema": "fdm",
+ "columns": {
+ "b_id_derogation": {
+ "name": "b_id_derogation",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_derogation_year": {
+ "name": "b_derogation_year",
+ "type": "integer",
+ "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": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.farms": {
+ "name": "farms",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_name_farm": {
+ "name": "b_name_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_businessid_farm": {
+ "name": "b_businessid_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_address_farm": {
+ "name": "b_address_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_postalcode_farm": {
+ "name": "b_postalcode_farm",
+ "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": {
+ "b_id_farm_idx": {
+ "name": "b_id_farm_idx",
+ "columns": [
+ {
+ "expression": "b_id_farm",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_acquiring": {
+ "name": "fertilizer_acquiring",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_acquiring_amount": {
+ "name": "p_acquiring_amount",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_acquiring_date": {
+ "name": "p_acquiring_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk": {
+ "name": "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "fertilizer_acquiring",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_acquiring_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_acquiring_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_acquiring",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_applying": {
+ "name": "fertilizer_applying",
+ "schema": "fdm",
+ "columns": {
+ "p_app_id": {
+ "name": "p_app_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_app_amount": {
+ "name": "p_app_amount",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_method": {
+ "name": "p_app_method",
+ "type": "p_app_method",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_date": {
+ "name": "p_app_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "p_app_idx": {
+ "name": "p_app_idx",
+ "columns": [
+ {
+ "expression": "p_app_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "fertilizer_applying_b_id_fields_b_id_fk": {
+ "name": "fertilizer_applying_b_id_fields_b_id_fk",
+ "tableFrom": "fertilizer_applying",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_applying_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_applying_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_applying",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_catalogue_enabling": {
+ "name": "fertilizer_catalogue_enabling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_source": {
+ "name": "p_source",
+ "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": {},
+ "foreignKeys": {
+ "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk": {
+ "name": "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "fertilizer_catalogue_enabling",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_picking": {
+ "name": "fertilizer_picking",
+ "schema": "fdm",
+ "columns": {
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id_catalogue": {
+ "name": "p_id_catalogue",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_picking_date": {
+ "name": "p_picking_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "fertilizer_picking_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_picking_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_picking",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk": {
+ "name": "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk",
+ "tableFrom": "fertilizer_picking",
+ "tableTo": "fertilizers_catalogue",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id_catalogue"
+ ],
+ "columnsTo": [
+ "p_id_catalogue"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizers": {
+ "name": "fertilizers",
+ "schema": "fdm",
+ "columns": {
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": true,
+ "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": {
+ "p_id_idx": {
+ "name": "p_id_idx",
+ "columns": [
+ {
+ "expression": "p_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizers_catalogue": {
+ "name": "fertilizers_catalogue",
+ "schema": "fdm",
+ "columns": {
+ "p_id_catalogue": {
+ "name": "p_id_catalogue",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "p_source": {
+ "name": "p_source",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_name_nl": {
+ "name": "p_name_nl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_name_en": {
+ "name": "p_name_en",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_description": {
+ "name": "p_description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_method_options": {
+ "name": "p_app_method_options",
+ "type": "p_app_method[]",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_dm": {
+ "name": "p_dm",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_density": {
+ "name": "p_density",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_om": {
+ "name": "p_om",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_a": {
+ "name": "p_a",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_hc": {
+ "name": "p_hc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_eom": {
+ "name": "p_eom",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_eoc": {
+ "name": "p_eoc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_rt": {
+ "name": "p_c_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_of": {
+ "name": "p_c_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_if": {
+ "name": "p_c_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_fr": {
+ "name": "p_c_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cn_of": {
+ "name": "p_cn_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_rt": {
+ "name": "p_n_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_if": {
+ "name": "p_n_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_of": {
+ "name": "p_n_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_wc": {
+ "name": "p_n_wc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_no3_rt": {
+ "name": "p_no3_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_nh4_rt": {
+ "name": "p_nh4_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_p_rt": {
+ "name": "p_p_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_k_rt": {
+ "name": "p_k_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mg_rt": {
+ "name": "p_mg_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ca_rt": {
+ "name": "p_ca_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ne": {
+ "name": "p_ne",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_s_rt": {
+ "name": "p_s_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_s_wc": {
+ "name": "p_s_wc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cu_rt": {
+ "name": "p_cu_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_zn_rt": {
+ "name": "p_zn_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_na_rt": {
+ "name": "p_na_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_si_rt": {
+ "name": "p_si_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_b_rt": {
+ "name": "p_b_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mn_rt": {
+ "name": "p_mn_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ni_rt": {
+ "name": "p_ni_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_fe_rt": {
+ "name": "p_fe_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mo_rt": {
+ "name": "p_mo_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_co_rt": {
+ "name": "p_co_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_as_rt": {
+ "name": "p_as_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cd_rt": {
+ "name": "p_cd_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cr_rt": {
+ "name": "p_cr_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cr_vi": {
+ "name": "p_cr_vi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_pb_rt": {
+ "name": "p_pb_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_hg_rt": {
+ "name": "p_hg_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cl_rt": {
+ "name": "p_cl_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ef_nh3": {
+ "name": "p_ef_nh3",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_manure": {
+ "name": "p_type_manure",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_mineral": {
+ "name": "p_type_mineral",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_compost": {
+ "name": "p_type_compost",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_rvo": {
+ "name": "p_type_rvo",
+ "type": "p_type_rvo",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "hash": {
+ "name": "hash",
+ "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": {
+ "p_id_catalogue_idx": {
+ "name": "p_id_catalogue_idx",
+ "columns": [
+ {
+ "expression": "p_id_catalogue",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.field_acquiring": {
+ "name": "field_acquiring",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_start": {
+ "name": "b_start",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_acquiring_method": {
+ "name": "b_acquiring_method",
+ "type": "b_acquiring_method",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'unknown'"
+ },
+ "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_acquiring_b_id_fields_b_id_fk": {
+ "name": "field_acquiring_b_id_fields_b_id_fk",
+ "tableFrom": "field_acquiring",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "field_acquiring_b_id_farm_farms_b_id_farm_fk": {
+ "name": "field_acquiring_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "field_acquiring",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.field_discarding": {
+ "name": "field_discarding",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_end": {
+ "name": "b_end",
+ "type": "timestamp with time zone",
+ "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_discarding_b_id_fields_b_id_fk": {
+ "name": "field_discarding_b_id_fields_b_id_fk",
+ "tableFrom": "field_discarding",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fields": {
+ "name": "fields",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_name": {
+ "name": "b_name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_geometry": {
+ "name": "b_geometry",
+ "type": "geometry(Polygon,4326)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_id_source": {
+ "name": "b_id_source",
+ "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": {
+ "b_id_idx": {
+ "name": "b_id_idx",
+ "columns": [
+ {
+ "expression": "b_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "b_geom_idx": {
+ "name": "b_geom_idx",
+ "columns": [
+ {
+ "expression": "b_geometry",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "gist",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestable_analyses": {
+ "name": "harvestable_analyses",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable_analysis": {
+ "name": "b_id_harvestable_analysis",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_lu_yield": {
+ "name": "b_lu_yield",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_harvestable": {
+ "name": "b_lu_n_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_residue": {
+ "name": "b_lu_n_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_p_harvestable": {
+ "name": "b_lu_p_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_p_residue": {
+ "name": "b_lu_p_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_k_harvestable": {
+ "name": "b_lu_k_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_k_residue": {
+ "name": "b_lu_k_residue",
+ "type": "numeric",
+ "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": {
+ "b_id_harvestable_analyses_idx": {
+ "name": "b_id_harvestable_analyses_idx",
+ "columns": [
+ {
+ "expression": "b_id_harvestable_analysis",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestable_sampling": {
+ "name": "harvestable_sampling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_harvestable_analysis": {
+ "name": "b_id_harvestable_analysis",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_sampling_date": {
+ "name": "b_sampling_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk": {
+ "name": "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk",
+ "tableFrom": "harvestable_sampling",
+ "tableTo": "harvestables",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable"
+ ],
+ "columnsTo": [
+ "b_id_harvestable"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk": {
+ "name": "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk",
+ "tableFrom": "harvestable_sampling",
+ "tableTo": "harvestable_analyses",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable_analysis"
+ ],
+ "columnsTo": [
+ "b_id_harvestable_analysis"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestables": {
+ "name": "harvestables",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": true,
+ "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_id_harvestable_idx": {
+ "name": "b_id_harvestable_idx",
+ "columns": [
+ {
+ "expression": "b_id_harvestable",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.intending_grazing": {
+ "name": "intending_grazing",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_grazing_intention": {
+ "name": "b_grazing_intention",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_grazing_intention_year": {
+ "name": "b_grazing_intention_year",
+ "type": "integer",
+ "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": {},
+ "foreignKeys": {
+ "intending_grazing_b_id_farm_farms_b_id_farm_fk": {
+ "name": "intending_grazing_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "intending_grazing",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {
+ "intending_grazing_b_id_farm_b_grazing_intention_year_pk": {
+ "name": "intending_grazing_b_id_farm_b_grazing_intention_year_pk",
+ "columns": [
+ "b_id_farm",
+ "b_grazing_intention_year"
+ ]
+ }
+ },
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.organic_certifications": {
+ "name": "organic_certifications",
+ "schema": "fdm",
+ "columns": {
+ "b_id_organic": {
+ "name": "b_id_organic",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_organic_traces": {
+ "name": "b_organic_traces",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_organic_skal": {
+ "name": "b_organic_skal",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_organic_issued": {
+ "name": "b_organic_issued",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_organic_expires": {
+ "name": "b_organic_expires",
+ "type": "timestamp with time zone",
+ "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": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.organic_certifications_holding": {
+ "name": "organic_certifications_holding",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_organic": {
+ "name": "b_id_organic",
+ "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": {},
+ "foreignKeys": {
+ "organic_certifications_holding_b_id_farm_farms_b_id_farm_fk": {
+ "name": "organic_certifications_holding_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "organic_certifications_holding",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "organic_certifications_holding_b_id_organic_organic_certifications_b_id_organic_fk": {
+ "name": "organic_certifications_holding_b_id_organic_organic_certifications_b_id_organic_fk",
+ "tableFrom": "organic_certifications_holding",
+ "tableTo": "organic_certifications",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_organic"
+ ],
+ "columnsTo": [
+ "b_id_organic"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.soil_analysis": {
+ "name": "soil_analysis",
+ "schema": "fdm",
+ "columns": {
+ "a_id": {
+ "name": "a_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "a_date": {
+ "name": "a_date",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_source": {
+ "name": "a_source",
+ "type": "a_source",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'other'"
+ },
+ "a_al_ox": {
+ "name": "a_al_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_c_of": {
+ "name": "a_c_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ca_co": {
+ "name": "a_ca_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ca_co_po": {
+ "name": "a_ca_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_caco3_if": {
+ "name": "a_caco3_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cec_co": {
+ "name": "a_cec_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_clay_mi": {
+ "name": "a_clay_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cn_fr": {
+ "name": "a_cn_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_com_fr": {
+ "name": "a_com_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cu_cc": {
+ "name": "a_cu_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_density_sa": {
+ "name": "a_density_sa",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_fe_ox": {
+ "name": "a_fe_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_cc": {
+ "name": "a_k_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_co": {
+ "name": "a_k_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_co_po": {
+ "name": "a_k_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_cc": {
+ "name": "a_mg_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_co": {
+ "name": "a_mg_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_co_po": {
+ "name": "a_mg_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_n_pmn": {
+ "name": "a_n_pmn",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_n_rt": {
+ "name": "a_n_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_nh4_cc": {
+ "name": "a_nh4_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_nmin_cc": {
+ "name": "a_nmin_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_no3_cc": {
+ "name": "a_no3_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_al": {
+ "name": "a_p_al",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_cc": {
+ "name": "a_p_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_ox": {
+ "name": "a_p_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_rt": {
+ "name": "a_p_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_sg": {
+ "name": "a_p_sg",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_wa": {
+ "name": "a_p_wa",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ph_cc": {
+ "name": "a_ph_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_s_rt": {
+ "name": "a_s_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_sand_mi": {
+ "name": "a_sand_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_silt_mi": {
+ "name": "a_silt_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_som_loi": {
+ "name": "a_som_loi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_zn_cc": {
+ "name": "a_zn_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_gwl_class": {
+ "name": "b_gwl_class",
+ "type": "b_gwl_class",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_soiltype_agr": {
+ "name": "b_soiltype_agr",
+ "type": "b_soiltype_agr",
+ "typeSchema": "fdm",
+ "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": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.soil_sampling": {
+ "name": "soil_sampling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_sampling": {
+ "name": "b_id_sampling",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "a_id": {
+ "name": "a_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "a_depth_upper": {
+ "name": "a_depth_upper",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ },
+ "a_depth_lower": {
+ "name": "a_depth_lower",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_sampling_date": {
+ "name": "b_sampling_date",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_sampling_geometry": {
+ "name": "b_sampling_geometry",
+ "type": "geometry(MultiPoint,4326)",
+ "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": {
+ "soil_sampling_b_id_fields_b_id_fk": {
+ "name": "soil_sampling_b_id_fields_b_id_fk",
+ "tableFrom": "soil_sampling",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "soil_sampling_a_id_soil_analysis_a_id_fk": {
+ "name": "soil_sampling_a_id_soil_analysis_a_id_fk",
+ "tableFrom": "soil_sampling",
+ "tableTo": "soil_analysis",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "a_id"
+ ],
+ "columnsTo": [
+ "a_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.account": {
+ "name": "account",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "account_id": {
+ "name": "account_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider_id": {
+ "name": "provider_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "id_token": {
+ "name": "id_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token_expires_at": {
+ "name": "access_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token_expires_at": {
+ "name": "refresh_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "account_user_id_user_id_fk": {
+ "name": "account_user_id_user_id_fk",
+ "tableFrom": "account",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.invitation": {
+ "name": "invitation",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "inviter_id": {
+ "name": "inviter_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "invitation_organization_id_organization_id_fk": {
+ "name": "invitation_organization_id_organization_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "organization",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "invitation_inviter_id_user_id_fk": {
+ "name": "invitation_inviter_id_user_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "inviter_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.member": {
+ "name": "member",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "member_organization_id_organization_id_fk": {
+ "name": "member_organization_id_organization_id_fk",
+ "tableFrom": "member",
+ "tableTo": "organization",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "member_user_id_user_id_fk": {
+ "name": "member_user_id_user_id_fk",
+ "tableFrom": "member",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.organization": {
+ "name": "organization",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slug": {
+ "name": "slug",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "logo": {
+ "name": "logo",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "organization_slug_unique": {
+ "name": "organization_slug_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "slug"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.rate_limit": {
+ "name": "rate_limit",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "key": {
+ "name": "key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "count": {
+ "name": "count",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_request": {
+ "name": "last_request",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.session": {
+ "name": "session",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "token": {
+ "name": "token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ip_address": {
+ "name": "ip_address",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_agent": {
+ "name": "user_agent",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "active_organization_id": {
+ "name": "active_organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "session_user_id_user_id_fk": {
+ "name": "session_user_id_user_id_fk",
+ "tableFrom": "session",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "session_token_unique": {
+ "name": "session_token_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "token"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.user": {
+ "name": "user",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email_verified": {
+ "name": "email_verified",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "display_username": {
+ "name": "display_username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "firstname": {
+ "name": "firstname",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "surname": {
+ "name": "surname",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "lang": {
+ "name": "lang",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "farm_active": {
+ "name": "farm_active",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "user_email_unique": {
+ "name": "user_email_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "email"
+ ]
+ },
+ "user_username_unique": {
+ "name": "user_username_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "username"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.verification": {
+ "name": "verification",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "identifier": {
+ "name": "identifier",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authz.audit": {
+ "name": "audit",
+ "schema": "fdm-authz",
+ "columns": {
+ "audit_id": {
+ "name": "audit_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "audit_timestamp": {
+ "name": "audit_timestamp",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "audit_origin": {
+ "name": "audit_origin",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "principal_id": {
+ "name": "principal_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "target_resource": {
+ "name": "target_resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "target_resource_id": {
+ "name": "target_resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "granting_resource": {
+ "name": "granting_resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "granting_resource_id": {
+ "name": "granting_resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "action": {
+ "name": "action",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "allowed": {
+ "name": "allowed",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "duration": {
+ "name": "duration",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authz.role": {
+ "name": "role",
+ "schema": "fdm-authz",
+ "columns": {
+ "role_id": {
+ "name": "role_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "resource": {
+ "name": "resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "resource_id": {
+ "name": "resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "principal_id": {
+ "name": "principal_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created": {
+ "name": "created",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "deleted": {
+ "name": "deleted",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {
+ "role_idx": {
+ "name": "role_idx",
+ "columns": [
+ {
+ "expression": "resource",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "resource_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "principal_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "role",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "deleted",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {
+ "fdm.b_acquiring_method": {
+ "name": "b_acquiring_method",
+ "schema": "fdm",
+ "values": [
+ "nl_01",
+ "nl_02",
+ "nl_03",
+ "nl_04",
+ "nl_07",
+ "nl_09",
+ "nl_10",
+ "nl_11",
+ "nl_12",
+ "nl_13",
+ "nl_61",
+ "nl_63",
+ "unknown"
+ ]
+ },
+ "fdm.p_app_method": {
+ "name": "p_app_method",
+ "schema": "fdm",
+ "values": [
+ "slotted coulter",
+ "incorporation",
+ "incorporation 2 tracks",
+ "injection",
+ "shallow injection",
+ "spraying",
+ "broadcasting",
+ "spoke wheel",
+ "pocket placement",
+ "narrowband"
+ ]
+ },
+ "fdm.b_gwl_class": {
+ "name": "b_gwl_class",
+ "schema": "fdm",
+ "values": [
+ "I",
+ "Ia",
+ "Ic",
+ "II",
+ "IIa",
+ "IIb",
+ "IIc",
+ "III",
+ "IIIa",
+ "IIIb",
+ "IV",
+ "IVu",
+ "IVc",
+ "V",
+ "Va",
+ "Vao",
+ "Vad",
+ "Vb",
+ "Vbo",
+ "Vbd",
+ "sV",
+ "sVb",
+ "VI",
+ "VIo",
+ "VId",
+ "VII",
+ "VIIo",
+ "VIId",
+ "VIII",
+ "VIIIo",
+ "VIIId"
+ ]
+ },
+ "fdm.b_lu_harvestable": {
+ "name": "b_lu_harvestable",
+ "schema": "fdm",
+ "values": [
+ "none",
+ "once",
+ "multiple"
+ ]
+ },
+ "fdm.b_lu_croprotation": {
+ "name": "b_lu_croprotation",
+ "schema": "fdm",
+ "values": [
+ "other",
+ "clover",
+ "nature",
+ "potato",
+ "grass",
+ "rapeseed",
+ "starch",
+ "maize",
+ "cereal",
+ "sugarbeet",
+ "alfalfa",
+ "catchcrop"
+ ]
+ },
+ "fdm.a_source": {
+ "name": "a_source",
+ "schema": "fdm",
+ "values": [
+ "nl-rva-l122",
+ "nl-rva-l136",
+ "nl-rva-l264",
+ "nl-rva-l320",
+ "nl-rva-l335",
+ "nl-rva-l610",
+ "nl-rva-l648",
+ "nl-rva-l697",
+ "nl-other-nmi",
+ "other"
+ ]
+ },
+ "fdm.b_soiltype_agr": {
+ "name": "b_soiltype_agr",
+ "schema": "fdm",
+ "values": [
+ "moerige_klei",
+ "rivierklei",
+ "dekzand",
+ "zeeklei",
+ "dalgrond",
+ "veen",
+ "loess",
+ "duinzand",
+ "maasklei"
+ ]
+ },
+ "fdm.p_type_rvo": {
+ "name": "p_type_rvo",
+ "schema": "fdm",
+ "values": [
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "17",
+ "18",
+ "19",
+ "23",
+ "30",
+ "31",
+ "32",
+ "33",
+ "35",
+ "39",
+ "40",
+ "41",
+ "42",
+ "43",
+ "46",
+ "50",
+ "56",
+ "60",
+ "61",
+ "75",
+ "76",
+ "80",
+ "81",
+ "90",
+ "91",
+ "92",
+ "25",
+ "26",
+ "27",
+ "95",
+ "96",
+ "97",
+ "98",
+ "99",
+ "100",
+ "101",
+ "102",
+ "103",
+ "104",
+ "105",
+ "106",
+ "107",
+ "108",
+ "109",
+ "110",
+ "111",
+ "112",
+ "113",
+ "114",
+ "115",
+ "116",
+ "117",
+ "120"
+ ]
+ }
+ },
+ "schemas": {
+ "fdm": "fdm",
+ "fdm-authn": "fdm-authn",
+ "fdm-authz": "fdm-authz"
+ },
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/_journal.json b/fdm-core/src/db/migrations/meta/_journal.json
index c2f0fed8b..203d26de3 100644
--- a/fdm-core/src/db/migrations/meta/_journal.json
+++ b/fdm-core/src/db/migrations/meta/_journal.json
@@ -113,6 +113,13 @@
"when": 1760621691069,
"tag": "0015_flippant_spyke",
"breakpoints": true
+ },
+ {
+ "idx": 16,
+ "version": "7",
+ "when": 1760711980118,
+ "tag": "0016_burly_lenny_balinger",
+ "breakpoints": true
}
]
-}
+}
\ No newline at end of file
From e7553bbd22cc14ec66c1d23f20df399af33cf95c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mert=20Bora=20=C4=B0nevi?=
Date: Fri, 17 Oct 2025 16:58:51 +0200
Subject: [PATCH 070/243] Add calculation caching functionality to fdm-core
---
fdm-core/drizzle.config.ts | 1 +
fdm-core/package.json | 2 +
fdm-core/src/calculator.test.ts | 153 +
fdm-core/src/calculator.ts | 136 +
.../db/migrations/0015_far_blue_shield.sql | 20 +
.../src/db/migrations/meta/0015_snapshot.json | 3222 +++++++++++++++++
fdm-core/src/db/migrations/meta/_journal.json | 7 +
fdm-core/src/db/schema-calculator.ts | 47 +
fdm-core/src/db/schema.ts | 5 +-
fdm-core/src/index.ts | 6 +
pnpm-lock.yaml | 17 +
11 files changed, 3615 insertions(+), 1 deletion(-)
create mode 100644 fdm-core/src/calculator.test.ts
create mode 100644 fdm-core/src/calculator.ts
create mode 100644 fdm-core/src/db/migrations/0015_far_blue_shield.sql
create mode 100644 fdm-core/src/db/migrations/meta/0015_snapshot.json
create mode 100644 fdm-core/src/db/schema-calculator.ts
diff --git a/fdm-core/drizzle.config.ts b/fdm-core/drizzle.config.ts
index 34142997b..8b0e491fd 100644
--- a/fdm-core/drizzle.config.ts
+++ b/fdm-core/drizzle.config.ts
@@ -7,6 +7,7 @@ export default defineConfig({
"./src/db/schema.ts",
"./src/db/schema-authn.ts",
"./src/db/schema-authz.ts",
+ "./src/db/schema-calculator.ts",
],
out: "./src/db/migrations",
migrations: {
diff --git a/fdm-core/package.json b/fdm-core/package.json
index fc3fe5085..f548cfc6d 100644
--- a/fdm-core/package.json
+++ b/fdm-core/package.json
@@ -52,6 +52,7 @@
"@rollup/plugin-typescript": "catalog:",
"@svenvw/fdm-data": "workspace:^0.17.1",
"@types/node": "^24.7.2",
+ "@types/object-hash": "^3.0.6",
"@vitest/coverage-v8": "catalog:",
"drizzle-kit": "catalog:",
"fs-extra": "^11.3.2",
@@ -70,6 +71,7 @@
"better-auth": "catalog:",
"drizzle-orm": "catalog:",
"nanoid": "^5.1.6",
+ "object-hash": "^3.0.0",
"postgres": "^3.4.7",
"unique-username-generator": "^1.5.1"
},
diff --git a/fdm-core/src/calculator.test.ts b/fdm-core/src/calculator.test.ts
new file mode 100644
index 000000000..9612a548a
--- /dev/null
+++ b/fdm-core/src/calculator.test.ts
@@ -0,0 +1,153 @@
+import { and, eq } from "drizzle-orm"
+import type { drizzle } from "drizzle-orm/postgres-js"
+import { beforeEach, describe, expect, inject, it } from "vitest"
+import {
+ getCalculationInputHash,
+ setCachedCalculation,
+ withCalculationCache,
+} from "./calculator"
+import { calculationCache, calculationErrors } from "./db/schema-calculator"
+import { createFdmServer, type FdmServerType } from "./fdm-server"
+
+describe("withCalculationCache", () => {
+ let fdm: FdmServerType
+
+ beforeEach(async () => {
+ const host = inject("host")
+ const port = inject("port")
+ const user = inject("user")
+ const password = inject("password")
+ const database = inject("database")
+ fdm = createFdmServer(host, port, user, password, database)
+ })
+
+ it("should calculate if no cached result is present", async () => {
+ async function calculate() {
+ return "correct result"
+ }
+
+ const getCalculation = withCalculationCache(
+ "calculation-1",
+ "1.0.0",
+ calculate,
+ )
+
+ await setCachedCalculation(
+ fdm,
+ "calculation-1",
+ "1.0.0",
+ { a: "other value" },
+ "wrong result",
+ )
+
+ await expect(getCalculation(fdm, { a: "my value" })).resolves.toBe(
+ "correct result",
+ )
+ })
+
+ it("should record errors", async () => {
+ async function calculate() {
+ throw new Error("error occurred")
+ }
+
+ const getCalculation = withCalculationCache(
+ "test-throwing-calculation",
+ "1.0.0",
+ calculate,
+ )
+
+ // Delete leftovers from previous run
+ await fdm
+ .delete(calculationCache)
+ .where(
+ eq(
+ calculationCache.calculation_type,
+ "test-throwing-calculation",
+ ),
+ )
+ await fdm
+ .delete(calculationErrors)
+ .where(
+ eq(
+ calculationErrors.calculation_type,
+ "test-throwing-calculation",
+ ),
+ )
+
+ await expect(getCalculation(fdm, {})).rejects.toThrow("error occurred")
+
+ expect(
+ fdm
+ .select()
+ .from(calculationCache)
+ .where(
+ eq(
+ calculationCache.calculation_type,
+ "test-throwing-calculation",
+ ),
+ ),
+ ).resolves.toHaveLength(0)
+
+ expect(
+ fdm
+ .select()
+ .from(calculationErrors)
+ .where(
+ and(
+ eq(
+ calculationErrors.calculation_type,
+ "test-throwing-calculation",
+ ),
+ eq(calculationErrors.error_message, "error occurred"),
+ ),
+ ),
+ ).resolves.toHaveLength(1)
+ })
+
+ it("should not calculate cached result is present for the same input", async () => {
+ // Delete leftovers from previous run
+ await fdm
+ .delete(calculationCache)
+ .where(
+ eq(
+ calculationCache.calculation_type,
+ "test-calculation-cached",
+ ),
+ )
+
+ async function calculate() {
+ throw new Error("Calculation shouldn't be redone.")
+ }
+
+ const getCalculation = withCalculationCache(
+ "test-calculation-cached",
+ "1.0.0",
+ calculate,
+ )
+
+ await setCachedCalculation(
+ fdm,
+ "test-calculation-cached",
+ "1.0.0",
+ { a: "same value" },
+ "correct result",
+ )
+
+ expect(getCalculation(fdm, { a: "same value" })).resolves.toBe(
+ "correct result",
+ )
+
+ // There shouldn't be a duplicate cached result
+ expect(
+ fdm
+ .select()
+ .from(calculationCache)
+ .where(
+ eq(
+ calculationCache.input_hash,
+ getCalculationInputHash("1.0.0", { a: "same value" }),
+ ),
+ ),
+ ).resolves.toHaveLength(1)
+ })
+})
diff --git a/fdm-core/src/calculator.ts b/fdm-core/src/calculator.ts
new file mode 100644
index 000000000..37b7eba5f
--- /dev/null
+++ b/fdm-core/src/calculator.ts
@@ -0,0 +1,136 @@
+import { and, eq } from "drizzle-orm"
+import hash from "object-hash"
+import {
+ calculationCache as calculationCacheTable,
+ calculationErrors as calculationErrorsTable,
+} from "./db/schema-calculator"
+import type { FdmType } from "./fdm"
+
+export function getCalculationInputHash(
+ calculator_version: string,
+ inputs: T_Input,
+) {
+ return hash([calculator_version, inputs])
+}
+
+/**
+ * Get the cached calculation
+ *
+ * @param fdm fdm instance
+ * @param calculation_type key to use to indentify the type of calculation
+ * @param input_hash
+ * @returns
+ */
+export async function getCachedCalculation(
+ fdm: FdmType,
+ calculation_type: string,
+ calculator_version: string,
+ inputs: T_Input,
+): Promise {
+ const result = await fdm
+ .select({
+ calculation_type: calculationCacheTable.calculation_type,
+ calculator_version: calculationCacheTable.calculator_version,
+ result: calculationCacheTable.result,
+ created_at: calculationCacheTable.created_at,
+ })
+ .from(calculationCacheTable)
+ .where(
+ and(
+ eq(calculationCacheTable.calculation_type, calculation_type),
+ eq(
+ calculationCacheTable.input_hash,
+ getCalculationInputHash(calculator_version, inputs),
+ ),
+ ),
+ )
+ return result?.length ? (result[0].result as T_Output) : null
+}
+
+export async function setCachedCalculation(
+ fdm: FdmType,
+ calculation_type: string,
+ calculator_version: string,
+ inputs: T_Input,
+ result: T_Output,
+) {
+ await fdm.insert(calculationCacheTable).values({
+ calculation_type: calculation_type,
+ calculator_version: calculator_version,
+ inputs: inputs,
+ input_hash: getCalculationInputHash(calculator_version, inputs),
+ result: result,
+ })
+}
+
+export async function setCalculationError(
+ fdm: FdmType,
+ calculation_type: string,
+ calculator_version: string,
+ inputs: T_Input,
+ error_message: string,
+ stack_trace: string | undefined,
+) {
+ return fdm.insert(calculationErrorsTable).values({
+ calculation_type: calculation_type,
+ calculator_version: calculator_version,
+ inputs: inputs,
+ error_message: error_message,
+ stack_trace: stack_trace ?? null,
+ })
+}
+
+/**
+ * Decorator that can add cache functionality to a calculation function
+ *
+ * Make sure to provide calculation_type same as the name of `calculationFunction` if possible
+ *
+ * @param calculation_type key to use to indentify the type of calculation
+ * @param calculator_version key tied to the version of the current calculation function
+ * @param calculationFunction function to compute in case there is no cached result
+ * @returns a new function that takes an fdm instance and inputs and tries to retrieve results from cache when available
+ */
+export function withCalculationCache(
+ calculation_type: string,
+ calculator_version: string,
+ calculationFunction: (inputs: T_Input) => T_Output | Promise,
+) {
+ return async (fdm: FdmType, inputs: T_Input) => {
+ // Database entries are tagged with the calculationFunction version
+ // therefore one can be sure that the stored type matches T_Output
+ const cachedResult: T_Output | null = await getCachedCalculation(
+ fdm,
+ calculation_type,
+ calculator_version,
+ inputs,
+ )
+
+ if (cachedResult) {
+ return cachedResult
+ }
+
+ try {
+ const result = await calculationFunction(inputs)
+ await setCachedCalculation(
+ fdm,
+ calculation_type,
+ calculator_version,
+ inputs,
+ result,
+ )
+
+ return result
+ } catch (e: any) {
+ await setCalculationError(
+ fdm,
+ calculation_type,
+ calculator_version,
+ inputs,
+ e.message,
+ e.stack,
+ )
+
+ throw e
+ }
+ }
+}
diff --git a/fdm-core/src/db/migrations/0015_far_blue_shield.sql b/fdm-core/src/db/migrations/0015_far_blue_shield.sql
new file mode 100644
index 000000000..afadf1941
--- /dev/null
+++ b/fdm-core/src/db/migrations/0015_far_blue_shield.sql
@@ -0,0 +1,20 @@
+CREATE SCHEMA "fdm-calculator";
+--> statement-breakpoint
+CREATE TABLE "fdm-calculator"."calculation_cache" (
+ "calculation_type" text NOT NULL,
+ "input_hash" text NOT NULL,
+ "calculator_version" text,
+ "inputs" json,
+ "result" json,
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL
+);
+--> statement-breakpoint
+CREATE TABLE "fdm-calculator"."calculation_errors" (
+ "id" serial PRIMARY KEY NOT NULL,
+ "calculation_type" text,
+ "calculator_version" text,
+ "inputs" json,
+ "error_message" text,
+ "stack_trace" text,
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL
+);
diff --git a/fdm-core/src/db/migrations/meta/0015_snapshot.json b/fdm-core/src/db/migrations/meta/0015_snapshot.json
new file mode 100644
index 000000000..a6116c9a9
--- /dev/null
+++ b/fdm-core/src/db/migrations/meta/0015_snapshot.json
@@ -0,0 +1,3222 @@
+{
+ "id": "07574cff-3871-45d6-97d9-1d3f42f4ac20",
+ "prevId": "45dcb87d-89c8-4cf7-a504-0db74ba68640",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "fdm.cultivation_catalogue_selecting": {
+ "name": "cultivation_catalogue_selecting",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_source": {
+ "name": "b_lu_source",
+ "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": {},
+ "foreignKeys": {
+ "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk": {
+ "name": "cultivation_catalogue_selecting_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "cultivation_catalogue_selecting",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_ending": {
+ "name": "cultivation_ending",
+ "schema": "fdm",
+ "columns": {
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_end": {
+ "name": "b_lu_end",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "m_cropresidue": {
+ "name": "m_cropresidue",
+ "type": "boolean",
+ "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": {
+ "cultivation_ending_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_ending_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_ending",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_harvesting": {
+ "name": "cultivation_harvesting",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvesting": {
+ "name": "b_id_harvesting",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_harvest_date": {
+ "name": "b_lu_harvest_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk": {
+ "name": "cultivation_harvesting_b_id_harvestable_harvestables_b_id_harvestable_fk",
+ "tableFrom": "cultivation_harvesting",
+ "tableTo": "harvestables",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable"
+ ],
+ "columnsTo": [
+ "b_id_harvestable"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "cultivation_harvesting_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_harvesting_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_harvesting",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivation_starting": {
+ "name": "cultivation_starting",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu": {
+ "name": "b_lu",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_lu_start": {
+ "name": "b_lu_start",
+ "type": "timestamp with time zone",
+ "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": {
+ "cultivation_starting_b_id_fields_b_id_fk": {
+ "name": "cultivation_starting_b_id_fields_b_id_fk",
+ "tableFrom": "cultivation_starting",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "cultivation_starting_b_lu_cultivations_b_lu_fk": {
+ "name": "cultivation_starting_b_lu_cultivations_b_lu_fk",
+ "tableFrom": "cultivation_starting",
+ "tableTo": "cultivations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_lu"
+ ],
+ "columnsTo": [
+ "b_lu"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivations": {
+ "name": "cultivations",
+ "schema": "fdm",
+ "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
+ },
+ "b_lu_variety": {
+ "name": "b_lu_variety",
+ "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": {
+ "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",
+ "columnsFrom": [
+ "b_lu_catalogue"
+ ],
+ "columnsTo": [
+ "b_lu_catalogue"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.cultivations_catalogue": {
+ "name": "cultivations_catalogue",
+ "schema": "fdm",
+ "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_harvestable": {
+ "name": "b_lu_harvestable",
+ "type": "b_lu_harvestable",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "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
+ },
+ "b_lu_croprotation": {
+ "name": "b_lu_croprotation",
+ "type": "b_lu_croprotation",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_yield": {
+ "name": "b_lu_yield",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_hi": {
+ "name": "b_lu_hi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_harvestable": {
+ "name": "b_lu_n_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_residue": {
+ "name": "b_lu_n_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_n_fixation": {
+ "name": "b_n_fixation",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_rest_oravib": {
+ "name": "b_lu_rest_oravib",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_variety_options": {
+ "name": "b_lu_variety_options",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "hash": {
+ "name": "hash",
+ "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": {
+ "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": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.derogation_applying": {
+ "name": "derogation_applying",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_derogation": {
+ "name": "b_id_derogation",
+ "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": {},
+ "foreignKeys": {
+ "derogation_applying_b_id_farm_farms_b_id_farm_fk": {
+ "name": "derogation_applying_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "derogation_applying",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk": {
+ "name": "derogation_applying_b_id_derogation_derogations_b_id_derogation_fk",
+ "tableFrom": "derogation_applying",
+ "tableTo": "derogations",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_derogation"
+ ],
+ "columnsTo": [
+ "b_id_derogation"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.derogations": {
+ "name": "derogations",
+ "schema": "fdm",
+ "columns": {
+ "b_id_derogation": {
+ "name": "b_id_derogation",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_derogation_year": {
+ "name": "b_derogation_year",
+ "type": "integer",
+ "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": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.farms": {
+ "name": "farms",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_name_farm": {
+ "name": "b_name_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_businessid_farm": {
+ "name": "b_businessid_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_address_farm": {
+ "name": "b_address_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_postalcode_farm": {
+ "name": "b_postalcode_farm",
+ "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": {
+ "b_id_farm_idx": {
+ "name": "b_id_farm_idx",
+ "columns": [
+ {
+ "expression": "b_id_farm",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_acquiring": {
+ "name": "fertilizer_acquiring",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_acquiring_amount": {
+ "name": "p_acquiring_amount",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_acquiring_date": {
+ "name": "p_acquiring_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk": {
+ "name": "fertilizer_acquiring_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "fertilizer_acquiring",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_acquiring_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_acquiring_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_acquiring",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_applying": {
+ "name": "fertilizer_applying",
+ "schema": "fdm",
+ "columns": {
+ "p_app_id": {
+ "name": "p_app_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_app_amount": {
+ "name": "p_app_amount",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_method": {
+ "name": "p_app_method",
+ "type": "p_app_method",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_date": {
+ "name": "p_app_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "p_app_idx": {
+ "name": "p_app_idx",
+ "columns": [
+ {
+ "expression": "p_app_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "fertilizer_applying_b_id_fields_b_id_fk": {
+ "name": "fertilizer_applying_b_id_fields_b_id_fk",
+ "tableFrom": "fertilizer_applying",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_applying_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_applying_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_applying",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_catalogue_enabling": {
+ "name": "fertilizer_catalogue_enabling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_source": {
+ "name": "p_source",
+ "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": {},
+ "foreignKeys": {
+ "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk": {
+ "name": "fertilizer_catalogue_enabling_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "fertilizer_catalogue_enabling",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizer_picking": {
+ "name": "fertilizer_picking",
+ "schema": "fdm",
+ "columns": {
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_id_catalogue": {
+ "name": "p_id_catalogue",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_picking_date": {
+ "name": "p_picking_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "fertilizer_picking_p_id_fertilizers_p_id_fk": {
+ "name": "fertilizer_picking_p_id_fertilizers_p_id_fk",
+ "tableFrom": "fertilizer_picking",
+ "tableTo": "fertilizers",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id"
+ ],
+ "columnsTo": [
+ "p_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk": {
+ "name": "fertilizer_picking_p_id_catalogue_fertilizers_catalogue_p_id_catalogue_fk",
+ "tableFrom": "fertilizer_picking",
+ "tableTo": "fertilizers_catalogue",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "p_id_catalogue"
+ ],
+ "columnsTo": [
+ "p_id_catalogue"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizers": {
+ "name": "fertilizers",
+ "schema": "fdm",
+ "columns": {
+ "p_id": {
+ "name": "p_id",
+ "type": "text",
+ "primaryKey": true,
+ "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": {
+ "p_id_idx": {
+ "name": "p_id_idx",
+ "columns": [
+ {
+ "expression": "p_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fertilizers_catalogue": {
+ "name": "fertilizers_catalogue",
+ "schema": "fdm",
+ "columns": {
+ "p_id_catalogue": {
+ "name": "p_id_catalogue",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "p_source": {
+ "name": "p_source",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_name_nl": {
+ "name": "p_name_nl",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "p_name_en": {
+ "name": "p_name_en",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_description": {
+ "name": "p_description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_app_method_options": {
+ "name": "p_app_method_options",
+ "type": "p_app_method[]",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_dm": {
+ "name": "p_dm",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_density": {
+ "name": "p_density",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_om": {
+ "name": "p_om",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_a": {
+ "name": "p_a",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_hc": {
+ "name": "p_hc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_eom": {
+ "name": "p_eom",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_eoc": {
+ "name": "p_eoc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_rt": {
+ "name": "p_c_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_of": {
+ "name": "p_c_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_if": {
+ "name": "p_c_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_c_fr": {
+ "name": "p_c_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cn_of": {
+ "name": "p_cn_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_rt": {
+ "name": "p_n_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_if": {
+ "name": "p_n_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_of": {
+ "name": "p_n_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_n_wc": {
+ "name": "p_n_wc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_no3_rt": {
+ "name": "p_no3_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_nh4_rt": {
+ "name": "p_nh4_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_p_rt": {
+ "name": "p_p_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_k_rt": {
+ "name": "p_k_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mg_rt": {
+ "name": "p_mg_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ca_rt": {
+ "name": "p_ca_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ne": {
+ "name": "p_ne",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_s_rt": {
+ "name": "p_s_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_s_wc": {
+ "name": "p_s_wc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cu_rt": {
+ "name": "p_cu_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_zn_rt": {
+ "name": "p_zn_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_na_rt": {
+ "name": "p_na_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_si_rt": {
+ "name": "p_si_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_b_rt": {
+ "name": "p_b_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mn_rt": {
+ "name": "p_mn_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ni_rt": {
+ "name": "p_ni_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_fe_rt": {
+ "name": "p_fe_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_mo_rt": {
+ "name": "p_mo_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_co_rt": {
+ "name": "p_co_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_as_rt": {
+ "name": "p_as_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cd_rt": {
+ "name": "p_cd_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cr_rt": {
+ "name": "p_cr_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cr_vi": {
+ "name": "p_cr_vi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_pb_rt": {
+ "name": "p_pb_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_hg_rt": {
+ "name": "p_hg_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_cl_rt": {
+ "name": "p_cl_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_ef_nh3": {
+ "name": "p_ef_nh3",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_manure": {
+ "name": "p_type_manure",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_mineral": {
+ "name": "p_type_mineral",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "p_type_compost": {
+ "name": "p_type_compost",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "hash": {
+ "name": "hash",
+ "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": {
+ "p_id_catalogue_idx": {
+ "name": "p_id_catalogue_idx",
+ "columns": [
+ {
+ "expression": "p_id_catalogue",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.field_acquiring": {
+ "name": "field_acquiring",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_farm": {
+ "name": "b_id_farm",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_start": {
+ "name": "b_start",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_acquiring_method": {
+ "name": "b_acquiring_method",
+ "type": "b_acquiring_method",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'unknown'"
+ },
+ "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_acquiring_b_id_fields_b_id_fk": {
+ "name": "field_acquiring_b_id_fields_b_id_fk",
+ "tableFrom": "field_acquiring",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "field_acquiring_b_id_farm_farms_b_id_farm_fk": {
+ "name": "field_acquiring_b_id_farm_farms_b_id_farm_fk",
+ "tableFrom": "field_acquiring",
+ "tableTo": "farms",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_farm"
+ ],
+ "columnsTo": [
+ "b_id_farm"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.field_discarding": {
+ "name": "field_discarding",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_end": {
+ "name": "b_end",
+ "type": "timestamp with time zone",
+ "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_discarding_b_id_fields_b_id_fk": {
+ "name": "field_discarding_b_id_fields_b_id_fk",
+ "tableFrom": "field_discarding",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.fields": {
+ "name": "fields",
+ "schema": "fdm",
+ "columns": {
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_name": {
+ "name": "b_name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_geometry": {
+ "name": "b_geometry",
+ "type": "geometry(Polygon,4326)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_id_source": {
+ "name": "b_id_source",
+ "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": {
+ "b_id_idx": {
+ "name": "b_id_idx",
+ "columns": [
+ {
+ "expression": "b_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "b_geom_idx": {
+ "name": "b_geom_idx",
+ "columns": [
+ {
+ "expression": "b_geometry",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "gist",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestable_analyses": {
+ "name": "harvestable_analyses",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable_analysis": {
+ "name": "b_id_harvestable_analysis",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_lu_yield": {
+ "name": "b_lu_yield",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_harvestable": {
+ "name": "b_lu_n_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_n_residue": {
+ "name": "b_lu_n_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_p_harvestable": {
+ "name": "b_lu_p_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_p_residue": {
+ "name": "b_lu_p_residue",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_k_harvestable": {
+ "name": "b_lu_k_harvestable",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_lu_k_residue": {
+ "name": "b_lu_k_residue",
+ "type": "numeric",
+ "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": {
+ "b_id_harvestable_analyses_idx": {
+ "name": "b_id_harvestable_analyses_idx",
+ "columns": [
+ {
+ "expression": "b_id_harvestable_analysis",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestable_sampling": {
+ "name": "harvestable_sampling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_id_harvestable_analysis": {
+ "name": "b_id_harvestable_analysis",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "b_sampling_date": {
+ "name": "b_sampling_date",
+ "type": "timestamp with time zone",
+ "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": {
+ "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk": {
+ "name": "harvestable_sampling_b_id_harvestable_harvestables_b_id_harvestable_fk",
+ "tableFrom": "harvestable_sampling",
+ "tableTo": "harvestables",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable"
+ ],
+ "columnsTo": [
+ "b_id_harvestable"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk": {
+ "name": "harvestable_sampling_b_id_harvestable_analysis_harvestable_analyses_b_id_harvestable_analysis_fk",
+ "tableFrom": "harvestable_sampling",
+ "tableTo": "harvestable_analyses",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id_harvestable_analysis"
+ ],
+ "columnsTo": [
+ "b_id_harvestable_analysis"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.harvestables": {
+ "name": "harvestables",
+ "schema": "fdm",
+ "columns": {
+ "b_id_harvestable": {
+ "name": "b_id_harvestable",
+ "type": "text",
+ "primaryKey": true,
+ "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_id_harvestable_idx": {
+ "name": "b_id_harvestable_idx",
+ "columns": [
+ {
+ "expression": "b_id_harvestable",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.soil_analysis": {
+ "name": "soil_analysis",
+ "schema": "fdm",
+ "columns": {
+ "a_id": {
+ "name": "a_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "a_date": {
+ "name": "a_date",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_source": {
+ "name": "a_source",
+ "type": "a_source",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false,
+ "default": "'other'"
+ },
+ "a_al_ox": {
+ "name": "a_al_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_c_of": {
+ "name": "a_c_of",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ca_co": {
+ "name": "a_ca_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ca_co_po": {
+ "name": "a_ca_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_caco3_if": {
+ "name": "a_caco3_if",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cec_co": {
+ "name": "a_cec_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_clay_mi": {
+ "name": "a_clay_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cn_fr": {
+ "name": "a_cn_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_com_fr": {
+ "name": "a_com_fr",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_cu_cc": {
+ "name": "a_cu_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_density_sa": {
+ "name": "a_density_sa",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_fe_ox": {
+ "name": "a_fe_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_cc": {
+ "name": "a_k_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_co": {
+ "name": "a_k_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_k_co_po": {
+ "name": "a_k_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_cc": {
+ "name": "a_mg_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_co": {
+ "name": "a_mg_co",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_mg_co_po": {
+ "name": "a_mg_co_po",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_n_pmn": {
+ "name": "a_n_pmn",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_n_rt": {
+ "name": "a_n_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_nh4_cc": {
+ "name": "a_nh4_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_nmin_cc": {
+ "name": "a_nmin_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_no3_cc": {
+ "name": "a_no3_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_al": {
+ "name": "a_p_al",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_cc": {
+ "name": "a_p_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_ox": {
+ "name": "a_p_ox",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_rt": {
+ "name": "a_p_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_sg": {
+ "name": "a_p_sg",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_p_wa": {
+ "name": "a_p_wa",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_ph_cc": {
+ "name": "a_ph_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_s_rt": {
+ "name": "a_s_rt",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_sand_mi": {
+ "name": "a_sand_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_silt_mi": {
+ "name": "a_silt_mi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_som_loi": {
+ "name": "a_som_loi",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "a_zn_cc": {
+ "name": "a_zn_cc",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_gwl_class": {
+ "name": "b_gwl_class",
+ "type": "b_gwl_class",
+ "typeSchema": "fdm",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_soiltype_agr": {
+ "name": "b_soiltype_agr",
+ "type": "b_soiltype_agr",
+ "typeSchema": "fdm",
+ "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": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm.soil_sampling": {
+ "name": "soil_sampling",
+ "schema": "fdm",
+ "columns": {
+ "b_id_sampling": {
+ "name": "b_id_sampling",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "b_id": {
+ "name": "b_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "a_id": {
+ "name": "a_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "a_depth_upper": {
+ "name": "a_depth_upper",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ },
+ "a_depth_lower": {
+ "name": "a_depth_lower",
+ "type": "numeric",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_sampling_date": {
+ "name": "b_sampling_date",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "b_sampling_geometry": {
+ "name": "b_sampling_geometry",
+ "type": "geometry(MultiPoint,4326)",
+ "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": {
+ "soil_sampling_b_id_fields_b_id_fk": {
+ "name": "soil_sampling_b_id_fields_b_id_fk",
+ "tableFrom": "soil_sampling",
+ "tableTo": "fields",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "b_id"
+ ],
+ "columnsTo": [
+ "b_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ },
+ "soil_sampling_a_id_soil_analysis_a_id_fk": {
+ "name": "soil_sampling_a_id_soil_analysis_a_id_fk",
+ "tableFrom": "soil_sampling",
+ "tableTo": "soil_analysis",
+ "schemaTo": "fdm",
+ "columnsFrom": [
+ "a_id"
+ ],
+ "columnsTo": [
+ "a_id"
+ ],
+ "onDelete": "no action",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.account": {
+ "name": "account",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "account_id": {
+ "name": "account_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "provider_id": {
+ "name": "provider_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token": {
+ "name": "refresh_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "id_token": {
+ "name": "id_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "access_token_expires_at": {
+ "name": "access_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "refresh_token_expires_at": {
+ "name": "refresh_token_expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "account_user_id_user_id_fk": {
+ "name": "account_user_id_user_id_fk",
+ "tableFrom": "account",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.invitation": {
+ "name": "invitation",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "status": {
+ "name": "status",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "inviter_id": {
+ "name": "inviter_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "invitation_organization_id_organization_id_fk": {
+ "name": "invitation_organization_id_organization_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "organization",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "invitation_inviter_id_user_id_fk": {
+ "name": "invitation_inviter_id_user_id_fk",
+ "tableFrom": "invitation",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "inviter_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.member": {
+ "name": "member",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "organization_id": {
+ "name": "organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "member_organization_id_organization_id_fk": {
+ "name": "member_organization_id_organization_id_fk",
+ "tableFrom": "member",
+ "tableTo": "organization",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "organization_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "member_user_id_user_id_fk": {
+ "name": "member_user_id_user_id_fk",
+ "tableFrom": "member",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.organization": {
+ "name": "organization",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slug": {
+ "name": "slug",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "logo": {
+ "name": "logo",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "metadata": {
+ "name": "metadata",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "organization_slug_unique": {
+ "name": "organization_slug_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "slug"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.rate_limit": {
+ "name": "rate_limit",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "key": {
+ "name": "key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "count": {
+ "name": "count",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "last_request": {
+ "name": "last_request",
+ "type": "bigint",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.session": {
+ "name": "session",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "token": {
+ "name": "token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "ip_address": {
+ "name": "ip_address",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_agent": {
+ "name": "user_agent",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "user_id": {
+ "name": "user_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "active_organization_id": {
+ "name": "active_organization_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "session_user_id_user_id_fk": {
+ "name": "session_user_id_user_id_fk",
+ "tableFrom": "session",
+ "tableTo": "user",
+ "schemaTo": "fdm-authn",
+ "columnsFrom": [
+ "user_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "session_token_unique": {
+ "name": "session_token_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "token"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.user": {
+ "name": "user",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "email_verified": {
+ "name": "email_verified",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "image": {
+ "name": "image",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "display_username": {
+ "name": "display_username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "firstname": {
+ "name": "firstname",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "surname": {
+ "name": "surname",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "lang": {
+ "name": "lang",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "farm_active": {
+ "name": "farm_active",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "user_email_unique": {
+ "name": "user_email_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "email"
+ ]
+ },
+ "user_username_unique": {
+ "name": "user_username_unique",
+ "nullsNotDistinct": false,
+ "columns": [
+ "username"
+ ]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authn.verification": {
+ "name": "verification",
+ "schema": "fdm-authn",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "identifier": {
+ "name": "identifier",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "value": {
+ "name": "value",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authz.audit": {
+ "name": "audit",
+ "schema": "fdm-authz",
+ "columns": {
+ "audit_id": {
+ "name": "audit_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "audit_timestamp": {
+ "name": "audit_timestamp",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "audit_origin": {
+ "name": "audit_origin",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "principal_id": {
+ "name": "principal_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "target_resource": {
+ "name": "target_resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "target_resource_id": {
+ "name": "target_resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "granting_resource": {
+ "name": "granting_resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "granting_resource_id": {
+ "name": "granting_resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "action": {
+ "name": "action",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "allowed": {
+ "name": "allowed",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "duration": {
+ "name": "duration",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-authz.role": {
+ "name": "role",
+ "schema": "fdm-authz",
+ "columns": {
+ "role_id": {
+ "name": "role_id",
+ "type": "text",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "resource": {
+ "name": "resource",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "resource_id": {
+ "name": "resource_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "principal_id": {
+ "name": "principal_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "role": {
+ "name": "role",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created": {
+ "name": "created",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "deleted": {
+ "name": "deleted",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {
+ "role_idx": {
+ "name": "role_idx",
+ "columns": [
+ {
+ "expression": "resource",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "resource_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "principal_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "role",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "deleted",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-calculator.calculation_cache": {
+ "name": "calculation_cache",
+ "schema": "fdm-calculator",
+ "columns": {
+ "calculation_type": {
+ "name": "calculation_type",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "input_hash": {
+ "name": "input_hash",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "calculator_version": {
+ "name": "calculator_version",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "inputs": {
+ "name": "inputs",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "result": {
+ "name": "result",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "fdm-calculator.calculation_errors": {
+ "name": "calculation_errors",
+ "schema": "fdm-calculator",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "serial",
+ "primaryKey": true,
+ "notNull": true
+ },
+ "calculation_type": {
+ "name": "calculation_type",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "calculator_version": {
+ "name": "calculator_version",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "inputs": {
+ "name": "inputs",
+ "type": "json",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "error_message": {
+ "name": "error_message",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "stack_trace": {
+ "name": "stack_trace",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {
+ "fdm.b_acquiring_method": {
+ "name": "b_acquiring_method",
+ "schema": "fdm",
+ "values": [
+ "nl_01",
+ "nl_02",
+ "nl_03",
+ "nl_04",
+ "nl_07",
+ "nl_09",
+ "nl_10",
+ "nl_11",
+ "nl_12",
+ "nl_13",
+ "nl_61",
+ "nl_63",
+ "unknown"
+ ]
+ },
+ "fdm.p_app_method": {
+ "name": "p_app_method",
+ "schema": "fdm",
+ "values": [
+ "slotted coulter",
+ "incorporation",
+ "incorporation 2 tracks",
+ "injection",
+ "shallow injection",
+ "spraying",
+ "broadcasting",
+ "spoke wheel",
+ "pocket placement",
+ "narrowband"
+ ]
+ },
+ "fdm.b_gwl_class": {
+ "name": "b_gwl_class",
+ "schema": "fdm",
+ "values": [
+ "I",
+ "Ia",
+ "Ic",
+ "II",
+ "IIa",
+ "IIb",
+ "IIc",
+ "III",
+ "IIIa",
+ "IIIb",
+ "IV",
+ "IVu",
+ "IVc",
+ "V",
+ "Va",
+ "Vao",
+ "Vad",
+ "Vb",
+ "Vbo",
+ "Vbd",
+ "sV",
+ "sVb",
+ "VI",
+ "VIo",
+ "VId",
+ "VII",
+ "VIIo",
+ "VIId",
+ "VIII",
+ "VIIIo",
+ "VIIId"
+ ]
+ },
+ "fdm.b_lu_harvestable": {
+ "name": "b_lu_harvestable",
+ "schema": "fdm",
+ "values": [
+ "none",
+ "once",
+ "multiple"
+ ]
+ },
+ "fdm.b_lu_croprotation": {
+ "name": "b_lu_croprotation",
+ "schema": "fdm",
+ "values": [
+ "other",
+ "clover",
+ "nature",
+ "potato",
+ "grass",
+ "rapeseed",
+ "starch",
+ "maize",
+ "cereal",
+ "sugarbeet",
+ "alfalfa",
+ "catchcrop"
+ ]
+ },
+ "fdm.a_source": {
+ "name": "a_source",
+ "schema": "fdm",
+ "values": [
+ "nl-rva-l122",
+ "nl-rva-l136",
+ "nl-rva-l264",
+ "nl-rva-l320",
+ "nl-rva-l335",
+ "nl-rva-l610",
+ "nl-rva-l648",
+ "nl-rva-l697",
+ "nl-other-nmi",
+ "other"
+ ]
+ },
+ "fdm.b_soiltype_agr": {
+ "name": "b_soiltype_agr",
+ "schema": "fdm",
+ "values": [
+ "moerige_klei",
+ "rivierklei",
+ "dekzand",
+ "zeeklei",
+ "dalgrond",
+ "veen",
+ "loess",
+ "duinzand",
+ "maasklei"
+ ]
+ }
+ },
+ "schemas": {
+ "fdm": "fdm",
+ "fdm-authn": "fdm-authn",
+ "fdm-authz": "fdm-authz",
+ "fdm-calculator": "fdm-calculator"
+ },
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
\ No newline at end of file
diff --git a/fdm-core/src/db/migrations/meta/_journal.json b/fdm-core/src/db/migrations/meta/_journal.json
index 1d8df0db1..6eef2c754 100644
--- a/fdm-core/src/db/migrations/meta/_journal.json
+++ b/fdm-core/src/db/migrations/meta/_journal.json
@@ -106,6 +106,13 @@
"when": 1760450273146,
"tag": "0014_smart_malice",
"breakpoints": true
+ },
+ {
+ "idx": 15,
+ "version": "7",
+ "when": 1760712120837,
+ "tag": "0015_far_blue_shield",
+ "breakpoints": true
}
]
}
\ No newline at end of file
diff --git a/fdm-core/src/db/schema-calculator.ts b/fdm-core/src/db/schema-calculator.ts
new file mode 100644
index 000000000..80e08adb6
--- /dev/null
+++ b/fdm-core/src/db/schema-calculator.ts
@@ -0,0 +1,47 @@
+import {
+ json,
+ pgSchema,
+ primaryKey,
+ serial,
+ text,
+ timestamp,
+} from "drizzle-orm/pg-core"
+
+export const fdmCalculatorSchema = pgSchema("fdm-calculator")
+export type fdmSchemaAuthNTypeSelect = typeof fdmCalculatorSchema.table
+
+export const calculationCache = fdmCalculatorSchema.table(
+ "calculation_cache",
+ {
+ calculation_type: text().notNull(),
+ input_hash: text().notNull(),
+ calculator_version: text(),
+ inputs: json(),
+ result: json(),
+ created_at: timestamp({ withTimezone: true }).notNull().defaultNow(),
+ },
+ (table) => {
+ return [
+ {
+ pk: primaryKey({
+ columns: [table.calculation_type, table.input_hash],
+ }),
+ },
+ ]
+ },
+)
+
+export const calculationErrors = fdmCalculatorSchema.table(
+ "calculation_errors",
+ {
+ id: serial().primaryKey(),
+ calculation_type: text(),
+ calculator_version: text(),
+ inputs: json(),
+ error_message: text(),
+ stack_trace: text(),
+ created_at: timestamp({ withTimezone: true }).notNull().defaultNow(),
+ },
+)
+
+export type CalculationCacheTypeSelect = typeof calculationCache.$inferSelect
diff --git a/fdm-core/src/db/schema.ts b/fdm-core/src/db/schema.ts
index 336b3bd59..456dcb38a 100644
--- a/fdm-core/src/db/schema.ts
+++ b/fdm-core/src/db/schema.ts
@@ -37,7 +37,10 @@ export type farmsTypeInsert = typeof farms.$inferInsert
export const acquiringMethodOptions = [
{ value: "nl_01", label: "Eigendom" },
{ value: "nl_02", label: "Reguliere pacht" },
- { value: "nl_03", label: "In gebruik van een terreinbeherende organisatie" },
+ {
+ value: "nl_03",
+ label: "In gebruik van een terreinbeherende organisatie",
+ },
{
value: "nl_04",
label: "Tijdelijk gebruik in het kader van landinrichting",
diff --git a/fdm-core/src/index.ts b/fdm-core/src/index.ts
index 3f8138505..13bcc5090 100644
--- a/fdm-core/src/index.ts
+++ b/fdm-core/src/index.ts
@@ -23,6 +23,12 @@ export {
} from "./authentication"
export type { FdmAuth } from "./authentication.d"
export type { PrincipalId } from "./authorization.d"
+export {
+ getCachedCalculation,
+ setCachedCalculation,
+ setCalculationError,
+ withCalculationCache,
+} from "./calculator"
export {
disableCultivationCatalogue,
disableFertilizerCatalogue,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6a959257b..fac243b96 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -405,6 +405,9 @@ importers:
nanoid:
specifier: ^5.1.6
version: 5.1.6
+ object-hash:
+ specifier: ^3.0.0
+ version: 3.0.0
postgres:
specifier: ^3.4.7
version: 3.4.7
@@ -430,6 +433,9 @@ importers:
'@types/node':
specifier: ^24.7.2
version: 24.7.2
+ '@types/object-hash':
+ specifier: ^3.0.6
+ version: 3.0.6
'@vitest/coverage-v8':
specifier: 'catalog:'
version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))
@@ -4896,6 +4902,9 @@ packages:
'@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
+ '@types/object-hash@3.0.6':
+ resolution: {integrity: sha512-fOBV8C1FIu2ELinoILQ+ApxcUKz4ngq+IWUYrxSGjXzzjUALijilampwkMgEtJ+h2njAW3pi853QpzNVCHB73w==}
+
'@types/pbf@3.0.5':
resolution: {integrity: sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==}
@@ -8271,6 +8280,10 @@ packages:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
+ object-hash@3.0.0:
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
+ engines: {node: '>= 6'}
+
object-inspect@1.13.4:
resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
engines: {node: '>= 0.4'}
@@ -16944,6 +16957,8 @@ snapshots:
'@types/normalize-package-data@2.4.4': {}
+ '@types/object-hash@3.0.6': {}
+
'@types/pbf@3.0.5': {}
'@types/pg-pool@2.0.6':
@@ -20761,6 +20776,8 @@ snapshots:
object-assign@4.1.1: {}
+ object-hash@3.0.0: {}
+
object-inspect@1.13.4: {}
object-keys@1.1.1: {}
From 6cdbb9303748f52f944357a4f8cbd2e0fad8655a Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Fri, 17 Oct 2025 16:59:47 +0200
Subject: [PATCH 071/243] feat: add function to aggregate norm filling to farm
level
---
fdm-calculator/src/norms/farm.test.ts | 257 ++++++++++++++++----------
fdm-calculator/src/norms/farm.ts | 121 +++++++++++-
2 files changed, 282 insertions(+), 96 deletions(-)
diff --git a/fdm-calculator/src/norms/farm.test.ts b/fdm-calculator/src/norms/farm.test.ts
index 326a93478..8822c4bdc 100644
--- a/fdm-calculator/src/norms/farm.test.ts
+++ b/fdm-calculator/src/norms/farm.test.ts
@@ -1,146 +1,213 @@
import { describe, expect, it } from "vitest"
-import { aggregateNormsToFarmLevel } from "./farm"
-import type { GebruiksnormResult } from "./nl/2025/value/types"
+import {
+ aggregateNormsToFarmLevel,
+ aggregateNormFillingsToFarmLevel,
+} from "./farm"
+import type {
+ InputAggregateNormsToFarmLevel,
+ InputAggregateNormFillingsToFarmLevel,
+} from "./farm"
describe("aggregateNormsToFarmLevel", () => {
- it("should correctly aggregate norms from multiple fields", () => {
- const fieldData = [
+ it("should correctly aggregate norm values to farm level", () => {
+ const fieldData: InputAggregateNormsToFarmLevel = [
{
b_id: "field1",
- b_area: 10,
+ b_area: 10, // hectares
norms: {
- manure: {
- normValue: 100,
- normSource: "Source A",
- } as GebruiksnormResult,
- nitrogen: {
- normValue: 150,
- normSource: "Source B",
- } as GebruiksnormResult,
- phosphate: {
- normValue: 50,
- normSource: "Source C",
- } as GebruiksnormResult,
+ manure: { normValue: 100, normSource: "Source A" }, // kg N/ha
+ nitrogen: { normValue: 150, normSource: "Source B" }, // kg N/ha
+ phosphate: { normValue: 50, normSource: "Source C" }, // kg P2O5/ha
},
},
{
b_id: "field2",
- b_area: 5,
+ b_area: 5, // hectares
norms: {
- manure: {
- normValue: 90,
- normSource: "Source A",
- } as GebruiksnormResult,
- nitrogen: {
- normValue: 140,
- normSource: "Source B",
- } as GebruiksnormResult,
- phosphate: {
- normValue: 45,
- normSource: "Source C",
- } as GebruiksnormResult,
+ manure: { normValue: 90, normSource: "Source A" }, // kg N/ha
+ nitrogen: { normValue: 140, normSource: "Source B" }, // kg N/ha
+ phosphate: { normValue: 45, normSource: "Source C" }, // kg P2O5/ha
},
},
]
- const result = aggregateNormsToFarmLevel(fieldData)
+ const aggregatedNorms = aggregateNormsToFarmLevel(fieldData)
- expect(result.manure).toBe(1450)
- expect(result.nitrogen).toBe(2200)
- expect(result.phosphate).toBe(725)
+ expect(aggregatedNorms).toEqual({
+ manure: 1450, // (100 * 10) + (90 * 5)
+ nitrogen: 2200, // (150 * 10) + (140 * 5)
+ phosphate: 725, // (50 * 10) + (45 * 5)
+ })
})
- it("should handle an empty array of fields", () => {
- const result = aggregateNormsToFarmLevel([])
- expect(result.manure).toBe(0)
- expect(result.nitrogen).toBe(0)
- expect(result.phosphate).toBe(0)
+ it("should handle empty input array", () => {
+ const fieldData: InputAggregateNormsToFarmLevel = []
+ const aggregatedNorms = aggregateNormsToFarmLevel(fieldData)
+ expect(aggregatedNorms).toEqual({
+ manure: 0,
+ nitrogen: 0,
+ phosphate: 0,
+ })
})
it("should handle fields with zero area", () => {
- const fieldData = [
+ const fieldData: InputAggregateNormsToFarmLevel = [
{
b_id: "field1",
- b_area: 0,
+ b_area: 0, // hectares
norms: {
- manure: {
- normValue: 100,
- normSource: "Source A",
- } as GebruiksnormResult,
- nitrogen: {
- normValue: 150,
- normSource: "Source B",
- } as GebruiksnormResult,
- phosphate: {
- normValue: 50,
- normSource: "Source C",
- } as GebruiksnormResult,
+ manure: { normValue: 100, normSource: "Source A" },
+ nitrogen: { normValue: 150, normSource: "Source B" },
+ phosphate: { normValue: 50, normSource: "Source C" },
},
},
]
-
- const result = aggregateNormsToFarmLevel(fieldData)
-
- expect(result.manure).toBe(0)
- expect(result.nitrogen).toBe(0)
- expect(result.phosphate).toBe(0)
+ const aggregatedNorms = aggregateNormsToFarmLevel(fieldData)
+ expect(aggregatedNorms).toEqual({
+ manure: 0,
+ nitrogen: 0,
+ phosphate: 0,
+ })
})
+})
- it("should handle fields with zero norm values", () => {
- const fieldData = [
+describe("aggregateNormFillingsToFarmLevel", () => {
+ it("should correctly aggregate norm filling values to farm level", () => {
+ const fieldData: InputAggregateNormFillingsToFarmLevel = [
{
b_id: "field1",
- b_area: 10,
- norms: {
+ b_area: 10, // hectares
+ normFillings: {
manure: {
- normValue: 0,
- normSource: "Source A",
- } as GebruiksnormResult,
+ normFilling: 10,
+ applicationFilling: [
+ { p_app_id: "app1", normFilling: 5 },
+ { p_app_id: "app2", normFilling: 5 },
+ ],
+ },
nitrogen: {
- normValue: 0,
- normSource: "Source B",
- } as GebruiksnormResult,
+ normFilling: 20,
+ applicationFilling: [
+ { p_app_id: "app1", normFilling: 10 },
+ { p_app_id: "app2", normFilling: 10 },
+ ],
+ },
phosphate: {
- normValue: 0,
- normSource: "Source C",
- } as GebruiksnormResult,
+ normFilling: 5,
+ applicationFilling: [
+ { p_app_id: "app1", normFilling: 2 },
+ { p_app_id: "app2", normFilling: 3 },
+ ],
+ },
+ },
+ },
+ {
+ b_id: "field2",
+ b_area: 5, // hectares
+ normFillings: {
+ manure: {
+ normFilling: 8,
+ applicationFilling: [
+ { p_app_id: "app3", normFilling: 4 },
+ { p_app_id: "app4", normFilling: 4 },
+ ],
+ },
+ nitrogen: {
+ normFilling: 15,
+ applicationFilling: [
+ { p_app_id: "app3", normFilling: 7 },
+ { p_app_id: "app4", normFilling: 8 },
+ ],
+ },
+ phosphate: {
+ normFilling: 3,
+ applicationFilling: [
+ { p_app_id: "app3", normFilling: 1 },
+ { p_app_id: "app4", normFilling: 2 },
+ ],
+ },
},
},
]
- const result = aggregateNormsToFarmLevel(fieldData)
+ const aggregatedFillings = aggregateNormFillingsToFarmLevel(fieldData)
+
+ expect(aggregatedFillings.manure.normFilling).toBe(140) // (10 * 10) + (8 * 5)
+ expect(aggregatedFillings.nitrogen.normFilling).toBe(275) // (20 * 10) + (15 * 5)
+ expect(aggregatedFillings.phosphate.normFilling).toBe(65) // (5 * 10) + (3 * 5)
+
+ // Check application fillings
+ expect(aggregatedFillings.manure.applicationFilling).toEqual([
+ { p_app_id: "app1", normFilling: 50 }, // 5 * 10
+ { p_app_id: "app2", normFilling: 50 }, // 5 * 10
+ { p_app_id: "app3", normFilling: 20 }, // 4 * 5
+ { p_app_id: "app4", normFilling: 20 }, // 4 * 5
+ ])
+ expect(aggregatedFillings.nitrogen.applicationFilling).toEqual([
+ { p_app_id: "app1", normFilling: 100 }, // 10 * 10
+ { p_app_id: "app2", normFilling: 100 }, // 10 * 10
+ { p_app_id: "app3", normFilling: 35 }, // 7 * 5
+ { p_app_id: "app4", normFilling: 40 }, // 8 * 5
+ ])
+ expect(aggregatedFillings.phosphate.applicationFilling).toEqual([
+ { p_app_id: "app1", normFilling: 20 }, // 2 * 10
+ { p_app_id: "app2", normFilling: 30 }, // 3 * 10
+ { p_app_id: "app3", normFilling: 5 }, // 1 * 5
+ { p_app_id: "app4", normFilling: 10 }, // 2 * 5
+ ])
+ })
- expect(result.manure).toBe(0)
- expect(result.nitrogen).toBe(0)
- expect(result.phosphate).toBe(0)
+ it("should handle empty input array for norm fillings", () => {
+ const fieldData: InputAggregateNormFillingsToFarmLevel = []
+ const aggregatedFillings = aggregateNormFillingsToFarmLevel(fieldData)
+ expect(aggregatedFillings).toEqual({
+ manure: { normFilling: 0, applicationFilling: [] },
+ nitrogen: { normFilling: 0, applicationFilling: [] },
+ phosphate: { normFilling: 0, applicationFilling: [] },
+ })
})
- it("should handle floating point numbers for area and norm values", () => {
- const fieldData = [
+ it("should handle fields with zero area for norm fillings", () => {
+ const fieldData: InputAggregateNormFillingsToFarmLevel = [
{
b_id: "field1",
- b_area: 10.5,
- norms: {
+ b_area: 0, // hectares
+ normFillings: {
manure: {
- normValue: 100.5,
- normSource: "Source A",
- } as GebruiksnormResult,
+ normFilling: 10,
+ applicationFilling: [
+ { p_app_id: "app1", normFilling: 5 },
+ ],
+ },
nitrogen: {
- normValue: 150.5,
- normSource: "Source B",
- } as GebruiksnormResult,
+ normFilling: 20,
+ applicationFilling: [
+ { p_app_id: "app1", normFilling: 10 },
+ ],
+ },
phosphate: {
- normValue: 50.5,
- normSource: "Source C",
- } as GebruiksnormResult,
+ normFilling: 5,
+ applicationFilling: [
+ { p_app_id: "app1", normFilling: 2 },
+ ],
+ },
},
},
]
-
- const result = aggregateNormsToFarmLevel(fieldData)
-
- expect(result.manure).toBe(1055) // 10.5 * 100.5 = 1055.25
- expect(result.nitrogen).toBe(1580) // 10.5 * 150.5 = 1580.25
- expect(result.phosphate).toBe(530) // 10.5 * 50.5 = 530.25
+ const aggregatedFillings = aggregateNormFillingsToFarmLevel(fieldData)
+ expect(aggregatedFillings).toEqual({
+ manure: {
+ normFilling: 0,
+ applicationFilling: [{ p_app_id: "app1", normFilling: 0 }],
+ },
+ nitrogen: {
+ normFilling: 0,
+ applicationFilling: [{ p_app_id: "app1", normFilling: 0 }],
+ },
+ phosphate: {
+ normFilling: 0,
+ applicationFilling: [{ p_app_id: "app1", normFilling: 0 }],
+ },
+ })
})
})
diff --git a/fdm-calculator/src/norms/farm.ts b/fdm-calculator/src/norms/farm.ts
index 3692ef5ef..dbe5af8bf 100644
--- a/fdm-calculator/src/norms/farm.ts
+++ b/fdm-calculator/src/norms/farm.ts
@@ -1,11 +1,12 @@
import { Decimal } from "decimal.js"
import type { GebruiksnormResult } from "./nl/2025/value/types"
+import type { NormFilling } from "./nl/2025/filling/types"
/**
* Represents the input structure for the `aggregateNormsToFarmLevel` function.
* It is an array of objects, where each object contains information for a single field.
*/
-type InputAggregateNormsToFarmLevel = {
+export type InputAggregateNormsToFarmLevel = {
/**
* The unique identifier of the field.
*/
@@ -110,3 +111,121 @@ export function aggregateNormsToFarmLevel(
phosphate: totalPhosphate.toDecimalPlaces(0).toNumber(),
}
}
+
+/**
+ * Represents the input structure for the `aggregateNormFillingsToFarmLevel` function.
+ * It is an array of objects, where each object contains information for a single field.
+ */
+export type InputAggregateNormFillingsToFarmLevel = {
+ /**
+ * The unique identifier of the field.
+ */
+ b_id: string
+ /**
+ * The area of the field in hectares.
+ */
+ b_area: number
+ /**
+ * The calculated norm fillings for manure, nitrogen, and phosphate for this field.
+ */
+ normFillings: {
+ manure: NormFilling
+ nitrogen: NormFilling
+ phosphate: NormFilling
+ }
+}[]
+
+/**
+ * Represents the aggregated output of the `aggregateNormFillingsToFarmLevel` function.
+ * The results are expressed as total amounts for the farm, not per hectare.
+ */
+export type AggregatedNormFillingsToFarmLevel = {
+ /**
+ * Total manure norm filling in kg N for the entire farm.
+ */
+ manure: NormFilling
+ /**
+ * Total nitrogen norm filling in kg N for the entire farm.
+ */
+ nitrogen: NormFilling
+ /**
+ * Total phosphate norm filling in kg P2O5 for the entire farm.
+ */
+ phosphate: NormFilling
+}
+
+/**
+ * Aggregates the norm filling values from individual fields to the farm level.
+ * This function takes the output per field of the norm filling calculation,
+ * multiplies each norm filling by the field's area, and sums these values
+ * across all fields to provide total norm fillings for the farm.
+ *
+ * The result are three objects (manure, nitrogen, phosphate) each containing
+ * the total normFilling and combined applicationFillings, expressed as totals, not per hectare.
+ *
+ * @param input An array of field data, each containing field ID, area, and calculated norm fillings.
+ * @returns An object containing the total aggregated norm fillings for manure, nitrogen, and phosphate for the farm.
+ */
+export function aggregateNormFillingsToFarmLevel(
+ input: InputAggregateNormFillingsToFarmLevel,
+): AggregatedNormFillingsToFarmLevel {
+ let totalManureFilling = new Decimal(0)
+ let totalNitrogenFilling = new Decimal(0)
+ let totalPhosphateFilling = new Decimal(0)
+
+ let allManureApplicationFillings: NormFilling["applicationFilling"] = []
+ let allNitrogenApplicationFillings: NormFilling["applicationFilling"] = []
+ let allPhosphateApplicationFillings: NormFilling["applicationFilling"] = []
+
+ for (const field of input) {
+ const area = new Decimal(field.b_area)
+
+ // Aggregate manure filling
+ totalManureFilling = totalManureFilling.plus(
+ new Decimal(field.normFillings.manure.normFilling).times(area),
+ )
+ allManureApplicationFillings = allManureApplicationFillings.concat(
+ field.normFillings.manure.applicationFilling.map((app) => ({
+ ...app,
+ normFilling: new Decimal(app.normFilling).times(area).toNumber(),
+ })),
+ )
+
+ // Aggregate nitrogen filling
+ totalNitrogenFilling = totalNitrogenFilling.plus(
+ new Decimal(field.normFillings.nitrogen.normFilling).times(area),
+ )
+ allNitrogenApplicationFillings = allNitrogenApplicationFillings.concat(
+ field.normFillings.nitrogen.applicationFilling.map((app) => ({
+ ...app,
+ normFilling: new Decimal(app.normFilling).times(area).toNumber(),
+ })),
+ )
+
+ // Aggregate phosphate filling
+ totalPhosphateFilling = totalPhosphateFilling.plus(
+ new Decimal(field.normFillings.phosphate.normFilling).times(area),
+ )
+ allPhosphateApplicationFillings = allPhosphateApplicationFillings.concat(
+ field.normFillings.phosphate.applicationFilling.map((app) => ({
+ ...app,
+ normFilling: new Decimal(app.normFilling).times(area).toNumber(),
+ })),
+ )
+ }
+
+ return {
+ manure: {
+ normFilling: totalManureFilling.toDecimalPlaces(0).toNumber(),
+ applicationFilling: allManureApplicationFillings,
+ },
+ nitrogen: {
+ normFilling: totalNitrogenFilling.toDecimalPlaces(0).toNumber(),
+ applicationFilling: allNitrogenApplicationFillings,
+ },
+ phosphate: {
+ normFilling: totalPhosphateFilling.toDecimalPlaces(0).toNumber(),
+ applicationFilling: allPhosphateApplicationFillings,
+ },
+ }
+}
From 136c0947f564ccda3ea27e86aa4abfc555c9547f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mert=20Bora=20=C4=B0nevi?=
Date: Sun, 19 Oct 2025 17:22:57 +0200
Subject: [PATCH 072/243] Add caching to norm calculations
---
.../farm.$b_id_farm.$calendar.norms.tsx | 15 +++++--
fdm-calculator/rollup.config.js | 11 +++++
.../2025/dierlijke-mest-gebruiksnorm.test.ts | 18 ++++----
.../nl/2025/dierlijke-mest-gebruiksnorm.ts | 11 ++++-
.../norms/nl/2025/fosfaatgebruiksnorm.test.ts | 8 ++--
.../src/norms/nl/2025/fosfaatgebruiksnorm.ts | 10 ++++-
.../nl/2025/stikstofgebruiksnorm.test.ts | 44 +++++++++----------
.../src/norms/nl/2025/stikstofgebruiksnorm.ts | 11 ++++-
fdm-calculator/src/package.ts | 3 ++
9 files changed, 88 insertions(+), 43 deletions(-)
create mode 100644 fdm-calculator/src/package.ts
diff --git a/fdm-app/app/routes/farm.$b_id_farm.$calendar.norms.tsx b/fdm-app/app/routes/farm.$b_id_farm.$calendar.norms.tsx
index fd3f464de..9a409a367 100644
--- a/fdm-app/app/routes/farm.$b_id_farm.$calendar.norms.tsx
+++ b/fdm-app/app/routes/farm.$b_id_farm.$calendar.norms.tsx
@@ -135,9 +135,18 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
// Calculate the norms
const [normManure, normPhosphate, normNitrogen] =
await Promise.all([
- functionsForms.calculateNormForManure(input),
- functionsForms.calculateNormForPhosphate(input),
- functionsForms.calculateNormForNitrogen(input),
+ functionsForms.calculateNormForManure(
+ fdm,
+ input,
+ ),
+ functionsForms.calculateNormForPhosphate(
+ fdm,
+ input,
+ ),
+ functionsForms.calculateNormForNitrogen(
+ fdm,
+ input,
+ ),
])
return {
diff --git a/fdm-calculator/rollup.config.js b/fdm-calculator/rollup.config.js
index c5702b1e2..69b78bfe3 100644
--- a/fdm-calculator/rollup.config.js
+++ b/fdm-calculator/rollup.config.js
@@ -3,6 +3,7 @@ import resolve from "@rollup/plugin-node-resolve"
import terser from "@rollup/plugin-terser"
import typescript from "@rollup/plugin-typescript"
import { defineConfig } from "rollup"
+import packageJson from "./package.json" with { type: "json" }
export default defineConfig({
input: "src/index.ts", // Your entry point
@@ -29,6 +30,16 @@ export default defineConfig({
}
: false,
}), // Minifies the output
+ {
+ renderChunk: (code) => {
+ return {
+ code: code.replace(
+ "fdm-calculator:{FDM_CALCULATOR_VERSION}",
+ `fdm-calculator:${packageJson.version}`,
+ ),
+ }
+ },
+ }, // Modifies bundled package.ts to contain the actual package version
],
external: ["@svenvw/fdm-core", "geotiff"],
})
diff --git a/fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.test.ts
index 29fe14606..db02e28d6 100644
--- a/fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.test.ts
@@ -1,11 +1,11 @@
import { describe, expect, it } from "vitest"
import {
- getNL2025DierlijkeMestGebruiksNorm,
+ calculateNL2025DierlijkeMestGebruiksNorm,
isFieldInDerogatieVrijeZone,
} from "./dierlijke-mest-gebruiksnorm"
import type { NL2025NormsInput } from "./types"
-describe("getNL2025DierlijkeMestGebruiksNorm", () => {
+describe("calculateNL2025DierlijkeMestGebruiksNorm", () => {
it("should return the default norm value", async () => {
const mockInput: NL2025NormsInput = {
farm: { is_derogatie_bedrijf: false },
@@ -16,7 +16,7 @@ describe("getNL2025DierlijkeMestGebruiksNorm", () => {
cultivations: [],
soilAnalysis: { a_p_cc: 0, a_p_al: 0 },
}
- const result = await getNL2025DierlijkeMestGebruiksNorm(mockInput)
+ const result = await calculateNL2025DierlijkeMestGebruiksNorm(mockInput)
expect(result.normValue).toBe(170)
expect(result.normSource).toBe("Standaard - geen derogatie")
})
@@ -31,7 +31,7 @@ describe("getNL2025DierlijkeMestGebruiksNorm", () => {
cultivations: [],
soilAnalysis: { a_p_cc: 0, a_p_al: 0 },
}
- const result = await getNL2025DierlijkeMestGebruiksNorm(mockInput)
+ const result = await calculateNL2025DierlijkeMestGebruiksNorm(mockInput)
expect(result.normValue).toBe(200)
expect(result.normSource).toBe("Derogatie")
})
@@ -46,7 +46,7 @@ describe("getNL2025DierlijkeMestGebruiksNorm", () => {
cultivations: [],
soilAnalysis: { a_p_cc: 0, a_p_al: 0 },
}
- const result = await getNL2025DierlijkeMestGebruiksNorm(mockInput)
+ const result = await calculateNL2025DierlijkeMestGebruiksNorm(mockInput)
expect(result.normValue).toBe(190)
expect(result.normSource).toBe("Derogatie - NV Gebied")
})
@@ -61,7 +61,7 @@ describe("getNL2025DierlijkeMestGebruiksNorm", () => {
cultivations: [],
soilAnalysis: { a_p_cc: 0, a_p_al: 0 },
}
- const result = await getNL2025DierlijkeMestGebruiksNorm(mockInput)
+ const result = await calculateNL2025DierlijkeMestGebruiksNorm(mockInput)
expect(result.normValue).toBe(170)
expect(result.normSource).toBe("Standaard - geen derogatie")
})
@@ -76,7 +76,7 @@ describe("getNL2025DierlijkeMestGebruiksNorm", () => {
cultivations: [],
soilAnalysis: { a_p_cc: 0, a_p_al: 0 },
}
- const result = await getNL2025DierlijkeMestGebruiksNorm(mockInput)
+ const result = await calculateNL2025DierlijkeMestGebruiksNorm(mockInput)
expect(result.normValue).toBe(170)
expect(result.normSource).toBe(
"Derogatie - Grondwaterbeschermingsgebied",
@@ -93,7 +93,7 @@ describe("getNL2025DierlijkeMestGebruiksNorm", () => {
cultivations: [],
soilAnalysis: { a_p_cc: 0, a_p_al: 0 },
}
- const result = await getNL2025DierlijkeMestGebruiksNorm(mockInput)
+ const result = await calculateNL2025DierlijkeMestGebruiksNorm(mockInput)
expect(result.normValue).toBe(190)
expect(result.normSource).toBe("Derogatie - NV Gebied")
})
@@ -108,7 +108,7 @@ describe("getNL2025DierlijkeMestGebruiksNorm", () => {
cultivations: [],
soilAnalysis: { a_p_cc: 0, a_p_al: 0 },
}
- const result = await getNL2025DierlijkeMestGebruiksNorm(mockInput)
+ const result = await calculateNL2025DierlijkeMestGebruiksNorm(mockInput)
expect(result.normValue).toBe(170)
expect(result.normSource).toBe("Derogatie - Natura2000 Gebied")
})
diff --git a/fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.ts
index c6046ec16..b83234dc9 100644
--- a/fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.ts
@@ -1,4 +1,5 @@
-import type { Field } from "@svenvw/fdm-core"
+import { type Field, withCalculationCache } from "@svenvw/fdm-core"
+import pkg from "../../../package"
import { getGeoTiffValue } from "../../../shared/geotiff"
import { getFdmPublicDataUrl } from "../../../shared/public-data-url"
import { isFieldInNVGebied } from "./stikstofgebruiksnorm"
@@ -146,7 +147,7 @@ export async function isFieldInDerogatieVrijeZone(
* @see {@link https://www.rvo.nl/onderwerpen/mest/derogatie | RVO Derogatie (official page)}
* @see {@link https://www.rvo.nl/onderwerpen/mest/met-nutrienten-verontreinigde-gebieden-nv-gebieden | RVO Met nutriënten verontreinigde gebieden (NV-gebieden) (official page)}
*/
-export async function getNL2025DierlijkeMestGebruiksNorm(
+export async function calculateNL2025DierlijkeMestGebruiksNorm(
input: NL2025NormsInput,
): Promise {
const is_derogatie_bedrijf = input.farm.is_derogatie_bedrijf || false
@@ -191,3 +192,9 @@ export async function getNL2025DierlijkeMestGebruiksNorm(
return { normValue, normSource }
}
+
+export const getNL2025DierlijkeMestGebruiksNorm = withCalculationCache(
+ "calculateNL2025DierlijkeMestGebruiksNorm",
+ pkg.calculatorVersion,
+ calculateNL2025DierlijkeMestGebruiksNorm,
+)
diff --git a/fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm.test.ts
index d230c9bf2..c131dc9bd 100644
--- a/fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm.test.ts
@@ -1,8 +1,8 @@
import { describe, expect, it } from "vitest"
-import { getNL2025FosfaatGebruiksNorm } from "./fosfaatgebruiksnorm"
+import { calculateNL2025FosfaatGebruiksNorm } from "./fosfaatgebruiksnorm"
import type { NL2025NormsInput, NL2025NormsInputForCultivation } from "./types"
-describe("getNL2025FosfaatGebruiksNorm", () => {
+describe("calculateNL2025FosfaatGebruiksNorm", () => {
it("should return the correct norm for grasland", async () => {
const mockInput: NL2025NormsInput = {
farm: { is_derogatie_bedrijf: false },
@@ -17,7 +17,7 @@ describe("getNL2025FosfaatGebruiksNorm", () => {
] as NL2025NormsInputForCultivation[],
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025FosfaatGebruiksNorm(mockInput)
+ const result = await calculateNL2025FosfaatGebruiksNorm(mockInput)
expect(result.normValue).toBe(120)
expect(result.normSource).toContain("Grasland")
})
@@ -36,7 +36,7 @@ describe("getNL2025FosfaatGebruiksNorm", () => {
] as NL2025NormsInputForCultivation[],
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025FosfaatGebruiksNorm(mockInput)
+ const result = await calculateNL2025FosfaatGebruiksNorm(mockInput)
expect(result.normValue).toBe(120)
expect(result.normSource).toContain("Bouwland")
})
diff --git a/fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm.ts
index 09eeb32aa..3c328d26b 100644
--- a/fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/fosfaatgebruiksnorm.ts
@@ -1,4 +1,6 @@
+import { withCalculationCache } from "@svenvw/fdm-core"
import Decimal from "decimal.js"
+import pkg from "../../../package"
import { fosfaatNormsData } from "./fosfaatgebruiksnorm-data"
import { determineNL2025Hoofdteelt } from "./hoofdteelt"
import type {
@@ -135,7 +137,7 @@ function getFosfaatKlasse(
* @see {@link https://www.rvo.nl/onderwerpen/mest/gebruiken-en-uitrijden/fosfaat-landbouwgrond | RVO Fosfaat landbouwgrond (official page)}
* @see {@link https://www.rvo.nl/onderwerpen/mest/gebruiken-en-uitrijden/fosfaat-landbouwgrond/differentiatie | RVO Fosfaatdifferentiatie (official page, including tables for 2025)}
*/
-export async function getNL2025FosfaatGebruiksNorm(
+export async function calculateNL2025FosfaatGebruiksNorm(
input: NL2025NormsInput,
): Promise {
const cultivations = input.cultivations
@@ -171,3 +173,9 @@ export async function getNL2025FosfaatGebruiksNorm(
return { normValue, normSource }
}
+
+export const getNL2025FosfaatGebruiksNorm = withCalculationCache(
+ "calculateNL2025FosfaatGebruiksNorm",
+ pkg.calculatorVersion,
+ calculateNL2025FosfaatGebruiksNorm,
+)
diff --git a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.test.ts b/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.test.ts
index 8c6d13366..07f6c9f77 100644
--- a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.test.ts
+++ b/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.test.ts
@@ -1,7 +1,7 @@
import type { Field } from "@svenvw/fdm-core"
import { describe, expect, it } from "vitest"
import {
- getNL2025StikstofGebruiksNorm,
+ calculateNL2025StikstofGebruiksNorm,
getRegion,
isFieldInNVGebied,
} from "./stikstofgebruiksnorm"
@@ -34,7 +34,7 @@ describe("stikstofgebruiksnorm helpers", () => {
})
})
-describe("getNL2025StikstofGebruiksNorm", () => {
+describe("calculateNL2025StikstofGebruiksNorm", () => {
it("should return the correct norm for grasland", async () => {
const mockInput: NL2025NormsInput = {
farm: { is_derogatie_bedrijf: false },
@@ -52,7 +52,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(345)
expect(result.normSource).toEqual("Grasland.")
})
@@ -75,7 +75,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(140)
expect(result.normSource).toEqual(
"Akkerbouwgewas, pootaardappelen (hoge norm).",
@@ -99,7 +99,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
// The base norm for Grasland in zand_nwc is 200 in nv-gebied. With winterteelt, korting should be 0.
expect(result.normValue).toBe(200)
@@ -130,7 +130,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
// The base norm for Vruchtgewassen in zand_nwc is 108. With vanggewas sown <= Oct 1st, korting should be 0.
expect(result.normValue).toBe(108)
expect(result.normSource).toEqual(
@@ -160,7 +160,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
// The base norm for Vruchtgewassen in zand_nwc in nv-gebied is 108. With vanggewas sown Oct 2-14, korting should be 5.
expect(result.normValue).toBe(103) // 108 - 5
expect(result.normSource).toEqual(
@@ -190,7 +190,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
// The base norm for Vruchtgewassen in zand_nwc in nv-gebied is 108. With vanggewas sown Oct 15-31, korting should be 10.
expect(result.normValue).toBe(98) // 108 - 10
expect(result.normSource).toEqual(
@@ -220,7 +220,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
// The base norm for Vruchtgewassen in zand_nwc in nv-gebied is 108. With vanggewas sown Nov 1st+, korting should be 20.
expect(result.normValue).toBe(88) // 108 - 20
expect(result.normSource).toEqual(
@@ -250,7 +250,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
// The base norm for Vruchtgewassen in zand_nwc in nv-gebied is 108. With no exception, korting should be 20.
expect(result.normValue).toBe(88) // 108 - 20
expect(result.normSource).toEqual(
@@ -280,7 +280,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
// The base norm for Vruchtgewassen in klei is 135. Korting should not apply in non-sandy/loess regions.
expect(result.normValue).toBe(135)
expect(result.normSource).toEqual(
@@ -305,7 +305,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(30)
expect(result.normSource).toEqual(
"Akkerbouwgewassen, Gras voor industriële verwerking (inzaai in september en eerste jaar).",
@@ -334,7 +334,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(310)
expect(result.normSource).toEqual(
"Akkerbouwgewassen, Gras voor industriële verwerking (inzaai voor 15 mei en volgende jaren).",
@@ -358,7 +358,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(165)
expect(result.normSource).toEqual(
"Akkerbouwgewassen, Graszaad, Engels raaigras (1e jaars).",
@@ -387,7 +387,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(200)
expect(result.normSource).toEqual(
"Akkerbouwgewassen, Graszaad, Engels raaigras (overjarig).",
@@ -411,7 +411,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(85)
expect(result.normSource).toEqual(
"Akkerbouwgewassen, Roodzwenkgras (1e jaars).",
@@ -440,7 +440,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(115)
expect(result.normSource).toEqual(
"Akkerbouwgewassen, Roodzwenkgras (overjarig).",
@@ -464,7 +464,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(170)
expect(result.normSource).toEqual(
"Akkerbouwgewassen, Ui overig, zaaiui of winterui. (1e jaars).",
@@ -488,7 +488,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(170)
expect(result.normSource).toEqual(
"Akkerbouwgewassen, Ui overig, zaaiui of winterui. (2e jaars).",
@@ -512,7 +512,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(260)
expect(result.normSource).toEqual("Bladgewassen, Spinazie (1e teelt).")
})
@@ -534,7 +534,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(180)
expect(result.normSource).toEqual(
"Bladgewassen, Slasoorten (1e teelt).",
@@ -558,7 +558,7 @@ describe("getNL2025StikstofGebruiksNorm", () => {
soilAnalysis: { a_p_al: 20, a_p_cc: 0.9 },
}
- const result = await getNL2025StikstofGebruiksNorm(mockInput)
+ const result = await calculateNL2025StikstofGebruiksNorm(mockInput)
expect(result.normValue).toBe(180)
expect(result.normSource).toEqual(
"Bladgewassen, Andijvie eerste teelt volgteelt (1e teelt).",
diff --git a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.ts b/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.ts
index 6025078b0..201d7e38d 100644
--- a/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.ts
+++ b/fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.ts
@@ -1,5 +1,6 @@
-import type { Field } from "@svenvw/fdm-core"
+import { type Field, withCalculationCache } from "@svenvw/fdm-core"
import Decimal from "decimal.js"
+import pkg from "../../../package"
import { getGeoTiffValue } from "../../../shared/geotiff"
import { getFdmPublicDataUrl } from "../../../shared/public-data-url"
import { determineNL2025Hoofdteelt } from "./hoofdteelt"
@@ -523,7 +524,7 @@ function calculateKorting(
* @see {@link https://www.rvo.nl/sites/default/files/2024-12/Tabel-2-Stikstof-landbouwgrond-2025_0.pdf | RVO Tabel 2 Stikstof landbouwgrond 2025} - Official document for nitrogen norms.
* @see {@link https://www.rvo.nl/onderwerpen/mest/gebruiken-en-uitrijden/stikstof-en-fosfaat/gebruiksnormen-stikstof | RVO Gebruiksnormen stikstof (official page)} - General information on nitrogen and phosphate norms.
*/
-export async function getNL2025StikstofGebruiksNorm(
+export async function calculateNL2025StikstofGebruiksNorm(
input: NL2025NormsInput,
): Promise {
const is_derogatie_bedrijf = input.farm.is_derogatie_bedrijf
@@ -634,3 +635,9 @@ export async function getNL2025StikstofGebruiksNorm(
normSource: `${selectedStandard.cultivation_rvo_table2}${subTypeText}${kortingDescription}`,
}
}
+
+export const getNL2025StikstofGebruiksNorm = withCalculationCache(
+ "calculateNL2025StikstofGebruiksNorm",
+ pkg.calculatorVersion,
+ calculateNL2025StikstofGebruiksNorm,
+)
diff --git a/fdm-calculator/src/package.ts b/fdm-calculator/src/package.ts
new file mode 100644
index 000000000..bebc4d04d
--- /dev/null
+++ b/fdm-calculator/src/package.ts
@@ -0,0 +1,3 @@
+export default {
+ calculatorVersion: "fdm-calculator:{FDM_CALCULATOR_VERSION}",
+}
From df994c37ca030a434ac86c09c1ea94d6b31bec0a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mert=20Bora=20=C4=B0nevi?=
Date: Sun, 19 Oct 2025 17:41:06 +0200
Subject: [PATCH 073/243] Add caching to nitrogen balance calculations
---
...rm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx | 4 ++--
...m.$b_id_farm.$calendar.balance.nitrogen._index.tsx | 8 +++++---
fdm-calculator/src/balance/nitrogen/index.ts | 11 +++++++++--
fdm-calculator/src/index.ts | 5 ++++-
4 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx
index 9f4856ee7..23386a378 100644
--- a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx
+++ b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen.$b_id.tsx
@@ -1,6 +1,6 @@
import {
- calculateNitrogenBalance,
collectInputForNitrogenBalance,
+ getNitrogenBalance,
} from "@svenvw/fdm-calculator"
import { getFarm, getField } from "@svenvw/fdm-core"
import {
@@ -98,7 +98,7 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
timeframe,
b_id,
).then(async (input) => {
- const nitrogenBalanceResult = await calculateNitrogenBalance(input)
+ const nitrogenBalanceResult = await getNitrogenBalance(fdm, input)
let fieldResult = nitrogenBalanceResult.fields.find(
(field: { b_id: string }) => field.b_id === b_id,
)
diff --git a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
index 58042bd83..94ef0fd97 100644
--- a/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
+++ b/fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
@@ -1,6 +1,6 @@
import {
- calculateNitrogenBalance,
collectInputForNitrogenBalance,
+ getNitrogenBalance,
type NitrogenBalanceFieldResultNumeric,
} from "@svenvw/fdm-calculator"
import { getFarm, getFields } from "@svenvw/fdm-core"
@@ -94,8 +94,10 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
timeframe,
)
- const nitrogenBalanceResult =
- await calculateNitrogenBalance(nitrogenBalanceInput)
+ const nitrogenBalanceResult = await getNitrogenBalance(
+ fdm,
+ nitrogenBalanceInput,
+ )
if (nitrogenBalanceResult.hasErrors) {
reportError(
diff --git a/fdm-calculator/src/balance/nitrogen/index.ts b/fdm-calculator/src/balance/nitrogen/index.ts
index 851f2a6f2..486b5dfb4 100644
--- a/fdm-calculator/src/balance/nitrogen/index.ts
+++ b/fdm-calculator/src/balance/nitrogen/index.ts
@@ -1,4 +1,4 @@
-import type { fdmSchema } from "@svenvw/fdm-core"
+import { type fdmSchema, withCalculationCache } from "@svenvw/fdm-core"
import Decimal from "decimal.js"
import {
calculateBulkDensity,
@@ -6,6 +6,7 @@ import {
calculateOrganicCarbon,
calculateOrganicMatter,
} from "../../conversions/soil"
+import pkg from "../../package"
import { getFdmPublicDataUrl } from "../../shared/public-data-url"
import { calculateNitrogenEmission } from "./emission"
import { calculateNitrogenRemoval } from "./removal"
@@ -18,8 +19,8 @@ import type {
FieldInput,
NitrogenBalance,
NitrogenBalanceField,
- NitrogenBalanceFieldResult,
NitrogenBalanceFieldNumeric,
+ NitrogenBalanceFieldResult,
NitrogenBalanceInput,
NitrogenBalanceNumeric,
SoilAnalysisPicked,
@@ -118,6 +119,12 @@ export async function calculateNitrogenBalance(
return convertNitrogenBalanceToNumeric(farmWithBalanceDecimal)
}
+export const getNitrogenBalance = withCalculationCache(
+ "calculateNitrogenBalance",
+ pkg.calculatorVersion,
+ calculateNitrogenBalance,
+)
+
/**
* Calculates the nitrogen balance for a single field, considering nitrogen supply, removal, and emission.
*
diff --git a/fdm-calculator/src/index.ts b/fdm-calculator/src/index.ts
index 3231374eb..7b7c1a17b 100644
--- a/fdm-calculator/src/index.ts
+++ b/fdm-calculator/src/index.ts
@@ -1,4 +1,7 @@
-export { calculateNitrogenBalance } from "./balance/nitrogen/index"
+export {
+ calculateNitrogenBalance,
+ getNitrogenBalance,
+} from "./balance/nitrogen/index"
export { collectInputForNitrogenBalance } from "./balance/nitrogen/input"
export type {
FieldInput,
From 1a76b1c40782288bc0a44f4c94f27d331d62e008 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mert=20Bora=20=C4=B0nevi?=
Date: Sun, 19 Oct 2025 18:14:49 +0200
Subject: [PATCH 074/243] Add caching to the NMI API nutrient advice
integration
---
...d_farm.$calendar.nutrient_advice.$b_id.tsx | 50 +++++++++++++------
fdm-calculator/src/index.ts | 2 +
2 files changed, 36 insertions(+), 16 deletions(-)
diff --git a/fdm-app/app/routes/farm.$b_id_farm.$calendar.nutrient_advice.$b_id.tsx b/fdm-app/app/routes/farm.$b_id_farm.$calendar.nutrient_advice.$b_id.tsx
index ef0605278..f842dce60 100644
--- a/fdm-app/app/routes/farm.$b_id_farm.$calendar.nutrient_advice.$b_id.tsx
+++ b/fdm-app/app/routes/farm.$b_id_farm.$calendar.nutrient_advice.$b_id.tsx
@@ -5,6 +5,7 @@ import {
getFertilizerApplications,
getFertilizers,
getField,
+ withCalculationCache,
} from "@svenvw/fdm-core"
import { Suspense, use } from "react"
import {
@@ -28,6 +29,7 @@ import { getCalendar, getTimeframe } from "~/lib/calendar"
import { clientConfig } from "~/lib/config"
import { handleLoaderError } from "~/lib/error"
import { fdm } from "~/lib/fdm.server"
+import { fdmCalculator } from "@svenvw/fdm-calculator"
// Meta
export const meta: MetaFunction = () => {
@@ -107,29 +109,45 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
throw handleLoaderError("missing: cultivations")
}
- const [
- resolvedCurrentSoilData,
- resolvedFertilizerApplications,
- resolvedFertilizers,
- ] = await Promise.all([
+ const inputs = await Promise.all([
currentSoilData,
fertilizerApplications,
fertilizers,
])
- // For now take the first cultivation
- const b_lu_catalogue = cultivations[0].b_lu_catalogue
+ const [_, resolvedFertilizerApplications, resolvedFertilizers] =
+ inputs
- const doses = calculateDose({
- applications: resolvedFertilizerApplications,
- fertilizers: resolvedFertilizers,
- })
+ const getCalculation = withCalculationCache(
+ "fieldNutrientAdviceAsyncData",
+ fdmCalculator.calculatorVersion,
+ async ([
+ resolvedCurrentSoilData,
+ resolvedFertilizerApplications,
+ resolvedFertilizers,
+ ]: typeof inputs) => {
+ // For now take the first cultivation
+ const b_lu_catalogue = cultivations[0].b_lu_catalogue
+
+ const doses = calculateDose({
+ applications: resolvedFertilizerApplications,
+ fertilizers: resolvedFertilizers,
+ })
+
+ // Request nutrient advice
+ const nutrientAdvice = await getNutrientAdvice(
+ b_lu_catalogue,
+ field.b_centroid,
+ resolvedCurrentSoilData,
+ )
- // Request nutrient advice
- const nutrientAdvice = await getNutrientAdvice(
- b_lu_catalogue,
- field.b_centroid,
- resolvedCurrentSoilData,
+ return [doses, nutrientAdvice]
+ },
+ )
+
+ const [doses, nutrientAdvice] = await getCalculation(
+ fdm,
+ inputs,
)
return {
diff --git a/fdm-calculator/src/index.ts b/fdm-calculator/src/index.ts
index 7b7c1a17b..ea9c3ac8a 100644
--- a/fdm-calculator/src/index.ts
+++ b/fdm-calculator/src/index.ts
@@ -1,3 +1,5 @@
+import pkg from "./package"
+export const fdmCalculator = pkg
export {
calculateNitrogenBalance,
getNitrogenBalance,
From 776160eba7da45ece0bae9fd90050574c7d2398d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mert=20Bora=20=C4=B0nevi?=
Date: Sun, 19 Oct 2025 18:21:59 +0200
Subject: [PATCH 075/243] Add changeset
---
.changeset/shaggy-bars-rule.md | 7 +++++++
.changeset/whole-lies-jog.md | 5 +++++
2 files changed, 12 insertions(+)
create mode 100644 .changeset/shaggy-bars-rule.md
create mode 100644 .changeset/whole-lies-jog.md
diff --git a/.changeset/shaggy-bars-rule.md b/.changeset/shaggy-bars-rule.md
new file mode 100644
index 000000000..88425d689
--- /dev/null
+++ b/.changeset/shaggy-bars-rule.md
@@ -0,0 +1,7 @@
+---
+"@svenvw/fdm-calculator": minor
+"@svenvw/fdm-core": minor
+"@svenvw/fdm-app": minor
+---
+
+Added caching of calculations for usage norms and nitrogen balance.
diff --git a/.changeset/whole-lies-jog.md b/.changeset/whole-lies-jog.md
new file mode 100644
index 000000000..f058ae365
--- /dev/null
+++ b/.changeset/whole-lies-jog.md
@@ -0,0 +1,5 @@
+---
+"@svenvw/fdm-app": minor
+---
+
+Added caching for the NMI api responses for nutrient advice.
From 06259b90ec609aaaa877dbd34fe73ba809bb0eb1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mert=20Bora=20=C4=B0nevi?=
Date: Sun, 19 Oct 2025 19:17:01 +0200
Subject: [PATCH 076/243] Resolve some nitpicks
---
fdm-calculator/rollup.config.js | 22 +++++++++++++++++++---
fdm-core/src/calculator.ts | 1 +
fdm-core/src/db/schema-calculator.ts | 2 +-
3 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/fdm-calculator/rollup.config.js b/fdm-calculator/rollup.config.js
index 69b78bfe3..dbf0aabff 100644
--- a/fdm-calculator/rollup.config.js
+++ b/fdm-calculator/rollup.config.js
@@ -31,12 +31,28 @@ export default defineConfig({
: false,
}), // Minifies the output
{
- renderChunk: (code) => {
+ renderChunk: (code, map) => {
+ const replacement = `"fdm-calculator:${packageJson.version}"`
+
+ const placeholder = `"fdm-calculator:{FDM_CALCULATOR_VERSION}"`
+ const occurrences = code.match(new RegExp(placeholder.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'), "g")) || []
+
+ if (occurrences.length === 0) {
+ console.warn(`⚠️ Version placeholder "${placeholder}" not found in bundle`)
+ } else if (occurrences.length > 1) {
+ console.warn(`⚠️ Version placeholder "${placeholder}" appears ${occurrences.length} times`)
+ }
+
+ if (replacement.length > placeholder.length) {
+ console.warn("⚠️ Replacement fdm-calculator version string ended up longer than the placeholder in package.ts. Source map will be broken.")
+ }
+
return {
code: code.replace(
- "fdm-calculator:{FDM_CALCULATOR_VERSION}",
- `fdm-calculator:${packageJson.version}`,
+ placeholder,
+ replacement.padEnd(placeholder.length, " "), // Pad to not break the source map
),
+ map,
}
},
}, // Modifies bundled package.ts to contain the actual package version
diff --git a/fdm-core/src/calculator.ts b/fdm-core/src/calculator.ts
index 37b7eba5f..636ea4771 100644
--- a/fdm-core/src/calculator.ts
+++ b/fdm-core/src/calculator.ts
@@ -44,6 +44,7 @@ export async function getCachedCalculation(
),
),
)
+ .limit(1)
return result?.length ? (result[0].result as T_Output) : null
}
diff --git a/fdm-core/src/db/schema-calculator.ts b/fdm-core/src/db/schema-calculator.ts
index 80e08adb6..862b41ec6 100644
--- a/fdm-core/src/db/schema-calculator.ts
+++ b/fdm-core/src/db/schema-calculator.ts
@@ -8,7 +8,7 @@ import {
} from "drizzle-orm/pg-core"
export const fdmCalculatorSchema = pgSchema("fdm-calculator")
-export type fdmSchemaAuthNTypeSelect = typeof fdmCalculatorSchema.table
+export type fdmSchemaCalculatorTypeSelect = typeof fdmCalculatorSchema.table
export const calculationCache = fdmCalculatorSchema.table(
"calculation_cache",
From 638c49219e73f8724a8d22db309763b7127f7572 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Mon, 20 Oct 2025 09:27:29 +0200
Subject: [PATCH 077/243] fix: type
---
fdm-core/src/grazing_intention.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fdm-core/src/grazing_intention.ts b/fdm-core/src/grazing_intention.ts
index a3bb8745a..a1c05c702 100644
--- a/fdm-core/src/grazing_intention.ts
+++ b/fdm-core/src/grazing_intention.ts
@@ -154,7 +154,7 @@ export async function getGrazingIntention(
fdm: FdmType,
principal_id: PrincipalId,
b_id_farm: schema.farmsTypeSelect["b_id_farm"],
- b_grazing_intention_year: number,
+ b_grazing_intention_year: schema.intendingGrazingTypeSelect["b_grazing_intention_year"],
): Promise {
try {
await checkPermission(
From eb0315526d05872c2d37bb16484ed1fc7b4b749b Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Mon, 20 Oct 2025 09:48:17 +0200
Subject: [PATCH 078/243] chore: remove outdated comment
---
fdm-calculator/src/norms/index.ts | 1 -
1 file changed, 1 deletion(-)
diff --git a/fdm-calculator/src/norms/index.ts b/fdm-calculator/src/norms/index.ts
index fee1158b8..8e2b21922 100644
--- a/fdm-calculator/src/norms/index.ts
+++ b/fdm-calculator/src/norms/index.ts
@@ -30,7 +30,6 @@ export function createFunctionsForFertilizerApplicationFilling(
) {
if (b_region === "NL") {
if (year === "2025") {
- // TODO: Implement fertilizer application filling functions for NL 2025
return {
collectInputForFertilizerApplicationFilling:
collectInputForFertilizerApplicationFilling,
From 472ae454485458a0461bc7bec0e03723dc56378c Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Mon, 20 Oct 2025 09:48:43 +0200
Subject: [PATCH 079/243] feat: make aggregateNormFillingsToFarmLevel
available
---
fdm-calculator/src/index.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fdm-calculator/src/index.ts b/fdm-calculator/src/index.ts
index 2a23e8101..4e95b7a87 100644
--- a/fdm-calculator/src/index.ts
+++ b/fdm-calculator/src/index.ts
@@ -4,7 +4,7 @@ export type {
FieldInput,
NitrogenBalanceInput,
NitrogenBalanceNumeric,
- NitrogenBalanceFieldNumeric,
+ NitrogenBalanceFieldNumeric,
NitrogenBalanceFieldResultNumeric,
NitrogenEmissionAmmoniaFertilizersNumeric,
NitrogenEmissionAmmoniaNumeric,
@@ -24,7 +24,7 @@ export {
createFunctionsForFertilizerApplicationFilling,
createFunctionsForNorms,
} from "./norms"
-export type { AggregatedNormsToFarmLevel } from "./norms/farm"
+export type { AggregatedNormsToFarmLevel, aggregateNormFillingsToFarmLevel } from "./norms/farm"
export {
isFieldInGWGBGebied,
isFieldInNatura2000Gebied,
From 8b2bf8cbd6225439cd8da76914c494b0f0c5f4a3 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Mon, 20 Oct 2025 09:48:55 +0200
Subject: [PATCH 080/243] chore: add changeset
---
.changeset/vast-paws-begin.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 .changeset/vast-paws-begin.md
diff --git a/.changeset/vast-paws-begin.md b/.changeset/vast-paws-begin.md
new file mode 100644
index 000000000..e935b24b7
--- /dev/null
+++ b/.changeset/vast-paws-begin.md
@@ -0,0 +1,5 @@
+---
+"@svenvw/fdm-calculator": minor
+---
+
+Add functions to calculate the norm filling by fertilizer application for NL 2025
From ed417fab94026902c79674c267531e53c500a37f Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Mon, 20 Oct 2025 12:15:49 +0200
Subject: [PATCH 081/243] feat: make isValidTracesNumber and
isValidSkalNumber available
---
fdm-core/src/index.ts | 2 ++
1 file changed, 2 insertions(+)
diff --git a/fdm-core/src/index.ts b/fdm-core/src/index.ts
index f2edb48cf..28618c99a 100644
--- a/fdm-core/src/index.ts
+++ b/fdm-core/src/index.ts
@@ -157,6 +157,8 @@ export {
listOrganicCertifications,
getOrganicCertification,
removeOrganicCertification,
+ isValidSkalNumber,
+ isValidTracesNumber,
} from "./organic"
export type { OrganicCertification } from "./organic.d"
export {
From 675b8f083a86e4ab303c8f0eb8b592635af760f2 Mon Sep 17 00:00:00 2001
From: Sven Verweij <37927107+SvenVw@users.noreply.github.com>
Date: Mon, 20 Oct 2025 12:18:15 +0200
Subject: [PATCH 082/243] chore: add and update shadcn components
---
fdm-app/app/components/ui/empty.tsx | 104 ++++++++++
fdm-app/app/components/ui/field.tsx | 242 ++++++++++++++++++++++++
fdm-app/app/components/ui/label.tsx | 34 ++--
fdm-app/app/components/ui/separator.tsx | 29 ++-
fdm-app/package.json | 2 +
pnpm-lock.yaml | 6 +
6 files changed, 384 insertions(+), 33 deletions(-)
create mode 100644 fdm-app/app/components/ui/empty.tsx
create mode 100644 fdm-app/app/components/ui/field.tsx
diff --git a/fdm-app/app/components/ui/empty.tsx b/fdm-app/app/components/ui/empty.tsx
new file mode 100644
index 000000000..424c1cbf2
--- /dev/null
+++ b/fdm-app/app/components/ui/empty.tsx
@@ -0,0 +1,104 @@
+import { cva, type VariantProps } from "class-variance-authority"
+
+import { cn } from "~/lib/utils"
+
+function Empty({ className, ...props }: React.ComponentProps<"div">) {
+ return (
+
+ )
+}
+
+function EmptyHeader({ className, ...props }: React.ComponentProps<"div">) {
+ return (
+
+ )
+}
+
+const emptyMediaVariants = cva(
+ "mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
+ {
+ variants: {
+ variant: {
+ default: "bg-transparent",
+ icon: "bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ },
+ }
+)
+
+function EmptyMedia({
+ className,
+ variant = "default",
+ ...props
+}: React.ComponentProps<"div"> & VariantProps) {
+ return (
+
+ )
+}
+
+function EmptyTitle({ className, ...props }: React.ComponentProps<"div">) {
+ return (
+
+ )
+}
+
+function EmptyDescription({ className, ...props }: React.ComponentProps<"p">) {
+ return (
+ a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4",
+ className
+ )}
+ {...props}
+ />
+ )
+}
+
+function EmptyContent({ className, ...props }: React.ComponentProps<"div">) {
+ return (
+
+ )
+}
+
+export {
+ Empty,
+ EmptyHeader,
+ EmptyTitle,
+ EmptyDescription,
+ EmptyContent,
+ EmptyMedia,
+}
diff --git a/fdm-app/app/components/ui/field.tsx b/fdm-app/app/components/ui/field.tsx
new file mode 100644
index 000000000..17bdba03d
--- /dev/null
+++ b/fdm-app/app/components/ui/field.tsx
@@ -0,0 +1,242 @@
+import { useMemo } from "react"
+import { cva, type VariantProps } from "class-variance-authority"
+
+import { cn } from "~/lib/utils"
+import { Label } from "~/components/ui/label"
+import { Separator } from "~/components/ui/separator"
+
+function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">) {
+ return (
+