From 8a08147265217a89d04b976177a5541b0f2ff5c1 Mon Sep 17 00:00:00 2001 From: florianfederspiel Date: Mon, 16 Mar 2026 20:46:26 +0100 Subject: [PATCH] Fixes --- .idea/.gitignore | 8 + .idea/FEDEO.iml | 12 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + backend/Dockerfile | 10 +- .../migrations/0020_file_extracted_text.sql | 1 + backend/db/migrations/meta/0005_snapshot.json | 10685 ++++++++ backend/db/migrations/meta/0017_snapshot.json | 11525 ++++++++ backend/db/migrations/meta/_journal.json | 7 + backend/db/schema/files.ts | 1 + backend/scripts/import-members-csv.ts | 270 + backend/scripts/import-skr42-accounts.ts | 265 + backend/scripts/skr42.pdf | Bin 0 -> 421309 bytes .../modules/cron/prepareIncomingInvoices.ts | 158 +- backend/src/routes/files.ts | 45 +- backend/src/routes/functions.ts | 68 +- backend/src/utils/documentText.ts | 315 + backend/src/utils/files.ts | 31 +- backend/src/utils/gpt.ts | 133 +- backend/tmp-invoice-1453.png | Bin 0 -> 298293 bytes frontend/package-lock.json | 22180 ++++++++++++++++ mobile/app/more/account.tsx | 186 + mobile/app/more/customer/[id].tsx | 881 + mobile/app/more/customers.tsx | 369 + mobile/app/more/inventory.tsx | 541 + mobile/app/more/nimbot.tsx | 410 + mobile/app/more/plant/[id].tsx | 396 + mobile/app/more/plants.tsx | 432 + mobile/app/more/settings.tsx | 223 + mobile/app/more/wiki.tsx | 804 + mobile/app/project/[id].tsx | 802 + mobile/eas.json | 23 + mobile/src/lib/nimbot.ts | 628 + mobile/src/lib/server-config.ts | 91 + skills/openclaw-m2m-openapi/SKILL.md | 102 + .../openclaw-m2m-openapi/agents/openai.yaml | 7 + 36 files changed, 51386 insertions(+), 237 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/FEDEO.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 backend/db/migrations/0020_file_extracted_text.sql create mode 100644 backend/db/migrations/meta/0005_snapshot.json create mode 100644 backend/db/migrations/meta/0017_snapshot.json create mode 100644 backend/scripts/import-members-csv.ts create mode 100644 backend/scripts/import-skr42-accounts.ts create mode 100644 backend/scripts/skr42.pdf create mode 100644 backend/src/utils/documentText.ts create mode 100644 backend/tmp-invoice-1453.png create mode 100644 frontend/package-lock.json create mode 100644 mobile/app/more/account.tsx create mode 100644 mobile/app/more/customer/[id].tsx create mode 100644 mobile/app/more/customers.tsx create mode 100644 mobile/app/more/inventory.tsx create mode 100644 mobile/app/more/nimbot.tsx create mode 100644 mobile/app/more/plant/[id].tsx create mode 100644 mobile/app/more/plants.tsx create mode 100644 mobile/app/more/settings.tsx create mode 100644 mobile/app/more/wiki.tsx create mode 100644 mobile/app/project/[id].tsx create mode 100644 mobile/eas.json create mode 100644 mobile/src/lib/nimbot.ts create mode 100644 mobile/src/lib/server-config.ts create mode 100644 skills/openclaw-m2m-openapi/SKILL.md create mode 100644 skills/openclaw-m2m-openapi/agents/openai.yaml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/FEDEO.iml b/.idea/FEDEO.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/.idea/FEDEO.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..5c97d40 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/backend/Dockerfile b/backend/Dockerfile index 015f7ec..66ea34b 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,6 +1,14 @@ -FROM node:20-alpine +FROM node:20-bookworm-slim WORKDIR /usr/src/app +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + poppler-utils \ + tesseract-ocr \ + tesseract-ocr-deu \ + tesseract-ocr-eng \ + && rm -rf /var/lib/apt/lists/* + # Package-Dateien COPY package*.json ./ diff --git a/backend/db/migrations/0020_file_extracted_text.sql b/backend/db/migrations/0020_file_extracted_text.sql new file mode 100644 index 0000000..39e0c1a --- /dev/null +++ b/backend/db/migrations/0020_file_extracted_text.sql @@ -0,0 +1 @@ +ALTER TABLE "files" ADD COLUMN "extracted_text" text; diff --git a/backend/db/migrations/meta/0005_snapshot.json b/backend/db/migrations/meta/0005_snapshot.json new file mode 100644 index 0000000..268f869 --- /dev/null +++ b/backend/db/migrations/meta/0005_snapshot.json @@ -0,0 +1,10685 @@ +{ + "id": "f3f2e20d-04d9-4fb8-8399-613cc3600cc0", + "prevId": "91737e8e-9323-4b3f-9c03-13793e3b160c", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.accounts": { + "name": "accounts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "accounts_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "number": { + "name": "number", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "label": { + "name": "label", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.auth_profiles": { + "name": "auth_profiles", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "first_name": { + "name": "first_name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "last_name": { + "name": "last_name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "full_name": { + "name": "full_name", + "type": "text", + "primaryKey": false, + "notNull": false, + "generated": { + "as": "((first_name || ' ') || last_name)", + "type": "stored" + } + }, + "mobile_tel": { + "name": "mobile_tel", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "fixed_tel": { + "name": "fixed_tel", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "salutation": { + "name": "salutation", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "employee_number": { + "name": "employee_number", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "weekly_working_hours": { + "name": "weekly_working_hours", + "type": "double precision", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "annual_paid_leave_days": { + "name": "annual_paid_leave_days", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "weekly_regular_working_hours": { + "name": "weekly_regular_working_hours", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{}'" + }, + "clothing_size_top": { + "name": "clothing_size_top", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "clothing_size_bottom": { + "name": "clothing_size_bottom", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "clothing_size_shoe": { + "name": "clothing_size_shoe", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "email_signature": { + "name": "email_signature", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'

Mit freundlichen Grüßen

'" + }, + "birthday": { + "name": "birthday", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "entry_date": { + "name": "entry_date", + "type": "date", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "automatic_hour_corrections": { + "name": "automatic_hour_corrections", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'" + }, + "recreation_days_compensation": { + "name": "recreation_days_compensation", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "customer_for_portal": { + "name": "customer_for_portal", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "pinned_on_navigation": { + "name": "pinned_on_navigation", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'" + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "token_id": { + "name": "token_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "weekly_working_days": { + "name": "weekly_working_days", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "old_profile_id": { + "name": "old_profile_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "temp_config": { + "name": "temp_config", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "state_code": { + "name": "state_code", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'DE-NI'" + }, + "contract_type": { + "name": "contract_type", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "position": { + "name": "position", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "qualification": { + "name": "qualification", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "address_street": { + "name": "address_street", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "address_zip": { + "name": "address_zip", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "address_city": { + "name": "address_city", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + } + }, + "indexes": {}, + "foreignKeys": { + "auth_profiles_user_id_auth_users_id_fk": { + "name": "auth_profiles_user_id_auth_users_id_fk", + "tableFrom": "auth_profiles", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.auth_role_permissions": { + "name": "auth_role_permissions", + "schema": "", + "columns": { + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "role_id": { + "name": "role_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "auth_role_permissions_role_id_auth_roles_id_fk": { + "name": "auth_role_permissions_role_id_auth_roles_id_fk", + "tableFrom": "auth_role_permissions", + "tableTo": "auth_roles", + "columnsFrom": [ + "role_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.auth_roles": { + "name": "auth_roles", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "auth_roles_created_by_auth_users_id_fk": { + "name": "auth_roles_created_by_auth_users_id_fk", + "tableFrom": "auth_roles", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.auth_tenant_users": { + "name": "auth_tenant_users", + "schema": "", + "columns": { + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "auth_tenant_users_created_by_auth_users_id_fk": { + "name": "auth_tenant_users_created_by_auth_users_id_fk", + "tableFrom": "auth_tenant_users", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.auth_user_roles": { + "name": "auth_user_roles", + "schema": "", + "columns": { + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "role_id": { + "name": "role_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "auth_user_roles_user_id_auth_users_id_fk": { + "name": "auth_user_roles_user_id_auth_users_id_fk", + "tableFrom": "auth_user_roles", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "auth_user_roles_role_id_auth_roles_id_fk": { + "name": "auth_user_roles_role_id_auth_roles_id_fk", + "tableFrom": "auth_user_roles", + "tableTo": "auth_roles", + "columnsFrom": [ + "role_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "auth_user_roles_created_by_auth_users_id_fk": { + "name": "auth_user_roles_created_by_auth_users_id_fk", + "tableFrom": "auth_user_roles", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.auth_users": { + "name": "auth_users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "password_hash": { + "name": "password_hash", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "multi_tenant": { + "name": "multi_tenant", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "must_change_password": { + "name": "must_change_password", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "ported": { + "name": "ported", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.bankaccounts": { + "name": "bankaccounts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "bankaccounts_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "iban": { + "name": "iban", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "bankId": { + "name": "bankId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "ownerName": { + "name": "ownerName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "accountId": { + "name": "accountId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "balance": { + "name": "balance", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "expired": { + "name": "expired", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "datevNumber": { + "name": "datevNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "synced_at": { + "name": "synced_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "bankaccounts_tenant_tenants_id_fk": { + "name": "bankaccounts_tenant_tenants_id_fk", + "tableFrom": "bankaccounts", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "bankaccounts_updated_by_auth_users_id_fk": { + "name": "bankaccounts_updated_by_auth_users_id_fk", + "tableFrom": "bankaccounts", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.bankrequisitions": { + "name": "bankrequisitions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "institutionId": { + "name": "institutionId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "bankrequisitions_tenant_tenants_id_fk": { + "name": "bankrequisitions_tenant_tenants_id_fk", + "tableFrom": "bankrequisitions", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "bankrequisitions_updated_by_auth_users_id_fk": { + "name": "bankrequisitions_updated_by_auth_users_id_fk", + "tableFrom": "bankrequisitions", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.bankstatements": { + "name": "bankstatements", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "bankstatements_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "account": { + "name": "account", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "date": { + "name": "date", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "credIban": { + "name": "credIban", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "credName": { + "name": "credName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "text": { + "name": "text", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "amount": { + "name": "amount", + "type": "double precision", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "debIban": { + "name": "debIban", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "debName": { + "name": "debName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "gocardlessId": { + "name": "gocardlessId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "currency": { + "name": "currency", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "valueDate": { + "name": "valueDate", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "mandateId": { + "name": "mandateId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "contract": { + "name": "contract", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "bankstatements_account_bankaccounts_id_fk": { + "name": "bankstatements_account_bankaccounts_id_fk", + "tableFrom": "bankstatements", + "tableTo": "bankaccounts", + "columnsFrom": [ + "account" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "bankstatements_tenant_tenants_id_fk": { + "name": "bankstatements_tenant_tenants_id_fk", + "tableFrom": "bankstatements", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "bankstatements_contract_contracts_id_fk": { + "name": "bankstatements_contract_contracts_id_fk", + "tableFrom": "bankstatements", + "tableTo": "contracts", + "columnsFrom": [ + "contract" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "bankstatements_updated_by_auth_users_id_fk": { + "name": "bankstatements_updated_by_auth_users_id_fk", + "tableFrom": "bankstatements", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.checkexecutions": { + "name": "checkexecutions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "check": { + "name": "check", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "executed_at": { + "name": "executed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "checkexecutions_check_checks_id_fk": { + "name": "checkexecutions_check_checks_id_fk", + "tableFrom": "checkexecutions", + "tableTo": "checks", + "columnsFrom": [ + "check" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.checks": { + "name": "checks", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "vehicle": { + "name": "vehicle", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "inventoryitem": { + "name": "inventoryitem", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "distance": { + "name": "distance", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "default": 1 + }, + "distanceUnit": { + "name": "distanceUnit", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'days'" + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "checks_vehicle_vehicles_id_fk": { + "name": "checks_vehicle_vehicles_id_fk", + "tableFrom": "checks", + "tableTo": "vehicles", + "columnsFrom": [ + "vehicle" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "checks_inventoryitem_inventoryitems_id_fk": { + "name": "checks_inventoryitem_inventoryitems_id_fk", + "tableFrom": "checks", + "tableTo": "inventoryitems", + "columnsFrom": [ + "inventoryitem" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "checks_tenant_tenants_id_fk": { + "name": "checks_tenant_tenants_id_fk", + "tableFrom": "checks", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "checks_updated_by_auth_users_id_fk": { + "name": "checks_updated_by_auth_users_id_fk", + "tableFrom": "checks", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.citys": { + "name": "citys", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "citys_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "short": { + "name": "short", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "long": { + "name": "long", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "geometry": { + "name": "geometry", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "zip": { + "name": "zip", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "districtCode": { + "name": "districtCode", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "countryName": { + "name": "countryName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "countryCode": { + "name": "countryCode", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "districtName": { + "name": "districtName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "geopoint": { + "name": "geopoint", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.contacts": { + "name": "contacts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "contacts_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "firstName": { + "name": "firstName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "lastName": { + "name": "lastName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "phoneMobile": { + "name": "phoneMobile", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "phoneHome": { + "name": "phoneHome", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "heroId": { + "name": "heroId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "role": { + "name": "role", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "fullName": { + "name": "fullName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "salutation": { + "name": "salutation", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "birthday": { + "name": "birthday", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "contacts_customer_customers_id_fk": { + "name": "contacts_customer_customers_id_fk", + "tableFrom": "contacts", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "contacts_updated_by_auth_users_id_fk": { + "name": "contacts_updated_by_auth_users_id_fk", + "tableFrom": "contacts", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.contracts": { + "name": "contracts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "contracts_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "recurring": { + "name": "recurring", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "rhythm": { + "name": "rhythm", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "startDate": { + "name": "startDate", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "endDate": { + "name": "endDate", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "signDate": { + "name": "signDate", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "duration": { + "name": "duration", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "contact": { + "name": "contact", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "bankingIban": { + "name": "bankingIban", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bankingBIC": { + "name": "bankingBIC", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bankingName": { + "name": "bankingName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bankingOwner": { + "name": "bankingOwner", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "sepaRef": { + "name": "sepaRef", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "sepaDate": { + "name": "sepaDate", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "paymentType": { + "name": "paymentType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "invoiceDispatch": { + "name": "invoiceDispatch", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "ownFields": { + "name": "ownFields", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{}'::jsonb" + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "contractNumber": { + "name": "contractNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "contracts_customer_customers_id_fk": { + "name": "contracts_customer_customers_id_fk", + "tableFrom": "contracts", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "contracts_contact_contacts_id_fk": { + "name": "contracts_contact_contacts_id_fk", + "tableFrom": "contracts", + "tableTo": "contacts", + "columnsFrom": [ + "contact" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "contracts_updated_by_auth_users_id_fk": { + "name": "contracts_updated_by_auth_users_id_fk", + "tableFrom": "contracts", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.costcentres": { + "name": "costcentres", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "number": { + "name": "number", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "vehicle": { + "name": "vehicle", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "project": { + "name": "project", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "inventoryitem": { + "name": "inventoryitem", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "costcentres_tenant_tenants_id_fk": { + "name": "costcentres_tenant_tenants_id_fk", + "tableFrom": "costcentres", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "costcentres_vehicle_vehicles_id_fk": { + "name": "costcentres_vehicle_vehicles_id_fk", + "tableFrom": "costcentres", + "tableTo": "vehicles", + "columnsFrom": [ + "vehicle" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "costcentres_project_projects_id_fk": { + "name": "costcentres_project_projects_id_fk", + "tableFrom": "costcentres", + "tableTo": "projects", + "columnsFrom": [ + "project" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "costcentres_inventoryitem_inventoryitems_id_fk": { + "name": "costcentres_inventoryitem_inventoryitems_id_fk", + "tableFrom": "costcentres", + "tableTo": "inventoryitems", + "columnsFrom": [ + "inventoryitem" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "costcentres_updated_by_auth_users_id_fk": { + "name": "costcentres_updated_by_auth_users_id_fk", + "tableFrom": "costcentres", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.countrys": { + "name": "countrys", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "countrys_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.createddocuments": { + "name": "createddocuments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "createddocuments_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'INVOICE'" + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "contact": { + "name": "contact", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "address": { + "name": "address", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "project": { + "name": "project", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "documentNumber": { + "name": "documentNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "documentDate": { + "name": "documentDate", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "state": { + "name": "state", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'Entwurf'" + }, + "info": { + "name": "info", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "createdBy": { + "name": "createdBy", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "startText": { + "name": "startText", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "endText": { + "name": "endText", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "rows": { + "name": "rows", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "deliveryDateType": { + "name": "deliveryDateType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "paymentDays": { + "name": "paymentDays", + "type": "smallint", + "primaryKey": false, + "notNull": false + }, + "deliveryDate": { + "name": "deliveryDate", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "contactPerson": { + "name": "contactPerson", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "serialConfig": { + "name": "serialConfig", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{}'::jsonb" + }, + "linkedDocument": { + "name": "linkedDocument", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "agriculture": { + "name": "agriculture", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "letterhead": { + "name": "letterhead", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "advanceInvoiceResolved": { + "name": "advanceInvoiceResolved", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "usedAdvanceInvoices": { + "name": "usedAdvanceInvoices", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "deliveryDateEnd": { + "name": "deliveryDateEnd", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "plant": { + "name": "plant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "taxType": { + "name": "taxType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customSurchargePercentage": { + "name": "customSurchargePercentage", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "report": { + "name": "report", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{}'::jsonb" + }, + "availableInPortal": { + "name": "availableInPortal", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "payment_type": { + "name": "payment_type", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'transfer'" + }, + "contract": { + "name": "contract", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "serialexecution": { + "name": "serialexecution", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "createddocuments_tenant_tenants_id_fk": { + "name": "createddocuments_tenant_tenants_id_fk", + "tableFrom": "createddocuments", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_customer_customers_id_fk": { + "name": "createddocuments_customer_customers_id_fk", + "tableFrom": "createddocuments", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_contact_contacts_id_fk": { + "name": "createddocuments_contact_contacts_id_fk", + "tableFrom": "createddocuments", + "tableTo": "contacts", + "columnsFrom": [ + "contact" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_project_projects_id_fk": { + "name": "createddocuments_project_projects_id_fk", + "tableFrom": "createddocuments", + "tableTo": "projects", + "columnsFrom": [ + "project" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_createdBy_auth_users_id_fk": { + "name": "createddocuments_createdBy_auth_users_id_fk", + "tableFrom": "createddocuments", + "tableTo": "auth_users", + "columnsFrom": [ + "createdBy" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_linkedDocument_createddocuments_id_fk": { + "name": "createddocuments_linkedDocument_createddocuments_id_fk", + "tableFrom": "createddocuments", + "tableTo": "createddocuments", + "columnsFrom": [ + "linkedDocument" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_letterhead_letterheads_id_fk": { + "name": "createddocuments_letterhead_letterheads_id_fk", + "tableFrom": "createddocuments", + "tableTo": "letterheads", + "columnsFrom": [ + "letterhead" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_plant_plants_id_fk": { + "name": "createddocuments_plant_plants_id_fk", + "tableFrom": "createddocuments", + "tableTo": "plants", + "columnsFrom": [ + "plant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_updated_by_auth_users_id_fk": { + "name": "createddocuments_updated_by_auth_users_id_fk", + "tableFrom": "createddocuments", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_created_by_auth_users_id_fk": { + "name": "createddocuments_created_by_auth_users_id_fk", + "tableFrom": "createddocuments", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_contract_contracts_id_fk": { + "name": "createddocuments_contract_contracts_id_fk", + "tableFrom": "createddocuments", + "tableTo": "contracts", + "columnsFrom": [ + "contract" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_serialexecution_serial_executions_id_fk": { + "name": "createddocuments_serialexecution_serial_executions_id_fk", + "tableFrom": "createddocuments", + "tableTo": "serial_executions", + "columnsFrom": [ + "serialexecution" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.createdletters": { + "name": "createdletters", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "content_json": { + "name": "content_json", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "content_text": { + "name": "content_text", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "createdletters_tenant_tenants_id_fk": { + "name": "createdletters_tenant_tenants_id_fk", + "tableFrom": "createdletters", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createdletters_customer_customers_id_fk": { + "name": "createdletters_customer_customers_id_fk", + "tableFrom": "createdletters", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createdletters_vendor_vendors_id_fk": { + "name": "createdletters_vendor_vendors_id_fk", + "tableFrom": "createdletters", + "tableTo": "vendors", + "columnsFrom": [ + "vendor" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createdletters_updated_by_auth_users_id_fk": { + "name": "createdletters_updated_by_auth_users_id_fk", + "tableFrom": "createdletters", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customers": { + "name": "customers", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "customers_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "customerNumber": { + "name": "customerNumber", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "infoData": { + "name": "infoData", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{}'::jsonb" + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'Privat'" + }, + "heroId": { + "name": "heroId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "isCompany": { + "name": "isCompany", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "customPaymentDays": { + "name": "customPaymentDays", + "type": "smallint", + "primaryKey": false, + "notNull": false + }, + "firstname": { + "name": "firstname", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "lastname": { + "name": "lastname", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "customSurchargePercentage": { + "name": "customSurchargePercentage", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "salutation": { + "name": "salutation", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "nameAddition": { + "name": "nameAddition", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "availableInPortal": { + "name": "availableInPortal", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "custom_payment_type": { + "name": "custom_payment_type", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "customers_updated_by_auth_users_id_fk": { + "name": "customers_updated_by_auth_users_id_fk", + "tableFrom": "customers", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.devices": { + "name": "devices", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "externalId": { + "name": "externalId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "last_seen": { + "name": "last_seen", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "last_debug_info": { + "name": "last_debug_info", + "type": "jsonb", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "devices_tenant_tenants_id_fk": { + "name": "devices_tenant_tenants_id_fk", + "tableFrom": "devices", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.documentboxes": { + "name": "documentboxes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "space": { + "name": "space", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "key": { + "name": "key", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "documentboxes_space_spaces_id_fk": { + "name": "documentboxes_space_spaces_id_fk", + "tableFrom": "documentboxes", + "tableTo": "spaces", + "columnsFrom": [ + "space" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "documentboxes_tenant_tenants_id_fk": { + "name": "documentboxes_tenant_tenants_id_fk", + "tableFrom": "documentboxes", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "documentboxes_updated_by_auth_users_id_fk": { + "name": "documentboxes_updated_by_auth_users_id_fk", + "tableFrom": "documentboxes", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.events": { + "name": "events", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "events_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "startDate": { + "name": "startDate", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "endDate": { + "name": "endDate", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "eventtype": { + "name": "eventtype", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'Umsetzung'" + }, + "project": { + "name": "project", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "resources": { + "name": "resources", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "link": { + "name": "link", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "vehicles": { + "name": "vehicles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "inventoryitems": { + "name": "inventoryitems", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "inventoryitemgroups": { + "name": "inventoryitemgroups", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "events_customer_customers_id_fk": { + "name": "events_customer_customers_id_fk", + "tableFrom": "events", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "events_updated_by_auth_users_id_fk": { + "name": "events_updated_by_auth_users_id_fk", + "tableFrom": "events", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.files": { + "name": "files", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "path": { + "name": "path", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "project": { + "name": "project", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "contract": { + "name": "contract", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "incominginvoice": { + "name": "incominginvoice", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "plant": { + "name": "plant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "createddocument": { + "name": "createddocument", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "vehicle": { + "name": "vehicle", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "product": { + "name": "product", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "check": { + "name": "check", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "inventoryitem": { + "name": "inventoryitem", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "folder": { + "name": "folder", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "mimeType": { + "name": "mimeType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "space": { + "name": "space", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "documentbox": { + "name": "documentbox", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "auth_profile": { + "name": "auth_profile", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "size": { + "name": "size", + "type": "bigint", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "files_tenant_tenants_id_fk": { + "name": "files_tenant_tenants_id_fk", + "tableFrom": "files", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_project_projects_id_fk": { + "name": "files_project_projects_id_fk", + "tableFrom": "files", + "tableTo": "projects", + "columnsFrom": [ + "project" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_customer_customers_id_fk": { + "name": "files_customer_customers_id_fk", + "tableFrom": "files", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_contract_contracts_id_fk": { + "name": "files_contract_contracts_id_fk", + "tableFrom": "files", + "tableTo": "contracts", + "columnsFrom": [ + "contract" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_vendor_vendors_id_fk": { + "name": "files_vendor_vendors_id_fk", + "tableFrom": "files", + "tableTo": "vendors", + "columnsFrom": [ + "vendor" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_incominginvoice_incominginvoices_id_fk": { + "name": "files_incominginvoice_incominginvoices_id_fk", + "tableFrom": "files", + "tableTo": "incominginvoices", + "columnsFrom": [ + "incominginvoice" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_plant_plants_id_fk": { + "name": "files_plant_plants_id_fk", + "tableFrom": "files", + "tableTo": "plants", + "columnsFrom": [ + "plant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_createddocument_createddocuments_id_fk": { + "name": "files_createddocument_createddocuments_id_fk", + "tableFrom": "files", + "tableTo": "createddocuments", + "columnsFrom": [ + "createddocument" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_vehicle_vehicles_id_fk": { + "name": "files_vehicle_vehicles_id_fk", + "tableFrom": "files", + "tableTo": "vehicles", + "columnsFrom": [ + "vehicle" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_product_products_id_fk": { + "name": "files_product_products_id_fk", + "tableFrom": "files", + "tableTo": "products", + "columnsFrom": [ + "product" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_check_checks_id_fk": { + "name": "files_check_checks_id_fk", + "tableFrom": "files", + "tableTo": "checks", + "columnsFrom": [ + "check" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_inventoryitem_inventoryitems_id_fk": { + "name": "files_inventoryitem_inventoryitems_id_fk", + "tableFrom": "files", + "tableTo": "inventoryitems", + "columnsFrom": [ + "inventoryitem" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_folder_folders_id_fk": { + "name": "files_folder_folders_id_fk", + "tableFrom": "files", + "tableTo": "folders", + "columnsFrom": [ + "folder" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_space_spaces_id_fk": { + "name": "files_space_spaces_id_fk", + "tableFrom": "files", + "tableTo": "spaces", + "columnsFrom": [ + "space" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_type_filetags_id_fk": { + "name": "files_type_filetags_id_fk", + "tableFrom": "files", + "tableTo": "filetags", + "columnsFrom": [ + "type" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_documentbox_documentboxes_id_fk": { + "name": "files_documentbox_documentboxes_id_fk", + "tableFrom": "files", + "tableTo": "documentboxes", + "columnsFrom": [ + "documentbox" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_updated_by_auth_users_id_fk": { + "name": "files_updated_by_auth_users_id_fk", + "tableFrom": "files", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_created_by_auth_users_id_fk": { + "name": "files_created_by_auth_users_id_fk", + "tableFrom": "files", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_auth_profile_auth_profiles_id_fk": { + "name": "files_auth_profile_auth_profiles_id_fk", + "tableFrom": "files", + "tableTo": "auth_profiles", + "columnsFrom": [ + "auth_profile" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.filetags": { + "name": "filetags", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "color": { + "name": "color", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "createddocumenttype": { + "name": "createddocumenttype", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "''" + }, + "incomingDocumentType": { + "name": "incomingDocumentType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "filetags_tenant_tenants_id_fk": { + "name": "filetags_tenant_tenants_id_fk", + "tableFrom": "filetags", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.folders": { + "name": "folders", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "icon": { + "name": "icon", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "parent": { + "name": "parent", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "isSystemUsed": { + "name": "isSystemUsed", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "function": { + "name": "function", + "type": "folderfunctions", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "year": { + "name": "year", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "standardFiletype": { + "name": "standardFiletype", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "standardFiletypeIsOptional": { + "name": "standardFiletypeIsOptional", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "folders_tenant_tenants_id_fk": { + "name": "folders_tenant_tenants_id_fk", + "tableFrom": "folders", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "folders_parent_folders_id_fk": { + "name": "folders_parent_folders_id_fk", + "tableFrom": "folders", + "tableTo": "folders", + "columnsFrom": [ + "parent" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "folders_standardFiletype_filetags_id_fk": { + "name": "folders_standardFiletype_filetags_id_fk", + "tableFrom": "folders", + "tableTo": "filetags", + "columnsFrom": [ + "standardFiletype" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "folders_updated_by_auth_users_id_fk": { + "name": "folders_updated_by_auth_users_id_fk", + "tableFrom": "folders", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.exports": { + "name": "exports", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "exports_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "start_date": { + "name": "start_date", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "end_date": { + "name": "end_date", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "valid_until": { + "name": "valid_until", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'datev'" + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "exports_tenant_id_tenants_id_fk": { + "name": "exports_tenant_id_tenants_id_fk", + "tableFrom": "exports", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.globalmessages": { + "name": "globalmessages", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "globalmessages_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.globalmessagesseen": { + "name": "globalmessagesseen", + "schema": "", + "columns": { + "message": { + "name": "message", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "seen_at": { + "name": "seen_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "globalmessagesseen_message_globalmessages_id_fk": { + "name": "globalmessagesseen_message_globalmessages_id_fk", + "tableFrom": "globalmessagesseen", + "tableTo": "globalmessages", + "columnsFrom": [ + "message" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_channel_instances": { + "name": "helpdesk_channel_instances", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "type_id": { + "name": "type_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "config": { + "name": "config", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "public_config": { + "name": "public_config", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{}'::jsonb" + }, + "public_token": { + "name": "public_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "secret_token": { + "name": "secret_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "helpdesk_channel_instances_tenant_id_tenants_id_fk": { + "name": "helpdesk_channel_instances_tenant_id_tenants_id_fk", + "tableFrom": "helpdesk_channel_instances", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_channel_instances_type_id_helpdesk_channel_types_id_fk": { + "name": "helpdesk_channel_instances_type_id_helpdesk_channel_types_id_fk", + "tableFrom": "helpdesk_channel_instances", + "tableTo": "helpdesk_channel_types", + "columnsFrom": [ + "type_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "helpdesk_channel_instances_created_by_auth_users_id_fk": { + "name": "helpdesk_channel_instances_created_by_auth_users_id_fk", + "tableFrom": "helpdesk_channel_instances", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "helpdesk_channel_instances_public_token_unique": { + "name": "helpdesk_channel_instances_public_token_unique", + "nullsNotDistinct": false, + "columns": [ + "public_token" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_channel_types": { + "name": "helpdesk_channel_types", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_contacts": { + "name": "helpdesk_contacts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "customer_id": { + "name": "customer_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "phone": { + "name": "phone", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "external_ref": { + "name": "external_ref", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "display_name": { + "name": "display_name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "source_channel_id": { + "name": "source_channel_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "contact_id": { + "name": "contact_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "helpdesk_contacts_tenant_id_tenants_id_fk": { + "name": "helpdesk_contacts_tenant_id_tenants_id_fk", + "tableFrom": "helpdesk_contacts", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_contacts_customer_id_customers_id_fk": { + "name": "helpdesk_contacts_customer_id_customers_id_fk", + "tableFrom": "helpdesk_contacts", + "tableTo": "customers", + "columnsFrom": [ + "customer_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "helpdesk_contacts_source_channel_id_helpdesk_channel_instances_id_fk": { + "name": "helpdesk_contacts_source_channel_id_helpdesk_channel_instances_id_fk", + "tableFrom": "helpdesk_contacts", + "tableTo": "helpdesk_channel_instances", + "columnsFrom": [ + "source_channel_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "helpdesk_contacts_contact_id_contacts_id_fk": { + "name": "helpdesk_contacts_contact_id_contacts_id_fk", + "tableFrom": "helpdesk_contacts", + "tableTo": "contacts", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_conversation_participants": { + "name": "helpdesk_conversation_participants", + "schema": "", + "columns": { + "conversation_id": { + "name": "conversation_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "role": { + "name": "role", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "helpdesk_conversation_participants_conversation_id_helpdesk_conversations_id_fk": { + "name": "helpdesk_conversation_participants_conversation_id_helpdesk_conversations_id_fk", + "tableFrom": "helpdesk_conversation_participants", + "tableTo": "helpdesk_conversations", + "columnsFrom": [ + "conversation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_conversation_participants_user_id_auth_users_id_fk": { + "name": "helpdesk_conversation_participants_user_id_auth_users_id_fk", + "tableFrom": "helpdesk_conversation_participants", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_conversations": { + "name": "helpdesk_conversations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "channel_instance_id": { + "name": "channel_instance_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "contact_id": { + "name": "contact_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "subject": { + "name": "subject", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'open'" + }, + "priority": { + "name": "priority", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'normal'" + }, + "assignee_user_id": { + "name": "assignee_user_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "last_message_at": { + "name": "last_message_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "customer_id": { + "name": "customer_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "contact_person_id": { + "name": "contact_person_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "ticket_number": { + "name": "ticket_number", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "helpdesk_conversations_tenant_id_tenants_id_fk": { + "name": "helpdesk_conversations_tenant_id_tenants_id_fk", + "tableFrom": "helpdesk_conversations", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_conversations_channel_instance_id_helpdesk_channel_instances_id_fk": { + "name": "helpdesk_conversations_channel_instance_id_helpdesk_channel_instances_id_fk", + "tableFrom": "helpdesk_conversations", + "tableTo": "helpdesk_channel_instances", + "columnsFrom": [ + "channel_instance_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_conversations_contact_id_helpdesk_contacts_id_fk": { + "name": "helpdesk_conversations_contact_id_helpdesk_contacts_id_fk", + "tableFrom": "helpdesk_conversations", + "tableTo": "helpdesk_contacts", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "helpdesk_conversations_assignee_user_id_auth_users_id_fk": { + "name": "helpdesk_conversations_assignee_user_id_auth_users_id_fk", + "tableFrom": "helpdesk_conversations", + "tableTo": "auth_users", + "columnsFrom": [ + "assignee_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "helpdesk_conversations_customer_id_customers_id_fk": { + "name": "helpdesk_conversations_customer_id_customers_id_fk", + "tableFrom": "helpdesk_conversations", + "tableTo": "customers", + "columnsFrom": [ + "customer_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "helpdesk_conversations_contact_person_id_contacts_id_fk": { + "name": "helpdesk_conversations_contact_person_id_contacts_id_fk", + "tableFrom": "helpdesk_conversations", + "tableTo": "contacts", + "columnsFrom": [ + "contact_person_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_messages": { + "name": "helpdesk_messages", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "conversation_id": { + "name": "conversation_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "direction": { + "name": "direction", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "author_user_id": { + "name": "author_user_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "payload": { + "name": "payload", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "raw_meta": { + "name": "raw_meta", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "contact_id": { + "name": "contact_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "external_message_id": { + "name": "external_message_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "received_at": { + "name": "received_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "helpdesk_messages_tenant_id_tenants_id_fk": { + "name": "helpdesk_messages_tenant_id_tenants_id_fk", + "tableFrom": "helpdesk_messages", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_messages_conversation_id_helpdesk_conversations_id_fk": { + "name": "helpdesk_messages_conversation_id_helpdesk_conversations_id_fk", + "tableFrom": "helpdesk_messages", + "tableTo": "helpdesk_conversations", + "columnsFrom": [ + "conversation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_messages_author_user_id_auth_users_id_fk": { + "name": "helpdesk_messages_author_user_id_auth_users_id_fk", + "tableFrom": "helpdesk_messages", + "tableTo": "auth_users", + "columnsFrom": [ + "author_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "helpdesk_messages_contact_id_helpdesk_contacts_id_fk": { + "name": "helpdesk_messages_contact_id_helpdesk_contacts_id_fk", + "tableFrom": "helpdesk_messages", + "tableTo": "helpdesk_contacts", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "helpdesk_messages_external_message_id_unique": { + "name": "helpdesk_messages_external_message_id_unique", + "nullsNotDistinct": false, + "columns": [ + "external_message_id" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_routing_rules": { + "name": "helpdesk_routing_rules", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "condition": { + "name": "condition", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "action": { + "name": "action", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "helpdesk_routing_rules_tenant_id_tenants_id_fk": { + "name": "helpdesk_routing_rules_tenant_id_tenants_id_fk", + "tableFrom": "helpdesk_routing_rules", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_routing_rules_created_by_auth_users_id_fk": { + "name": "helpdesk_routing_rules_created_by_auth_users_id_fk", + "tableFrom": "helpdesk_routing_rules", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.historyitems": { + "name": "historyitems", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "historyitems_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "text": { + "name": "text", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "project": { + "name": "project", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "plant": { + "name": "plant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "incomingInvoice": { + "name": "incomingInvoice", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "contact": { + "name": "contact", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "inventoryitem": { + "name": "inventoryitem", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "product": { + "name": "product", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "event": { + "name": "event", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "newVal": { + "name": "newVal", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "oldVal": { + "name": "oldVal", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "task": { + "name": "task", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "vehicle": { + "name": "vehicle", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "bankstatement": { + "name": "bankstatement", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "space": { + "name": "space", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "config": { + "name": "config", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "projecttype": { + "name": "projecttype", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "check": { + "name": "check", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "service": { + "name": "service", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "createddocument": { + "name": "createddocument", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "file": { + "name": "file", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "inventoryitemgroup": { + "name": "inventoryitemgroup", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "source": { + "name": "source", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'Software'" + }, + "costcentre": { + "name": "costcentre", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "ownaccount": { + "name": "ownaccount", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "documentbox": { + "name": "documentbox", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "hourrate": { + "name": "hourrate", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "action": { + "name": "action", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "historyitems_customer_customers_id_fk": { + "name": "historyitems_customer_customers_id_fk", + "tableFrom": "historyitems", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_tenant_tenants_id_fk": { + "name": "historyitems_tenant_tenants_id_fk", + "tableFrom": "historyitems", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_vendor_vendors_id_fk": { + "name": "historyitems_vendor_vendors_id_fk", + "tableFrom": "historyitems", + "tableTo": "vendors", + "columnsFrom": [ + "vendor" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_project_projects_id_fk": { + "name": "historyitems_project_projects_id_fk", + "tableFrom": "historyitems", + "tableTo": "projects", + "columnsFrom": [ + "project" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_plant_plants_id_fk": { + "name": "historyitems_plant_plants_id_fk", + "tableFrom": "historyitems", + "tableTo": "plants", + "columnsFrom": [ + "plant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_incomingInvoice_incominginvoices_id_fk": { + "name": "historyitems_incomingInvoice_incominginvoices_id_fk", + "tableFrom": "historyitems", + "tableTo": "incominginvoices", + "columnsFrom": [ + "incomingInvoice" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_contact_contacts_id_fk": { + "name": "historyitems_contact_contacts_id_fk", + "tableFrom": "historyitems", + "tableTo": "contacts", + "columnsFrom": [ + "contact" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_inventoryitem_inventoryitems_id_fk": { + "name": "historyitems_inventoryitem_inventoryitems_id_fk", + "tableFrom": "historyitems", + "tableTo": "inventoryitems", + "columnsFrom": [ + "inventoryitem" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_product_products_id_fk": { + "name": "historyitems_product_products_id_fk", + "tableFrom": "historyitems", + "tableTo": "products", + "columnsFrom": [ + "product" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_event_events_id_fk": { + "name": "historyitems_event_events_id_fk", + "tableFrom": "historyitems", + "tableTo": "events", + "columnsFrom": [ + "event" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_task_tasks_id_fk": { + "name": "historyitems_task_tasks_id_fk", + "tableFrom": "historyitems", + "tableTo": "tasks", + "columnsFrom": [ + "task" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_vehicle_vehicles_id_fk": { + "name": "historyitems_vehicle_vehicles_id_fk", + "tableFrom": "historyitems", + "tableTo": "vehicles", + "columnsFrom": [ + "vehicle" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_bankstatement_bankstatements_id_fk": { + "name": "historyitems_bankstatement_bankstatements_id_fk", + "tableFrom": "historyitems", + "tableTo": "bankstatements", + "columnsFrom": [ + "bankstatement" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_space_spaces_id_fk": { + "name": "historyitems_space_spaces_id_fk", + "tableFrom": "historyitems", + "tableTo": "spaces", + "columnsFrom": [ + "space" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_projecttype_projecttypes_id_fk": { + "name": "historyitems_projecttype_projecttypes_id_fk", + "tableFrom": "historyitems", + "tableTo": "projecttypes", + "columnsFrom": [ + "projecttype" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_check_checks_id_fk": { + "name": "historyitems_check_checks_id_fk", + "tableFrom": "historyitems", + "tableTo": "checks", + "columnsFrom": [ + "check" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_service_services_id_fk": { + "name": "historyitems_service_services_id_fk", + "tableFrom": "historyitems", + "tableTo": "services", + "columnsFrom": [ + "service" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_createddocument_createddocuments_id_fk": { + "name": "historyitems_createddocument_createddocuments_id_fk", + "tableFrom": "historyitems", + "tableTo": "createddocuments", + "columnsFrom": [ + "createddocument" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_file_files_id_fk": { + "name": "historyitems_file_files_id_fk", + "tableFrom": "historyitems", + "tableTo": "files", + "columnsFrom": [ + "file" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_inventoryitemgroup_inventoryitemgroups_id_fk": { + "name": "historyitems_inventoryitemgroup_inventoryitemgroups_id_fk", + "tableFrom": "historyitems", + "tableTo": "inventoryitemgroups", + "columnsFrom": [ + "inventoryitemgroup" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_costcentre_costcentres_id_fk": { + "name": "historyitems_costcentre_costcentres_id_fk", + "tableFrom": "historyitems", + "tableTo": "costcentres", + "columnsFrom": [ + "costcentre" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_ownaccount_ownaccounts_id_fk": { + "name": "historyitems_ownaccount_ownaccounts_id_fk", + "tableFrom": "historyitems", + "tableTo": "ownaccounts", + "columnsFrom": [ + "ownaccount" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_documentbox_documentboxes_id_fk": { + "name": "historyitems_documentbox_documentboxes_id_fk", + "tableFrom": "historyitems", + "tableTo": "documentboxes", + "columnsFrom": [ + "documentbox" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_hourrate_hourrates_id_fk": { + "name": "historyitems_hourrate_hourrates_id_fk", + "tableFrom": "historyitems", + "tableTo": "hourrates", + "columnsFrom": [ + "hourrate" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_created_by_auth_users_id_fk": { + "name": "historyitems_created_by_auth_users_id_fk", + "tableFrom": "historyitems", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.holidays": { + "name": "holidays", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "holidays_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "date": { + "name": "date", + "type": "date", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "state_code": { + "name": "state_code", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.hourrates": { + "name": "hourrates", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "purchasePrice": { + "name": "purchasePrice", + "type": "double precision", + "primaryKey": false, + "notNull": true + }, + "sellingPrice": { + "name": "sellingPrice", + "type": "double precision", + "primaryKey": false, + "notNull": true + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "hourrates_tenant_tenants_id_fk": { + "name": "hourrates_tenant_tenants_id_fk", + "tableFrom": "hourrates", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "hourrates_updated_by_auth_users_id_fk": { + "name": "hourrates_updated_by_auth_users_id_fk", + "tableFrom": "hourrates", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.incominginvoices": { + "name": "incominginvoices", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "incominginvoices_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "state": { + "name": "state", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'Entwurf'" + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "reference": { + "name": "reference", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "date": { + "name": "date", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "document": { + "name": "document", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "dueDate": { + "name": "dueDate", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "paymentType": { + "name": "paymentType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "accounts": { + "name": "accounts", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[{\"account\":null,\"taxType\":null,\"amountNet\":null,\"amountTax\":19,\"costCentre\":null}]'::jsonb" + }, + "paid": { + "name": "paid", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "expense": { + "name": "expense", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "incominginvoices_tenant_tenants_id_fk": { + "name": "incominginvoices_tenant_tenants_id_fk", + "tableFrom": "incominginvoices", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "incominginvoices_vendor_vendors_id_fk": { + "name": "incominginvoices_vendor_vendors_id_fk", + "tableFrom": "incominginvoices", + "tableTo": "vendors", + "columnsFrom": [ + "vendor" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "incominginvoices_updated_by_auth_users_id_fk": { + "name": "incominginvoices_updated_by_auth_users_id_fk", + "tableFrom": "incominginvoices", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.inventoryitemgroups": { + "name": "inventoryitemgroups", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "inventoryitems": { + "name": "inventoryitems", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "usePlanning": { + "name": "usePlanning", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "inventoryitemgroups_tenant_tenants_id_fk": { + "name": "inventoryitemgroups_tenant_tenants_id_fk", + "tableFrom": "inventoryitemgroups", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "inventoryitemgroups_updated_by_auth_users_id_fk": { + "name": "inventoryitemgroups_updated_by_auth_users_id_fk", + "tableFrom": "inventoryitemgroups", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.inventoryitems": { + "name": "inventoryitems", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "inventoryitems_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "usePlanning": { + "name": "usePlanning", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "currentSpace": { + "name": "currentSpace", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "articleNumber": { + "name": "articleNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "serialNumber": { + "name": "serialNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "purchaseDate": { + "name": "purchaseDate", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "quantity": { + "name": "quantity", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "purchasePrice": { + "name": "purchasePrice", + "type": "double precision", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "manufacturer": { + "name": "manufacturer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "manufacturerNumber": { + "name": "manufacturerNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "currentValue": { + "name": "currentValue", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "inventoryitems_tenant_tenants_id_fk": { + "name": "inventoryitems_tenant_tenants_id_fk", + "tableFrom": "inventoryitems", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "inventoryitems_currentSpace_spaces_id_fk": { + "name": "inventoryitems_currentSpace_spaces_id_fk", + "tableFrom": "inventoryitems", + "tableTo": "spaces", + "columnsFrom": [ + "currentSpace" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "inventoryitems_vendor_vendors_id_fk": { + "name": "inventoryitems_vendor_vendors_id_fk", + "tableFrom": "inventoryitems", + "tableTo": "vendors", + "columnsFrom": [ + "vendor" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "inventoryitems_updated_by_auth_users_id_fk": { + "name": "inventoryitems_updated_by_auth_users_id_fk", + "tableFrom": "inventoryitems", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.letterheads": { + "name": "letterheads", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "letterheads_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'Standard'" + }, + "path": { + "name": "path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "documentTypes": { + "name": "documentTypes", + "type": "text[]", + "primaryKey": false, + "notNull": true, + "default": "'{}'" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "letterheads_tenant_tenants_id_fk": { + "name": "letterheads_tenant_tenants_id_fk", + "tableFrom": "letterheads", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "letterheads_updated_by_auth_users_id_fk": { + "name": "letterheads_updated_by_auth_users_id_fk", + "tableFrom": "letterheads", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.movements": { + "name": "movements", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "movements_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "quantity": { + "name": "quantity", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "productId": { + "name": "productId", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "spaceId": { + "name": "spaceId", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "projectId": { + "name": "projectId", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "serials": { + "name": "serials", + "type": "text[]", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "movements_productId_products_id_fk": { + "name": "movements_productId_products_id_fk", + "tableFrom": "movements", + "tableTo": "products", + "columnsFrom": [ + "productId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "movements_spaceId_spaces_id_fk": { + "name": "movements_spaceId_spaces_id_fk", + "tableFrom": "movements", + "tableTo": "spaces", + "columnsFrom": [ + "spaceId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "movements_tenant_tenants_id_fk": { + "name": "movements_tenant_tenants_id_fk", + "tableFrom": "movements", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "movements_projectId_projects_id_fk": { + "name": "movements_projectId_projects_id_fk", + "tableFrom": "movements", + "tableTo": "projects", + "columnsFrom": [ + "projectId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "movements_updated_by_auth_users_id_fk": { + "name": "movements_updated_by_auth_users_id_fk", + "tableFrom": "movements", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.m2m_api_keys": { + "name": "m2m_api_keys", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "key_prefix": { + "name": "key_prefix", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "key_hash": { + "name": "key_hash", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "last_used_at": { + "name": "last_used_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "m2m_api_keys_tenant_id_tenants_id_fk": { + "name": "m2m_api_keys_tenant_id_tenants_id_fk", + "tableFrom": "m2m_api_keys", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "m2m_api_keys_user_id_auth_users_id_fk": { + "name": "m2m_api_keys_user_id_auth_users_id_fk", + "tableFrom": "m2m_api_keys", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "m2m_api_keys_created_by_auth_users_id_fk": { + "name": "m2m_api_keys_created_by_auth_users_id_fk", + "tableFrom": "m2m_api_keys", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "m2m_api_keys_key_hash_unique": { + "name": "m2m_api_keys_key_hash_unique", + "nullsNotDistinct": false, + "columns": [ + "key_hash" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.notifications_event_types": { + "name": "notifications_event_types", + "schema": "", + "columns": { + "event_key": { + "name": "event_key", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "display_name": { + "name": "display_name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "category": { + "name": "category", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "severity": { + "name": "severity", + "type": "notification_severity", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'info'" + }, + "allowed_channels": { + "name": "allowed_channels", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[\"inapp\",\"email\"]'::jsonb" + }, + "payload_schema": { + "name": "payload_schema", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.notifications_items": { + "name": "notifications_items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "event_type": { + "name": "event_type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "message": { + "name": "message", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "payload": { + "name": "payload", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "channel": { + "name": "channel", + "type": "notification_channel", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "notification_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'queued'" + }, + "error": { + "name": "error", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "sent_at": { + "name": "sent_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "read_at": { + "name": "read_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "notifications_items_tenant_id_tenants_id_fk": { + "name": "notifications_items_tenant_id_tenants_id_fk", + "tableFrom": "notifications_items", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "notifications_items_user_id_auth_users_id_fk": { + "name": "notifications_items_user_id_auth_users_id_fk", + "tableFrom": "notifications_items", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "notifications_items_event_type_notifications_event_types_event_key_fk": { + "name": "notifications_items_event_type_notifications_event_types_event_key_fk", + "tableFrom": "notifications_items", + "tableTo": "notifications_event_types", + "columnsFrom": [ + "event_type" + ], + "columnsTo": [ + "event_key" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.notifications_preferences": { + "name": "notifications_preferences", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "event_type": { + "name": "event_type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "channel": { + "name": "channel", + "type": "notification_channel", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "notifications_preferences_tenant_id_user_id_event_type_chan_key": { + "name": "notifications_preferences_tenant_id_user_id_event_type_chan_key", + "columns": [ + { + "expression": "tenant_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "event_type", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "channel", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "notifications_preferences_tenant_id_tenants_id_fk": { + "name": "notifications_preferences_tenant_id_tenants_id_fk", + "tableFrom": "notifications_preferences", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "notifications_preferences_user_id_auth_users_id_fk": { + "name": "notifications_preferences_user_id_auth_users_id_fk", + "tableFrom": "notifications_preferences", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "notifications_preferences_event_type_notifications_event_types_event_key_fk": { + "name": "notifications_preferences_event_type_notifications_event_types_event_key_fk", + "tableFrom": "notifications_preferences", + "tableTo": "notifications_event_types", + "columnsFrom": [ + "event_type" + ], + "columnsTo": [ + "event_key" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.notifications_preferences_defaults": { + "name": "notifications_preferences_defaults", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "event_key": { + "name": "event_key", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "channel": { + "name": "channel", + "type": "notification_channel", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "notifications_preferences_defau_tenant_id_event_key_channel_key": { + "name": "notifications_preferences_defau_tenant_id_event_key_channel_key", + "columns": [ + { + "expression": "tenant_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "event_key", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "channel", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "notifications_preferences_defaults_tenant_id_tenants_id_fk": { + "name": "notifications_preferences_defaults_tenant_id_tenants_id_fk", + "tableFrom": "notifications_preferences_defaults", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "notifications_preferences_defaults_event_key_notifications_event_types_event_key_fk": { + "name": "notifications_preferences_defaults_event_key_notifications_event_types_event_key_fk", + "tableFrom": "notifications_preferences_defaults", + "tableTo": "notifications_event_types", + "columnsFrom": [ + "event_key" + ], + "columnsTo": [ + "event_key" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.ownaccounts": { + "name": "ownaccounts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "number": { + "name": "number", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "ownaccounts_tenant_tenants_id_fk": { + "name": "ownaccounts_tenant_tenants_id_fk", + "tableFrom": "ownaccounts", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "ownaccounts_updated_by_auth_users_id_fk": { + "name": "ownaccounts_updated_by_auth_users_id_fk", + "tableFrom": "ownaccounts", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.plants": { + "name": "plants", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "plants_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "infoData": { + "name": "infoData", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "contract": { + "name": "contract", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{\"html\":\"\",\"json\":[],\"text\":\"\"}'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "plants_tenant_tenants_id_fk": { + "name": "plants_tenant_tenants_id_fk", + "tableFrom": "plants", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "plants_customer_customers_id_fk": { + "name": "plants_customer_customers_id_fk", + "tableFrom": "plants", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "plants_contract_contracts_id_fk": { + "name": "plants_contract_contracts_id_fk", + "tableFrom": "plants", + "tableTo": "contracts", + "columnsFrom": [ + "contract" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "plants_updated_by_auth_users_id_fk": { + "name": "plants_updated_by_auth_users_id_fk", + "tableFrom": "plants", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.productcategories": { + "name": "productcategories", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "productcategories_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "productcategories_tenant_tenants_id_fk": { + "name": "productcategories_tenant_tenants_id_fk", + "tableFrom": "productcategories", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "productcategories_updated_by_auth_users_id_fk": { + "name": "productcategories_updated_by_auth_users_id_fk", + "tableFrom": "productcategories", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.products": { + "name": "products", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "products_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "manufacturer": { + "name": "manufacturer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "unit": { + "name": "unit", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "tags": { + "name": "tags", + "type": "json", + "primaryKey": false, + "notNull": true, + "default": "'[]'::json" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "ean": { + "name": "ean", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "barcode": { + "name": "barcode", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "purchasePrice": { + "name": "purchasePrice", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "sellingPrice": { + "name": "sellingPrice", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "manufacturerNumber": { + "name": "manufacturerNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vendorAllocation": { + "name": "vendorAllocation", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "articleNumber": { + "name": "articleNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "barcodes": { + "name": "barcodes", + "type": "text[]", + "primaryKey": false, + "notNull": true, + "default": "'{}'" + }, + "productcategories": { + "name": "productcategories", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "taxPercentage": { + "name": "taxPercentage", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 19 + }, + "markupPercentage": { + "name": "markupPercentage", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "products_unit_units_id_fk": { + "name": "products_unit_units_id_fk", + "tableFrom": "products", + "tableTo": "units", + "columnsFrom": [ + "unit" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "products_tenant_tenants_id_fk": { + "name": "products_tenant_tenants_id_fk", + "tableFrom": "products", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "products_updated_by_auth_users_id_fk": { + "name": "products_updated_by_auth_users_id_fk", + "tableFrom": "products", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.projects": { + "name": "projects", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "projects_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "phases": { + "name": "phases", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "description": { + "name": "description", + "type": "json", + "primaryKey": false, + "notNull": false + }, + "forms": { + "name": "forms", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "heroId": { + "name": "heroId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "measure": { + "name": "measure", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "material": { + "name": "material", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "plant": { + "name": "plant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "profiles": { + "name": "profiles", + "type": "uuid[]", + "primaryKey": false, + "notNull": true, + "default": "'{}'" + }, + "projectNumber": { + "name": "projectNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "contract": { + "name": "contract", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "projectType": { + "name": "projectType", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'Projekt'" + }, + "projecttype": { + "name": "projecttype", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "customerRef": { + "name": "customerRef", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "active_phase": { + "name": "active_phase", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'Erstkontakt'" + } + }, + "indexes": {}, + "foreignKeys": { + "projects_tenant_tenants_id_fk": { + "name": "projects_tenant_tenants_id_fk", + "tableFrom": "projects", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "projects_customer_customers_id_fk": { + "name": "projects_customer_customers_id_fk", + "tableFrom": "projects", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "projects_contract_contracts_id_fk": { + "name": "projects_contract_contracts_id_fk", + "tableFrom": "projects", + "tableTo": "contracts", + "columnsFrom": [ + "contract" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "projects_projecttype_projecttypes_id_fk": { + "name": "projects_projecttype_projecttypes_id_fk", + "tableFrom": "projects", + "tableTo": "projecttypes", + "columnsFrom": [ + "projecttype" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "projects_updated_by_auth_users_id_fk": { + "name": "projects_updated_by_auth_users_id_fk", + "tableFrom": "projects", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.projecttypes": { + "name": "projecttypes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "projecttypes_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "initialPhases": { + "name": "initialPhases", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "addablePhases": { + "name": "addablePhases", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "icon": { + "name": "icon", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "projecttypes_tenant_tenants_id_fk": { + "name": "projecttypes_tenant_tenants_id_fk", + "tableFrom": "projecttypes", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "projecttypes_updated_by_auth_users_id_fk": { + "name": "projecttypes_updated_by_auth_users_id_fk", + "tableFrom": "projecttypes", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.servicecategories": { + "name": "servicecategories", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "servicecategories_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "discount": { + "name": "discount", + "type": "double precision", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "servicecategories_tenant_tenants_id_fk": { + "name": "servicecategories_tenant_tenants_id_fk", + "tableFrom": "servicecategories", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "servicecategories_updated_by_auth_users_id_fk": { + "name": "servicecategories_updated_by_auth_users_id_fk", + "tableFrom": "servicecategories", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.services": { + "name": "services", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "services_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "sellingPrice": { + "name": "sellingPrice", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "unit": { + "name": "unit", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "serviceNumber": { + "name": "serviceNumber", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "tags": { + "name": "tags", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "servicecategories": { + "name": "servicecategories", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "purchasePriceComposed": { + "name": "purchasePriceComposed", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{\"total\":0}'::jsonb" + }, + "sellingPriceComposed": { + "name": "sellingPriceComposed", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{\"total\":0}'::jsonb" + }, + "taxPercentage": { + "name": "taxPercentage", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 19 + }, + "materialComposition": { + "name": "materialComposition", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "personalComposition": { + "name": "personalComposition", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "services_tenant_tenants_id_fk": { + "name": "services_tenant_tenants_id_fk", + "tableFrom": "services", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "services_unit_units_id_fk": { + "name": "services_unit_units_id_fk", + "tableFrom": "services", + "tableTo": "units", + "columnsFrom": [ + "unit" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "services_updated_by_auth_users_id_fk": { + "name": "services_updated_by_auth_users_id_fk", + "tableFrom": "services", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.spaces": { + "name": "spaces", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "spaces_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "spaceNumber": { + "name": "spaceNumber", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "parentSpace": { + "name": "parentSpace", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "infoData": { + "name": "infoData", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{\"zip\":\"\",\"city\":\"\",\"streetNumber\":\"\"}'::jsonb" + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "spaces_tenant_tenants_id_fk": { + "name": "spaces_tenant_tenants_id_fk", + "tableFrom": "spaces", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "spaces_parentSpace_spaces_id_fk": { + "name": "spaces_parentSpace_spaces_id_fk", + "tableFrom": "spaces", + "tableTo": "spaces", + "columnsFrom": [ + "parentSpace" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "spaces_updated_by_auth_users_id_fk": { + "name": "spaces_updated_by_auth_users_id_fk", + "tableFrom": "spaces", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.staff_time_entries": { + "name": "staff_time_entries", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "started_at": { + "name": "started_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "stopped_at": { + "name": "stopped_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "duration_minutes": { + "name": "duration_minutes", + "type": "integer", + "primaryKey": false, + "notNull": false, + "generated": { + "as": "CASE \n WHEN stopped_at IS NOT NULL \n THEN (EXTRACT(epoch FROM (stopped_at - started_at)) / 60)\n ELSE NULL\n END", + "type": "stored" + } + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'work'" + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "source": { + "name": "source", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "state": { + "name": "state", + "type": "times_state", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'draft'" + }, + "device": { + "name": "device", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "internal_note": { + "name": "internal_note", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vacation_reason": { + "name": "vacation_reason", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vacation_days": { + "name": "vacation_days", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "approved_by": { + "name": "approved_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "approved_at": { + "name": "approved_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "sick_reason": { + "name": "sick_reason", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "staff_time_entries_tenant_id_tenants_id_fk": { + "name": "staff_time_entries_tenant_id_tenants_id_fk", + "tableFrom": "staff_time_entries", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_time_entries_user_id_auth_users_id_fk": { + "name": "staff_time_entries_user_id_auth_users_id_fk", + "tableFrom": "staff_time_entries", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "staff_time_entries_updated_by_auth_users_id_fk": { + "name": "staff_time_entries_updated_by_auth_users_id_fk", + "tableFrom": "staff_time_entries", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_time_entries_approved_by_auth_users_id_fk": { + "name": "staff_time_entries_approved_by_auth_users_id_fk", + "tableFrom": "staff_time_entries", + "tableTo": "auth_users", + "columnsFrom": [ + "approved_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.staff_time_entry_connects": { + "name": "staff_time_entry_connects", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "time_entry_id": { + "name": "time_entry_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "started_at": { + "name": "started_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "stopped_at": { + "name": "stopped_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "duration_minutes": { + "name": "duration_minutes", + "type": "integer", + "primaryKey": false, + "notNull": false, + "generated": { + "as": "(EXTRACT(epoch FROM (stopped_at - started_at)) / 60)", + "type": "stored" + } + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "staff_time_entry_connects_time_entry_id_staff_time_entries_id_fk": { + "name": "staff_time_entry_connects_time_entry_id_staff_time_entries_id_fk", + "tableFrom": "staff_time_entry_connects", + "tableTo": "staff_time_entries", + "columnsFrom": [ + "time_entry_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.staff_zeitstromtimestamps": { + "name": "staff_zeitstromtimestamps", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "profile": { + "name": "profile", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "key": { + "name": "key", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "intent": { + "name": "intent", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "time": { + "name": "time", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "staff_time_entry": { + "name": "staff_time_entry", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "internal_note": { + "name": "internal_note", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "staff_zeitstromtimestamps_tenant_tenants_id_fk": { + "name": "staff_zeitstromtimestamps_tenant_tenants_id_fk", + "tableFrom": "staff_zeitstromtimestamps", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_zeitstromtimestamps_profile_auth_profiles_id_fk": { + "name": "staff_zeitstromtimestamps_profile_auth_profiles_id_fk", + "tableFrom": "staff_zeitstromtimestamps", + "tableTo": "auth_profiles", + "columnsFrom": [ + "profile" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_zeitstromtimestamps_staff_time_entry_staff_time_entries_id_fk": { + "name": "staff_zeitstromtimestamps_staff_time_entry_staff_time_entries_id_fk", + "tableFrom": "staff_zeitstromtimestamps", + "tableTo": "staff_time_entries", + "columnsFrom": [ + "staff_time_entry" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.statementallocations": { + "name": "statementallocations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "bs_id": { + "name": "bs_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "cd_id": { + "name": "cd_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "amount": { + "name": "amount", + "type": "double precision", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "ii_id": { + "name": "ii_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "account": { + "name": "account", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "ownaccount": { + "name": "ownaccount", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "statementallocations_bs_id_bankstatements_id_fk": { + "name": "statementallocations_bs_id_bankstatements_id_fk", + "tableFrom": "statementallocations", + "tableTo": "bankstatements", + "columnsFrom": [ + "bs_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_cd_id_createddocuments_id_fk": { + "name": "statementallocations_cd_id_createddocuments_id_fk", + "tableFrom": "statementallocations", + "tableTo": "createddocuments", + "columnsFrom": [ + "cd_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_ii_id_incominginvoices_id_fk": { + "name": "statementallocations_ii_id_incominginvoices_id_fk", + "tableFrom": "statementallocations", + "tableTo": "incominginvoices", + "columnsFrom": [ + "ii_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_tenant_tenants_id_fk": { + "name": "statementallocations_tenant_tenants_id_fk", + "tableFrom": "statementallocations", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_account_accounts_id_fk": { + "name": "statementallocations_account_accounts_id_fk", + "tableFrom": "statementallocations", + "tableTo": "accounts", + "columnsFrom": [ + "account" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_ownaccount_ownaccounts_id_fk": { + "name": "statementallocations_ownaccount_ownaccounts_id_fk", + "tableFrom": "statementallocations", + "tableTo": "ownaccounts", + "columnsFrom": [ + "ownaccount" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_customer_customers_id_fk": { + "name": "statementallocations_customer_customers_id_fk", + "tableFrom": "statementallocations", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_vendor_vendors_id_fk": { + "name": "statementallocations_vendor_vendors_id_fk", + "tableFrom": "statementallocations", + "tableTo": "vendors", + "columnsFrom": [ + "vendor" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_updated_by_auth_users_id_fk": { + "name": "statementallocations_updated_by_auth_users_id_fk", + "tableFrom": "statementallocations", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tasks": { + "name": "tasks", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "tasks_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "categorie": { + "name": "categorie", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "project": { + "name": "project", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "plant": { + "name": "plant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "tasks_tenant_tenants_id_fk": { + "name": "tasks_tenant_tenants_id_fk", + "tableFrom": "tasks", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "tasks_user_id_auth_users_id_fk": { + "name": "tasks_user_id_auth_users_id_fk", + "tableFrom": "tasks", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "tasks_customer_customers_id_fk": { + "name": "tasks_customer_customers_id_fk", + "tableFrom": "tasks", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "tasks_updated_by_auth_users_id_fk": { + "name": "tasks_updated_by_auth_users_id_fk", + "tableFrom": "tasks", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.taxtypes": { + "name": "taxtypes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "taxtypes_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "label": { + "name": "label", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "percentage": { + "name": "percentage", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "taxtypes_updated_by_auth_users_id_fk": { + "name": "taxtypes_updated_by_auth_users_id_fk", + "tableFrom": "taxtypes", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tenants": { + "name": "tenants", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "tenants_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "short": { + "name": "short", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "calendarConfig": { + "name": "calendarConfig", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{\"eventTypes\":[{\"color\":\"blue\",\"label\":\"Büro\"},{\"color\":\"yellow\",\"label\":\"Besprechung\"},{\"color\":\"green\",\"label\":\"Umsetzung\"},{\"color\":\"red\",\"label\":\"Vor Ort Termin\"}]}'::jsonb" + }, + "timeConfig": { + "name": "timeConfig", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{}'::jsonb" + }, + "tags": { + "name": "tags", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{\"products\":[],\"documents\":[]}'::jsonb" + }, + "measures": { + "name": "measures", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[{\"name\":\"Netzwerktechnik\",\"short\":\"NWT\"},{\"name\":\"Elektrotechnik\",\"short\":\"ELT\"},{\"name\":\"Photovoltaik\",\"short\":\"PV\"},{\"name\":\"Videüberwachung\",\"short\":\"VÜA\"},{\"name\":\"Projekt\",\"short\":\"PRJ\"},{\"name\":\"Smart Home\",\"short\":\"SHO\"}]'::jsonb" + }, + "businessInfo": { + "name": "businessInfo", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{\"zip\":\"\",\"city\":\"\",\"name\":\"\",\"street\":\"\"}'::jsonb" + }, + "features": { + "name": "features", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{\"objects\":true,\"calendar\":true,\"contacts\":true,\"projects\":true,\"vehicles\":true,\"contracts\":true,\"inventory\":true,\"accounting\":true,\"timeTracking\":true,\"planningBoard\":true,\"workingTimeTracking\":true}'::jsonb" + }, + "ownFields": { + "name": "ownFields", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "numberRanges": { + "name": "numberRanges", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{\"vendors\":{\"prefix\":\"\",\"suffix\":\"\",\"nextNumber\":10000},\"customers\":{\"prefix\":\"\",\"suffix\":\"\",\"nextNumber\":10000},\"products\":{\"prefix\":\"AT-\",\"suffix\":\"\",\"nextNumber\":1000},\"quotes\":{\"prefix\":\"AN-\",\"suffix\":\"\",\"nextNumber\":1000},\"confirmationOrders\":{\"prefix\":\"AB-\",\"suffix\":\"\",\"nextNumber\":1000},\"invoices\":{\"prefix\":\"RE-\",\"suffix\":\"\",\"nextNumber\":1000},\"spaces\":{\"prefix\":\"LP-\",\"suffix\":\"\",\"nextNumber\":1000},\"inventoryitems\":{\"prefix\":\"IA-\",\"suffix\":\"\",\"nextNumber\":1000},\"projects\":{\"prefix\":\"PRJ-\",\"suffix\":\"\",\"nextNumber\":1000},\"costcentres\":{\"prefix\":\"KST-\",\"suffix\":\"\",\"nextNumber\":1000}}'::jsonb" + }, + "standardEmailForInvoices": { + "name": "standardEmailForInvoices", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "extraModules": { + "name": "extraModules", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "isInTrial": { + "name": "isInTrial", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "trialEndDate": { + "name": "trialEndDate", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "stripeCustomerId": { + "name": "stripeCustomerId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "hasActiveLicense": { + "name": "hasActiveLicense", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "userLicenseCount": { + "name": "userLicenseCount", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "workstationLicenseCount": { + "name": "workstationLicenseCount", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "standardPaymentDays": { + "name": "standardPaymentDays", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 14 + }, + "dokuboxEmailAddresses": { + "name": "dokuboxEmailAddresses", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "dokuboxkey": { + "name": "dokuboxkey", + "type": "uuid", + "primaryKey": false, + "notNull": true, + "default": "gen_random_uuid()" + }, + "autoPrepareIncomingInvoices": { + "name": "autoPrepareIncomingInvoices", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "portalDomain": { + "name": "portalDomain", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "portalConfig": { + "name": "portalConfig", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{\"primayColor\":\"#69c350\"}'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "locked": { + "name": "locked", + "type": "locked_tenant", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "tenants_updated_by_auth_users_id_fk": { + "name": "tenants_updated_by_auth_users_id_fk", + "tableFrom": "tenants", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.texttemplates": { + "name": "texttemplates", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "texttemplates_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "text": { + "name": "text", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "documentType": { + "name": "documentType", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "''" + }, + "default": { + "name": "default", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "pos": { + "name": "pos", + "type": "texttemplatepositions", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "texttemplates_tenant_tenants_id_fk": { + "name": "texttemplates_tenant_tenants_id_fk", + "tableFrom": "texttemplates", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "texttemplates_updated_by_auth_users_id_fk": { + "name": "texttemplates_updated_by_auth_users_id_fk", + "tableFrom": "texttemplates", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.units": { + "name": "units", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "units_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "single": { + "name": "single", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "multiple": { + "name": "multiple", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "short": { + "name": "short", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "step": { + "name": "step", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'1'" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.user_credentials": { + "name": "user_credentials", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "smtp_port": { + "name": "smtp_port", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "smtp_ssl": { + "name": "smtp_ssl", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "credential_types", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "imap_port": { + "name": "imap_port", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "imap_ssl": { + "name": "imap_ssl", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "email_encrypted": { + "name": "email_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "password_encrypted": { + "name": "password_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "smtp_host_encrypted": { + "name": "smtp_host_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "imap_host_encrypted": { + "name": "imap_host_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "access_token_encrypted": { + "name": "access_token_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "refresh_token_encrypted": { + "name": "refresh_token_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_credentials_user_id_auth_users_id_fk": { + "name": "user_credentials_user_id_auth_users_id_fk", + "tableFrom": "user_credentials", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "user_credentials_tenant_id_tenants_id_fk": { + "name": "user_credentials_tenant_id_tenants_id_fk", + "tableFrom": "user_credentials", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vehicles": { + "name": "vehicles", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "vehicles_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "licensePlate": { + "name": "licensePlate", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "driver": { + "name": "driver", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "vin": { + "name": "vin", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tankSize": { + "name": "tankSize", + "type": "double precision", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "buildYear": { + "name": "buildYear", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "towingCapacity": { + "name": "towingCapacity", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "powerInKW": { + "name": "powerInKW", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "color": { + "name": "color", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "vehicles_tenant_tenants_id_fk": { + "name": "vehicles_tenant_tenants_id_fk", + "tableFrom": "vehicles", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "vehicles_driver_auth_users_id_fk": { + "name": "vehicles_driver_auth_users_id_fk", + "tableFrom": "vehicles", + "tableTo": "auth_users", + "columnsFrom": [ + "driver" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "vehicles_updated_by_auth_users_id_fk": { + "name": "vehicles_updated_by_auth_users_id_fk", + "tableFrom": "vehicles", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendors": { + "name": "vendors", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "vendors_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "vendorNumber": { + "name": "vendorNumber", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "infoData": { + "name": "infoData", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{}'::jsonb" + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "hasSEPA": { + "name": "hasSEPA", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "defaultPaymentMethod": { + "name": "defaultPaymentMethod", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "vendors_tenant_tenants_id_fk": { + "name": "vendors_tenant_tenants_id_fk", + "tableFrom": "vendors", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "vendors_updated_by_auth_users_id_fk": { + "name": "vendors_updated_by_auth_users_id_fk", + "tableFrom": "vendors", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.staff_time_events": { + "name": "staff_time_events", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "actor_type": { + "name": "actor_type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "actor_user_id": { + "name": "actor_user_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "event_time": { + "name": "event_time", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "event_type": { + "name": "event_type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "source": { + "name": "source", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "invalidates_event_id": { + "name": "invalidates_event_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "related_event_id": { + "name": "related_event_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "metadata": { + "name": "metadata", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "idx_time_events_tenant_user_time": { + "name": "idx_time_events_tenant_user_time", + "columns": [ + { + "expression": "tenant_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "event_time", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "idx_time_events_created_at": { + "name": "idx_time_events_created_at", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "idx_time_events_invalidates": { + "name": "idx_time_events_invalidates", + "columns": [ + { + "expression": "invalidates_event_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "staff_time_events_tenant_id_tenants_id_fk": { + "name": "staff_time_events_tenant_id_tenants_id_fk", + "tableFrom": "staff_time_events", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_time_events_user_id_auth_users_id_fk": { + "name": "staff_time_events_user_id_auth_users_id_fk", + "tableFrom": "staff_time_events", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_time_events_actor_user_id_auth_users_id_fk": { + "name": "staff_time_events_actor_user_id_auth_users_id_fk", + "tableFrom": "staff_time_events", + "tableTo": "auth_users", + "columnsFrom": [ + "actor_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_time_events_invalidates_event_id_staff_time_events_id_fk": { + "name": "staff_time_events_invalidates_event_id_staff_time_events_id_fk", + "tableFrom": "staff_time_events", + "tableTo": "staff_time_events", + "columnsFrom": [ + "invalidates_event_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_time_events_related_event_id_staff_time_events_id_fk": { + "name": "staff_time_events_related_event_id_staff_time_events_id_fk", + "tableFrom": "staff_time_events", + "tableTo": "staff_time_events", + "columnsFrom": [ + "related_event_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": { + "time_events_actor_user_check": { + "name": "time_events_actor_user_check", + "value": "\n (actor_type = 'system' AND actor_user_id IS NULL)\n OR\n (actor_type = 'user' AND actor_user_id IS NOT NULL)\n " + } + }, + "isRLSEnabled": false + }, + "public.serialtypes": { + "name": "serialtypes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "serialtypes_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "intervall": { + "name": "intervall", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "icon": { + "name": "icon", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "serialtypes_tenant_tenants_id_fk": { + "name": "serialtypes_tenant_tenants_id_fk", + "tableFrom": "serialtypes", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "serialtypes_updated_by_auth_users_id_fk": { + "name": "serialtypes_updated_by_auth_users_id_fk", + "tableFrom": "serialtypes", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.serial_executions": { + "name": "serial_executions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "execution_date": { + "name": "execution_date", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + }, + "created_by": { + "name": "created_by", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "summary": { + "name": "summary", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "serial_executions_tenant_tenants_id_fk": { + "name": "serial_executions_tenant_tenants_id_fk", + "tableFrom": "serial_executions", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.public_links": { + "name": "public_links", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "default_profile": { + "name": "default_profile", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "is_protected": { + "name": "is_protected", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "pin_hash": { + "name": "pin_hash", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "config": { + "name": "config", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{}'::jsonb" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "public_links_tenant_tenants_id_fk": { + "name": "public_links_tenant_tenants_id_fk", + "tableFrom": "public_links", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "public_links_default_profile_auth_profiles_id_fk": { + "name": "public_links_default_profile_auth_profiles_id_fk", + "tableFrom": "public_links", + "tableTo": "auth_profiles", + "columnsFrom": [ + "default_profile" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "public_links_token_unique": { + "name": "public_links_token_unique", + "nullsNotDistinct": false, + "columns": [ + "token" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.wiki_pages": { + "name": "wiki_pages", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "content": { + "name": "content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "is_folder": { + "name": "is_folder", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "sort_order": { + "name": "sort_order", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "entity_type": { + "name": "entity_type", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "entity_id": { + "name": "entity_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "entity_uuid": { + "name": "entity_uuid", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "wiki_pages_tenant_idx": { + "name": "wiki_pages_tenant_idx", + "columns": [ + { + "expression": "tenant_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "wiki_pages_parent_idx": { + "name": "wiki_pages_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "wiki_pages_entity_int_idx": { + "name": "wiki_pages_entity_int_idx", + "columns": [ + { + "expression": "tenant_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "entity_type", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "entity_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "wiki_pages_entity_uuid_idx": { + "name": "wiki_pages_entity_uuid_idx", + "columns": [ + { + "expression": "tenant_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "entity_type", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "entity_uuid", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "wiki_pages_tenant_id_tenants_id_fk": { + "name": "wiki_pages_tenant_id_tenants_id_fk", + "tableFrom": "wiki_pages", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "wiki_pages_parent_id_wiki_pages_id_fk": { + "name": "wiki_pages_parent_id_wiki_pages_id_fk", + "tableFrom": "wiki_pages", + "tableTo": "wiki_pages", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "wiki_pages_created_by_auth_users_id_fk": { + "name": "wiki_pages_created_by_auth_users_id_fk", + "tableFrom": "wiki_pages", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "wiki_pages_updated_by_auth_users_id_fk": { + "name": "wiki_pages_updated_by_auth_users_id_fk", + "tableFrom": "wiki_pages", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": { + "public.credential_types": { + "name": "credential_types", + "schema": "public", + "values": [ + "mail", + "m365" + ] + }, + "public.folderfunctions": { + "name": "folderfunctions", + "schema": "public", + "values": [ + "none", + "yearSubCategory", + "incomingInvoices", + "invoices", + "quotes", + "confirmationOrders", + "deliveryNotes", + "vehicleData", + "reminders", + "taxData", + "deposit", + "timeEvaluations" + ] + }, + "public.locked_tenant": { + "name": "locked_tenant", + "schema": "public", + "values": [ + "maintenance_tenant", + "maintenance", + "general", + "no_subscription" + ] + }, + "public.notification_channel": { + "name": "notification_channel", + "schema": "public", + "values": [ + "email", + "inapp", + "sms", + "push", + "webhook" + ] + }, + "public.notification_severity": { + "name": "notification_severity", + "schema": "public", + "values": [ + "info", + "success", + "warning", + "error" + ] + }, + "public.notification_status": { + "name": "notification_status", + "schema": "public", + "values": [ + "queued", + "sent", + "failed", + "read" + ] + }, + "public.payment_types": { + "name": "payment_types", + "schema": "public", + "values": [ + "transfer", + "direct_debit" + ] + }, + "public.texttemplatepositions": { + "name": "texttemplatepositions", + "schema": "public", + "values": [ + "startText", + "endText" + ] + }, + "public.times_state": { + "name": "times_state", + "schema": "public", + "values": [ + "submitted", + "approved", + "draft" + ] + } + }, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} \ No newline at end of file diff --git a/backend/db/migrations/meta/0017_snapshot.json b/backend/db/migrations/meta/0017_snapshot.json new file mode 100644 index 0000000..ebc5e7e --- /dev/null +++ b/backend/db/migrations/meta/0017_snapshot.json @@ -0,0 +1,11525 @@ +{ + "id": "f712d6fc-e9a9-4968-854b-427c3988236e", + "prevId": "f3f2e20d-04d9-4fb8-8399-613cc3600cc0", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.accounts": { + "name": "accounts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "accounts_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "number": { + "name": "number", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "label": { + "name": "label", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.auth_profiles": { + "name": "auth_profiles", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "first_name": { + "name": "first_name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "last_name": { + "name": "last_name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "full_name": { + "name": "full_name", + "type": "text", + "primaryKey": false, + "notNull": false, + "generated": { + "as": "((first_name || ' ') || last_name)", + "type": "stored" + } + }, + "mobile_tel": { + "name": "mobile_tel", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "fixed_tel": { + "name": "fixed_tel", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "salutation": { + "name": "salutation", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "employee_number": { + "name": "employee_number", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "weekly_working_hours": { + "name": "weekly_working_hours", + "type": "double precision", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "annual_paid_leave_days": { + "name": "annual_paid_leave_days", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "weekly_regular_working_hours": { + "name": "weekly_regular_working_hours", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{}'" + }, + "clothing_size_top": { + "name": "clothing_size_top", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "clothing_size_bottom": { + "name": "clothing_size_bottom", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "clothing_size_shoe": { + "name": "clothing_size_shoe", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "email_signature": { + "name": "email_signature", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'

Mit freundlichen Grüßen

'" + }, + "birthday": { + "name": "birthday", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "entry_date": { + "name": "entry_date", + "type": "date", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "automatic_hour_corrections": { + "name": "automatic_hour_corrections", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'" + }, + "recreation_days_compensation": { + "name": "recreation_days_compensation", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "customer_for_portal": { + "name": "customer_for_portal", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "pinned_on_navigation": { + "name": "pinned_on_navigation", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'" + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "token_id": { + "name": "token_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "weekly_working_days": { + "name": "weekly_working_days", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "old_profile_id": { + "name": "old_profile_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "temp_config": { + "name": "temp_config", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "state_code": { + "name": "state_code", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'DE-NI'" + }, + "contract_type": { + "name": "contract_type", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "position": { + "name": "position", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "qualification": { + "name": "qualification", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "address_street": { + "name": "address_street", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "address_zip": { + "name": "address_zip", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "address_city": { + "name": "address_city", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + } + }, + "indexes": {}, + "foreignKeys": { + "auth_profiles_user_id_auth_users_id_fk": { + "name": "auth_profiles_user_id_auth_users_id_fk", + "tableFrom": "auth_profiles", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.auth_role_permissions": { + "name": "auth_role_permissions", + "schema": "", + "columns": { + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "role_id": { + "name": "role_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "auth_role_permissions_role_id_auth_roles_id_fk": { + "name": "auth_role_permissions_role_id_auth_roles_id_fk", + "tableFrom": "auth_role_permissions", + "tableTo": "auth_roles", + "columnsFrom": [ + "role_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.auth_roles": { + "name": "auth_roles", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "auth_roles_created_by_auth_users_id_fk": { + "name": "auth_roles_created_by_auth_users_id_fk", + "tableFrom": "auth_roles", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.auth_tenant_users": { + "name": "auth_tenant_users", + "schema": "", + "columns": { + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "auth_tenant_users_created_by_auth_users_id_fk": { + "name": "auth_tenant_users_created_by_auth_users_id_fk", + "tableFrom": "auth_tenant_users", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.auth_user_roles": { + "name": "auth_user_roles", + "schema": "", + "columns": { + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "role_id": { + "name": "role_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "auth_user_roles_user_id_auth_users_id_fk": { + "name": "auth_user_roles_user_id_auth_users_id_fk", + "tableFrom": "auth_user_roles", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "auth_user_roles_role_id_auth_roles_id_fk": { + "name": "auth_user_roles_role_id_auth_roles_id_fk", + "tableFrom": "auth_user_roles", + "tableTo": "auth_roles", + "columnsFrom": [ + "role_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "auth_user_roles_created_by_auth_users_id_fk": { + "name": "auth_user_roles_created_by_auth_users_id_fk", + "tableFrom": "auth_user_roles", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.auth_users": { + "name": "auth_users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "password_hash": { + "name": "password_hash", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "multi_tenant": { + "name": "multi_tenant", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "must_change_password": { + "name": "must_change_password", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "ported": { + "name": "ported", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.bankaccounts": { + "name": "bankaccounts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "bankaccounts_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "iban": { + "name": "iban", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "bankId": { + "name": "bankId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "ownerName": { + "name": "ownerName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "accountId": { + "name": "accountId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "balance": { + "name": "balance", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "expired": { + "name": "expired", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "datevNumber": { + "name": "datevNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "synced_at": { + "name": "synced_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "bankaccounts_tenant_tenants_id_fk": { + "name": "bankaccounts_tenant_tenants_id_fk", + "tableFrom": "bankaccounts", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "bankaccounts_updated_by_auth_users_id_fk": { + "name": "bankaccounts_updated_by_auth_users_id_fk", + "tableFrom": "bankaccounts", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.bankrequisitions": { + "name": "bankrequisitions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "institutionId": { + "name": "institutionId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "bankrequisitions_tenant_tenants_id_fk": { + "name": "bankrequisitions_tenant_tenants_id_fk", + "tableFrom": "bankrequisitions", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "bankrequisitions_updated_by_auth_users_id_fk": { + "name": "bankrequisitions_updated_by_auth_users_id_fk", + "tableFrom": "bankrequisitions", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.bankstatements": { + "name": "bankstatements", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "bankstatements_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "account": { + "name": "account", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "date": { + "name": "date", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "credIban": { + "name": "credIban", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "credName": { + "name": "credName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "text": { + "name": "text", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "amount": { + "name": "amount", + "type": "double precision", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "debIban": { + "name": "debIban", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "debName": { + "name": "debName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "gocardlessId": { + "name": "gocardlessId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "currency": { + "name": "currency", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "valueDate": { + "name": "valueDate", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "mandateId": { + "name": "mandateId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "contract": { + "name": "contract", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "bankstatements_account_bankaccounts_id_fk": { + "name": "bankstatements_account_bankaccounts_id_fk", + "tableFrom": "bankstatements", + "tableTo": "bankaccounts", + "columnsFrom": [ + "account" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "bankstatements_tenant_tenants_id_fk": { + "name": "bankstatements_tenant_tenants_id_fk", + "tableFrom": "bankstatements", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "bankstatements_contract_contracts_id_fk": { + "name": "bankstatements_contract_contracts_id_fk", + "tableFrom": "bankstatements", + "tableTo": "contracts", + "columnsFrom": [ + "contract" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "bankstatements_updated_by_auth_users_id_fk": { + "name": "bankstatements_updated_by_auth_users_id_fk", + "tableFrom": "bankstatements", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.checkexecutions": { + "name": "checkexecutions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "check": { + "name": "check", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "executed_at": { + "name": "executed_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "checkexecutions_check_checks_id_fk": { + "name": "checkexecutions_check_checks_id_fk", + "tableFrom": "checkexecutions", + "tableTo": "checks", + "columnsFrom": [ + "check" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.checks": { + "name": "checks", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "vehicle": { + "name": "vehicle", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "inventoryitem": { + "name": "inventoryitem", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "distance": { + "name": "distance", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "default": 1 + }, + "distanceUnit": { + "name": "distanceUnit", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'days'" + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "checks_vehicle_vehicles_id_fk": { + "name": "checks_vehicle_vehicles_id_fk", + "tableFrom": "checks", + "tableTo": "vehicles", + "columnsFrom": [ + "vehicle" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "checks_inventoryitem_inventoryitems_id_fk": { + "name": "checks_inventoryitem_inventoryitems_id_fk", + "tableFrom": "checks", + "tableTo": "inventoryitems", + "columnsFrom": [ + "inventoryitem" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "checks_tenant_tenants_id_fk": { + "name": "checks_tenant_tenants_id_fk", + "tableFrom": "checks", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "checks_updated_by_auth_users_id_fk": { + "name": "checks_updated_by_auth_users_id_fk", + "tableFrom": "checks", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.citys": { + "name": "citys", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "citys_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "short": { + "name": "short", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "long": { + "name": "long", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "geometry": { + "name": "geometry", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "zip": { + "name": "zip", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "districtCode": { + "name": "districtCode", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "countryName": { + "name": "countryName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "countryCode": { + "name": "countryCode", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "districtName": { + "name": "districtName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "geopoint": { + "name": "geopoint", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.contacts": { + "name": "contacts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "contacts_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "firstName": { + "name": "firstName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "lastName": { + "name": "lastName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "phoneMobile": { + "name": "phoneMobile", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "phoneHome": { + "name": "phoneHome", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "heroId": { + "name": "heroId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "role": { + "name": "role", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "fullName": { + "name": "fullName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "salutation": { + "name": "salutation", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "birthday": { + "name": "birthday", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "contacts_customer_customers_id_fk": { + "name": "contacts_customer_customers_id_fk", + "tableFrom": "contacts", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "contacts_updated_by_auth_users_id_fk": { + "name": "contacts_updated_by_auth_users_id_fk", + "tableFrom": "contacts", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.contracts": { + "name": "contracts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "contracts_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "recurring": { + "name": "recurring", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "rhythm": { + "name": "rhythm", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "startDate": { + "name": "startDate", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "endDate": { + "name": "endDate", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "signDate": { + "name": "signDate", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "duration": { + "name": "duration", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "contact": { + "name": "contact", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "contracttype": { + "name": "contracttype", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "bankingIban": { + "name": "bankingIban", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bankingBIC": { + "name": "bankingBIC", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bankingName": { + "name": "bankingName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bankingOwner": { + "name": "bankingOwner", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "sepaRef": { + "name": "sepaRef", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "sepaDate": { + "name": "sepaDate", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "paymentType": { + "name": "paymentType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "billingInterval": { + "name": "billingInterval", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "invoiceDispatch": { + "name": "invoiceDispatch", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "ownFields": { + "name": "ownFields", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{}'::jsonb" + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "contractNumber": { + "name": "contractNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "contracts_customer_customers_id_fk": { + "name": "contracts_customer_customers_id_fk", + "tableFrom": "contracts", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "contracts_contact_contacts_id_fk": { + "name": "contracts_contact_contacts_id_fk", + "tableFrom": "contracts", + "tableTo": "contacts", + "columnsFrom": [ + "contact" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "contracts_contracttype_contracttypes_id_fk": { + "name": "contracts_contracttype_contracttypes_id_fk", + "tableFrom": "contracts", + "tableTo": "contracttypes", + "columnsFrom": [ + "contracttype" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "contracts_updated_by_auth_users_id_fk": { + "name": "contracts_updated_by_auth_users_id_fk", + "tableFrom": "contracts", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.contracttypes": { + "name": "contracttypes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "contracttypes_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "paymentType": { + "name": "paymentType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "recurring": { + "name": "recurring", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "billingInterval": { + "name": "billingInterval", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "contracttypes_tenant_tenants_id_fk": { + "name": "contracttypes_tenant_tenants_id_fk", + "tableFrom": "contracttypes", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "contracttypes_updated_by_auth_users_id_fk": { + "name": "contracttypes_updated_by_auth_users_id_fk", + "tableFrom": "contracttypes", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.costcentres": { + "name": "costcentres", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "number": { + "name": "number", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "vehicle": { + "name": "vehicle", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "project": { + "name": "project", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "inventoryitem": { + "name": "inventoryitem", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "costcentres_tenant_tenants_id_fk": { + "name": "costcentres_tenant_tenants_id_fk", + "tableFrom": "costcentres", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "costcentres_vehicle_vehicles_id_fk": { + "name": "costcentres_vehicle_vehicles_id_fk", + "tableFrom": "costcentres", + "tableTo": "vehicles", + "columnsFrom": [ + "vehicle" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "costcentres_project_projects_id_fk": { + "name": "costcentres_project_projects_id_fk", + "tableFrom": "costcentres", + "tableTo": "projects", + "columnsFrom": [ + "project" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "costcentres_inventoryitem_inventoryitems_id_fk": { + "name": "costcentres_inventoryitem_inventoryitems_id_fk", + "tableFrom": "costcentres", + "tableTo": "inventoryitems", + "columnsFrom": [ + "inventoryitem" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "costcentres_updated_by_auth_users_id_fk": { + "name": "costcentres_updated_by_auth_users_id_fk", + "tableFrom": "costcentres", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.countrys": { + "name": "countrys", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "countrys_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.createddocuments": { + "name": "createddocuments", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "createddocuments_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'INVOICE'" + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "contact": { + "name": "contact", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "address": { + "name": "address", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "project": { + "name": "project", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "documentNumber": { + "name": "documentNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "documentDate": { + "name": "documentDate", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "state": { + "name": "state", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'Entwurf'" + }, + "info": { + "name": "info", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "createdBy": { + "name": "createdBy", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "startText": { + "name": "startText", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "endText": { + "name": "endText", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "rows": { + "name": "rows", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "deliveryDateType": { + "name": "deliveryDateType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "paymentDays": { + "name": "paymentDays", + "type": "smallint", + "primaryKey": false, + "notNull": false + }, + "deliveryDate": { + "name": "deliveryDate", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "contactPerson": { + "name": "contactPerson", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "serialConfig": { + "name": "serialConfig", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{}'::jsonb" + }, + "linkedDocument": { + "name": "linkedDocument", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "agriculture": { + "name": "agriculture", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "letterhead": { + "name": "letterhead", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "advanceInvoiceResolved": { + "name": "advanceInvoiceResolved", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "usedAdvanceInvoices": { + "name": "usedAdvanceInvoices", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "deliveryDateEnd": { + "name": "deliveryDateEnd", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "plant": { + "name": "plant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "taxType": { + "name": "taxType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customSurchargePercentage": { + "name": "customSurchargePercentage", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "report": { + "name": "report", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{}'::jsonb" + }, + "availableInPortal": { + "name": "availableInPortal", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "payment_type": { + "name": "payment_type", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'transfer'" + }, + "contract": { + "name": "contract", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "serialexecution": { + "name": "serialexecution", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "createddocuments_tenant_tenants_id_fk": { + "name": "createddocuments_tenant_tenants_id_fk", + "tableFrom": "createddocuments", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_customer_customers_id_fk": { + "name": "createddocuments_customer_customers_id_fk", + "tableFrom": "createddocuments", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_contact_contacts_id_fk": { + "name": "createddocuments_contact_contacts_id_fk", + "tableFrom": "createddocuments", + "tableTo": "contacts", + "columnsFrom": [ + "contact" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_project_projects_id_fk": { + "name": "createddocuments_project_projects_id_fk", + "tableFrom": "createddocuments", + "tableTo": "projects", + "columnsFrom": [ + "project" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_createdBy_auth_users_id_fk": { + "name": "createddocuments_createdBy_auth_users_id_fk", + "tableFrom": "createddocuments", + "tableTo": "auth_users", + "columnsFrom": [ + "createdBy" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_linkedDocument_createddocuments_id_fk": { + "name": "createddocuments_linkedDocument_createddocuments_id_fk", + "tableFrom": "createddocuments", + "tableTo": "createddocuments", + "columnsFrom": [ + "linkedDocument" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_letterhead_letterheads_id_fk": { + "name": "createddocuments_letterhead_letterheads_id_fk", + "tableFrom": "createddocuments", + "tableTo": "letterheads", + "columnsFrom": [ + "letterhead" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_plant_plants_id_fk": { + "name": "createddocuments_plant_plants_id_fk", + "tableFrom": "createddocuments", + "tableTo": "plants", + "columnsFrom": [ + "plant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_updated_by_auth_users_id_fk": { + "name": "createddocuments_updated_by_auth_users_id_fk", + "tableFrom": "createddocuments", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_created_by_auth_users_id_fk": { + "name": "createddocuments_created_by_auth_users_id_fk", + "tableFrom": "createddocuments", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_contract_contracts_id_fk": { + "name": "createddocuments_contract_contracts_id_fk", + "tableFrom": "createddocuments", + "tableTo": "contracts", + "columnsFrom": [ + "contract" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createddocuments_serialexecution_serial_executions_id_fk": { + "name": "createddocuments_serialexecution_serial_executions_id_fk", + "tableFrom": "createddocuments", + "tableTo": "serial_executions", + "columnsFrom": [ + "serialexecution" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.createdletters": { + "name": "createdletters", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "content_json": { + "name": "content_json", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "content_text": { + "name": "content_text", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "createdletters_tenant_tenants_id_fk": { + "name": "createdletters_tenant_tenants_id_fk", + "tableFrom": "createdletters", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createdletters_customer_customers_id_fk": { + "name": "createdletters_customer_customers_id_fk", + "tableFrom": "createdletters", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createdletters_vendor_vendors_id_fk": { + "name": "createdletters_vendor_vendors_id_fk", + "tableFrom": "createdletters", + "tableTo": "vendors", + "columnsFrom": [ + "vendor" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "createdletters_updated_by_auth_users_id_fk": { + "name": "createdletters_updated_by_auth_users_id_fk", + "tableFrom": "createdletters", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customerinventoryitems": { + "name": "customerinventoryitems", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "customerinventoryitems_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "customerspace": { + "name": "customerspace", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "customerInventoryId": { + "name": "customerInventoryId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "serialNumber": { + "name": "serialNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "quantity": { + "name": "quantity", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "manufacturer": { + "name": "manufacturer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "manufacturerNumber": { + "name": "manufacturerNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "purchaseDate": { + "name": "purchaseDate", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "purchasePrice": { + "name": "purchasePrice", + "type": "double precision", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "currentValue": { + "name": "currentValue", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "product": { + "name": "product", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "customerinventoryitems_tenant_tenants_id_fk": { + "name": "customerinventoryitems_tenant_tenants_id_fk", + "tableFrom": "customerinventoryitems", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "customerinventoryitems_customer_customers_id_fk": { + "name": "customerinventoryitems_customer_customers_id_fk", + "tableFrom": "customerinventoryitems", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "customerinventoryitems_customerspace_customerspaces_id_fk": { + "name": "customerinventoryitems_customerspace_customerspaces_id_fk", + "tableFrom": "customerinventoryitems", + "tableTo": "customerspaces", + "columnsFrom": [ + "customerspace" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "customerinventoryitems_product_products_id_fk": { + "name": "customerinventoryitems_product_products_id_fk", + "tableFrom": "customerinventoryitems", + "tableTo": "products", + "columnsFrom": [ + "product" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "customerinventoryitems_vendor_vendors_id_fk": { + "name": "customerinventoryitems_vendor_vendors_id_fk", + "tableFrom": "customerinventoryitems", + "tableTo": "vendors", + "columnsFrom": [ + "vendor" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "customerinventoryitems_updated_by_auth_users_id_fk": { + "name": "customerinventoryitems_updated_by_auth_users_id_fk", + "tableFrom": "customerinventoryitems", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customers": { + "name": "customers", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "customers_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "customerNumber": { + "name": "customerNumber", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "infoData": { + "name": "infoData", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{}'::jsonb" + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'Privat'" + }, + "heroId": { + "name": "heroId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "isCompany": { + "name": "isCompany", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "customPaymentDays": { + "name": "customPaymentDays", + "type": "smallint", + "primaryKey": false, + "notNull": false + }, + "firstname": { + "name": "firstname", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "lastname": { + "name": "lastname", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "customSurchargePercentage": { + "name": "customSurchargePercentage", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "salutation": { + "name": "salutation", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "nameAddition": { + "name": "nameAddition", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "availableInPortal": { + "name": "availableInPortal", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "custom_payment_type": { + "name": "custom_payment_type", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customTaxType": { + "name": "customTaxType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "memberrelation": { + "name": "memberrelation", + "type": "bigint", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "customers_updated_by_auth_users_id_fk": { + "name": "customers_updated_by_auth_users_id_fk", + "tableFrom": "customers", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "customers_memberrelation_memberrelations_id_fk": { + "name": "customers_memberrelation_memberrelations_id_fk", + "tableFrom": "customers", + "tableTo": "memberrelations", + "columnsFrom": [ + "memberrelation" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customerspaces": { + "name": "customerspaces", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "customerspaces_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "spaceNumber": { + "name": "spaceNumber", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "parentSpace": { + "name": "parentSpace", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "infoData": { + "name": "infoData", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{\"zip\":\"\",\"city\":\"\",\"streetNumber\":\"\"}'::jsonb" + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "customerspaces_tenant_tenants_id_fk": { + "name": "customerspaces_tenant_tenants_id_fk", + "tableFrom": "customerspaces", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "customerspaces_customer_customers_id_fk": { + "name": "customerspaces_customer_customers_id_fk", + "tableFrom": "customerspaces", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "customerspaces_parentSpace_customerspaces_id_fk": { + "name": "customerspaces_parentSpace_customerspaces_id_fk", + "tableFrom": "customerspaces", + "tableTo": "customerspaces", + "columnsFrom": [ + "parentSpace" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "customerspaces_updated_by_auth_users_id_fk": { + "name": "customerspaces_updated_by_auth_users_id_fk", + "tableFrom": "customerspaces", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.devices": { + "name": "devices", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "externalId": { + "name": "externalId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "last_seen": { + "name": "last_seen", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "last_debug_info": { + "name": "last_debug_info", + "type": "jsonb", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "devices_tenant_tenants_id_fk": { + "name": "devices_tenant_tenants_id_fk", + "tableFrom": "devices", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.documentboxes": { + "name": "documentboxes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "space": { + "name": "space", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "key": { + "name": "key", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "documentboxes_space_spaces_id_fk": { + "name": "documentboxes_space_spaces_id_fk", + "tableFrom": "documentboxes", + "tableTo": "spaces", + "columnsFrom": [ + "space" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "documentboxes_tenant_tenants_id_fk": { + "name": "documentboxes_tenant_tenants_id_fk", + "tableFrom": "documentboxes", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "documentboxes_updated_by_auth_users_id_fk": { + "name": "documentboxes_updated_by_auth_users_id_fk", + "tableFrom": "documentboxes", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.entitybankaccounts": { + "name": "entitybankaccounts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "entitybankaccounts_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "iban_encrypted": { + "name": "iban_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "bic_encrypted": { + "name": "bic_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "bank_name_encrypted": { + "name": "bank_name_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "entitybankaccounts_tenant_tenants_id_fk": { + "name": "entitybankaccounts_tenant_tenants_id_fk", + "tableFrom": "entitybankaccounts", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "entitybankaccounts_updated_by_auth_users_id_fk": { + "name": "entitybankaccounts_updated_by_auth_users_id_fk", + "tableFrom": "entitybankaccounts", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.events": { + "name": "events", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "events_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "startDate": { + "name": "startDate", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "endDate": { + "name": "endDate", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "eventtype": { + "name": "eventtype", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'Umsetzung'" + }, + "project": { + "name": "project", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "resources": { + "name": "resources", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "link": { + "name": "link", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "vehicles": { + "name": "vehicles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "inventoryitems": { + "name": "inventoryitems", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "inventoryitemgroups": { + "name": "inventoryitemgroups", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "events_customer_customers_id_fk": { + "name": "events_customer_customers_id_fk", + "tableFrom": "events", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "events_updated_by_auth_users_id_fk": { + "name": "events_updated_by_auth_users_id_fk", + "tableFrom": "events", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.files": { + "name": "files", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "path": { + "name": "path", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "project": { + "name": "project", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "contract": { + "name": "contract", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "incominginvoice": { + "name": "incominginvoice", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "plant": { + "name": "plant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "createddocument": { + "name": "createddocument", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "vehicle": { + "name": "vehicle", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "product": { + "name": "product", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "check": { + "name": "check", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "inventoryitem": { + "name": "inventoryitem", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "folder": { + "name": "folder", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "mimeType": { + "name": "mimeType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "space": { + "name": "space", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "documentbox": { + "name": "documentbox", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "auth_profile": { + "name": "auth_profile", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "size": { + "name": "size", + "type": "bigint", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "files_tenant_tenants_id_fk": { + "name": "files_tenant_tenants_id_fk", + "tableFrom": "files", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_project_projects_id_fk": { + "name": "files_project_projects_id_fk", + "tableFrom": "files", + "tableTo": "projects", + "columnsFrom": [ + "project" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_customer_customers_id_fk": { + "name": "files_customer_customers_id_fk", + "tableFrom": "files", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_contract_contracts_id_fk": { + "name": "files_contract_contracts_id_fk", + "tableFrom": "files", + "tableTo": "contracts", + "columnsFrom": [ + "contract" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_vendor_vendors_id_fk": { + "name": "files_vendor_vendors_id_fk", + "tableFrom": "files", + "tableTo": "vendors", + "columnsFrom": [ + "vendor" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_incominginvoice_incominginvoices_id_fk": { + "name": "files_incominginvoice_incominginvoices_id_fk", + "tableFrom": "files", + "tableTo": "incominginvoices", + "columnsFrom": [ + "incominginvoice" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_plant_plants_id_fk": { + "name": "files_plant_plants_id_fk", + "tableFrom": "files", + "tableTo": "plants", + "columnsFrom": [ + "plant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_createddocument_createddocuments_id_fk": { + "name": "files_createddocument_createddocuments_id_fk", + "tableFrom": "files", + "tableTo": "createddocuments", + "columnsFrom": [ + "createddocument" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_vehicle_vehicles_id_fk": { + "name": "files_vehicle_vehicles_id_fk", + "tableFrom": "files", + "tableTo": "vehicles", + "columnsFrom": [ + "vehicle" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_product_products_id_fk": { + "name": "files_product_products_id_fk", + "tableFrom": "files", + "tableTo": "products", + "columnsFrom": [ + "product" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_check_checks_id_fk": { + "name": "files_check_checks_id_fk", + "tableFrom": "files", + "tableTo": "checks", + "columnsFrom": [ + "check" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_inventoryitem_inventoryitems_id_fk": { + "name": "files_inventoryitem_inventoryitems_id_fk", + "tableFrom": "files", + "tableTo": "inventoryitems", + "columnsFrom": [ + "inventoryitem" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_folder_folders_id_fk": { + "name": "files_folder_folders_id_fk", + "tableFrom": "files", + "tableTo": "folders", + "columnsFrom": [ + "folder" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_space_spaces_id_fk": { + "name": "files_space_spaces_id_fk", + "tableFrom": "files", + "tableTo": "spaces", + "columnsFrom": [ + "space" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_type_filetags_id_fk": { + "name": "files_type_filetags_id_fk", + "tableFrom": "files", + "tableTo": "filetags", + "columnsFrom": [ + "type" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_documentbox_documentboxes_id_fk": { + "name": "files_documentbox_documentboxes_id_fk", + "tableFrom": "files", + "tableTo": "documentboxes", + "columnsFrom": [ + "documentbox" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_updated_by_auth_users_id_fk": { + "name": "files_updated_by_auth_users_id_fk", + "tableFrom": "files", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_created_by_auth_users_id_fk": { + "name": "files_created_by_auth_users_id_fk", + "tableFrom": "files", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "files_auth_profile_auth_profiles_id_fk": { + "name": "files_auth_profile_auth_profiles_id_fk", + "tableFrom": "files", + "tableTo": "auth_profiles", + "columnsFrom": [ + "auth_profile" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.filetags": { + "name": "filetags", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "color": { + "name": "color", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "createddocumenttype": { + "name": "createddocumenttype", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "''" + }, + "incomingDocumentType": { + "name": "incomingDocumentType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "filetags_tenant_tenants_id_fk": { + "name": "filetags_tenant_tenants_id_fk", + "tableFrom": "filetags", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.folders": { + "name": "folders", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "icon": { + "name": "icon", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "parent": { + "name": "parent", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "isSystemUsed": { + "name": "isSystemUsed", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "function": { + "name": "function", + "type": "folderfunctions", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "year": { + "name": "year", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "standardFiletype": { + "name": "standardFiletype", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "standardFiletypeIsOptional": { + "name": "standardFiletypeIsOptional", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "folders_tenant_tenants_id_fk": { + "name": "folders_tenant_tenants_id_fk", + "tableFrom": "folders", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "folders_parent_folders_id_fk": { + "name": "folders_parent_folders_id_fk", + "tableFrom": "folders", + "tableTo": "folders", + "columnsFrom": [ + "parent" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "folders_standardFiletype_filetags_id_fk": { + "name": "folders_standardFiletype_filetags_id_fk", + "tableFrom": "folders", + "tableTo": "filetags", + "columnsFrom": [ + "standardFiletype" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "folders_updated_by_auth_users_id_fk": { + "name": "folders_updated_by_auth_users_id_fk", + "tableFrom": "folders", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.exports": { + "name": "exports", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "exports_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "start_date": { + "name": "start_date", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "end_date": { + "name": "end_date", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "valid_until": { + "name": "valid_until", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'datev'" + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "file_path": { + "name": "file_path", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "exports_tenant_id_tenants_id_fk": { + "name": "exports_tenant_id_tenants_id_fk", + "tableFrom": "exports", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.globalmessages": { + "name": "globalmessages", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "globalmessages_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.globalmessagesseen": { + "name": "globalmessagesseen", + "schema": "", + "columns": { + "message": { + "name": "message", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "seen_at": { + "name": "seen_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "globalmessagesseen_message_globalmessages_id_fk": { + "name": "globalmessagesseen_message_globalmessages_id_fk", + "tableFrom": "globalmessagesseen", + "tableTo": "globalmessages", + "columnsFrom": [ + "message" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_channel_instances": { + "name": "helpdesk_channel_instances", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "type_id": { + "name": "type_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "config": { + "name": "config", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "public_config": { + "name": "public_config", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{}'::jsonb" + }, + "public_token": { + "name": "public_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "secret_token": { + "name": "secret_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "helpdesk_channel_instances_tenant_id_tenants_id_fk": { + "name": "helpdesk_channel_instances_tenant_id_tenants_id_fk", + "tableFrom": "helpdesk_channel_instances", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_channel_instances_type_id_helpdesk_channel_types_id_fk": { + "name": "helpdesk_channel_instances_type_id_helpdesk_channel_types_id_fk", + "tableFrom": "helpdesk_channel_instances", + "tableTo": "helpdesk_channel_types", + "columnsFrom": [ + "type_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "helpdesk_channel_instances_created_by_auth_users_id_fk": { + "name": "helpdesk_channel_instances_created_by_auth_users_id_fk", + "tableFrom": "helpdesk_channel_instances", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "helpdesk_channel_instances_public_token_unique": { + "name": "helpdesk_channel_instances_public_token_unique", + "nullsNotDistinct": false, + "columns": [ + "public_token" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_channel_types": { + "name": "helpdesk_channel_types", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_contacts": { + "name": "helpdesk_contacts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "customer_id": { + "name": "customer_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "phone": { + "name": "phone", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "external_ref": { + "name": "external_ref", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "display_name": { + "name": "display_name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "source_channel_id": { + "name": "source_channel_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "contact_id": { + "name": "contact_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "helpdesk_contacts_tenant_id_tenants_id_fk": { + "name": "helpdesk_contacts_tenant_id_tenants_id_fk", + "tableFrom": "helpdesk_contacts", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_contacts_customer_id_customers_id_fk": { + "name": "helpdesk_contacts_customer_id_customers_id_fk", + "tableFrom": "helpdesk_contacts", + "tableTo": "customers", + "columnsFrom": [ + "customer_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "helpdesk_contacts_source_channel_id_helpdesk_channel_instances_id_fk": { + "name": "helpdesk_contacts_source_channel_id_helpdesk_channel_instances_id_fk", + "tableFrom": "helpdesk_contacts", + "tableTo": "helpdesk_channel_instances", + "columnsFrom": [ + "source_channel_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "helpdesk_contacts_contact_id_contacts_id_fk": { + "name": "helpdesk_contacts_contact_id_contacts_id_fk", + "tableFrom": "helpdesk_contacts", + "tableTo": "contacts", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_conversation_participants": { + "name": "helpdesk_conversation_participants", + "schema": "", + "columns": { + "conversation_id": { + "name": "conversation_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "role": { + "name": "role", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "helpdesk_conversation_participants_conversation_id_helpdesk_conversations_id_fk": { + "name": "helpdesk_conversation_participants_conversation_id_helpdesk_conversations_id_fk", + "tableFrom": "helpdesk_conversation_participants", + "tableTo": "helpdesk_conversations", + "columnsFrom": [ + "conversation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_conversation_participants_user_id_auth_users_id_fk": { + "name": "helpdesk_conversation_participants_user_id_auth_users_id_fk", + "tableFrom": "helpdesk_conversation_participants", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_conversations": { + "name": "helpdesk_conversations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "channel_instance_id": { + "name": "channel_instance_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "contact_id": { + "name": "contact_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "subject": { + "name": "subject", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'open'" + }, + "priority": { + "name": "priority", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'normal'" + }, + "assignee_user_id": { + "name": "assignee_user_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "last_message_at": { + "name": "last_message_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "customer_id": { + "name": "customer_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "contact_person_id": { + "name": "contact_person_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "ticket_number": { + "name": "ticket_number", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "helpdesk_conversations_tenant_id_tenants_id_fk": { + "name": "helpdesk_conversations_tenant_id_tenants_id_fk", + "tableFrom": "helpdesk_conversations", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_conversations_channel_instance_id_helpdesk_channel_instances_id_fk": { + "name": "helpdesk_conversations_channel_instance_id_helpdesk_channel_instances_id_fk", + "tableFrom": "helpdesk_conversations", + "tableTo": "helpdesk_channel_instances", + "columnsFrom": [ + "channel_instance_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_conversations_contact_id_helpdesk_contacts_id_fk": { + "name": "helpdesk_conversations_contact_id_helpdesk_contacts_id_fk", + "tableFrom": "helpdesk_conversations", + "tableTo": "helpdesk_contacts", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "helpdesk_conversations_assignee_user_id_auth_users_id_fk": { + "name": "helpdesk_conversations_assignee_user_id_auth_users_id_fk", + "tableFrom": "helpdesk_conversations", + "tableTo": "auth_users", + "columnsFrom": [ + "assignee_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "helpdesk_conversations_customer_id_customers_id_fk": { + "name": "helpdesk_conversations_customer_id_customers_id_fk", + "tableFrom": "helpdesk_conversations", + "tableTo": "customers", + "columnsFrom": [ + "customer_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "helpdesk_conversations_contact_person_id_contacts_id_fk": { + "name": "helpdesk_conversations_contact_person_id_contacts_id_fk", + "tableFrom": "helpdesk_conversations", + "tableTo": "contacts", + "columnsFrom": [ + "contact_person_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_messages": { + "name": "helpdesk_messages", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "conversation_id": { + "name": "conversation_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "direction": { + "name": "direction", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "author_user_id": { + "name": "author_user_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "payload": { + "name": "payload", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "raw_meta": { + "name": "raw_meta", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "contact_id": { + "name": "contact_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "external_message_id": { + "name": "external_message_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "received_at": { + "name": "received_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "helpdesk_messages_tenant_id_tenants_id_fk": { + "name": "helpdesk_messages_tenant_id_tenants_id_fk", + "tableFrom": "helpdesk_messages", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_messages_conversation_id_helpdesk_conversations_id_fk": { + "name": "helpdesk_messages_conversation_id_helpdesk_conversations_id_fk", + "tableFrom": "helpdesk_messages", + "tableTo": "helpdesk_conversations", + "columnsFrom": [ + "conversation_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_messages_author_user_id_auth_users_id_fk": { + "name": "helpdesk_messages_author_user_id_auth_users_id_fk", + "tableFrom": "helpdesk_messages", + "tableTo": "auth_users", + "columnsFrom": [ + "author_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "helpdesk_messages_contact_id_helpdesk_contacts_id_fk": { + "name": "helpdesk_messages_contact_id_helpdesk_contacts_id_fk", + "tableFrom": "helpdesk_messages", + "tableTo": "helpdesk_contacts", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "helpdesk_messages_external_message_id_unique": { + "name": "helpdesk_messages_external_message_id_unique", + "nullsNotDistinct": false, + "columns": [ + "external_message_id" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.helpdesk_routing_rules": { + "name": "helpdesk_routing_rules", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "condition": { + "name": "condition", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "action": { + "name": "action", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "helpdesk_routing_rules_tenant_id_tenants_id_fk": { + "name": "helpdesk_routing_rules_tenant_id_tenants_id_fk", + "tableFrom": "helpdesk_routing_rules", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "helpdesk_routing_rules_created_by_auth_users_id_fk": { + "name": "helpdesk_routing_rules_created_by_auth_users_id_fk", + "tableFrom": "helpdesk_routing_rules", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.historyitems": { + "name": "historyitems", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "historyitems_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "text": { + "name": "text", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "project": { + "name": "project", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "plant": { + "name": "plant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "incomingInvoice": { + "name": "incomingInvoice", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "contact": { + "name": "contact", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "inventoryitem": { + "name": "inventoryitem", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "product": { + "name": "product", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "event": { + "name": "event", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "newVal": { + "name": "newVal", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "oldVal": { + "name": "oldVal", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "task": { + "name": "task", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "vehicle": { + "name": "vehicle", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "bankstatement": { + "name": "bankstatement", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "space": { + "name": "space", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "customerspace": { + "name": "customerspace", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "customerinventoryitem": { + "name": "customerinventoryitem", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "memberrelation": { + "name": "memberrelation", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "config": { + "name": "config", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "projecttype": { + "name": "projecttype", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "check": { + "name": "check", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "service": { + "name": "service", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "createddocument": { + "name": "createddocument", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "file": { + "name": "file", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "inventoryitemgroup": { + "name": "inventoryitemgroup", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "source": { + "name": "source", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'Software'" + }, + "costcentre": { + "name": "costcentre", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "ownaccount": { + "name": "ownaccount", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "documentbox": { + "name": "documentbox", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "hourrate": { + "name": "hourrate", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "action": { + "name": "action", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "historyitems_customer_customers_id_fk": { + "name": "historyitems_customer_customers_id_fk", + "tableFrom": "historyitems", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_tenant_tenants_id_fk": { + "name": "historyitems_tenant_tenants_id_fk", + "tableFrom": "historyitems", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_vendor_vendors_id_fk": { + "name": "historyitems_vendor_vendors_id_fk", + "tableFrom": "historyitems", + "tableTo": "vendors", + "columnsFrom": [ + "vendor" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_project_projects_id_fk": { + "name": "historyitems_project_projects_id_fk", + "tableFrom": "historyitems", + "tableTo": "projects", + "columnsFrom": [ + "project" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_plant_plants_id_fk": { + "name": "historyitems_plant_plants_id_fk", + "tableFrom": "historyitems", + "tableTo": "plants", + "columnsFrom": [ + "plant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_incomingInvoice_incominginvoices_id_fk": { + "name": "historyitems_incomingInvoice_incominginvoices_id_fk", + "tableFrom": "historyitems", + "tableTo": "incominginvoices", + "columnsFrom": [ + "incomingInvoice" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_contact_contacts_id_fk": { + "name": "historyitems_contact_contacts_id_fk", + "tableFrom": "historyitems", + "tableTo": "contacts", + "columnsFrom": [ + "contact" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_inventoryitem_inventoryitems_id_fk": { + "name": "historyitems_inventoryitem_inventoryitems_id_fk", + "tableFrom": "historyitems", + "tableTo": "inventoryitems", + "columnsFrom": [ + "inventoryitem" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_product_products_id_fk": { + "name": "historyitems_product_products_id_fk", + "tableFrom": "historyitems", + "tableTo": "products", + "columnsFrom": [ + "product" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "historyitems_event_events_id_fk": { + "name": "historyitems_event_events_id_fk", + "tableFrom": "historyitems", + "tableTo": "events", + "columnsFrom": [ + "event" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_task_tasks_id_fk": { + "name": "historyitems_task_tasks_id_fk", + "tableFrom": "historyitems", + "tableTo": "tasks", + "columnsFrom": [ + "task" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_vehicle_vehicles_id_fk": { + "name": "historyitems_vehicle_vehicles_id_fk", + "tableFrom": "historyitems", + "tableTo": "vehicles", + "columnsFrom": [ + "vehicle" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_bankstatement_bankstatements_id_fk": { + "name": "historyitems_bankstatement_bankstatements_id_fk", + "tableFrom": "historyitems", + "tableTo": "bankstatements", + "columnsFrom": [ + "bankstatement" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_space_spaces_id_fk": { + "name": "historyitems_space_spaces_id_fk", + "tableFrom": "historyitems", + "tableTo": "spaces", + "columnsFrom": [ + "space" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_customerspace_customerspaces_id_fk": { + "name": "historyitems_customerspace_customerspaces_id_fk", + "tableFrom": "historyitems", + "tableTo": "customerspaces", + "columnsFrom": [ + "customerspace" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_customerinventoryitem_customerinventoryitems_id_fk": { + "name": "historyitems_customerinventoryitem_customerinventoryitems_id_fk", + "tableFrom": "historyitems", + "tableTo": "customerinventoryitems", + "columnsFrom": [ + "customerinventoryitem" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_memberrelation_memberrelations_id_fk": { + "name": "historyitems_memberrelation_memberrelations_id_fk", + "tableFrom": "historyitems", + "tableTo": "memberrelations", + "columnsFrom": [ + "memberrelation" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_projecttype_projecttypes_id_fk": { + "name": "historyitems_projecttype_projecttypes_id_fk", + "tableFrom": "historyitems", + "tableTo": "projecttypes", + "columnsFrom": [ + "projecttype" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_check_checks_id_fk": { + "name": "historyitems_check_checks_id_fk", + "tableFrom": "historyitems", + "tableTo": "checks", + "columnsFrom": [ + "check" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_service_services_id_fk": { + "name": "historyitems_service_services_id_fk", + "tableFrom": "historyitems", + "tableTo": "services", + "columnsFrom": [ + "service" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_createddocument_createddocuments_id_fk": { + "name": "historyitems_createddocument_createddocuments_id_fk", + "tableFrom": "historyitems", + "tableTo": "createddocuments", + "columnsFrom": [ + "createddocument" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_file_files_id_fk": { + "name": "historyitems_file_files_id_fk", + "tableFrom": "historyitems", + "tableTo": "files", + "columnsFrom": [ + "file" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_inventoryitemgroup_inventoryitemgroups_id_fk": { + "name": "historyitems_inventoryitemgroup_inventoryitemgroups_id_fk", + "tableFrom": "historyitems", + "tableTo": "inventoryitemgroups", + "columnsFrom": [ + "inventoryitemgroup" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_costcentre_costcentres_id_fk": { + "name": "historyitems_costcentre_costcentres_id_fk", + "tableFrom": "historyitems", + "tableTo": "costcentres", + "columnsFrom": [ + "costcentre" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_ownaccount_ownaccounts_id_fk": { + "name": "historyitems_ownaccount_ownaccounts_id_fk", + "tableFrom": "historyitems", + "tableTo": "ownaccounts", + "columnsFrom": [ + "ownaccount" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_documentbox_documentboxes_id_fk": { + "name": "historyitems_documentbox_documentboxes_id_fk", + "tableFrom": "historyitems", + "tableTo": "documentboxes", + "columnsFrom": [ + "documentbox" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_hourrate_hourrates_id_fk": { + "name": "historyitems_hourrate_hourrates_id_fk", + "tableFrom": "historyitems", + "tableTo": "hourrates", + "columnsFrom": [ + "hourrate" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "historyitems_created_by_auth_users_id_fk": { + "name": "historyitems_created_by_auth_users_id_fk", + "tableFrom": "historyitems", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.holidays": { + "name": "holidays", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "always", + "name": "holidays_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "date": { + "name": "date", + "type": "date", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "state_code": { + "name": "state_code", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.hourrates": { + "name": "hourrates", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "purchasePrice": { + "name": "purchasePrice", + "type": "double precision", + "primaryKey": false, + "notNull": true + }, + "sellingPrice": { + "name": "sellingPrice", + "type": "double precision", + "primaryKey": false, + "notNull": true + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "hourrates_tenant_tenants_id_fk": { + "name": "hourrates_tenant_tenants_id_fk", + "tableFrom": "hourrates", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "hourrates_updated_by_auth_users_id_fk": { + "name": "hourrates_updated_by_auth_users_id_fk", + "tableFrom": "hourrates", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.incominginvoices": { + "name": "incominginvoices", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "incominginvoices_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "state": { + "name": "state", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'Entwurf'" + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "reference": { + "name": "reference", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "date": { + "name": "date", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "document": { + "name": "document", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "dueDate": { + "name": "dueDate", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "paymentType": { + "name": "paymentType", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "accounts": { + "name": "accounts", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[{\"account\":null,\"taxType\":null,\"amountNet\":null,\"amountTax\":19,\"costCentre\":null}]'::jsonb" + }, + "paid": { + "name": "paid", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "expense": { + "name": "expense", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "incominginvoices_tenant_tenants_id_fk": { + "name": "incominginvoices_tenant_tenants_id_fk", + "tableFrom": "incominginvoices", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "incominginvoices_vendor_vendors_id_fk": { + "name": "incominginvoices_vendor_vendors_id_fk", + "tableFrom": "incominginvoices", + "tableTo": "vendors", + "columnsFrom": [ + "vendor" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "incominginvoices_updated_by_auth_users_id_fk": { + "name": "incominginvoices_updated_by_auth_users_id_fk", + "tableFrom": "incominginvoices", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.inventoryitemgroups": { + "name": "inventoryitemgroups", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "inventoryitems": { + "name": "inventoryitems", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "usePlanning": { + "name": "usePlanning", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "inventoryitemgroups_tenant_tenants_id_fk": { + "name": "inventoryitemgroups_tenant_tenants_id_fk", + "tableFrom": "inventoryitemgroups", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "inventoryitemgroups_updated_by_auth_users_id_fk": { + "name": "inventoryitemgroups_updated_by_auth_users_id_fk", + "tableFrom": "inventoryitemgroups", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.inventoryitems": { + "name": "inventoryitems", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "inventoryitems_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "usePlanning": { + "name": "usePlanning", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "currentSpace": { + "name": "currentSpace", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "articleNumber": { + "name": "articleNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "serialNumber": { + "name": "serialNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "purchaseDate": { + "name": "purchaseDate", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "quantity": { + "name": "quantity", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "purchasePrice": { + "name": "purchasePrice", + "type": "double precision", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "manufacturer": { + "name": "manufacturer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "manufacturerNumber": { + "name": "manufacturerNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "currentValue": { + "name": "currentValue", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "inventoryitems_tenant_tenants_id_fk": { + "name": "inventoryitems_tenant_tenants_id_fk", + "tableFrom": "inventoryitems", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "inventoryitems_currentSpace_spaces_id_fk": { + "name": "inventoryitems_currentSpace_spaces_id_fk", + "tableFrom": "inventoryitems", + "tableTo": "spaces", + "columnsFrom": [ + "currentSpace" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "inventoryitems_vendor_vendors_id_fk": { + "name": "inventoryitems_vendor_vendors_id_fk", + "tableFrom": "inventoryitems", + "tableTo": "vendors", + "columnsFrom": [ + "vendor" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "inventoryitems_updated_by_auth_users_id_fk": { + "name": "inventoryitems_updated_by_auth_users_id_fk", + "tableFrom": "inventoryitems", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.letterheads": { + "name": "letterheads", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "letterheads_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'Standard'" + }, + "path": { + "name": "path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "documentTypes": { + "name": "documentTypes", + "type": "text[]", + "primaryKey": false, + "notNull": true, + "default": "'{}'" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "letterheads_tenant_tenants_id_fk": { + "name": "letterheads_tenant_tenants_id_fk", + "tableFrom": "letterheads", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "letterheads_updated_by_auth_users_id_fk": { + "name": "letterheads_updated_by_auth_users_id_fk", + "tableFrom": "letterheads", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.memberrelations": { + "name": "memberrelations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "memberrelations_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "billingInterval": { + "name": "billingInterval", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "billingAmount": { + "name": "billingAmount", + "type": "double precision", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "memberrelations_tenant_tenants_id_fk": { + "name": "memberrelations_tenant_tenants_id_fk", + "tableFrom": "memberrelations", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "memberrelations_updated_by_auth_users_id_fk": { + "name": "memberrelations_updated_by_auth_users_id_fk", + "tableFrom": "memberrelations", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.movements": { + "name": "movements", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "movements_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "quantity": { + "name": "quantity", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "productId": { + "name": "productId", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "spaceId": { + "name": "spaceId", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "projectId": { + "name": "projectId", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "serials": { + "name": "serials", + "type": "text[]", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "movements_productId_products_id_fk": { + "name": "movements_productId_products_id_fk", + "tableFrom": "movements", + "tableTo": "products", + "columnsFrom": [ + "productId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "movements_spaceId_spaces_id_fk": { + "name": "movements_spaceId_spaces_id_fk", + "tableFrom": "movements", + "tableTo": "spaces", + "columnsFrom": [ + "spaceId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "movements_tenant_tenants_id_fk": { + "name": "movements_tenant_tenants_id_fk", + "tableFrom": "movements", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "movements_projectId_projects_id_fk": { + "name": "movements_projectId_projects_id_fk", + "tableFrom": "movements", + "tableTo": "projects", + "columnsFrom": [ + "projectId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "movements_updated_by_auth_users_id_fk": { + "name": "movements_updated_by_auth_users_id_fk", + "tableFrom": "movements", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.m2m_api_keys": { + "name": "m2m_api_keys", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "key_prefix": { + "name": "key_prefix", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "key_hash": { + "name": "key_hash", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "last_used_at": { + "name": "last_used_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "m2m_api_keys_tenant_id_tenants_id_fk": { + "name": "m2m_api_keys_tenant_id_tenants_id_fk", + "tableFrom": "m2m_api_keys", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "m2m_api_keys_user_id_auth_users_id_fk": { + "name": "m2m_api_keys_user_id_auth_users_id_fk", + "tableFrom": "m2m_api_keys", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "m2m_api_keys_created_by_auth_users_id_fk": { + "name": "m2m_api_keys_created_by_auth_users_id_fk", + "tableFrom": "m2m_api_keys", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "m2m_api_keys_key_hash_unique": { + "name": "m2m_api_keys_key_hash_unique", + "nullsNotDistinct": false, + "columns": [ + "key_hash" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.notifications_event_types": { + "name": "notifications_event_types", + "schema": "", + "columns": { + "event_key": { + "name": "event_key", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "display_name": { + "name": "display_name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "category": { + "name": "category", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "severity": { + "name": "severity", + "type": "notification_severity", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'info'" + }, + "allowed_channels": { + "name": "allowed_channels", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[\"inapp\",\"email\"]'::jsonb" + }, + "payload_schema": { + "name": "payload_schema", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "is_active": { + "name": "is_active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.notifications_items": { + "name": "notifications_items", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "event_type": { + "name": "event_type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "message": { + "name": "message", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "payload": { + "name": "payload", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "channel": { + "name": "channel", + "type": "notification_channel", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "notification_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'queued'" + }, + "error": { + "name": "error", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "sent_at": { + "name": "sent_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "read_at": { + "name": "read_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "notifications_items_tenant_id_tenants_id_fk": { + "name": "notifications_items_tenant_id_tenants_id_fk", + "tableFrom": "notifications_items", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "notifications_items_user_id_auth_users_id_fk": { + "name": "notifications_items_user_id_auth_users_id_fk", + "tableFrom": "notifications_items", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "notifications_items_event_type_notifications_event_types_event_key_fk": { + "name": "notifications_items_event_type_notifications_event_types_event_key_fk", + "tableFrom": "notifications_items", + "tableTo": "notifications_event_types", + "columnsFrom": [ + "event_type" + ], + "columnsTo": [ + "event_key" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.notifications_preferences": { + "name": "notifications_preferences", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "event_type": { + "name": "event_type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "channel": { + "name": "channel", + "type": "notification_channel", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "notifications_preferences_tenant_id_user_id_event_type_chan_key": { + "name": "notifications_preferences_tenant_id_user_id_event_type_chan_key", + "columns": [ + { + "expression": "tenant_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "event_type", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "channel", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "notifications_preferences_tenant_id_tenants_id_fk": { + "name": "notifications_preferences_tenant_id_tenants_id_fk", + "tableFrom": "notifications_preferences", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "notifications_preferences_user_id_auth_users_id_fk": { + "name": "notifications_preferences_user_id_auth_users_id_fk", + "tableFrom": "notifications_preferences", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "notifications_preferences_event_type_notifications_event_types_event_key_fk": { + "name": "notifications_preferences_event_type_notifications_event_types_event_key_fk", + "tableFrom": "notifications_preferences", + "tableTo": "notifications_event_types", + "columnsFrom": [ + "event_type" + ], + "columnsTo": [ + "event_key" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.notifications_preferences_defaults": { + "name": "notifications_preferences_defaults", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "event_key": { + "name": "event_key", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "channel": { + "name": "channel", + "type": "notification_channel", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "notifications_preferences_defau_tenant_id_event_key_channel_key": { + "name": "notifications_preferences_defau_tenant_id_event_key_channel_key", + "columns": [ + { + "expression": "tenant_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "event_key", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "channel", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "notifications_preferences_defaults_tenant_id_tenants_id_fk": { + "name": "notifications_preferences_defaults_tenant_id_tenants_id_fk", + "tableFrom": "notifications_preferences_defaults", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "notifications_preferences_defaults_event_key_notifications_event_types_event_key_fk": { + "name": "notifications_preferences_defaults_event_key_notifications_event_types_event_key_fk", + "tableFrom": "notifications_preferences_defaults", + "tableTo": "notifications_event_types", + "columnsFrom": [ + "event_key" + ], + "columnsTo": [ + "event_key" + ], + "onDelete": "restrict", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.ownaccounts": { + "name": "ownaccounts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "number": { + "name": "number", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "ownaccounts_tenant_tenants_id_fk": { + "name": "ownaccounts_tenant_tenants_id_fk", + "tableFrom": "ownaccounts", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "ownaccounts_updated_by_auth_users_id_fk": { + "name": "ownaccounts_updated_by_auth_users_id_fk", + "tableFrom": "ownaccounts", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.plants": { + "name": "plants", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "plants_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "infoData": { + "name": "infoData", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "contract": { + "name": "contract", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{\"html\":\"\",\"json\":[],\"text\":\"\"}'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "plants_tenant_tenants_id_fk": { + "name": "plants_tenant_tenants_id_fk", + "tableFrom": "plants", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "plants_customer_customers_id_fk": { + "name": "plants_customer_customers_id_fk", + "tableFrom": "plants", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "plants_contract_contracts_id_fk": { + "name": "plants_contract_contracts_id_fk", + "tableFrom": "plants", + "tableTo": "contracts", + "columnsFrom": [ + "contract" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "plants_updated_by_auth_users_id_fk": { + "name": "plants_updated_by_auth_users_id_fk", + "tableFrom": "plants", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.productcategories": { + "name": "productcategories", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "productcategories_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "productcategories_tenant_tenants_id_fk": { + "name": "productcategories_tenant_tenants_id_fk", + "tableFrom": "productcategories", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "productcategories_updated_by_auth_users_id_fk": { + "name": "productcategories_updated_by_auth_users_id_fk", + "tableFrom": "productcategories", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.products": { + "name": "products", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "products_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "manufacturer": { + "name": "manufacturer", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "unit": { + "name": "unit", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "tags": { + "name": "tags", + "type": "json", + "primaryKey": false, + "notNull": true, + "default": "'[]'::json" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "ean": { + "name": "ean", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "barcode": { + "name": "barcode", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "purchasePrice": { + "name": "purchasePrice", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "sellingPrice": { + "name": "sellingPrice", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "manufacturerNumber": { + "name": "manufacturerNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vendorAllocation": { + "name": "vendorAllocation", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "articleNumber": { + "name": "articleNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "barcodes": { + "name": "barcodes", + "type": "text[]", + "primaryKey": false, + "notNull": true, + "default": "'{}'" + }, + "productcategories": { + "name": "productcategories", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "taxPercentage": { + "name": "taxPercentage", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 19 + }, + "markupPercentage": { + "name": "markupPercentage", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "products_unit_units_id_fk": { + "name": "products_unit_units_id_fk", + "tableFrom": "products", + "tableTo": "units", + "columnsFrom": [ + "unit" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "products_tenant_tenants_id_fk": { + "name": "products_tenant_tenants_id_fk", + "tableFrom": "products", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "products_updated_by_auth_users_id_fk": { + "name": "products_updated_by_auth_users_id_fk", + "tableFrom": "products", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.projects": { + "name": "projects", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "projects_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "phases": { + "name": "phases", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "description": { + "name": "description", + "type": "json", + "primaryKey": false, + "notNull": false + }, + "forms": { + "name": "forms", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "heroId": { + "name": "heroId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "measure": { + "name": "measure", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "material": { + "name": "material", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "plant": { + "name": "plant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "profiles": { + "name": "profiles", + "type": "uuid[]", + "primaryKey": false, + "notNull": true, + "default": "'{}'" + }, + "projectNumber": { + "name": "projectNumber", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "contract": { + "name": "contract", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "projectType": { + "name": "projectType", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'Projekt'" + }, + "projecttype": { + "name": "projecttype", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "customerRef": { + "name": "customerRef", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "active_phase": { + "name": "active_phase", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'Erstkontakt'" + } + }, + "indexes": {}, + "foreignKeys": { + "projects_tenant_tenants_id_fk": { + "name": "projects_tenant_tenants_id_fk", + "tableFrom": "projects", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "projects_customer_customers_id_fk": { + "name": "projects_customer_customers_id_fk", + "tableFrom": "projects", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "projects_contract_contracts_id_fk": { + "name": "projects_contract_contracts_id_fk", + "tableFrom": "projects", + "tableTo": "contracts", + "columnsFrom": [ + "contract" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "projects_projecttype_projecttypes_id_fk": { + "name": "projects_projecttype_projecttypes_id_fk", + "tableFrom": "projects", + "tableTo": "projecttypes", + "columnsFrom": [ + "projecttype" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "projects_updated_by_auth_users_id_fk": { + "name": "projects_updated_by_auth_users_id_fk", + "tableFrom": "projects", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.projecttypes": { + "name": "projecttypes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "projecttypes_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "initialPhases": { + "name": "initialPhases", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "addablePhases": { + "name": "addablePhases", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "icon": { + "name": "icon", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "projecttypes_tenant_tenants_id_fk": { + "name": "projecttypes_tenant_tenants_id_fk", + "tableFrom": "projecttypes", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "projecttypes_updated_by_auth_users_id_fk": { + "name": "projecttypes_updated_by_auth_users_id_fk", + "tableFrom": "projecttypes", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.servicecategories": { + "name": "servicecategories", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "servicecategories_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "discount": { + "name": "discount", + "type": "double precision", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "servicecategories_tenant_tenants_id_fk": { + "name": "servicecategories_tenant_tenants_id_fk", + "tableFrom": "servicecategories", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "servicecategories_updated_by_auth_users_id_fk": { + "name": "servicecategories_updated_by_auth_users_id_fk", + "tableFrom": "servicecategories", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.services": { + "name": "services", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "services_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "sellingPrice": { + "name": "sellingPrice", + "type": "double precision", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "unit": { + "name": "unit", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "serviceNumber": { + "name": "serviceNumber", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "tags": { + "name": "tags", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "servicecategories": { + "name": "servicecategories", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "purchasePriceComposed": { + "name": "purchasePriceComposed", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{\"total\":0}'::jsonb" + }, + "sellingPriceComposed": { + "name": "sellingPriceComposed", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{\"total\":0}'::jsonb" + }, + "taxPercentage": { + "name": "taxPercentage", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 19 + }, + "materialComposition": { + "name": "materialComposition", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "personalComposition": { + "name": "personalComposition", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "priceUpdateLocked": { + "name": "priceUpdateLocked", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "services_tenant_tenants_id_fk": { + "name": "services_tenant_tenants_id_fk", + "tableFrom": "services", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "services_unit_units_id_fk": { + "name": "services_unit_units_id_fk", + "tableFrom": "services", + "tableTo": "units", + "columnsFrom": [ + "unit" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "services_updated_by_auth_users_id_fk": { + "name": "services_updated_by_auth_users_id_fk", + "tableFrom": "services", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.spaces": { + "name": "spaces", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "spaces_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "spaceNumber": { + "name": "spaceNumber", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "parentSpace": { + "name": "parentSpace", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "infoData": { + "name": "infoData", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{\"zip\":\"\",\"city\":\"\",\"streetNumber\":\"\"}'::jsonb" + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "spaces_tenant_tenants_id_fk": { + "name": "spaces_tenant_tenants_id_fk", + "tableFrom": "spaces", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "spaces_parentSpace_spaces_id_fk": { + "name": "spaces_parentSpace_spaces_id_fk", + "tableFrom": "spaces", + "tableTo": "spaces", + "columnsFrom": [ + "parentSpace" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "spaces_updated_by_auth_users_id_fk": { + "name": "spaces_updated_by_auth_users_id_fk", + "tableFrom": "spaces", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.staff_time_entries": { + "name": "staff_time_entries", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "started_at": { + "name": "started_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "stopped_at": { + "name": "stopped_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "duration_minutes": { + "name": "duration_minutes", + "type": "integer", + "primaryKey": false, + "notNull": false, + "generated": { + "as": "CASE \n WHEN stopped_at IS NOT NULL \n THEN (EXTRACT(epoch FROM (stopped_at - started_at)) / 60)\n ELSE NULL\n END", + "type": "stored" + } + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'work'" + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "source": { + "name": "source", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "state": { + "name": "state", + "type": "times_state", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'draft'" + }, + "device": { + "name": "device", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "internal_note": { + "name": "internal_note", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vacation_reason": { + "name": "vacation_reason", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "vacation_days": { + "name": "vacation_days", + "type": "numeric(5, 2)", + "primaryKey": false, + "notNull": false + }, + "approved_by": { + "name": "approved_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "approved_at": { + "name": "approved_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "sick_reason": { + "name": "sick_reason", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "staff_time_entries_tenant_id_tenants_id_fk": { + "name": "staff_time_entries_tenant_id_tenants_id_fk", + "tableFrom": "staff_time_entries", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_time_entries_user_id_auth_users_id_fk": { + "name": "staff_time_entries_user_id_auth_users_id_fk", + "tableFrom": "staff_time_entries", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "staff_time_entries_updated_by_auth_users_id_fk": { + "name": "staff_time_entries_updated_by_auth_users_id_fk", + "tableFrom": "staff_time_entries", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_time_entries_approved_by_auth_users_id_fk": { + "name": "staff_time_entries_approved_by_auth_users_id_fk", + "tableFrom": "staff_time_entries", + "tableTo": "auth_users", + "columnsFrom": [ + "approved_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.staff_time_entry_connects": { + "name": "staff_time_entry_connects", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "time_entry_id": { + "name": "time_entry_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "project_id": { + "name": "project_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "started_at": { + "name": "started_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "stopped_at": { + "name": "stopped_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "duration_minutes": { + "name": "duration_minutes", + "type": "integer", + "primaryKey": false, + "notNull": false, + "generated": { + "as": "(EXTRACT(epoch FROM (stopped_at - started_at)) / 60)", + "type": "stored" + } + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "staff_time_entry_connects_time_entry_id_staff_time_entries_id_fk": { + "name": "staff_time_entry_connects_time_entry_id_staff_time_entries_id_fk", + "tableFrom": "staff_time_entry_connects", + "tableTo": "staff_time_entries", + "columnsFrom": [ + "time_entry_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.staff_zeitstromtimestamps": { + "name": "staff_zeitstromtimestamps", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "profile": { + "name": "profile", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "key": { + "name": "key", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "intent": { + "name": "intent", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "time": { + "name": "time", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "staff_time_entry": { + "name": "staff_time_entry", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "internal_note": { + "name": "internal_note", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "staff_zeitstromtimestamps_tenant_tenants_id_fk": { + "name": "staff_zeitstromtimestamps_tenant_tenants_id_fk", + "tableFrom": "staff_zeitstromtimestamps", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_zeitstromtimestamps_profile_auth_profiles_id_fk": { + "name": "staff_zeitstromtimestamps_profile_auth_profiles_id_fk", + "tableFrom": "staff_zeitstromtimestamps", + "tableTo": "auth_profiles", + "columnsFrom": [ + "profile" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_zeitstromtimestamps_staff_time_entry_staff_time_entries_id_fk": { + "name": "staff_zeitstromtimestamps_staff_time_entry_staff_time_entries_id_fk", + "tableFrom": "staff_zeitstromtimestamps", + "tableTo": "staff_time_entries", + "columnsFrom": [ + "staff_time_entry" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.statementallocations": { + "name": "statementallocations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "bs_id": { + "name": "bs_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "cd_id": { + "name": "cd_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "amount": { + "name": "amount", + "type": "double precision", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "ii_id": { + "name": "ii_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "account": { + "name": "account", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "ownaccount": { + "name": "ownaccount", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "vendor": { + "name": "vendor", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + } + }, + "indexes": {}, + "foreignKeys": { + "statementallocations_bs_id_bankstatements_id_fk": { + "name": "statementallocations_bs_id_bankstatements_id_fk", + "tableFrom": "statementallocations", + "tableTo": "bankstatements", + "columnsFrom": [ + "bs_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_cd_id_createddocuments_id_fk": { + "name": "statementallocations_cd_id_createddocuments_id_fk", + "tableFrom": "statementallocations", + "tableTo": "createddocuments", + "columnsFrom": [ + "cd_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_ii_id_incominginvoices_id_fk": { + "name": "statementallocations_ii_id_incominginvoices_id_fk", + "tableFrom": "statementallocations", + "tableTo": "incominginvoices", + "columnsFrom": [ + "ii_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_tenant_tenants_id_fk": { + "name": "statementallocations_tenant_tenants_id_fk", + "tableFrom": "statementallocations", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_account_accounts_id_fk": { + "name": "statementallocations_account_accounts_id_fk", + "tableFrom": "statementallocations", + "tableTo": "accounts", + "columnsFrom": [ + "account" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_ownaccount_ownaccounts_id_fk": { + "name": "statementallocations_ownaccount_ownaccounts_id_fk", + "tableFrom": "statementallocations", + "tableTo": "ownaccounts", + "columnsFrom": [ + "ownaccount" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_customer_customers_id_fk": { + "name": "statementallocations_customer_customers_id_fk", + "tableFrom": "statementallocations", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_vendor_vendors_id_fk": { + "name": "statementallocations_vendor_vendors_id_fk", + "tableFrom": "statementallocations", + "tableTo": "vendors", + "columnsFrom": [ + "vendor" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "statementallocations_updated_by_auth_users_id_fk": { + "name": "statementallocations_updated_by_auth_users_id_fk", + "tableFrom": "statementallocations", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tasks": { + "name": "tasks", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "tasks_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "categorie": { + "name": "categorie", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "project": { + "name": "project", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "plant": { + "name": "plant", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "customer": { + "name": "customer", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "tasks_tenant_tenants_id_fk": { + "name": "tasks_tenant_tenants_id_fk", + "tableFrom": "tasks", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "tasks_user_id_auth_users_id_fk": { + "name": "tasks_user_id_auth_users_id_fk", + "tableFrom": "tasks", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "tasks_customer_customers_id_fk": { + "name": "tasks_customer_customers_id_fk", + "tableFrom": "tasks", + "tableTo": "customers", + "columnsFrom": [ + "customer" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "tasks_updated_by_auth_users_id_fk": { + "name": "tasks_updated_by_auth_users_id_fk", + "tableFrom": "tasks", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.taxtypes": { + "name": "taxtypes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "taxtypes_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "label": { + "name": "label", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "percentage": { + "name": "percentage", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "taxtypes_updated_by_auth_users_id_fk": { + "name": "taxtypes_updated_by_auth_users_id_fk", + "tableFrom": "taxtypes", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tenants": { + "name": "tenants", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "tenants_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "short": { + "name": "short", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "calendarConfig": { + "name": "calendarConfig", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{\"eventTypes\":[{\"color\":\"blue\",\"label\":\"Büro\"},{\"color\":\"yellow\",\"label\":\"Besprechung\"},{\"color\":\"green\",\"label\":\"Umsetzung\"},{\"color\":\"red\",\"label\":\"Vor Ort Termin\"}]}'::jsonb" + }, + "timeConfig": { + "name": "timeConfig", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{}'::jsonb" + }, + "tags": { + "name": "tags", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{\"products\":[],\"documents\":[]}'::jsonb" + }, + "measures": { + "name": "measures", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[{\"name\":\"Netzwerktechnik\",\"short\":\"NWT\"},{\"name\":\"Elektrotechnik\",\"short\":\"ELT\"},{\"name\":\"Photovoltaik\",\"short\":\"PV\"},{\"name\":\"Videüberwachung\",\"short\":\"VÜA\"},{\"name\":\"Projekt\",\"short\":\"PRJ\"},{\"name\":\"Smart Home\",\"short\":\"SHO\"}]'::jsonb" + }, + "businessInfo": { + "name": "businessInfo", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{\"zip\":\"\",\"city\":\"\",\"name\":\"\",\"street\":\"\"}'::jsonb" + }, + "features": { + "name": "features", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{\"objects\":true,\"calendar\":true,\"contacts\":true,\"projects\":true,\"vehicles\":true,\"contracts\":true,\"inventory\":true,\"accounting\":true,\"timeTracking\":true,\"planningBoard\":true,\"workingTimeTracking\":true}'::jsonb" + }, + "ownFields": { + "name": "ownFields", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "numberRanges": { + "name": "numberRanges", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{\"vendors\":{\"prefix\":\"\",\"suffix\":\"\",\"nextNumber\":10000},\"customers\":{\"prefix\":\"\",\"suffix\":\"\",\"nextNumber\":10000},\"products\":{\"prefix\":\"AT-\",\"suffix\":\"\",\"nextNumber\":1000},\"quotes\":{\"prefix\":\"AN-\",\"suffix\":\"\",\"nextNumber\":1000},\"confirmationOrders\":{\"prefix\":\"AB-\",\"suffix\":\"\",\"nextNumber\":1000},\"invoices\":{\"prefix\":\"RE-\",\"suffix\":\"\",\"nextNumber\":1000},\"spaces\":{\"prefix\":\"LP-\",\"suffix\":\"\",\"nextNumber\":1000},\"customerspaces\":{\"prefix\":\"KLP-\",\"suffix\":\"\",\"nextNumber\":1000},\"inventoryitems\":{\"prefix\":\"IA-\",\"suffix\":\"\",\"nextNumber\":1000},\"customerinventoryitems\":{\"prefix\":\"KIA-\",\"suffix\":\"\",\"nextNumber\":1000},\"projects\":{\"prefix\":\"PRJ-\",\"suffix\":\"\",\"nextNumber\":1000},\"costcentres\":{\"prefix\":\"KST-\",\"suffix\":\"\",\"nextNumber\":1000}}'::jsonb" + }, + "standardEmailForInvoices": { + "name": "standardEmailForInvoices", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "extraModules": { + "name": "extraModules", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "isInTrial": { + "name": "isInTrial", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "trialEndDate": { + "name": "trialEndDate", + "type": "date", + "primaryKey": false, + "notNull": false + }, + "stripeCustomerId": { + "name": "stripeCustomerId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "hasActiveLicense": { + "name": "hasActiveLicense", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "userLicenseCount": { + "name": "userLicenseCount", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "workstationLicenseCount": { + "name": "workstationLicenseCount", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "standardPaymentDays": { + "name": "standardPaymentDays", + "type": "smallint", + "primaryKey": false, + "notNull": true, + "default": 14 + }, + "dokuboxEmailAddresses": { + "name": "dokuboxEmailAddresses", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "dokuboxkey": { + "name": "dokuboxkey", + "type": "uuid", + "primaryKey": false, + "notNull": true, + "default": "gen_random_uuid()" + }, + "autoPrepareIncomingInvoices": { + "name": "autoPrepareIncomingInvoices", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "portalDomain": { + "name": "portalDomain", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "portalConfig": { + "name": "portalConfig", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{\"primayColor\":\"#69c350\"}'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "locked": { + "name": "locked", + "type": "locked_tenant", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "tenants_updated_by_auth_users_id_fk": { + "name": "tenants_updated_by_auth_users_id_fk", + "tableFrom": "tenants", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.texttemplates": { + "name": "texttemplates", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "texttemplates_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "text": { + "name": "text", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "documentType": { + "name": "documentType", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "''" + }, + "default": { + "name": "default", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "pos": { + "name": "pos", + "type": "texttemplatepositions", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "texttemplates_tenant_tenants_id_fk": { + "name": "texttemplates_tenant_tenants_id_fk", + "tableFrom": "texttemplates", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "texttemplates_updated_by_auth_users_id_fk": { + "name": "texttemplates_updated_by_auth_users_id_fk", + "tableFrom": "texttemplates", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.units": { + "name": "units", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "units_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "single": { + "name": "single", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "multiple": { + "name": "multiple", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "short": { + "name": "short", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "step": { + "name": "step", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'1'" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.user_credentials": { + "name": "user_credentials", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "smtp_port": { + "name": "smtp_port", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "smtp_ssl": { + "name": "smtp_ssl", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "credential_types", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "imap_port": { + "name": "imap_port", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "imap_ssl": { + "name": "imap_ssl", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "email_encrypted": { + "name": "email_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "password_encrypted": { + "name": "password_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "smtp_host_encrypted": { + "name": "smtp_host_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "imap_host_encrypted": { + "name": "imap_host_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "access_token_encrypted": { + "name": "access_token_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "refresh_token_encrypted": { + "name": "refresh_token_encrypted", + "type": "jsonb", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_credentials_user_id_auth_users_id_fk": { + "name": "user_credentials_user_id_auth_users_id_fk", + "tableFrom": "user_credentials", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "user_credentials_tenant_id_tenants_id_fk": { + "name": "user_credentials_tenant_id_tenants_id_fk", + "tableFrom": "user_credentials", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vehicles": { + "name": "vehicles", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "vehicles_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "licensePlate": { + "name": "licensePlate", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "driver": { + "name": "driver", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "vin": { + "name": "vin", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tankSize": { + "name": "tankSize", + "type": "double precision", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "buildYear": { + "name": "buildYear", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "towingCapacity": { + "name": "towingCapacity", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "powerInKW": { + "name": "powerInKW", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "color": { + "name": "color", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "vehicles_tenant_tenants_id_fk": { + "name": "vehicles_tenant_tenants_id_fk", + "tableFrom": "vehicles", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "vehicles_driver_auth_users_id_fk": { + "name": "vehicles_driver_auth_users_id_fk", + "tableFrom": "vehicles", + "tableTo": "auth_users", + "columnsFrom": [ + "driver" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "vehicles_updated_by_auth_users_id_fk": { + "name": "vehicles_updated_by_auth_users_id_fk", + "tableFrom": "vehicles", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vendors": { + "name": "vendors", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "vendors_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "vendorNumber": { + "name": "vendorNumber", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "infoData": { + "name": "infoData", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'{}'::jsonb" + }, + "notes": { + "name": "notes", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "hasSEPA": { + "name": "hasSEPA", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "profiles": { + "name": "profiles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[]'::jsonb" + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "defaultPaymentMethod": { + "name": "defaultPaymentMethod", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "vendors_tenant_tenants_id_fk": { + "name": "vendors_tenant_tenants_id_fk", + "tableFrom": "vendors", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "vendors_updated_by_auth_users_id_fk": { + "name": "vendors_updated_by_auth_users_id_fk", + "tableFrom": "vendors", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.staff_time_events": { + "name": "staff_time_events", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "actor_type": { + "name": "actor_type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "actor_user_id": { + "name": "actor_user_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "event_time": { + "name": "event_time", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + }, + "event_type": { + "name": "event_type", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "source": { + "name": "source", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "invalidates_event_id": { + "name": "invalidates_event_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "related_event_id": { + "name": "related_event_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "metadata": { + "name": "metadata", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "idx_time_events_tenant_user_time": { + "name": "idx_time_events_tenant_user_time", + "columns": [ + { + "expression": "tenant_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "event_time", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "idx_time_events_created_at": { + "name": "idx_time_events_created_at", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "idx_time_events_invalidates": { + "name": "idx_time_events_invalidates", + "columns": [ + { + "expression": "invalidates_event_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "staff_time_events_tenant_id_tenants_id_fk": { + "name": "staff_time_events_tenant_id_tenants_id_fk", + "tableFrom": "staff_time_events", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_time_events_user_id_auth_users_id_fk": { + "name": "staff_time_events_user_id_auth_users_id_fk", + "tableFrom": "staff_time_events", + "tableTo": "auth_users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_time_events_actor_user_id_auth_users_id_fk": { + "name": "staff_time_events_actor_user_id_auth_users_id_fk", + "tableFrom": "staff_time_events", + "tableTo": "auth_users", + "columnsFrom": [ + "actor_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_time_events_invalidates_event_id_staff_time_events_id_fk": { + "name": "staff_time_events_invalidates_event_id_staff_time_events_id_fk", + "tableFrom": "staff_time_events", + "tableTo": "staff_time_events", + "columnsFrom": [ + "invalidates_event_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "staff_time_events_related_event_id_staff_time_events_id_fk": { + "name": "staff_time_events_related_event_id_staff_time_events_id_fk", + "tableFrom": "staff_time_events", + "tableTo": "staff_time_events", + "columnsFrom": [ + "related_event_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": { + "time_events_actor_user_check": { + "name": "time_events_actor_user_check", + "value": "\n (actor_type = 'system' AND actor_user_id IS NULL)\n OR\n (actor_type = 'user' AND actor_user_id IS NOT NULL)\n " + } + }, + "isRLSEnabled": false + }, + "public.serialtypes": { + "name": "serialtypes", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "serialtypes_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "9223372036854775807", + "cache": "1", + "cycle": false + } + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "intervall": { + "name": "intervall", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "icon": { + "name": "icon", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "archived": { + "name": "archived", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "serialtypes_tenant_tenants_id_fk": { + "name": "serialtypes_tenant_tenants_id_fk", + "tableFrom": "serialtypes", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "serialtypes_updated_by_auth_users_id_fk": { + "name": "serialtypes_updated_by_auth_users_id_fk", + "tableFrom": "serialtypes", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.serial_executions": { + "name": "serial_executions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant": { + "name": "tenant", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "execution_date": { + "name": "execution_date", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + }, + "created_by": { + "name": "created_by", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "summary": { + "name": "summary", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "serial_executions_tenant_tenants_id_fk": { + "name": "serial_executions_tenant_tenants_id_fk", + "tableFrom": "serial_executions", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.public_links": { + "name": "public_links", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "tenant": { + "name": "tenant", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "default_profile": { + "name": "default_profile", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "is_protected": { + "name": "is_protected", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "pin_hash": { + "name": "pin_hash", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "config": { + "name": "config", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{}'::jsonb" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": { + "public_links_tenant_tenants_id_fk": { + "name": "public_links_tenant_tenants_id_fk", + "tableFrom": "public_links", + "tableTo": "tenants", + "columnsFrom": [ + "tenant" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "public_links_default_profile_auth_profiles_id_fk": { + "name": "public_links_default_profile_auth_profiles_id_fk", + "tableFrom": "public_links", + "tableTo": "auth_profiles", + "columnsFrom": [ + "default_profile" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "public_links_token_unique": { + "name": "public_links_token_unique", + "nullsNotDistinct": false, + "columns": [ + "token" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.wiki_pages": { + "name": "wiki_pages", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tenant_id": { + "name": "tenant_id", + "type": "bigint", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "content": { + "name": "content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "is_folder": { + "name": "is_folder", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "sort_order": { + "name": "sort_order", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "entity_type": { + "name": "entity_type", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "entity_id": { + "name": "entity_id", + "type": "bigint", + "primaryKey": false, + "notNull": false + }, + "entity_uuid": { + "name": "entity_uuid", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + }, + "created_by": { + "name": "created_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "updated_by": { + "name": "updated_by", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "wiki_pages_tenant_idx": { + "name": "wiki_pages_tenant_idx", + "columns": [ + { + "expression": "tenant_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "wiki_pages_parent_idx": { + "name": "wiki_pages_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "wiki_pages_entity_int_idx": { + "name": "wiki_pages_entity_int_idx", + "columns": [ + { + "expression": "tenant_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "entity_type", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "entity_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "wiki_pages_entity_uuid_idx": { + "name": "wiki_pages_entity_uuid_idx", + "columns": [ + { + "expression": "tenant_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "entity_type", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "entity_uuid", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "wiki_pages_tenant_id_tenants_id_fk": { + "name": "wiki_pages_tenant_id_tenants_id_fk", + "tableFrom": "wiki_pages", + "tableTo": "tenants", + "columnsFrom": [ + "tenant_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "wiki_pages_parent_id_wiki_pages_id_fk": { + "name": "wiki_pages_parent_id_wiki_pages_id_fk", + "tableFrom": "wiki_pages", + "tableTo": "wiki_pages", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "wiki_pages_created_by_auth_users_id_fk": { + "name": "wiki_pages_created_by_auth_users_id_fk", + "tableFrom": "wiki_pages", + "tableTo": "auth_users", + "columnsFrom": [ + "created_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "wiki_pages_updated_by_auth_users_id_fk": { + "name": "wiki_pages_updated_by_auth_users_id_fk", + "tableFrom": "wiki_pages", + "tableTo": "auth_users", + "columnsFrom": [ + "updated_by" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": { + "public.credential_types": { + "name": "credential_types", + "schema": "public", + "values": [ + "mail", + "m365" + ] + }, + "public.folderfunctions": { + "name": "folderfunctions", + "schema": "public", + "values": [ + "none", + "yearSubCategory", + "incomingInvoices", + "invoices", + "quotes", + "confirmationOrders", + "deliveryNotes", + "vehicleData", + "reminders", + "taxData", + "deposit", + "timeEvaluations" + ] + }, + "public.locked_tenant": { + "name": "locked_tenant", + "schema": "public", + "values": [ + "maintenance_tenant", + "maintenance", + "general", + "no_subscription" + ] + }, + "public.notification_channel": { + "name": "notification_channel", + "schema": "public", + "values": [ + "email", + "inapp", + "sms", + "push", + "webhook" + ] + }, + "public.notification_severity": { + "name": "notification_severity", + "schema": "public", + "values": [ + "info", + "success", + "warning", + "error" + ] + }, + "public.notification_status": { + "name": "notification_status", + "schema": "public", + "values": [ + "queued", + "sent", + "failed", + "read" + ] + }, + "public.payment_types": { + "name": "payment_types", + "schema": "public", + "values": [ + "transfer", + "direct_debit" + ] + }, + "public.texttemplatepositions": { + "name": "texttemplatepositions", + "schema": "public", + "values": [ + "startText", + "endText" + ] + }, + "public.times_state": { + "name": "times_state", + "schema": "public", + "values": [ + "submitted", + "approved", + "draft" + ] + } + }, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} \ No newline at end of file diff --git a/backend/db/migrations/meta/_journal.json b/backend/db/migrations/meta/_journal.json index 0d46d0c..35a1b8e 100644 --- a/backend/db/migrations/meta/_journal.json +++ b/backend/db/migrations/meta/_journal.json @@ -134,6 +134,13 @@ "when": 1773000900000, "tag": "0018_account_chart", "breakpoints": true + }, + { + "idx": 19, + "version": "7", + "when": 1773572400000, + "tag": "0020_file_extracted_text", + "breakpoints": true } ] } diff --git a/backend/db/schema/files.ts b/backend/db/schema/files.ts index cbf596e..e86b541 100644 --- a/backend/db/schema/files.ts +++ b/backend/db/schema/files.ts @@ -66,6 +66,7 @@ export const files = pgTable("files", { documentbox: uuid("documentbox").references(() => documentboxes.id), name: text("name"), + extractedText: text("extracted_text"), updatedAt: timestamp("updated_at", { withTimezone: true }), updatedBy: uuid("updated_by").references(() => authUsers.id), diff --git a/backend/scripts/import-members-csv.ts b/backend/scripts/import-members-csv.ts new file mode 100644 index 0000000..e092601 --- /dev/null +++ b/backend/scripts/import-members-csv.ts @@ -0,0 +1,270 @@ +import fs from "node:fs" +import path from "node:path" +import { and, eq } from "drizzle-orm" + +import { db, pool } from "../db" +import { customers, entitybankaccounts } from "../db/schema" +import { decrypt, encrypt } from "../src/utils/crypt" +import { loadSecrets, secrets } from "../src/utils/secrets" + +type CsvMemberRow = { + number: string + lastname: string + firstname: string + street: string + zip: string + city: string + birthdate: string + mobile: string + email: string + bankInstitute: string + iban: string + bic: string + date: string + memberStatus: string +} + +const TENANT_ID = 38 +const DEFAULT_CSV_PATH = "/Users/florianfederspiel/Downloads/Mitglieder Übersicht 2026_1.csv" + +const args = process.argv.slice(2) +const dryRun = args.includes("--dry-run") +const csvArg = args.find((arg) => !arg.startsWith("--")) +const csvPath = csvArg || DEFAULT_CSV_PATH + +function normalizeIban(value: string) { + return String(value || "").replace(/\s+/g, "").toUpperCase() +} + +function parseGermanDate(value: string): string | null { + const v = String(value || "").trim() + if (!v) return null + + const m = v.match(/^(\d{1,2})\.(\d{1,2})\.(\d{2}|\d{4})$/) + if (!m) return null + + const day = m[1].padStart(2, "0") + const month = m[2].padStart(2, "0") + const yy = m[3] + const year = yy.length === 4 ? yy : (Number(yy) >= 70 ? `19${yy}` : `20${yy}`) + + return `${year}-${month}-${day}` +} + +function parseBoolFromStatus(value: string) { + const normalized = String(value || "").trim().toLowerCase() + return normalized !== "inaktiv" +} + +function parseCsv(content: string): CsvMemberRow[] { + const lines = content + .split(/\r?\n/) + .map((l) => l.trim()) + .filter((l) => l.length > 0) + + if (!lines.length) return [] + + // Header: + // Nr;Name;Vorname;Straße, Hausnr.;PLZ;Wohnort;Geburtsdatum;Mobilfunknummer;Private Mail-Adresse;Kreditinstitut;IBAN;BIC;Datum;Mitgliedsstatus + const rows: CsvMemberRow[] = [] + for (let i = 1; i < lines.length; i++) { + const cols = lines[i].split(";").map((v) => v.trim()) + if (cols.length < 14) continue + + const number = cols[0] + const lastname = cols[1] + const firstname = cols[2] + if (!number || !lastname || !firstname) continue + + rows.push({ + number, + lastname, + firstname, + street: cols[3] || "", + zip: cols[4] || "", + city: cols[5] || "", + birthdate: cols[6] || "", + mobile: cols[7] || "", + email: cols[8] || "", + bankInstitute: cols[9] || "", + iban: cols[10] || "", + bic: cols[11] || "", + date: cols[12] || "", + memberStatus: cols[13] || "", + }) + } + + return rows +} + +async function loadBankAccountByIban(tenantId: number) { + const rows = await db + .select({ + id: entitybankaccounts.id, + ibanEncrypted: entitybankaccounts.ibanEncrypted, + }) + .from(entitybankaccounts) + .where(eq(entitybankaccounts.tenant, tenantId)) + + const map = new Map() + for (const row of rows) { + try { + const iban = normalizeIban(decrypt(row.ibanEncrypted as any)) + if (iban) map.set(iban, Number(row.id)) + } catch { + // skip broken ciphertext rows + } + } + return map +} + +async function main() { + if (!secrets.ENCRYPTION_KEY && process.env.ENCRYPTION_KEY) { + secrets.ENCRYPTION_KEY = process.env.ENCRYPTION_KEY + } + + if (!secrets.ENCRYPTION_KEY && process.env.INFISICAL_CLIENT_ID && process.env.INFISICAL_CLIENT_SECRET) { + await loadSecrets() + } + + if (!secrets.ENCRYPTION_KEY) { + throw new Error("ENCRYPTION_KEY fehlt. Bitte ENCRYPTION_KEY setzen oder Infisical-Zugang (INFISICAL_CLIENT_ID/INFISICAL_CLIENT_SECRET) bereitstellen.") + } + + const absoluteCsvPath = path.resolve(csvPath) + if (!fs.existsSync(absoluteCsvPath)) { + throw new Error(`CSV nicht gefunden: ${absoluteCsvPath}`) + } + + const raw = fs.readFileSync(absoluteCsvPath, "utf8") + const csvRows = parseCsv(raw) + if (!csvRows.length) { + throw new Error("Keine importierbaren Zeilen gefunden.") + } + + const existingMembers = await db + .select() + .from(customers) + .where(and(eq(customers.tenant, TENANT_ID), eq(customers.type, "Mitglied"))) + + const memberByNumber = new Map(existingMembers.map((m) => [String(m.customerNumber), m])) + const bankAccountByIban = await loadBankAccountByIban(TENANT_ID) + + let createdMembers = 0 + let updatedMembers = 0 + let createdBankAccounts = 0 + let skippedNoIban = 0 + + for (const row of csvRows) { + const iban = normalizeIban(row.iban) + if (!iban) { + skippedNoIban += 1 + continue + } + + + const fullName = `${row.firstname} ${row.lastname}`.trim() + const birthdate = parseGermanDate(row.birthdate) + const sepaSignedAt = parseGermanDate(row.date) + const active = parseBoolFromStatus(row.memberStatus) + + let bankAccountId = bankAccountByIban.get(iban) || null + + if (!bankAccountId) { + if (!dryRun) { + const [created] = await db + .insert(entitybankaccounts) + .values({ + tenant: TENANT_ID, + ibanEncrypted: encrypt(iban), + bicEncrypted: encrypt(row.bic || "UNBEKANNT"), + bankNameEncrypted: encrypt(row.bankInstitute || "Unbekannt"), + description: "Import Mitglieder Uebersicht 2026_1", + }) + .returning({ id: entitybankaccounts.id }) + bankAccountId = created?.id || null + } else { + bankAccountId = -1 + } + if (bankAccountId) { + bankAccountByIban.set(iban, bankAccountId) + createdBankAccounts += 1 + } + } + + const existing = memberByNumber.get(String(row.number)) + const existingInfo = (existing?.infoData && typeof existing.infoData === "object") + ? { ...(existing.infoData as Record) } + : {} + + const existingIds = Array.isArray(existingInfo.bankAccountIds) ? existingInfo.bankAccountIds : [] + const mergedBankAccountIds = bankAccountId && !existingIds.includes(bankAccountId) + ? [...existingIds, bankAccountId] + : existingIds + + const infoData = { + ...existingInfo, + street: row.street || existingInfo.street || "", + zip: row.zip || existingInfo.zip || "", + city: row.city || existingInfo.city || "", + phone: row.mobile || existingInfo.phone || "", + email: row.email || existingInfo.email || "", + birthdate: birthdate || existingInfo.birthdate || null, + hasSEPA: Boolean(sepaSignedAt || existingInfo.sepaSignedAt || existingInfo.hasSEPA), + sepaSignedAt: sepaSignedAt || existingInfo.sepaSignedAt || null, + bankAccountIds: mergedBankAccountIds, + } + + const payload = { + tenant: TENANT_ID, + customerNumber: String(row.number), + type: "Mitglied", + isCompany: false, + firstname: row.firstname, + lastname: row.lastname, + name: fullName, + active, + infoData, + archived: false, + } + + if (!existing) { + if (!dryRun) { + const [created] = await db.insert(customers).values(payload).returning() + if (created) memberByNumber.set(String(row.number), created) + } + createdMembers += 1 + } else { + if (!dryRun) { + await db + .update(customers) + .set({ + ...payload, + updatedAt: new Date(), + }) + .where(and(eq(customers.id, existing.id), eq(customers.tenant, TENANT_ID))) + } + updatedMembers += 1 + } + } + + console.log("") + console.log(`[IMPORT MEMBERS] Tenant: ${TENANT_ID}`) + console.log(`[IMPORT MEMBERS] CSV: ${absoluteCsvPath}`) + console.log(`[IMPORT MEMBERS] Dry-Run: ${dryRun ? "JA" : "NEIN"}`) + console.log(`[IMPORT MEMBERS] Zeilen: ${csvRows.length}`) + console.log(`[IMPORT MEMBERS] Mitglieder erstellt: ${createdMembers}`) + console.log(`[IMPORT MEMBERS] Mitglieder aktualisiert: ${updatedMembers}`) + console.log(`[IMPORT MEMBERS] Bankkonten erstellt: ${createdBankAccounts}`) + console.log(`[IMPORT MEMBERS] Ohne IBAN übersprungen: ${skippedNoIban}`) + console.log("") +} + +main() + .catch((err) => { + console.error("[IMPORT MEMBERS] Fehler:", err) + process.exitCode = 1 + }) + .finally(async () => { + await pool.end() + }) diff --git a/backend/scripts/import-skr42-accounts.ts b/backend/scripts/import-skr42-accounts.ts new file mode 100644 index 0000000..cb634a9 --- /dev/null +++ b/backend/scripts/import-skr42-accounts.ts @@ -0,0 +1,265 @@ +import fs from "node:fs" +import path from "node:path" +import zlib from "node:zlib" + +type ParsedAccount = { + number: string + label: string +} + +const DEFAULT_PDF_PATH = "/Users/florianfederspiel/Downloads/12901_DATEV-Kontenrahmen SKR 42 Vereine, Stiftungen, gGmbH (Bilanz).pdf" +const ACCOUNT_CHART = "skr42" + +const args = process.argv.slice(2) +const dryRun = args.includes("--dry-run") +const parseOnly = args.includes("--parse-only") +const pdfArg = args.find((arg) => !arg.startsWith("--")) +const pdfPath = path.resolve(pdfArg || DEFAULT_PDF_PATH) + +function decodePdfString(raw: string) { + let out = "" + + for (let i = 0; i < raw.length; i += 1) { + const ch = raw[i] + + if (ch !== "\\") { + out += ch + continue + } + + const next = raw[i + 1] + if (!next) break + + if (next === "n") { + out += "\n" + i += 1 + continue + } + + if (next === "r") { + out += "\r" + i += 1 + continue + } + + if (next === "t") { + out += "\t" + i += 1 + continue + } + + if (next === "b") { + out += "\b" + i += 1 + continue + } + + if (next === "f") { + out += "\f" + i += 1 + continue + } + + if (next === "(" || next === ")" || next === "\\") { + out += next + i += 1 + continue + } + + if (/[0-7]/.test(next)) { + let oct = next + let advance = 1 + + for (let j = 2; j <= 3; j += 1) { + const c = raw[i + j] + if (!c || !/[0-7]/.test(c)) break + oct += c + advance += 1 + } + + out += String.fromCharCode(parseInt(oct, 8)) + i += advance + continue + } + + out += next + i += 1 + } + + return out +} + +function extractTextFromTjOperator(segment: string) { + const parts = segment.match(/\((?:\\.|[^\\)])*\)/g) + if (!parts) return "" + + return parts + .map((p) => decodePdfString(p.slice(1, -1))) + .join("") +} + +function extractPdfTextStreams(pdfBuffer: Buffer) { + const pdfLatin = pdfBuffer.toString("latin1") + const texts: string[] = [] + + let cursor = 0 + while (true) { + const streamPos = pdfLatin.indexOf("stream", cursor) + if (streamPos < 0) break + + let dataStart = streamPos + 6 + if (pdfLatin[dataStart] === "\r" && pdfLatin[dataStart + 1] === "\n") { + dataStart += 2 + } else if (pdfLatin[dataStart] === "\n") { + dataStart += 1 + } + + const streamEnd = pdfLatin.indexOf("endstream", dataStart) + if (streamEnd < 0) break + + const sliceEnd = streamEnd > dataStart && pdfBuffer[streamEnd - 1] === 0x0d + ? streamEnd - 1 + : streamEnd + + const compressed = pdfBuffer.subarray(dataStart, sliceEnd) + + try { + const inflated = zlib.inflateSync(compressed).toString("latin1") + texts.push(inflated) + } catch { + // ignore non-flate streams + } + + cursor = streamEnd + 9 + } + + return texts +} + +function normalizeLabel(value: string) { + return value + .replace(/\s+/g, " ") + .replace(/\s+-\s+/g, "-") + .trim() +} + +function looksLikeAccountLabel(value: string) { + const letters = (value.match(/[A-Za-zÄÖÜäöüß]/g) || []).length + return letters >= 3 +} + +function parseAccountsFromPdf(pdfBuffer: Buffer): ParsedAccount[] { + const streams = extractPdfTextStreams(pdfBuffer) + const found = new Map() + + const accountPattern = /^\s*([A-Z])?\s*(\d{3,5})\s+0\s+(.+)$/ + + for (const stream of streams) { + const operators = stream.match(/\[(?:.|\r|\n)*?\]TJ|\((?:\\.|[^\\)])*\)Tj/g) + if (!operators) continue + + for (const op of operators) { + const text = normalizeLabel(extractTextFromTjOperator(op)) + if (!text) continue + + const m = text.match(accountPattern) + if (m) { + const number = m[2] + const label = normalizeLabel(m[3]) + if (!looksLikeAccountLabel(label)) continue + + const existing = found.get(number) + if (!existing || label.length > existing.length) { + found.set(number, label) + } + } + } + } + + return [...found.entries()] + .map(([number, label]) => ({ number, label })) + .sort((a, b) => Number(a.number) - Number(b.number)) +} + +async function main() { + if (!fs.existsSync(pdfPath)) { + throw new Error(`PDF nicht gefunden: ${pdfPath}`) + } + + const pdfBuffer = fs.readFileSync(pdfPath) + const parsed = parseAccountsFromPdf(pdfBuffer) + + if (!parsed.length) { + throw new Error("Keine Konten aus PDF extrahiert.") + } + + if (parseOnly) { + console.log("") + console.log(`[SKR42 IMPORT] PDF: ${pdfPath}`) + console.log(`[SKR42 IMPORT] Gefundene Konten: ${parsed.length}`) + console.log(`[SKR42 IMPORT] Parse-Only: JA`) + console.log("") + console.log("[SKR42 IMPORT] Beispiel (erste 15):") + for (const item of parsed.slice(0, 15)) { + console.log(` ${item.number} ${item.label}`) + } + console.log("") + return + } + + const { eq } = await import("drizzle-orm") + const { db, pool } = await import("../db") + const { accounts } = await import("../db/schema") + + const existing = await db + .select({ number: accounts.number }) + .from(accounts) + .where(eq(accounts.accountChart, ACCOUNT_CHART)) + + const existingSet = new Set(existing.map((r) => String(r.number))) + + const toInsert = parsed + .filter((a) => !existingSet.has(a.number)) + .map((a) => ({ + number: a.number, + label: a.label, + accountChart: ACCOUNT_CHART, + description: "DATEV SKR42 Import", + })) + + if (!dryRun && toInsert.length > 0) { + const batchSize = 500 + for (let i = 0; i < toInsert.length; i += batchSize) { + const batch = toInsert.slice(i, i + batchSize) + await db.insert(accounts).values(batch) + } + } + + console.log("") + console.log(`[SKR42 IMPORT] PDF: ${pdfPath}`) + console.log(`[SKR42 IMPORT] Gefundene Konten: ${parsed.length}`) + console.log(`[SKR42 IMPORT] Bereits vorhanden (skr42): ${existing.length}`) + console.log(`[SKR42 IMPORT] Neu einzufuegen: ${toInsert.length}`) + console.log(`[SKR42 IMPORT] Dry-Run: ${dryRun ? "JA" : "NEIN"}`) + console.log("") + + if (parsed.length > 0) { + console.log("[SKR42 IMPORT] Beispiel (erste 15):") + for (const item of parsed.slice(0, 15)) { + console.log(` ${item.number} ${item.label}`) + } + console.log("") + } +} + +main() + .catch((err) => { + console.error("[SKR42 IMPORT] Fehler:", err) + process.exitCode = 1 + }) + .finally(async () => { + if (!parseOnly) { + const { pool } = await import("../db") + await pool.end() + } + }) diff --git a/backend/scripts/skr42.pdf b/backend/scripts/skr42.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3a59376e56880b82836bb3c6cddbb0e4b3adb1a3 GIT binary patch literal 421309 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%0AkrJ}DOb-MBLA&A;y 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ⅅ1?`!@x-D5_=8t1KTljb1xjXiv@N-3sxV+a8Tp-~ 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

?dRM~di7eYW&r1NwV(w_d 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 literal 0 HcmV?d00001 diff --git a/backend/src/modules/cron/prepareIncomingInvoices.ts b/backend/src/modules/cron/prepareIncomingInvoices.ts index e8bbc7d..f51005b 100644 --- a/backend/src/modules/cron/prepareIncomingInvoices.ts +++ b/backend/src/modules/cron/prepareIncomingInvoices.ts @@ -8,108 +8,9 @@ import { files, filetags, incominginvoices, - vendors, } from "../../../db/schema" -import { eq, and, isNull, not, desc } from "drizzle-orm" - -type InvoiceAccount = { - account?: number | null - description?: string | null - taxType?: string | number | null -} - -const normalizeAccounts = (accounts: unknown): InvoiceAccount[] => { - if (!Array.isArray(accounts)) return [] - return accounts - .map((entry: any) => ({ - account: typeof entry?.account === "number" ? entry.account : null, - description: typeof entry?.description === "string" ? entry.description : null, - taxType: entry?.taxType ?? null, - })) - .filter((entry) => entry.account !== null || entry.description || entry.taxType !== null) -} - -const buildLearningContext = (historicalInvoices: any[]) => { - if (!historicalInvoices.length) return null - - const vendorProfiles = new Map - accountUsage: Map - sampleDescriptions: string[] - }>() - - const recentExamples: any[] = [] - - for (const invoice of historicalInvoices) { - const accounts = normalizeAccounts(invoice.accounts) - const vendorId = typeof invoice.vendorId === "number" ? invoice.vendorId : null - const vendorName = typeof invoice.vendorName === "string" ? invoice.vendorName : "Unknown" - - if (vendorId) { - if (!vendorProfiles.has(vendorId)) { - vendorProfiles.set(vendorId, { - vendorName, - paymentTypes: new Map(), - accountUsage: new Map(), - sampleDescriptions: [], - }) - } - - const profile = vendorProfiles.get(vendorId)! - if (invoice.paymentType) { - const key = String(invoice.paymentType) - profile.paymentTypes.set(key, (profile.paymentTypes.get(key) ?? 0) + 1) - } - for (const account of accounts) { - if (typeof account.account === "number") { - profile.accountUsage.set(account.account, (profile.accountUsage.get(account.account) ?? 0) + 1) - } - } - if (invoice.description && profile.sampleDescriptions.length < 3) { - profile.sampleDescriptions.push(String(invoice.description).slice(0, 120)) - } - } - - if (recentExamples.length < 20) { - recentExamples.push({ - vendorId, - vendorName, - paymentType: invoice.paymentType ?? null, - accounts: accounts.map((entry) => ({ - account: entry.account, - description: entry.description ?? null, - taxType: entry.taxType ?? null, - })), - }) - } - } - - const vendorPatterns = Array.from(vendorProfiles.entries()) - .map(([vendorId, profile]) => { - const commonPaymentType = Array.from(profile.paymentTypes.entries()) - .sort((a, b) => b[1] - a[1])[0]?.[0] ?? null - const topAccounts = Array.from(profile.accountUsage.entries()) - .sort((a, b) => b[1] - a[1]) - .slice(0, 4) - .map(([accountId, count]) => ({ accountId, count })) - - return { - vendorId, - vendorName: profile.vendorName, - commonPaymentType, - topAccounts, - sampleDescriptions: profile.sampleDescriptions, - } - }) - .slice(0, 50) - - return JSON.stringify({ - vendorPatterns, - recentExamples, - }) -} +import { eq, and, isNull, not } from "drizzle-orm" export function prepareIncomingInvoices(server: FastifyInstance) { const processInvoices = async (tenantId:number) => { @@ -171,34 +72,13 @@ export function prepareIncomingInvoices(server: FastifyInstance) { continue } - const historicalInvoices = await server.db - .select({ - vendorId: incominginvoices.vendor, - vendorName: vendors.name, - paymentType: incominginvoices.paymentType, - description: incominginvoices.description, - accounts: incominginvoices.accounts, - }) - .from(incominginvoices) - .leftJoin(vendors, eq(incominginvoices.vendor, vendors.id)) - .where( - and( - eq(incominginvoices.tenant, tenantId), - eq(incominginvoices.archived, false) - ) - ) - .orderBy(desc(incominginvoices.createdAt)) - .limit(120) - - const learningContext = buildLearningContext(historicalInvoices) - // ------------------------------------------------------------- // 3️⃣ Jede Datei einzeln durch GPT jagen & IncomingInvoice erzeugen // ------------------------------------------------------------- for (const file of filesRes) { console.log(`Processing file ${file.id} for tenant ${tenantId}`) - const data = await getInvoiceDataFromGPT(server,file, tenantId, learningContext ?? undefined) + const data = await getInvoiceDataFromGPT(server,file, tenantId) if (!data) { server.log.warn(`GPT returned no data for file ${file.id}`) @@ -214,9 +94,9 @@ export function prepareIncomingInvoices(server: FastifyInstance) { } if (data.invoice_number) itemInfo.reference = data.invoice_number - if (data.invoice_date) itemInfo.date = dayjs(data.invoice_date).toISOString() + if (data.invoice_date && dayjs(data.invoice_date).isValid()) itemInfo.date = dayjs(data.invoice_date).toISOString() if (data.issuer?.id) itemInfo.vendor = data.issuer.id - if (data.invoice_duedate) itemInfo.dueDate = dayjs(data.invoice_duedate).toISOString() + if (data.invoice_duedate && dayjs(data.invoice_duedate).isValid()) itemInfo.dueDate = dayjs(data.invoice_duedate).toISOString() // Payment terms mapping const mapPayment: any = { @@ -229,16 +109,26 @@ export function prepareIncomingInvoices(server: FastifyInstance) { // 3.2 Positionszeilen konvertieren if (data.invoice_items?.length > 0) { - itemInfo.accounts = data.invoice_items.map(item => ({ - account: item.account_id, - description: item.description, - amountNet: item.total_without_tax, - amountTax: Number((item.total - item.total_without_tax).toFixed(2)), - taxType: String(item.tax_rate), - amountGross: item.total, - costCentre: null, - quantity: item.quantity, - })) + itemInfo.accounts = data.invoice_items + .filter(item => item.description || item.total !== null || item.total_without_tax !== null) + .map(item => { + const total = typeof item.total === "number" ? item.total : null + const totalWithoutTax = typeof item.total_without_tax === "number" ? item.total_without_tax : null + const amountTax = total !== null && totalWithoutTax !== null + ? Number((total - totalWithoutTax).toFixed(2)) + : null + + return { + account: item.account_id, + description: item.description, + amountNet: totalWithoutTax, + amountTax, + taxType: item.tax_rate !== null ? String(item.tax_rate) : null, + amountGross: total, + costCentre: null, + quantity: item.quantity, + } + }) } // 3.3 Beschreibung generieren diff --git a/backend/src/routes/files.ts b/backend/src/routes/files.ts index 5c7ac9d..9af7527 100644 --- a/backend/src/routes/files.ts +++ b/backend/src/routes/files.ts @@ -2,12 +2,12 @@ import { FastifyInstance } from "fastify" import multipart from "@fastify/multipart" import { s3 } from "../utils/s3" import { - GetObjectCommand, - PutObjectCommand + GetObjectCommand } from "@aws-sdk/client-s3" import { getSignedUrl } from "@aws-sdk/s3-request-presigner" import archiver from "archiver" import { secrets } from "../utils/secrets" +import { saveFile } from "../utils/files" import { eq, inArray } from "drizzle-orm" import { @@ -40,39 +40,28 @@ export default async function fileRoutes(server: FastifyInstance) { const fileBuffer = await data.toBuffer() const meta = data.fields?.meta?.value ? JSON.parse(data.fields.meta.value) : {} + const { folder = null, type = null, ...otherMeta } = meta - // 1️⃣ DB-Eintrag erzeugen - const inserted = await server.db - .insert(files) - .values({ tenant: tenantId }) - .returning() + const created = await saveFile( + server, + tenantId, + null, + { + filename: data.filename, + content: fileBuffer, + contentType: data.mimetype + }, + folder, + type, + otherMeta + ) - const created = inserted[0] if (!created) throw new Error("Could not create DB entry") - // 2️⃣ Datei in S3 speichern - const fileKey = `${tenantId}/filesbyid/${created.id}/${data.filename}` - - await s3.send(new PutObjectCommand({ - Bucket: secrets.S3_BUCKET, - Key: fileKey, - Body: fileBuffer, - ContentType: data.mimetype - })) - - // 3️⃣ DB updaten: meta + path - await server.db - .update(files) - .set({ - ...meta, - path: fileKey - }) - .where(eq(files.id, created.id)) - return { id: created.id, filename: data.filename, - path: fileKey + path: created.key } } catch (err) { console.error(err) diff --git a/backend/src/routes/functions.ts b/backend/src/routes/functions.ts index b198f0d..d2d57ff 100644 --- a/backend/src/routes/functions.ts +++ b/backend/src/routes/functions.ts @@ -1,6 +1,7 @@ import { FastifyInstance } from "fastify"; import {createInvoicePDF, createTimeSheetPDF} from "../utils/pdf"; import {encodeBase64ToNiimbot, generateLabel, useNextNumberRangeNumber} from "../utils/functions"; +import { GetObjectCommand } from "@aws-sdk/client-s3"; import dayjs from "dayjs"; //import { ready as zplReady } from 'zpl-renderer-js' //import { renderZPL } from "zpl-image"; @@ -13,9 +14,12 @@ import isSameOrBefore from "dayjs/plugin/isSameOrBefore.js" import duration from "dayjs/plugin/duration.js"; import timezone from "dayjs/plugin/timezone.js"; import {generateTimesEvaluation} from "../modules/time/evaluation.service"; -import {citys} from "../../db/schema"; -import {eq} from "drizzle-orm"; +import {citys, files} from "../../db/schema"; +import {and, eq, isNull, not} from "drizzle-orm"; import {executeManualGeneration, finishManualGeneration} from "../modules/serialexecution.service"; +import { s3 } from "../utils/s3"; +import { secrets } from "../utils/secrets"; +import { storeExtractedTextForFile } from "../utils/documentText"; dayjs.extend(customParseFormat) dayjs.extend(isoWeek) dayjs.extend(isBetween) @@ -25,6 +29,14 @@ dayjs.extend(duration) dayjs.extend(timezone) export default async function functionRoutes(server: FastifyInstance) { + const streamToBuffer = async (stream: any): Promise => + new Promise((resolve, reject) => { + const chunks: Buffer[] = []; + stream.on("data", (chunk: Buffer) => chunks.push(chunk)); + stream.on("error", reject); + stream.on("end", () => resolve(Buffer.concat(chunks))); + }); + server.post("/functions/pdf/:type", async (req, reply) => { const body = req.body as { data: any @@ -171,6 +183,58 @@ export default async function functionRoutes(server: FastifyInstance) { await server.services.prepareIncomingInvoices.run(req.user.tenant_id) }) + server.post('/functions/services/backfillfiletext', async (req, reply) => { + const tenantId = req.user.tenant_id + + const pendingFiles = await server.db + .select() + .from(files) + .where( + and( + eq(files.tenant, tenantId), + eq(files.archived, false), + not(isNull(files.path)), + isNull(files.extractedText) + ) + ) + + let processed = 0 + let withText = 0 + let errors = 0 + + for (const file of pendingFiles) { + try { + const response: any = await s3.send(new GetObjectCommand({ + Bucket: secrets.S3_BUCKET, + Key: file.path! + })) + + const fileBuffer = await streamToBuffer(response.Body) + const result = await storeExtractedTextForFile( + server, + file.id, + fileBuffer, + file.mimeType, + file.name || file.path?.split("/").pop() + ) + + processed += 1 + if (result.text) withText += 1 + } catch (err) { + errors += 1 + server.log.error(`Failed to backfill extracted text for file ${file.id}`) + server.log.error(err) + } + } + + return { + pending: pendingFiles.length, + processed, + withText, + errors + } + }) + server.post('/functions/services/syncdokubox', async (req, reply) => { await server.services.dokuboxSync.run() diff --git a/backend/src/utils/documentText.ts b/backend/src/utils/documentText.ts new file mode 100644 index 0000000..3637df1 --- /dev/null +++ b/backend/src/utils/documentText.ts @@ -0,0 +1,315 @@ +import fs from "node:fs/promises"; +import os from "node:os"; +import path from "node:path"; +import zlib from "node:zlib"; +import { execFile } from "node:child_process"; +import { promisify } from "node:util"; +import { FastifyInstance } from "fastify"; +import { eq } from "drizzle-orm"; +import { files } from "../../db/schema"; + +const execFileAsync = promisify(execFile); + +type ExtractionMethod = "text" | "ocr" | "none"; + +type ExtractedDocumentText = { + text: string | null; + method: ExtractionMethod; +}; + +function normalizeExtractedText(text: string) { + return text + .replace(/\u0000/g, "") + .replace(/\r/g, "\n") + .replace(/[ \t]+\n/g, "\n") + .replace(/\n{3,}/g, "\n\n") + .trim(); +} + +function decodePdfString(raw: string) { + let out = ""; + + for (let i = 0; i < raw.length; i += 1) { + const ch = raw[i]; + + if (ch !== "\\") { + out += ch; + continue; + } + + const next = raw[i + 1]; + if (!next) break; + + if (next === "n") { + out += "\n"; + i += 1; + continue; + } + + if (next === "r") { + out += "\r"; + i += 1; + continue; + } + + if (next === "t") { + out += "\t"; + i += 1; + continue; + } + + if (next === "b") { + out += "\b"; + i += 1; + continue; + } + + if (next === "f") { + out += "\f"; + i += 1; + continue; + } + + if (next === "(" || next === ")" || next === "\\") { + out += next; + i += 1; + continue; + } + + if (/[0-7]/.test(next)) { + let oct = next; + let advance = 1; + + for (let j = 2; j <= 3; j += 1) { + const c = raw[i + j]; + if (!c || !/[0-7]/.test(c)) break; + oct += c; + advance += 1; + } + + out += String.fromCharCode(parseInt(oct, 8)); + i += advance; + continue; + } + + out += next; + i += 1; + } + + return out; +} + +function extractTextFromTjOperator(segment: string) { + const parts = segment.match(/\((?:\\.|[^\\)])*\)/g); + if (!parts) return ""; + + return parts + .map((part) => decodePdfString(part.slice(1, -1))) + .join(""); +} + +function extractTextStreamsFromPdf(pdfBuffer: Buffer) { + const pdfLatin = pdfBuffer.toString("latin1"); + const texts: string[] = []; + + let cursor = 0; + while (true) { + const streamPos = pdfLatin.indexOf("stream", cursor); + if (streamPos < 0) break; + + let dataStart = streamPos + 6; + if (pdfLatin[dataStart] === "\r" && pdfLatin[dataStart + 1] === "\n") { + dataStart += 2; + } else if (pdfLatin[dataStart] === "\n") { + dataStart += 1; + } + + const streamEnd = pdfLatin.indexOf("endstream", dataStart); + if (streamEnd < 0) break; + + const sliceEnd = streamEnd > dataStart && pdfBuffer[streamEnd - 1] === 0x0d + ? streamEnd - 1 + : streamEnd; + + const compressed = pdfBuffer.subarray(dataStart, sliceEnd); + + try { + texts.push(zlib.inflateSync(compressed).toString("latin1")); + } catch { + // Ignore non-Flate streams. + } + + cursor = streamEnd + 9; + } + + return texts; +} + +function extractTextFromPdfBufferFallback(pdfBuffer: Buffer) { + const streams = extractTextStreamsFromPdf(pdfBuffer); + const extracted: string[] = []; + + for (const stream of streams) { + const operators = stream.match(/\[(?:.|\r|\n)*?\]TJ|\((?:\\.|[^\\)])*\)Tj/g); + if (!operators) continue; + + for (const operator of operators) { + const text = extractTextFromTjOperator(operator) + .replace(/[ \t]+/g, " ") + .trim(); + + if (text) { + extracted.push(text); + } + } + } + + return normalizeExtractedText(extracted.join("\n")); +} + +async function runCommand(command: string, args: string[]) { + try { + return await execFileAsync(command, args, { maxBuffer: 50 * 1024 * 1024 }); + } catch (err: any) { + if (err?.code === "ENOENT") { + return null; + } + + throw err; + } +} + +async function extractPdfTextWithPoppler(pdfPath: string) { + const result = await runCommand("pdftotext", ["-layout", "-enc", "UTF-8", pdfPath, "-"]); + if (!result) return null; + return normalizeExtractedText(result.stdout); +} + +async function renderPdfPagesToPng(pdfPath: string, outputDir: string) { + const pdftoppmResult = await runCommand("pdftoppm", ["-png", "-r", "200", pdfPath, path.join(outputDir, "page")]); + if (pdftoppmResult) { + return (await fs.readdir(outputDir)) + .filter((file) => /^page-\d+\.png$/.test(file)) + .sort((a, b) => a.localeCompare(b, undefined, { numeric: true })) + .map((file) => path.join(outputDir, file)); + } + + const qlmanageResult = await runCommand("qlmanage", ["-t", "-s", "2000", "-o", outputDir, pdfPath]); + if (!qlmanageResult) return null; + + const quickLookFile = path.join(outputDir, `${path.basename(pdfPath)}.png`); + + try { + await fs.access(quickLookFile); + return [quickLookFile]; + } catch { + return null; + } +} + +async function getAvailableTesseractLanguages() { + const result = await runCommand("tesseract", ["--list-langs"]); + if (!result) return []; + + return result.stdout + .split("\n") + .map((line) => line.trim()) + .filter((line) => line && !line.startsWith("List of available languages")); +} + +async function runOcrForPdf(pdfPath: string) { + const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "fedeo-ocr-")); + + try { + const pagePaths = await renderPdfPagesToPng(pdfPath, tmpDir); + if (!pagePaths?.length) return null; + + const texts: string[] = []; + const configuredLanguages = (process.env.TESSERACT_LANGS || "deu+eng") + .split("+") + .map((lang) => lang.trim()) + .filter(Boolean); + const availableLanguages = await getAvailableTesseractLanguages(); + const selectedLanguages = configuredLanguages.filter((lang) => availableLanguages.includes(lang)); + const languages = selectedLanguages.length ? selectedLanguages.join("+") : "eng"; + + for (const pagePath of pagePaths) { + const result = await runCommand("tesseract", [ + pagePath, + "stdout", + "-l", + languages, + ]); + + if (!result) return null; + const pageText = normalizeExtractedText(result.stdout); + if (pageText) texts.push(pageText); + } + + return normalizeExtractedText(texts.join("\n\n")); + } finally { + await fs.rm(tmpDir, { recursive: true, force: true }); + } +} + +export async function extractDocumentText( + fileBuffer: Buffer, + mimeType?: string | null, + fileName?: string | null +): Promise { + const normalizedMimeType = mimeType?.toLowerCase() || ""; + const normalizedFileName = fileName?.toLowerCase() || ""; + const isPdf = normalizedMimeType === "application/pdf" || normalizedFileName.endsWith(".pdf"); + + if (normalizedMimeType.startsWith("text/")) { + const text = normalizeExtractedText(fileBuffer.toString("utf-8")); + return { text: text || null, method: text ? "text" : "none" }; + } + + if (!isPdf) { + return { text: null, method: "none" }; + } + + const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "fedeo-pdf-")); + const pdfPath = path.join(tmpDir, fileName || "document.pdf"); + + try { + await fs.writeFile(pdfPath, fileBuffer); + + const cliText = await extractPdfTextWithPoppler(pdfPath); + if (cliText) { + return { text: cliText, method: "text" }; + } + + const ocrText = await runOcrForPdf(pdfPath); + if (ocrText) { + return { text: ocrText, method: "ocr" }; + } + + const fallbackText = extractTextFromPdfBufferFallback(fileBuffer); + if (fallbackText) { + return { text: fallbackText, method: "text" }; + } + + return { text: null, method: "none" }; + } finally { + await fs.rm(tmpDir, { recursive: true, force: true }); + } +} + +export async function storeExtractedTextForFile( + server: FastifyInstance, + fileId: string, + fileBuffer: Buffer, + mimeType?: string | null, + fileName?: string | null +) { + const result = await extractDocumentText(fileBuffer, mimeType, fileName); + + await server.db + .update(files) + .set({ extractedText: result.text }) + .where(eq(files.id, fileId)); + + return result; +} diff --git a/backend/src/utils/files.ts b/backend/src/utils/files.ts index 0abe4cd..1e57f52 100644 --- a/backend/src/utils/files.ts +++ b/backend/src/utils/files.ts @@ -6,6 +6,7 @@ import { secrets } from "./secrets" import { files } from "../../db/schema" import { eq } from "drizzle-orm" import { FastifyInstance } from "fastify" +import { storeExtractedTextForFile } from "./documentText" export const saveFile = async ( server: FastifyInstance, @@ -17,6 +18,13 @@ export const saveFile = async ( other: Record = {} ) => { try { + const { + filename: providedFilename, + filesize: _providedFilesize, + mimeType: providedMimeType, + ...dbFields + } = other + // --------------------------------------------------- // 1️⃣ FILE ENTRY ANLEGEN // --------------------------------------------------- @@ -26,7 +34,7 @@ export const saveFile = async ( tenant, folder, type, - ...other + ...dbFields }) .returning() @@ -38,13 +46,13 @@ export const saveFile = async ( // Name ermitteln (Fallback Logik) // Wenn attachment ein Buffer ist, muss der Name in 'other' stehen oder generiert werden - const filename = attachment.filename || other.filename || `${created.id}.pdf` + const filename = attachment.filename || providedFilename || `${created.id}.pdf` // --------------------------------------------------- // 2️⃣ BODY & CONTENT TYPE ERMITTELN // --------------------------------------------------- let body: Buffer | Uint8Array | string - let contentType = type || "application/octet-stream" + let contentType = providedMimeType || "application/octet-stream" if (Buffer.isBuffer(attachment)) { // FALL 1: RAW BUFFER (von finishManualGeneration) @@ -83,13 +91,26 @@ export const saveFile = async ( // --------------------------------------------------- await server.db .update(files) - .set({ path: key }) + .set({ + path: key, + mimeType: contentType, + name: filename, + size: body.length + }) .where(eq(files.id, created.id)) + await storeExtractedTextForFile( + server, + created.id, + Buffer.isBuffer(body) ? body : Buffer.from(body), + contentType, + filename + ) + console.log(`File saved: ${key}`) return { id: created.id, key } } catch (err) { console.error("saveFile error:", err) return null } -} \ No newline at end of file +} diff --git a/backend/src/utils/gpt.ts b/backend/src/utils/gpt.ts index c61f386..95b9cc7 100644 --- a/backend/src/utils/gpt.ts +++ b/backend/src/utils/gpt.ts @@ -1,14 +1,13 @@ import dayjs from "dayjs"; -import axios from "axios"; import OpenAI from "openai"; import { z } from "zod"; import { zodResponseFormat } from "openai/helpers/zod"; import { GetObjectCommand } from "@aws-sdk/client-s3"; -import { Blob } from "buffer"; import { FastifyInstance } from "fastify"; import { s3 } from "./s3"; import { secrets } from "./secrets"; +import { storeExtractedTextForFile } from "./documentText"; // Drizzle schema import { vendors, accounts, tenants } from "../../db/schema"; @@ -16,6 +15,9 @@ import {eq} from "drizzle-orm"; let openai: OpenAI | null = null; +const nullableString = z.string().trim().nullable(); +const nullableNumber = z.number().nullable(); + // --------------------------------------------------------- // INITIALIZE OPENAI // --------------------------------------------------------- @@ -41,48 +43,48 @@ async function streamToBuffer(stream: any): Promise { // GPT RESPONSE FORMAT (Zod Schema) // --------------------------------------------------------- const InstructionFormat = z.object({ - invoice_number: z.string(), - invoice_date: z.string(), - invoice_duedate: z.string(), - invoice_type: z.string(), - delivery_type: z.string(), - delivery_note_number: z.string(), - reference: z.string(), + invoice_number: nullableString, + invoice_date: nullableString, + invoice_duedate: nullableString, + invoice_type: nullableString, + delivery_type: nullableString, + delivery_note_number: nullableString, + reference: nullableString, issuer: z.object({ - id: z.number().nullable().optional(), - name: z.string(), - address: z.string(), - phone: z.string(), - email: z.string(), - bank: z.string(), - bic: z.string(), - iban: z.string(), + id: nullableNumber.optional(), + name: nullableString, + address: nullableString, + phone: nullableString, + email: nullableString, + bank: nullableString, + bic: nullableString, + iban: nullableString, }), recipient: z.object({ - name: z.string(), - address: z.string(), - phone: z.string(), - email: z.string(), + name: nullableString, + address: nullableString, + phone: nullableString, + email: nullableString, }), invoice_items: z.array( z.object({ - description: z.string(), - unit: z.string(), - quantity: z.number(), - total: z.number(), - total_without_tax: z.number(), - tax_rate: z.number(), - ean: z.number().nullable().optional(), - article_number: z.number().nullable().optional(), - account_number: z.number().nullable().optional(), - account_id: z.number().nullable().optional(), + description: nullableString, + unit: nullableString, + quantity: nullableNumber, + total: nullableNumber, + total_without_tax: nullableNumber, + tax_rate: nullableNumber, + ean: nullableNumber.optional(), + article_number: nullableNumber.optional(), + account_number: nullableNumber.optional(), + account_id: nullableNumber.optional(), }) ), - subtotal: z.number(), - tax_rate: z.number(), - tax: z.number(), - total: z.number(), - terms: z.string(), + subtotal: nullableNumber, + tax_rate: nullableNumber, + tax: nullableNumber, + total: nullableNumber, + terms: nullableString, }); // --------------------------------------------------------- @@ -91,8 +93,7 @@ const InstructionFormat = z.object({ export const getInvoiceDataFromGPT = async function ( server: FastifyInstance, file: any, - tenantId: number, - learningContext?: string + tenantId: number ) { await initOpenAi(); @@ -126,32 +127,27 @@ export const getInvoiceDataFromGPT = async function ( return null; } - const fileBlob = new Blob([fileData], { type: "application/pdf" }); + let extractedText = file.extractedText; - // --------------------------------------------------------- - // 2) SEND FILE TO PDF → TEXT API - // --------------------------------------------------------- - const form = new FormData(); - form.append("fileInput", fileBlob, file.path.split("/").pop()); - form.append("outputFormat", "txt"); + if (!extractedText?.trim()) { + try { + const result = await storeExtractedTextForFile( + server, + file.id, + fileData, + file.mimeType, + file.name || file.path?.split("/").pop() + ); + extractedText = result.text; + server.log.info(`Invoice text extraction for file ${file.id} used method: ${result.method}`) + } catch (err) { + console.log("❌ Local PDF text extraction failed", err); + return null; + } + } - let extractedText: string; - - try { - const res = await axios.post( - "http://23.88.52.85:8080/api/v1/convert/pdf/text", - form, - { - headers: { - "Content-Type": "multipart/form-data", - Authorization: `Bearer ${secrets.STIRLING_API_KEY}`, - }, - } - ); - - extractedText = res.data; - } catch (err) { - console.log("❌ PDF OCR API failed", err); + if (!extractedText?.trim()) { + server.log.warn(`No extractable PDF text found for file ${file.id}. Scanned PDFs require OCR.`); return null; } @@ -198,13 +194,16 @@ export const getInvoiceDataFromGPT = async function ( "You extract structured invoice data.\n\n" + `VENDORS: ${JSON.stringify(vendorList)}\n` + `ACCOUNTS: ${JSON.stringify(accountList)}\n\n` + - (learningContext - ? `HISTORICAL_PATTERNS: ${learningContext}\n\n` - : "") + + "Use only values that are explicitly present in the invoice text.\n" + + "If a field is missing or unclear, return null. If line items are missing or unclear, return an empty array.\n" + + "Do not guess invoice numbers, dates, totals, payment terms, bank data, or references.\n" + + "Do not derive values from vendor defaults or likely patterns.\n" + + "Only set issuer.id when the issuer name clearly matches a vendor name from VENDORS.\n" + + "Only set account_id when the invoice line clearly matches an account label or number from ACCOUNTS.\n" + + "If multiple accounts are plausible, set account_id to null.\n" + + "Do not merge summary totals into fabricated invoice_items.\n" + "Match issuer by name to vendor.id.\n" + "Match invoice items to account id based on label/number.\n" + - "Use historical patterns as soft hints for vendor/account/payment mapping.\n" + - "Do not invent values when the invoice text contradicts the hints.\n" + "Convert dates to YYYY-MM-DD.\n" + "Keep invoice items in original order.\n", }, diff --git a/backend/tmp-invoice-1453.png b/backend/tmp-invoice-1453.png new file mode 100644 index 0000000000000000000000000000000000000000..5e918f3070a6ad0f367958f12b18d1835b84dfbc GIT binary patch literal 298293 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 Ft#*}wm-4W4&-FTvyVJdd?(t>(?`^ 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 z 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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@antfu/install-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", + "license": "MIT", + "dependencies": { + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@antfu/utils": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz", + "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", + "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.0.tgz", + "integrity": "sha512-vSH118/wwM/pLR38g/Sgk05sNtro6TlTJKuiMXDaZqPUfjTFcudpCOt00IhOfj+1BFAX+UFAlzCU+6WXr3GLFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", + "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.6.tgz", + "integrity": "sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", + "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz", + "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", + "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", + "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz", + "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz", + "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", + "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", + "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", + "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz", + "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz", + "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz", + "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz", + "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz", + "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/template": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz", + "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz", + "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz", + "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz", + "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz", + "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", + "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz", + "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz", + "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz", + "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz", + "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz", + "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz", + "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz", + "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz", + "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz", + "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz", + "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz", + "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", + "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz", + "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz", + "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.0.tgz", + "integrity": "sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.28.6", + "@babel/plugin-syntax-import-attributes": "^7.28.6", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.29.0", + "@babel/plugin-transform-async-to-generator": "^7.28.6", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.6", + "@babel/plugin-transform-class-properties": "^7.28.6", + "@babel/plugin-transform-class-static-block": "^7.28.6", + "@babel/plugin-transform-classes": "^7.28.6", + "@babel/plugin-transform-computed-properties": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-dotall-regex": "^7.28.6", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.6", + "@babel/plugin-transform-exponentiation-operator": "^7.28.6", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.28.6", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.28.6", + "@babel/plugin-transform-modules-systemjs": "^7.29.0", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", + "@babel/plugin-transform-numeric-separator": "^7.28.6", + "@babel/plugin-transform-object-rest-spread": "^7.28.6", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.28.6", + "@babel/plugin-transform-optional-chaining": "^7.28.6", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.28.6", + "@babel/plugin-transform-private-property-in-object": "^7.28.6", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.29.0", + "@babel/plugin-transform-regexp-modifiers": "^7.28.6", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.28.6", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.28.6", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@capacitor-community/bluetooth-le": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@capacitor-community/bluetooth-le/-/bluetooth-le-7.3.0.tgz", + "integrity": "sha512-QsM8jIlseTWnpEHdlzB5OxweNoxS9QDKUyQEX49IyeRCmi0uVMf4A8l6VPtyfT6wKUdWf4VrEZAED8UCOWW1DQ==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.20" + }, + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/android": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-7.4.5.tgz", + "integrity": "sha512-G76C+PGIFkG+hxj6JLlY003txRaGZwsXBPo4b4xiZMZaD6DG++sDCoumYl/5xL40dL2b8P5tb3CKf/khWyL2Gw==", + "license": "MIT", + "peerDependencies": { + "@capacitor/core": "^7.4.0" + } + }, + "node_modules/@capacitor/browser": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@capacitor/browser/-/browser-7.0.3.tgz", + "integrity": "sha512-PTHG+rj6Sz/6xXOmCs5sQXYDDueD6uv7p/bXOpdNlvV6Dv6yAOlZ85cu0sEggcGzXRW4PZXx/PvCOZasznsTTg==", + "license": "MIT", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/cli": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-7.4.5.tgz", + "integrity": "sha512-ApKxpzcWTqmyTD+WxBvL7UJt+x0xr9Vqa+S4Iqbl/R2kC0tf1ay22wE9pOrdWXbTqFbNhBuUuRvTvZ6Edp7QzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ionic/cli-framework-output": "^2.2.8", + "@ionic/utils-subprocess": "^3.0.1", + "@ionic/utils-terminal": "^2.3.5", + "commander": "^12.1.0", + "debug": "^4.4.0", + "env-paths": "^2.2.0", + "fs-extra": "^11.2.0", + "kleur": "^4.1.5", + "native-run": "^2.0.3", + "open": "^8.4.0", + "plist": "^3.1.0", + "prompts": "^2.4.2", + "rimraf": "^6.0.1", + "semver": "^7.6.3", + "tar": "^6.1.11", + "tslib": "^2.8.1", + "xml2js": "^0.6.2" + }, + "bin": { + "cap": "bin/capacitor", + "capacitor": "bin/capacitor" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@capacitor/core": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-7.4.5.tgz", + "integrity": "sha512-JnUywi0WRbqm4QYoplNsMQ7KAVuyrQFha0dOH9YDVCyrVHUvPcvrnK+9j5elUMgy+pOh3ve+pk6BVoySr91c+A==", + "license": "MIT", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@capacitor/device": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@capacitor/device/-/device-7.0.3.tgz", + "integrity": "sha512-lZs2qkv54fOAsZ/i+hJ0RGNch06vfmkQ5qsAt2QjBtNRKwOkZv9B5QjDcl+M6Jydwf3+qkG4Ow3H/pk8hgiaTg==", + "license": "MIT", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/ios": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-7.4.5.tgz", + "integrity": "sha512-i9cfo15Vn0GvFJ0Pm2zPhxQrK3NW5ISrf7bdzmKWUM5TUaCnWkCO4Zxsgjm8/VMXwt/gabA/di1O1c9pC3enCA==", + "license": "MIT", + "peerDependencies": { + "@capacitor/core": "^7.4.0" + } + }, + "node_modules/@capacitor/network": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@capacitor/network/-/network-7.0.3.tgz", + "integrity": "sha512-v1dP2GN7Vwwc6W1jJnzTE9jdXNVz/vMscqT3Gvc2jJy6v4Kpw3vHnc1JUfM4g78VkbqdwO/ProR3glTamZ9MDg==", + "license": "MIT", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capacitor/preferences": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@capacitor/preferences/-/preferences-7.0.3.tgz", + "integrity": "sha512-s8u2PCnxCj6auvZZaFb//KJSyvgwwtKu6aFA7PQ1FQULhZw+3zCb78biyWcl71KF0iBuC2jYlj4PjTeaF5OIGQ==", + "license": "MIT", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/@capsizecss/metrics": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@capsizecss/metrics/-/metrics-2.2.0.tgz", + "integrity": "sha512-DkFIser1KbGxWyG2hhQQeCit72TnOQDx5pr9bkA7+XlIy7qv+4lYtslH3bidVxm2qkY2guAgypSIPYuQQuk70A==", + "license": "MIT" + }, + "node_modules/@capsizecss/unpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-2.4.0.tgz", + "integrity": "sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q==", + "license": "MIT", + "dependencies": { + "blob-to-buffer": "^1.2.8", + "cross-fetch": "^3.0.4", + "fontkit": "^2.0.2" + } + }, + "node_modules/@clack/core": { + "version": "1.0.0-alpha.7", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.0.0-alpha.7.tgz", + "integrity": "sha512-3vdh6Ar09D14rVxJZIm3VQJkU+ZOKKT5I5cC0cOVazy70CNyYYjiwRj9unwalhESndgxx6bGc/m6Hhs4EKF5XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "sisteransi": "^1.0.5" + } + }, + "node_modules/@clack/prompts": { + "version": "1.0.0-alpha.9", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.0.0-alpha.9.tgz", + "integrity": "sha512-sKs0UjiHFWvry4SiRfBi5Qnj0C/6AYx8aKkFPZQSuUZXgAram25ZDmhQmP7vj1aFyLpfHWtLQjWvOvcat0TOLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@clack/core": "1.0.0-alpha.7", + "picocolors": "^1.0.0", + "sisteransi": "^1.0.5" + } + }, + "node_modules/@cloudflare/kv-asset-handler": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.2.tgz", + "integrity": "sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==", + "dev": true, + "license": "MIT OR Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@codexteam/icons": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@codexteam/icons/-/icons-0.0.5.tgz", + "integrity": "sha512-s6H2KXhLz2rgbMZSkRm8dsMJvyUNZsEjxobBEg9ztdrb1B2H3pEzY6iTwI4XUPJWJ3c3qRKwV4TrO3J5jUdoQA==", + "license": "MIT" + }, + "node_modules/@dxup/nuxt": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@dxup/nuxt/-/nuxt-0.3.2.tgz", + "integrity": "sha512-2f2usP4oLNsIGjPprvABe3f3GWuIhIDp0169pGLFxTDRI5A4d4sBbGpR+tD9bGZCT+1Btb6Q2GKlyv3LkDCW5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@dxup/unimport": "^0.1.2", + "@nuxt/kit": "^4.2.2", + "chokidar": "^5.0.0", + "pathe": "^2.0.3", + "tinyglobby": "^0.2.15" + } + }, + "node_modules/@dxup/unimport": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@dxup/unimport/-/unimport-0.1.2.tgz", + "integrity": "sha512-/B8YJGPzaYq1NbsQmwgP8EZqg40NpTw4ZB3suuI0TplbxKHeK94jeaawLmVhCv+YwUnOpiWEz9U6SeThku/8JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@editorjs/caret": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@editorjs/caret/-/caret-1.0.3.tgz", + "integrity": "sha512-VmgwQJZgL/LQjk049JunzRV1YCa0vDi+BNEpbDmr5cp3lGZllq9QQFO1eI71ZPzvFVn3vvhb+eOif4sAEyGgbw==", + "license": "MIT", + "dependencies": { + "@editorjs/dom": "^1.0.1" + } + }, + "node_modules/@editorjs/dom": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@editorjs/dom/-/dom-1.0.1.tgz", + "integrity": "sha512-yLO+86MYOIUr1Jl7SQw23SYT84ggv6aJW0EIRsI3NTHYgnQzmK7Bt2n5ZFupQlB0GJqmKqA5tCue3NKQb+o7Pw==", + "license": "MIT", + "dependencies": { + "@editorjs/helpers": "^1.0.1" + } + }, + "node_modules/@editorjs/editorjs": { + "version": "2.31.1", + "resolved": "https://registry.npmjs.org/@editorjs/editorjs/-/editorjs-2.31.1.tgz", + "integrity": "sha512-MGhgIvVAiRIhMyVryyMgHTyfTiLzvCKN2RkfCiooihUwlcmNv0MkmnayMDXfb5S1gStGV46YAObPh/7QotdjGg==", + "license": "Apache-2.0", + "dependencies": { + "@editorjs/caret": "^1.0.1", + "codex-notifier": "^1.1.2", + "codex-tooltip": "^1.0.5" + } + }, + "node_modules/@editorjs/header": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/@editorjs/header/-/header-2.8.8.tgz", + "integrity": "sha512-bsMSs34u2hoi0UBuRoc5EGWXIFzJiwYgkFUYQGVm63y5FU+s8zPBmVx5Ip2sw1xgs0fqfDROqmteMvvmbCy62w==", + "license": "MIT", + "dependencies": { + "@codexteam/icons": "^0.0.5", + "@editorjs/editorjs": "^2.29.1" + } + }, + "node_modules/@editorjs/helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@editorjs/helpers/-/helpers-1.0.1.tgz", + "integrity": "sha512-Lmr8ImoQvoROXtzhsIJsA1ZtXzH46DmE6O8hMjn9/AvQq62UfjREjn+Ewi6KxjIZMay2PsgDEbLlsVyNJGEaxw==", + "license": "MIT" + }, + "node_modules/@editorjs/list": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@editorjs/list/-/list-1.10.0.tgz", + "integrity": "sha512-zXCHaNcIscpefnteBOS3x+98f/qBgEVsv+OvtKoTDZipMNqck2uVG+X2qMQr8xcwtJrj9ySX54lUac9FDlAHnA==", + "license": "MIT", + "dependencies": { + "@codexteam/icons": "^0.0.4" + } + }, + "node_modules/@editorjs/list/node_modules/@codexteam/icons": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@codexteam/icons/-/icons-0.0.4.tgz", + "integrity": "sha512-V8N/TY2TGyas4wLrPIFq7bcow68b3gu8DfDt1+rrHPtXxcexadKauRJL6eQgfG7Z0LCrN4boLRawR4S9gjIh/Q==", + "license": "MIT" + }, + "node_modules/@emnapi/core": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", + "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" + }, + "node_modules/@floating-ui/vue": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@floating-ui/vue/-/vue-1.1.9.tgz", + "integrity": "sha512-BfNqNW6KA83Nexspgb9DZuz578R7HT8MZw1CfK9I6Ah4QReNWEJsXWHN+SdmOVLNGmTPDi+fDT535Df5PzMLbQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.4", + "@floating-ui/utils": "^0.2.10", + "vue-demi": ">=0.13.0" + } + }, + "node_modules/@fullcalendar/core": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.20.tgz", + "integrity": "sha512-1cukXLlePFiJ8YKXn/4tMKsy0etxYLCkXk8nUCFi11nRONF2Ba2CD5b21/ovtOO2tL6afTJfwmc1ed3HG7eB1g==", + "license": "MIT", + "dependencies": { + "preact": "~10.12.1" + } + }, + "node_modules/@fullcalendar/daygrid": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.20.tgz", + "integrity": "sha512-AO9vqhkLP77EesmJzuU+IGXgxNulsA8mgQHynclJ8U70vSwAVnbcLG9qftiTAFSlZjiY/NvhE7sflve6cJelyQ==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.20" + } + }, + "node_modules/@fullcalendar/interaction": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.20.tgz", + "integrity": "sha512-p6txmc5txL0bMiPaJxe2ip6o0T384TyoD2KGdsU6UjZ5yoBlaY+dg7kxfnYKpYMzEJLG58n+URrHr2PgNL2fyA==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.20" + } + }, + "node_modules/@fullcalendar/list": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/list/-/list-6.1.20.tgz", + "integrity": "sha512-7Hzkbb7uuSqrXwTyD0Ld/7SwWNxPD6SlU548vtkIpH55rZ4qquwtwYdMPgorHos5OynHA4OUrZNcH51CjrCf2g==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.20" + } + }, + "node_modules/@fullcalendar/premium-common": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/premium-common/-/premium-common-6.1.20.tgz", + "integrity": "sha512-rT+AitNnRyZuFEtYvsB1OJ2g1Bq2jmTR6qdn/dEU6LwkIj/4L499goLtMOena/JyJ31VBztdHrccX//36QrY3w==", + "license": "SEE LICENSE IN LICENSE.md", + "peerDependencies": { + "@fullcalendar/core": "~6.1.20" + } + }, + "node_modules/@fullcalendar/resource": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/resource/-/resource-6.1.20.tgz", + "integrity": "sha512-vpQs1eYJbc1zGOzF3obVVr+XsHTMTG7STKVQBEGy3AeFgfosRkUz+3DUawmy98vSjJUYOAQHO+pWW0ek0n5g0w==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@fullcalendar/premium-common": "~6.1.20" + }, + "peerDependencies": { + "@fullcalendar/core": "~6.1.20" + } + }, + "node_modules/@fullcalendar/resource-timeline": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/resource-timeline/-/resource-timeline-6.1.20.tgz", + "integrity": "sha512-HAlM/I+9xJPzZx3Wry7l5oibc8n5Pv/iL8tp2dxUu/0zqS0UqADbHItJucuANfDDeL7PEbCbh/uFx9VvzRUIkQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@fullcalendar/premium-common": "~6.1.20", + "@fullcalendar/scrollgrid": "~6.1.20", + "@fullcalendar/timeline": "~6.1.20" + }, + "peerDependencies": { + "@fullcalendar/core": "~6.1.20", + "@fullcalendar/resource": "~6.1.20" + } + }, + "node_modules/@fullcalendar/scrollgrid": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/scrollgrid/-/scrollgrid-6.1.20.tgz", + "integrity": "sha512-M55m0hxpou4IPObto5f0nVcXvIj3rkSTba0ypclSFDwBz3JxuCPS6l8kaUznqlZCr2Ld/HFJr+jwyvY070AafQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@fullcalendar/premium-common": "~6.1.20" + }, + "peerDependencies": { + "@fullcalendar/core": "~6.1.20" + } + }, + "node_modules/@fullcalendar/timegrid": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-6.1.20.tgz", + "integrity": "sha512-4H+/MWbz3ntA50lrPif+7TsvMeX3R1GSYjiLULz0+zEJ7/Yfd9pupZmAwUs/PBpA6aAcFmeRr0laWfcz1a9V1A==", + "license": "MIT", + "dependencies": { + "@fullcalendar/daygrid": "~6.1.20" + }, + "peerDependencies": { + "@fullcalendar/core": "~6.1.20" + } + }, + "node_modules/@fullcalendar/timeline": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/timeline/-/timeline-6.1.20.tgz", + "integrity": "sha512-yhTgMNDWfB+XqEUTLWrpPjM4fcvGYLOA9DvTp1ysdeqhRGoZnRK9Iv2WW5BaKT+VXhXoAPrj2Ud/lXt6youWAQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@fullcalendar/premium-common": "~6.1.20", + "@fullcalendar/scrollgrid": "~6.1.20" + }, + "peerDependencies": { + "@fullcalendar/core": "~6.1.20" + } + }, + "node_modules/@fullcalendar/vue3": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/@fullcalendar/vue3/-/vue3-6.1.20.tgz", + "integrity": "sha512-8qg6pS27II9QBwFkkJC+7SfflMpWqOe7i3ii5ODq9KpLAjwQAd/zjfq8RvKR1Yryoh5UmMCmvRbMB7i4RGtqog==", + "license": "MIT", + "peerDependencies": { + "@fullcalendar/core": "~6.1.20", + "vue": "^3.0.11" + } + }, + "node_modules/@headlessui/tailwindcss": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@headlessui/tailwindcss/-/tailwindcss-0.2.2.tgz", + "integrity": "sha512-xNe42KjdyA4kfUKLLPGzME9zkH7Q3rOZ5huFihWNWOQFxnItxPB3/67yBI8/qBfY8nwBRx5GHn4VprsoluVMGw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "tailwindcss": "^3.0 || ^4.0" + } + }, + "node_modules/@headlessui/vue": { + "version": "1.7.23", + "resolved": "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.23.tgz", + "integrity": "sha512-JzdCNqurrtuu0YW6QaDtR2PIYCKPUWq28csDyMvN4zmGccmE7lz40Is6hc3LA4HFeCI7sekZ/PQMTNmn9I/4Wg==", + "license": "MIT", + "dependencies": { + "@tanstack/vue-virtual": "^3.0.0-beta.60" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@iconify-json/heroicons": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@iconify-json/heroicons/-/heroicons-1.2.3.tgz", + "integrity": "sha512-n+vmCEgTesRsOpp5AB5ILB6srsgsYK+bieoQBNlafvoEhjVXLq8nIGN4B0v/s4DUfa0dOrjwE/cKJgIKdJXOEg==", + "license": "MIT", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify-json/vscode-icons": { + "version": "1.2.40", + "resolved": "https://registry.npmjs.org/@iconify-json/vscode-icons/-/vscode-icons-1.2.40.tgz", + "integrity": "sha512-Q7JIWAxENwmcRg4EGRY+u16gBwrAj6mWeuSmuyuPvNvoTJHh8Ss8qoeDhrFYNgtWqNkzH5hSf4b2T9XLK5MsrA==", + "license": "MIT", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify/collections": { + "version": "1.0.643", + "resolved": "https://registry.npmjs.org/@iconify/collections/-/collections-1.0.643.tgz", + "integrity": "sha512-mtXKNYlunC/HaEB+IwnJOw+dZ6Z7QwrUr4484qm/MiIk+7f8TyqDM9qYeJENEEDCWznyqR7ML/FNJ3F02nXF0g==", + "license": "MIT", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify/json": { + "version": "2.2.432", + "resolved": "https://registry.npmjs.org/@iconify/json/-/json-2.2.432.tgz", + "integrity": "sha512-W0Qa5ByXfJUEtami6b4Mm4DRfcAWWsKsUhJ2uiaEOE2QabREEcDSa1op9qP12yrhuArEPiCyuO04rHNxArZ4Xw==", + "license": "MIT", + "dependencies": { + "@iconify/types": "*", + "pathe": "^2.0.3" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz", + "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==", + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.0.0", + "@antfu/utils": "^8.1.0", + "@iconify/types": "^2.0.0", + "debug": "^4.4.0", + "globals": "^15.14.0", + "kolorist": "^1.8.0", + "local-pkg": "^1.0.0", + "mlly": "^1.7.4" + } + }, + "node_modules/@iconify/vue": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@iconify/vue/-/vue-5.0.0.tgz", + "integrity": "sha512-C+KuEWIF5nSBrobFJhT//JS87OZ++QDORB6f2q2Wm6fl2mueSTpFBeBsveK0KW9hWiZ4mNiPjsh6Zs4jjdROSg==", + "license": "MIT", + "dependencies": { + "@iconify/types": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/cyberalien" + }, + "peerDependencies": { + "vue": ">=3" + } + }, + "node_modules/@internationalized/date": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.10.1.tgz", + "integrity": "sha512-oJrXtQiAXLvT9clCf1K4kxp3eKsQhIaZqxEyowkBcsvZDdZkbWrVmnGknxs5flTD0VGsxrxKgBCZty1EzoiMzA==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.5.tgz", + "integrity": "sha512-6hY4Kl4HPBvtfS62asS/R22JzNNy8vi/Ssev7x6EobfCp+9QIB2hKvI2EtbdJ0VSQacxVNtqhE/NmF/NZ0gm6g==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@ionic/cli-framework-output": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.8.tgz", + "integrity": "sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ionic/utils-terminal": "2.3.5", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-array": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.6.tgz", + "integrity": "sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-fs": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.7.tgz", + "integrity": "sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/fs-extra": "^8.0.0", + "debug": "^4.0.0", + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-fs/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ionic/utils-object": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.6.tgz", + "integrity": "sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-process": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.12.tgz", + "integrity": "sha512-Jqkgyq7zBs/v/J3YvKtQQiIcxfJyplPgECMWgdO0E1fKrrH8EF0QGHNJ9mJCn6PYe2UtHNS8JJf5G21e09DfYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ionic/utils-object": "2.1.6", + "@ionic/utils-terminal": "2.3.5", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "tree-kill": "^1.2.2", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.7.tgz", + "integrity": "sha512-eSELBE7NWNFIHTbTC2jiMvh1ABKGIpGdUIvARsNPMNQhxJB3wpwdiVnoBoTYp+5a6UUIww4Kpg7v6S7iTctH1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-subprocess": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-3.0.1.tgz", + "integrity": "sha512-cT4te3AQQPeIM9WCwIg8ohroJ8TjsYaMb2G4ZEgv9YzeDqHZ4JpeIKqG2SoaA3GmVQ3sOfhPM6Ox9sxphV/d1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ionic/utils-array": "2.1.6", + "@ionic/utils-fs": "3.1.7", + "@ionic/utils-process": "2.1.12", + "@ionic/utils-stream": "3.1.7", + "@ionic/utils-terminal": "2.3.5", + "cross-spawn": "^7.0.3", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ionic/utils-terminal": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.5.tgz", + "integrity": "sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/slice-ansi": "^4.0.0", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "slice-ansi": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "tslib": "^2.0.1", + "untildify": "^4.0.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@ioredis/commands": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.5.0.tgz", + "integrity": "sha512-eUgLqrMf8nJkZxT24JvVRrQya1vZkQh8BBeYNwGDqa5I0VUi8ACx7uFvAaLxintokpTenkK6DASvo/bvNbBGow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@koa/router": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.2.tgz", + "integrity": "sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==", + "deprecated": "Please upgrade to v15 or higher. All reported bugs in this version are fixed in newer releases, dependencies have been updated, and security has been improved.", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "http-errors": "^2.0.0", + "koa-compose": "^4.1.0", + "methods": "^1.1.2", + "path-to-regexp": "^6.3.0" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@kurkle/color": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", + "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", + "license": "MIT" + }, + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "license": "ISC", + "dependencies": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" + } + }, + "node_modules/@mapbox/geojson-rewind/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-2.0.3.tgz", + "integrity": "sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "consola": "^3.2.3", + "detect-libc": "^2.0.0", + "https-proxy-agent": "^7.0.5", + "node-fetch": "^2.6.7", + "nopt": "^8.0.0", + "semver": "^7.5.3", + "tar": "^7.4.0" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/abbrev": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", + "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/nopt": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", + "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^3.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/tar": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.6.tgz", + "integrity": "sha512-xqUeu2JAIJpXyvskvU3uvQW8PAmHrtXp2KDuMJwQqW8Sqq0CaZBAQ+dKS3RBXVhU4wC5NjAdKrmh84241gO9cA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", + "license": "ISC" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.7.tgz", + "integrity": "sha512-25gQLQMcpivjOSA40g3gO6qgiFPDpWRoMfd+G/GoppPIeP6JDaMMkMrEJnMZhKyyS6iKwVt5YKu02vCUyJM3Ug==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "license": "ISC", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "20.4.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-20.4.0.tgz", + "integrity": "sha512-AzBy3095fTFPjDjmWpR2w6HVRAZJ6hQZUCwk5Plz6EyfnfuQW1odeW5i2Ai47Y6TBA2hQnC+azscjBSALpaWgw==", + "license": "ISC", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "tinyqueue": "^3.0.0" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "node_modules/@maplibre/maplibre-gl-style-spec/node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "license": "ISC" + }, + "node_modules/@mmote/niimbluelib": { + "version": "0.0.1-alpha.32", + "resolved": "https://registry.npmjs.org/@mmote/niimbluelib/-/niimbluelib-0.0.1-alpha.32.tgz", + "integrity": "sha512-coK/y6ehok3aJMIEKP8tnbDyu4iiz9N/ew7GVJ6EuGxwLXnuXWTDlGQjKcCqZFCzuk7k3q8anifDxQePEQNcAA==", + "license": "MIT", + "dependencies": { + "@capacitor-community/bluetooth-le": "^7.1.0", + "@capacitor/core": "^7.2.0", + "async-mutex": "^0.5.0", + "crc-32": "^1.2.2", + "eventemitter3": "^5.0.1" + } + }, + "node_modules/@napi-rs/canvas": { + "version": "0.1.88", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.88.tgz", + "integrity": "sha512-/p08f93LEbsL5mDZFQ3DBxcPv/I4QG9EDYRRq1WNlCOXVfAHBTHMSVMwxlqG/AtnSfUr9+vgfN7MKiyDo0+Weg==", + "license": "MIT", + "optional": true, + "workspaces": [ + "e2e/*" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@napi-rs/canvas-android-arm64": "0.1.88", + "@napi-rs/canvas-darwin-arm64": "0.1.88", + "@napi-rs/canvas-darwin-x64": "0.1.88", + "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.88", + "@napi-rs/canvas-linux-arm64-gnu": "0.1.88", + "@napi-rs/canvas-linux-arm64-musl": "0.1.88", + "@napi-rs/canvas-linux-riscv64-gnu": "0.1.88", + "@napi-rs/canvas-linux-x64-gnu": "0.1.88", + "@napi-rs/canvas-linux-x64-musl": "0.1.88", + "@napi-rs/canvas-win32-arm64-msvc": "0.1.88", + "@napi-rs/canvas-win32-x64-msvc": "0.1.88" + } + }, + "node_modules/@napi-rs/canvas-android-arm64": { + "version": "0.1.88", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.88.tgz", + "integrity": "sha512-KEaClPnZuVxJ8smUWjV1wWFkByBO/D+vy4lN+Dm5DFH514oqwukxKGeck9xcKJhaWJGjfruGmYGiwRe//+/zQQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@napi-rs/canvas-darwin-arm64": { + "version": "0.1.88", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.88.tgz", + "integrity": "sha512-Xgywz0dDxOKSgx3eZnK85WgGMmGrQEW7ZLA/E7raZdlEE+xXCozobgqz2ZvYigpB6DJFYkqnwHjqCOTSDGlFdg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@napi-rs/canvas-darwin-x64": { + "version": "0.1.88", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.88.tgz", + "integrity": "sha512-Yz4wSCIQOUgNucgk+8NFtQxQxZV5NO8VKRl9ePKE6XoNyNVC8JDqtvhh3b3TPqKK8W5p2EQpAr1rjjm0mfBxdg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": { + "version": "0.1.88", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.88.tgz", + "integrity": "sha512-9gQM2SlTo76hYhxHi2XxWTAqpTOb+JtxMPEIr+H5nAhHhyEtNmTSDRtz93SP7mGd2G3Ojf2oF5tP9OdgtgXyKg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-gnu": { + "version": "0.1.88", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.88.tgz", + "integrity": "sha512-7qgaOBMXuVRk9Fzztzr3BchQKXDxGbY+nwsovD3I/Sx81e+sX0ReEDYHTItNb0Je4NHbAl7D0MKyd4SvUc04sg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@napi-rs/canvas-linux-arm64-musl": { + "version": "0.1.88", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.88.tgz", + "integrity": "sha512-kYyNrUsHLkoGHBc77u4Unh067GrfiCUMbGHC2+OTxbeWfZkPt2o32UOQkhnSswKd9Fko/wSqqGkY956bIUzruA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@napi-rs/canvas-linux-riscv64-gnu": { + "version": "0.1.88", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.88.tgz", + "integrity": "sha512-HVuH7QgzB0yavYdNZDRyAsn/ejoXB0hn8twwFnOqUbCCdkV+REna7RXjSR7+PdfW0qMQ2YYWsLvVBT5iL/mGpw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-gnu": { + "version": "0.1.88", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.88.tgz", + "integrity": "sha512-hvcvKIcPEQrvvJtJnwD35B3qk6umFJ8dFIr8bSymfrSMem0EQsfn1ztys8ETIFndTwdNWJKWluvxztA41ivsEw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@napi-rs/canvas-linux-x64-musl": { + "version": "0.1.88", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.88.tgz", + "integrity": "sha512-eSMpGYY2xnZSQ6UxYJ6plDboxq4KeJ4zT5HaVkUnbObNN6DlbJe0Mclh3wifAmquXfrlgTZt6zhHsUgz++AK6g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@napi-rs/canvas-win32-arm64-msvc": { + "version": "0.1.88", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-arm64-msvc/-/canvas-win32-arm64-msvc-0.1.88.tgz", + "integrity": "sha512-qcIFfEgHrchyYqRrxsCeTQgpJZ/GqHiqPcU/Fvw/ARVlQeDX1VyFH+X+0gCR2tca6UJrq96vnW+5o7buCq+erA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@napi-rs/canvas-win32-x64-msvc": { + "version": "0.1.88", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.88.tgz", + "integrity": "sha512-ROVqbfS4QyZxYkqmaIBBpbz/BQvAR+05FXM5PAtTYVc0uyY8Y4BHJSMdGAaMf6TdIVRsQsiq+FG/dH9XhvWCFQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", + "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1", + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nuxt/cli": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/@nuxt/cli/-/cli-3.32.0.tgz", + "integrity": "sha512-n2f3SRjPlhthPvo2qWjLRRiTrUtB6WFwg0BGsvtqcqZVeQpNEU371zuKWBaFrWgqDZHV1r/aD9jrVCo+C8Pmrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bomb.sh/tab": "^0.0.11", + "@clack/prompts": "1.0.0-alpha.9", + "c12": "^3.3.3", + "citty": "^0.1.6", + "confbox": "^0.2.2", + "consola": "^3.4.2", + "copy-paste": "^2.2.0", + "debug": "^4.4.3", + "defu": "^6.1.4", + "exsolve": "^1.0.8", + "fuse.js": "^7.1.0", + "giget": "^2.0.0", + "jiti": "^2.6.1", + "listhen": "^1.9.0", + "nypm": "^0.6.2", + "ofetch": "^1.5.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.0.0", + "pkg-types": "^2.3.0", + "scule": "^1.3.0", + "semver": "^7.7.3", + "srvx": "^0.10.0", + "std-env": "^3.10.0", + "tinyexec": "^1.0.2", + "ufo": "^1.6.1", + "youch": "^4.1.0-beta.13" + }, + "bin": { + "nuxi": "bin/nuxi.mjs", + "nuxi-ng": "bin/nuxi.mjs", + "nuxt": "bin/nuxi.mjs", + "nuxt-cli": "bin/nuxi.mjs" + }, + "engines": { + "node": "^16.10.0 || >=18.0.0" + } + }, + "node_modules/@nuxt/cli/node_modules/@bomb.sh/tab": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/@bomb.sh/tab/-/tab-0.0.11.tgz", + "integrity": "sha512-RSqyreeicYBALcMaNxIUJTBknftXsyW45VRq5gKDNwKroh0Re5SDoWwXZaphb+OTEzVdpm/BA8Uq6y0P+AtVYw==", + "dev": true, + "license": "MIT", + "bin": { + "tab": "dist/bin/cli.js" + }, + "peerDependencies": { + "cac": "^6.7.14", + "citty": "^0.1.6", + "commander": "^13.1.0" + }, + "peerDependenciesMeta": { + "cac": { + "optional": true + }, + "citty": { + "optional": true + }, + "commander": { + "optional": true + } + } + }, + "node_modules/@nuxt/cli/node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@nuxt/devalue": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@nuxt/devalue/-/devalue-2.0.2.tgz", + "integrity": "sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nuxt/devtools": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@nuxt/devtools/-/devtools-3.1.1.tgz", + "integrity": "sha512-UG8oKQqcSyzwBe1l0z24zypmwn6FLW/HQMHK/F/gscUU5LeMHzgBhLPD+cuLlDvwlGAbifexWNMsS/I7n95KlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/devtools-kit": "3.1.1", + "@nuxt/devtools-wizard": "3.1.1", + "@nuxt/kit": "^4.2.1", + "@vue/devtools-core": "^8.0.5", + "@vue/devtools-kit": "^8.0.5", + "birpc": "^2.8.0", + "consola": "^3.4.2", + "destr": "^2.0.5", + "error-stack-parser-es": "^1.0.5", + "execa": "^8.0.1", + "fast-npm-meta": "^0.4.7", + "get-port-please": "^3.2.0", + "hookable": "^5.5.3", + "image-meta": "^0.2.2", + "is-installed-globally": "^1.0.0", + "launch-editor": "^2.12.0", + "local-pkg": "^1.1.2", + "magicast": "^0.5.1", + "nypm": "^0.6.2", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.0.0", + "pkg-types": "^2.3.0", + "semver": "^7.7.3", + "simple-git": "^3.30.0", + "sirv": "^3.0.2", + "structured-clone-es": "^1.0.0", + "tinyglobby": "^0.2.15", + "vite-plugin-inspect": "^11.3.3", + "vite-plugin-vue-tracer": "^1.1.3", + "which": "^5.0.0", + "ws": "^8.18.3" + }, + "bin": { + "devtools": "cli.mjs" + }, + "peerDependencies": { + "@vitejs/devtools": "*", + "vite": ">=6.0" + }, + "peerDependenciesMeta": { + "@vitejs/devtools": { + "optional": true + } + } + }, + "node_modules/@nuxt/devtools-kit": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@nuxt/devtools-kit/-/devtools-kit-2.7.0.tgz", + "integrity": "sha512-MIJdah6CF6YOW2GhfKnb8Sivu6HpcQheqdjOlZqShBr+1DyjtKQbAKSCAyKPaoIzZP4QOo2SmTFV6aN8jBeEIQ==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.19.3", + "execa": "^8.0.1" + }, + "peerDependencies": { + "vite": ">=6.0" + } + }, + "node_modules/@nuxt/devtools-kit/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/devtools-wizard": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@nuxt/devtools-wizard/-/devtools-wizard-3.1.1.tgz", + "integrity": "sha512-6UORjapNKko2buv+3o57DQp69n5Z91TeJ75qdtNKcTvOfCTJrO78Ew0nZSgMMGrjbIJ4pFsHQEqXfgYLw3pNxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "consola": "^3.4.2", + "diff": "^8.0.2", + "execa": "^8.0.1", + "magicast": "^0.5.1", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "prompts": "^2.4.2", + "semver": "^7.7.3" + }, + "bin": { + "devtools-wizard": "cli.mjs" + } + }, + "node_modules/@nuxt/devtools/node_modules/@nuxt/devtools-kit": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@nuxt/devtools-kit/-/devtools-kit-3.1.1.tgz", + "integrity": "sha512-sjiKFeDCOy1SyqezSgyV4rYNfQewC64k/GhOsuJgRF+wR2qr6KTVhO6u2B+csKs74KrMrnJprQBgud7ejvOXAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^4.2.1", + "execa": "^8.0.1" + }, + "peerDependencies": { + "vite": ">=6.0" + } + }, + "node_modules/@nuxt/devtools/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@nuxt/devtools/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@nuxt/icon": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@nuxt/icon/-/icon-1.15.0.tgz", + "integrity": "sha512-kA0rxqr1B601zNJNcOXera8CyYcxUCEcT7dXEC7rwAz71PRCN5emf7G656eKEQgtqrD4JSj6NQqWDgrmFcf/GQ==", + "license": "MIT", + "dependencies": { + "@iconify/collections": "^1.0.563", + "@iconify/types": "^2.0.0", + "@iconify/utils": "^2.3.0", + "@iconify/vue": "^5.0.0", + "@nuxt/devtools-kit": "^2.5.0", + "@nuxt/kit": "^3.17.5", + "consola": "^3.4.2", + "local-pkg": "^1.1.1", + "mlly": "^1.7.4", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinyglobby": "^0.2.14" + } + }, + "node_modules/@nuxt/icon/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/kit": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-4.3.0.tgz", + "integrity": "sha512-cD/0UU9RQmlnTbmyJTDyzN8f6CzpziDLv3tFQCnwl0Aoxt3KmFu4k/XA4Sogxqj7jJ/3cdX1kL+Lnsh34sxcQQ==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/nitro-server": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/nitro-server/-/nitro-server-3.21.0.tgz", + "integrity": "sha512-lM+PPyJf6NpWC7EqcttnNgkh1aGFlb2q1YnyHX/C9OSvF2XUXbSkNKhVclZtYSyZ6aUQSek9P1MRKcaEh7bgpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/devalue": "^2.0.2", + "@nuxt/kit": "3.21.0", + "@unhead/vue": "^2.1.2", + "@vue/shared": "^3.5.27", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "devalue": "^5.6.2", + "errx": "^0.1.0", + "escape-string-regexp": "^5.0.0", + "exsolve": "^1.0.8", + "h3": "^1.15.5", + "impound": "^1.0.0", + "klona": "^2.0.6", + "mocked-exports": "^0.1.1", + "nitropack": "^2.13.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rou3": "^0.7.12", + "std-env": "^3.10.0", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "unstorage": "^1.17.4", + "vue": "^3.5.27", + "vue-bundle-renderer": "^2.2.0", + "vue-devtools-stub": "^0.1.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "nuxt": "^3.21.0" + } + }, + "node_modules/@nuxt/nitro-server/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/nitro-server/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@nuxt/schema": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-3.21.0.tgz", + "integrity": "sha512-s4cDCQrlG3RbUXowTDlQVR/tsWW2Wd2PQ0Pw/QV5x2Mzp26VH0XyGZ3zYkaDPt23BsjrbF/XA4Bhut5YREfxbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/shared": "^3.5.27", + "defu": "^6.1.4", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "std-env": "^3.10.0" + }, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/@nuxt/telemetry": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@nuxt/telemetry/-/telemetry-2.6.6.tgz", + "integrity": "sha512-Zh4HJLjzvm3Cq9w6sfzIFyH9ozK5ePYVfCUzzUQNiZojFsI2k1QkSBrVI9BGc6ArKXj/O6rkI6w7qQ+ouL8Cag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.15.4", + "citty": "^0.1.6", + "consola": "^3.4.2", + "destr": "^2.0.3", + "dotenv": "^16.4.7", + "git-url-parse": "^16.0.1", + "is-docker": "^3.0.0", + "ofetch": "^1.4.1", + "package-manager-detector": "^1.1.0", + "pathe": "^2.0.3", + "rc9": "^2.1.2", + "std-env": "^3.8.1" + }, + "bin": { + "nuxt-telemetry": "bin/nuxt-telemetry.mjs" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/telemetry/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/telemetry/node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/@nuxt/ui": { + "version": "2.22.3", + "resolved": "https://registry.npmjs.org/@nuxt/ui/-/ui-2.22.3.tgz", + "integrity": "sha512-895SAzqCCT5JAc1JQ8nAmmpwdKCJqArY8ifL/PNtD681FKSdXiSPxODGnpqpovM/ws6bvoRwglA7BtwAJ5ySBg==", + "license": "MIT", + "dependencies": { + "@headlessui/tailwindcss": "^0.2.2", + "@headlessui/vue": "^1.7.23", + "@iconify-json/heroicons": "^1.2.2", + "@nuxt/icon": "^1.15.0", + "@nuxt/kit": "^4.0.3", + "@nuxtjs/color-mode": "^3.5.2", + "@nuxtjs/tailwindcss": "^6.14.0", + "@popperjs/core": "^2.11.8", + "@standard-schema/spec": "^1.0.0", + "@tailwindcss/aspect-ratio": "^0.4.2", + "@tailwindcss/container-queries": "^0.1.1", + "@tailwindcss/forms": "^0.5.10", + "@tailwindcss/typography": "^0.5.16", + "@vueuse/core": "^13.8.0", + "@vueuse/integrations": "^13.8.0", + "@vueuse/math": "^13.8.0", + "defu": "^6.1.4", + "fuse.js": "^7.1.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "scule": "^1.3.0", + "tailwind-merge": "^2.6.0", + "tailwindcss": "^3.4.17" + }, + "peerDependencies": { + "joi": "^17.13.0", + "superstruct": "^2.0.0", + "valibot": "^1.0.0", + "yup": "^1.6.0", + "zod": "^3.24.0" + }, + "peerDependenciesMeta": { + "joi": { + "optional": true + }, + "superstruct": { + "optional": true + }, + "valibot": { + "optional": true + }, + "yup": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/@nuxt/ui-pro": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@nuxt/ui-pro/-/ui-pro-1.8.2.tgz", + "integrity": "sha512-QF3c6EypUFXM+VvBMi8JM5UHoW5i7BlvZIgvw/SHOc27NXr56l4KN691CpPCVzBSEJTFH0nnLn1mmjky2+pHGA==", + "dependencies": { + "@iconify-json/vscode-icons": "^1.2.30", + "@nuxt/ui": "^2.22.3", + "@vueuse/core": "^13.8.0", + "defu": "^6.1.4", + "git-url-parse": "^16.1.0", + "ofetch": "^1.4.1", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "tailwind-merge": "^2.6.0", + "vue3-smooth-dnd": "^0.0.6" + } + }, + "node_modules/@nuxt/ui-pro/node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, + "node_modules/@nuxt/ui-pro/node_modules/@vueuse/core": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-13.9.0.tgz", + "integrity": "sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "13.9.0", + "@vueuse/shared": "13.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@nuxt/ui-pro/node_modules/@vueuse/metadata": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-13.9.0.tgz", + "integrity": "sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@nuxt/ui-pro/node_modules/@vueuse/shared": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-13.9.0.tgz", + "integrity": "sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@nuxt/ui/node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, + "node_modules/@nuxt/ui/node_modules/@vueuse/core": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-13.9.0.tgz", + "integrity": "sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "13.9.0", + "@vueuse/shared": "13.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@nuxt/ui/node_modules/@vueuse/metadata": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-13.9.0.tgz", + "integrity": "sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@nuxt/ui/node_modules/@vueuse/shared": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-13.9.0.tgz", + "integrity": "sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@nuxt/vite-builder": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/vite-builder/-/vite-builder-3.21.0.tgz", + "integrity": "sha512-XxwadSMlpvtjDstTtUHdXhLAGldZlWNmPhfAGo5PhsrXhidrjHcODXTGnh9iC1mbVu8xML78/m2rhB9MFHSCyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/kit": "3.21.0", + "@rollup/plugin-replace": "^6.0.3", + "@vitejs/plugin-vue": "^6.0.3", + "@vitejs/plugin-vue-jsx": "^5.1.3", + "autoprefixer": "^10.4.23", + "consola": "^3.4.2", + "cssnano": "^7.1.2", + "defu": "^6.1.4", + "esbuild": "^0.27.2", + "escape-string-regexp": "^5.0.0", + "exsolve": "^1.0.8", + "externality": "^1.0.2", + "get-port-please": "^3.2.0", + "jiti": "^2.6.1", + "knitwork": "^1.3.0", + "magic-string": "^0.30.21", + "mlly": "^1.8.0", + "mocked-exports": "^0.1.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.0.0", + "pkg-types": "^2.3.0", + "postcss": "^8.5.6", + "rollup-plugin-visualizer": "^6.0.5", + "seroval": "^1.4.2", + "std-env": "^3.10.0", + "ufo": "^1.6.3", + "unenv": "^2.0.0-rc.24", + "vite": "^7.3.1", + "vite-node": "^5.3.0", + "vite-plugin-checker": "^0.12.0", + "vue-bundle-renderer": "^2.2.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "nuxt": "3.21.0", + "rolldown": "^1.0.0-beta.38", + "vue": "^3.3.4" + }, + "peerDependenciesMeta": { + "rolldown": { + "optional": true + } + } + }, + "node_modules/@nuxt/vite-builder/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/vite-builder/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@nuxtjs/color-mode": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/color-mode/-/color-mode-3.5.2.tgz", + "integrity": "sha512-cC6RfgZh3guHBMLLjrBB2Uti5eUoGM9KyauOaYS9ETmxNWBMTvpgjvSiSJp1OFljIXPIqVTJ3xtJpSNZiO3ZaA==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.13.2", + "pathe": "^1.1.2", + "pkg-types": "^1.2.1", + "semver": "^7.6.3" + } + }, + "node_modules/@nuxtjs/color-mode/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxtjs/color-mode/node_modules/@nuxt/kit/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/@nuxtjs/color-mode/node_modules/@nuxt/kit/node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/@nuxtjs/color-mode/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/@nuxtjs/color-mode/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/@nuxtjs/color-mode/node_modules/pkg-types/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/@nuxtjs/color-mode/node_modules/pkg-types/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/@nuxtjs/fontaine": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@nuxtjs/fontaine/-/fontaine-0.4.4.tgz", + "integrity": "sha512-sC2xsqtFzXDN72fGJc9NxoC+WymJgiVGVL7V/yksUruOqeKhnsmnqx1nXlu88cnt/K9IQADGpOzgvhIjg+G+mg==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.12.1", + "fontaine": "^0.5.0", + "magic-string": "^0.30.10", + "pathe": "^1.1.2", + "ufo": "^1.5.3" + } + }, + "node_modules/@nuxtjs/fontaine/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxtjs/fontaine/node_modules/@nuxt/kit/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/@nuxtjs/fontaine/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/@nuxtjs/google-fonts": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@nuxtjs/google-fonts/-/google-fonts-3.2.0.tgz", + "integrity": "sha512-cGAjDJoeQ2jm6VJCo4AtSmKO6KjsbO9RSLj8q261fD0lMVNMZCxkCxBkg8L0/2Vfgp+5QBHWVXL71p1tiybJFw==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.10.3", + "google-fonts-helper": "^3.5.0", + "pathe": "^1.1.2" + } + }, + "node_modules/@nuxtjs/google-fonts/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxtjs/google-fonts/node_modules/@nuxt/kit/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/@nuxtjs/google-fonts/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/@nuxtjs/leaflet": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/leaflet/-/leaflet-1.3.2.tgz", + "integrity": "sha512-DaR/s7yS7HPIaiCTvs/ZSXzwtX3ZJciYQVxVrqvh5usLzZFqr/dWXPhsdkExpJIVhZ96VWkQb9aeZ+J1W90iqw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/leaflet": "^1.9.20", + "@vue-leaflet/vue-leaflet": "^0.10.1", + "leaflet": "^1.9.4" + } + }, + "node_modules/@nuxtjs/strapi": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@nuxtjs/strapi/-/strapi-1.12.0.tgz", + "integrity": "sha512-pysxYW5SPQaB6H7G72wO2qz4Rl7DakuPUthNweEvL3ERK5O3qMZ97mIm+Pdwvb3/H0ntFDJSjx08YRWjjuV7hg==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.11.1", + "defu": "^6.1.4", + "graphql": "^16.8.1", + "qs": "^6.12.0", + "ufo": "^1.5.3" + } + }, + "node_modules/@nuxtjs/strapi/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxtjs/tailwindcss": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@nuxtjs/tailwindcss/-/tailwindcss-6.14.0.tgz", + "integrity": "sha512-30RyDK++LrUVRgc2A85MktGWIZoRQgeQKjE4CjjD64OXNozyl+4ScHnnYgqVToMM6Ch2ZG2W4wV2J0EN6F0zkQ==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.16.0", + "autoprefixer": "^10.4.20", + "c12": "^3.0.2", + "consola": "^3.4.0", + "defu": "^6.1.4", + "h3": "^1.15.1", + "klona": "^2.0.6", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.1.0", + "postcss": "^8.5.3", + "postcss-nesting": "^13.0.1", + "tailwind-config-viewer": "^2.0.4", + "tailwindcss": "~3.4.17", + "ufo": "^1.5.4", + "unctx": "^2.4.1" + } + }, + "node_modules/@nuxtjs/tailwindcss/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@oxc-minify/binding-android-arm-eabi": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-android-arm-eabi/-/binding-android-arm-eabi-0.110.0.tgz", + "integrity": "sha512-43fMTO8/5bMlqfOiNSZNKUzIqeLIYuB9Hr1Ohyf58B1wU11S2dPGibTXOGNaWsfgHy99eeZ1bSgeIHy/fEYqbw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-android-arm64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-android-arm64/-/binding-android-arm64-0.110.0.tgz", + "integrity": "sha512-5oQrnn9eK/ccOp80PTrNj0Vq893NPNNRryjGpOIVsYNgWFuoGCfpnKg68oEFcN8bArizYAqw4nvgHljEnar69w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-darwin-arm64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-darwin-arm64/-/binding-darwin-arm64-0.110.0.tgz", + "integrity": "sha512-dqBDgTG9tF2z2lrZp9E8wU+Godz1i8gCGSei2eFKS2hRploBOD5dmOLp1j4IMornkPvSQmbwB3uSjPq7fjx4EA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-darwin-x64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-darwin-x64/-/binding-darwin-x64-0.110.0.tgz", + "integrity": "sha512-U0AqabqaooDOpYmeeOye8wClv8PSScELXgOfYqyqgrwH9J9KrpCE1jL8Rlqgz68QbL4mPw3V6sKiiHssI4CLeQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-freebsd-x64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-freebsd-x64/-/binding-freebsd-x64-0.110.0.tgz", + "integrity": "sha512-H0w8o/Wo1072WSdLfhwwrpFpwZnPpjQODlHuRYkTfsSSSJbTxQtjJd4uxk7YJsRv5RQp69y0I7zvdH6f8Xueyw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-arm-gnueabihf": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.110.0.tgz", + "integrity": "sha512-qd6sW0AvEVYZhbVVMGtmKZw3b1zDYGIW+54Uh42moWRAj6i4Jhk/LGr6r9YNZpOINeuvZfkFuEeDD/jbu7xPUA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-arm-musleabihf": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.110.0.tgz", + "integrity": "sha512-7WXP0aXMrWSn0ScppUBi3jf68ebfBG0eri8kxLmBOVSBj6jw1repzkHMITJMBeLr5d0tT/51qFEptiAk2EP2iA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-arm64-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.110.0.tgz", + "integrity": "sha512-LYfADrq5x1W5gs+u9OIbMbDQNYkAECTXX0ufnAuf3oGmO51rF98kGFR5qJqC/6/csokDyT3wwTpxhE0TkcF/Og==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-arm64-musl": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.110.0.tgz", + "integrity": "sha512-53GjCVY8kvymk9P6qNDh6zyblcehF5QHstq9QgCjv13ONGRnSHjeds0PxIwiihD7h295bxsWs84DN39syLPH4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-ppc64-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.110.0.tgz", + "integrity": "sha512-li8XcN81dxbJDMBESnTgGhoiAQ+CNIdM0QGscZ4duVPjCry1RpX+5FJySFbGqG3pk4s9ZzlL/vtQtbRzZIZOzg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-riscv64-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.110.0.tgz", + "integrity": "sha512-SweKfsnLKShu6UFV8mwuj1d1wmlNoL/FlAxPUzwjEBgwiT2HQkY24KnjBH+TIA+//1O83kzmWKvvs4OuEhdIEQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-riscv64-musl": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.110.0.tgz", + "integrity": "sha512-oH8G4aFMP8XyTsEpdANC5PQyHgSeGlopHZuW1rpyYcaErg5YaK0vXjQ4EM5HVvPm+feBV24JjxgakTnZoF3aOQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-s390x-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.110.0.tgz", + "integrity": "sha512-W9na+Vza7XVUlpf8wMt4QBfH35KeTENEmnpPUq3NSlbQHz8lSlSvhAafvo43NcKvHAXV3ckD/mUf2VkqSdbklg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-x64-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.110.0.tgz", + "integrity": "sha512-XJdA4mmmXOjJxSRgNJXsDP7Xe8h3gQhmb56hUcCrvq5d+h5UcEi2pR8rxsdIrS8QmkLuBA3eHkGK8E27D7DTgQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-x64-musl": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-x64-musl/-/binding-linux-x64-musl-0.110.0.tgz", + "integrity": "sha512-QqzvALuOTtSckI8x467R4GNArzYDb/yEh6aNzLoeaY1O7vfT7SPDwlOEcchaTznutpeS9Dy8gUS/AfqtUHaufw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-openharmony-arm64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-openharmony-arm64/-/binding-openharmony-arm64-0.110.0.tgz", + "integrity": "sha512-gAMssLs2Q3+uhLZxanh1DF+27Kaug3cf4PXb9AB7XK81DR+LVcKySXaoGYoOs20Co0fFSphd6rRzKge2qDK3dA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-wasm32-wasi": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-wasm32-wasi/-/binding-wasm32-wasi-0.110.0.tgz", + "integrity": "sha512-7Wqi5Zjl022bs2zXq+ICdalDPeDuCH/Nhbi8q2isLihAonMVIT0YH2hqqnNEylRNGYck+FJ6gRZwMpGCgrNxPg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-minify/binding-win32-arm64-msvc": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.110.0.tgz", + "integrity": "sha512-ZPx+0Tj4dqn41ecyoGotlvekQKy6JxJCixn9Rw7h/dafZ3eDuBcEVh3c2ZoldXXsyMIt5ywI8IWzFZsjNedd5Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-win32-ia32-msvc": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.110.0.tgz", + "integrity": "sha512-H0Oyd3RWBfpEyvJIrFK94RYiY7KKSQl11Ym7LMDwLEagelIAfRCkt1amHZhFa/S3ZRoaOJFXzEw4YKeSsjVFsg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-win32-x64-msvc": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.110.0.tgz", + "integrity": "sha512-Hr3nK90+qXKJ2kepXwFIcNfQQIOBecB4FFCyaMMypthoEEhVP08heRynj4eSXZ8NL9hLjs3fQzH8PJXfpznRnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-android-arm-eabi": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.110.0.tgz", + "integrity": "sha512-g6+kHTI/BRDJszaZkSgyu0pGuMIVYJ7/v0I4C9BkTeGn1LxF9GWI6jE22dBEELXMWbG7FTyNlD9RCuWlStAx6w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-android-arm64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.110.0.tgz", + "integrity": "sha512-tbr+uWFVUN6p9LYlR0cPyFA24HWlnRYU+oldWlEGis/tdMtya3BubQcKdylhFhhDLaW6ChCJfxogQranElGVsw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-darwin-arm64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.110.0.tgz", + "integrity": "sha512-jPBsXPc8hwmsUQyLMg7a5Ll/j/8rWCDFoB8WzLP6C0qQKX0zWQxbfSdLFg9GGNPuRo8J8ma9WfBQN5RmbFxNJA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-darwin-x64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.110.0.tgz", + "integrity": "sha512-jt5G1eZj4sdMGc7Q0c6kfPRmqY1Mn3yzo6xuRr8EXozkh93O8KGFflABY7t56WIrmP+cloaCQkLcjlm6vdhzcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-freebsd-x64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.110.0.tgz", + "integrity": "sha512-VJ7Hwf4dg7uf8b/DrLEhE6lgnNTfBZbTqXQBG3n0oCBoreE1c5aWf1la+o7fJjjTpACRts/vAZ2ngFNNqEFpJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm-gnueabihf": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.110.0.tgz", + "integrity": "sha512-w3OZ0pLKktM7k4qEbVj3dHnCvSMFnWugYxHfhpwncYUOxwDNL3mw++EOIrw997QYiEuJ+H6Od8K6mbj1p6Ae8w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm-musleabihf": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.110.0.tgz", + "integrity": "sha512-BIaoW4W6QKb8Q6p3DErDtsAuDRAnr0W+gtwo7fQQkbAJpoPII0ZJXZn+tcQGCyNGKWSsilRNWHyd/XZfXXXpzw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm64-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.110.0.tgz", + "integrity": "sha512-3EQDJze28t0HdxXjMKBU6utNscXJePg2YV0Kd/ZnHx24VcIyfkNH6NKzBh0NeaWHovDTkpzYHPtF2tOevtbbfw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm64-musl": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.110.0.tgz", + "integrity": "sha512-5xwm1hPrGGvjCVtTWNGJ39MmQGnyipoIDShneGBgSrnDh0XX+COAO7AZKajgNipqgNq5rGEItpzFkMtSDyx0bQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-ppc64-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.110.0.tgz", + "integrity": "sha512-I8Xop7z+enuvW1xe0AcRQ9XqFNkUYgeXusyGjCyW6TstRb62P90h+nL1AoGaUMy0E0518DJam5vRYVRgXaAzYg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-riscv64-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.110.0.tgz", + "integrity": "sha512-XPM0jpght/AuHnweNaIo0twpId6rWFs8NrTkMijxcsRQMzNBeSQQgYm9ErrutmKQS6gb8XNAEIkYXHgPmhdDPg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-riscv64-musl": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.110.0.tgz", + "integrity": "sha512-ylJIuJyMzAqR191QeCwZLEkyo4Sx817TNILjNhT0W1EDQusGicOYKSsGXM/2DHCNYGcidV+MQ8pUVzNeVmuM6g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-s390x-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.110.0.tgz", + "integrity": "sha512-DL6oR0PfYor9tBX9xlAxMUVwfm6+sKTL4H+KiQ6JKP3xkJTwBIdDCgeN2AjMht1D3N40uUwVq3v8/2fqnZRgLQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-x64-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.110.0.tgz", + "integrity": "sha512-+e6ws5JLpFehdK+wh6q8icx1iM3Ao+9dtItVWFcRiXxSvGcIlS9viWcMvXKrmcsyVDUf81dnvuMSBigNslxhIQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-x64-musl": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.110.0.tgz", + "integrity": "sha512-6DiYhVdXKOzB01+j/tyrB6/d2o6b4XYFQvcbBRNbVHIimS6nl992y3V3mGG3NaA+uCZAzhT3M3btTdKAxE4A3A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-openharmony-arm64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.110.0.tgz", + "integrity": "sha512-U9KEK7tXdHrXl2eZpoHYGWj31ZSvdGiaXwjkJzeRN0elt89PXi+VcryRh6BAFbEz1EQpTteyMDwDXMgJVWM85A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-wasm32-wasi": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-wasm32-wasi/-/binding-wasm32-wasi-0.110.0.tgz", + "integrity": "sha512-cK2j/GbXGxP7k4qDM0OGjkbPrIOj8n9+U/27joH/M19z+jrQ5u1lvlvbAK/Aw2LnqE0waADnnuAc0MFab+Ea8w==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-win32-arm64-msvc": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.110.0.tgz", + "integrity": "sha512-ZW393ysGT5oZeGJRyw2JAz4tIfyTjVCSxuZoh8e+7J7e0QPDH/SAmyxJXb/aMxarIVa3OcYZ5p/Q6eooHZ0i1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-win32-ia32-msvc": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.110.0.tgz", + "integrity": "sha512-NM50LT1PEnlMlw+z/TFVkWaDOF/s5DRHbU3XhEESNhDDT9qYA8N9B1V/FYxVr1ngu28JGK2HtkjpWKlKoF4E2Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-win32-x64-msvc": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.110.0.tgz", + "integrity": "sha512-w1SzoXNaY59tbTz8/YhImByuj7kXP5EfPtv4+PPwPrvLrOWt8BOpK0wN8ysXqyWCdHv9vS1UBRrNd/aSp4Dy8A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.110.0.tgz", + "integrity": "sha512-6Ct21OIlrEnFEJk5LT4e63pk3btsI6/TusD/GStLi7wYlGJNOl1GI9qvXAnRAxQU9zqA2Oz+UwhfTOU2rPZVow==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@oxc-transform/binding-android-arm-eabi": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-android-arm-eabi/-/binding-android-arm-eabi-0.110.0.tgz", + "integrity": "sha512-sE9dxvqqAax1YYJ3t7j+h5ZSI9jl6dYuDfngl6ieZUrIy5P89/8JKVgAzgp8o3wQSo7ndpJvYsi1K4ZqrmbP7w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-android-arm64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-android-arm64/-/binding-android-arm64-0.110.0.tgz", + "integrity": "sha512-nqtbP4aMCtsCZ6qpHlHaQoWVHSBtlKzwaAgwEOvR+9DWqHjk31BHvpGiDXlMeed6CVNpl3lCbWgygb3RcSjcfw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-darwin-arm64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-darwin-arm64/-/binding-darwin-arm64-0.110.0.tgz", + "integrity": "sha512-oeSeHnL4Z4cMXtc8V0/rwoVn0dgwlS9q0j6LcHn9dIhtFEdp3W0iSBF8YmMQA+E7sILeLDjsHmHE4Kp0sOScXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-darwin-x64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-darwin-x64/-/binding-darwin-x64-0.110.0.tgz", + "integrity": "sha512-nL9K5x7OuZydobAGPylsEW9d4APs2qEkIBLMgQPA+kY8dtVD3IR87QsTbs4l4DBQYyun/+ay6qVCDlxqxdX2Jg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-freebsd-x64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-freebsd-x64/-/binding-freebsd-x64-0.110.0.tgz", + "integrity": "sha512-GS29zXXirDQhZEUq8xKJ1azAWMuUy3Ih3W5Bc5ddk12LRthO5wRLFcKIyeHpAXCoXymQ+LmxbMtbPf84GPxouw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-arm-gnueabihf": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.110.0.tgz", + "integrity": "sha512-glzDHak8ISyZJemCUi7RCvzNSl+MQ1ly9RceT2qRufhUsvNZ4C/2QLJ1HJwd2N6E88bO4laYn+RofdRzNnGGEA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-arm-musleabihf": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.110.0.tgz", + "integrity": "sha512-8JThvgJ2FRoTVfbp7e4wqeZqCZbtudM06SfZmNzND9kPNu/LVYygIR+72RWs+xm4bWkuYHg/islo/boNPtMT5Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-arm64-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.110.0.tgz", + "integrity": "sha512-IRh21Ub/g4bkHoErZ0AUWMlWfoZaS0A6EaOVtbcY70RSYIMlrsbjiFwJCzM+b/1DD1rXbH5tsGcH7GweTbfRqg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-arm64-musl": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.110.0.tgz", + "integrity": "sha512-e5JN94/oy+wevk76q+LMr+2klTTcO60uXa+Wkq558Ms7mdF2TvkKFI++d/JeiuIwJLTi/BxQ4qdT5FWcsHM/ug==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-ppc64-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.110.0.tgz", + "integrity": "sha512-Y3/Tnnz1GvDpmv8FXBIKtdZPsdZklOEPdrL6NHrN5i2u54BOkybFaDSptgWF53wOrJlTrcmAVSE6fRKK9XCM2Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-riscv64-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.110.0.tgz", + "integrity": "sha512-Y0E35iA9/v9jlkNcP6tMJ+ZFOS0rLsWDqG6rU9z+X2R3fBFJBO9UARIK6ngx8upxk81y1TFR2CmBFhupfYdH6Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-riscv64-musl": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.110.0.tgz", + "integrity": "sha512-JOUSYFfHjBUs7xp2FHmZHb8eTYD/oEu0NklS6JgUauqnoXZHiTLPLVW2o2uVCqldnabYHcomuwI2iqVFYJNhTw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-s390x-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.110.0.tgz", + "integrity": "sha512-7blgoXF9D3Ngzb7eun23pNrHJpoV/TtE6LObwlZ3Nmb4oZ6Z+yMvBVaoW68NarbmvNGfZ95zrOjgm6cVETLYBA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-x64-gnu": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.110.0.tgz", + "integrity": "sha512-YQ2joGWCVDZVEU2cD/r/w49hVjDm/Qu1BvC/7zs8LvprzdLS/HyMXGF2oA0puw0b+AqgYaz3bhwKB2xexHyITQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-x64-musl": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-x64-musl/-/binding-linux-x64-musl-0.110.0.tgz", + "integrity": "sha512-fkjr5qE632ULmNgvFXWDR/8668WxERz3tU7TQFp6JebPBneColitjSkdx6VKNVXEoMmQnOvBIGeP5tUNT384oA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-openharmony-arm64": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-openharmony-arm64/-/binding-openharmony-arm64-0.110.0.tgz", + "integrity": "sha512-HWH9Zj+lMrdSTqFRCZsvDWMz7OnMjbdGsm3xURXWfRZpuaz0bVvyuZNDQXc4FyyhRDsemICaJbU1bgeIpUJDGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-wasm32-wasi": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-wasm32-wasi/-/binding-wasm32-wasi-0.110.0.tgz", + "integrity": "sha512-ejdxHmYfIcHDPhZUe3WklViLt9mDEJE5BzcW7+R1vc5i/5JFA8D0l7NUSsHBJ7FB8Bu9gF+5iMDm6cXGAgaghw==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-transform/binding-win32-arm64-msvc": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.110.0.tgz", + "integrity": "sha512-9VTwpXCZs7xkV+mKhQ62dVk7KLnLXtEUxNS2T4nLz3iMl1IJbA4h5oltK0JoobtiUAnbkV53QmMVGW8+Nh3bDQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-win32-ia32-msvc": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.110.0.tgz", + "integrity": "sha512-5y0fzuNON7/F2hh2P94vANFaRPJ/3DI1hVl5rseCT8VUVqOGIjWaza0YS/D1g6t1WwycW2LWDMi2raOKoWU5GQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-win32-x64-msvc": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.110.0.tgz", + "integrity": "sha512-QROrowwlrApI1fEScMknGWKM6GTM/Z2xwMnDqvSaEmzNazBsDUlE08Jasw610hFEsYAVU2K5sp/YaCa9ORdP4A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", + "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", + "devOptional": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", + "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", + "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", + "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", + "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", + "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", + "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", + "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", + "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", + "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", + "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-wasm": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.5.6.tgz", + "integrity": "sha512-byAiBZ1t3tXQvc8dMD/eoyE7lTXYorhn+6uVW5AC+JGI1KtJC/LvDche5cfUE+qiefH+Ybq0bUCJU0aB1cSHUA==", + "bundleDependencies": [ + "napi-wasm" + ], + "dev": true, + "license": "MIT", + "dependencies": { + "is-glob": "^4.0.3", + "napi-wasm": "^1.1.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-wasm/node_modules/napi-wasm": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", + "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", + "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", + "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pdf-lib/standard-fonts": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz", + "integrity": "sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==", + "license": "MIT", + "dependencies": { + "pako": "^1.0.6" + } + }, + "node_modules/@pdf-lib/standard-fonts/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/@pdf-lib/upng": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@pdf-lib/upng/-/upng-1.0.1.tgz", + "integrity": "sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==", + "license": "MIT", + "dependencies": { + "pako": "^1.0.10" + } + }, + "node_modules/@pdf-lib/upng/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/@pinia/nuxt": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@pinia/nuxt/-/nuxt-0.5.5.tgz", + "integrity": "sha512-wjxS7YqIesh4OLK+qE3ZjhdOJ5pYZQ+VlEmZNtTwzQn1Kavei/khovx7mzXVXNA/mvSPXVhb9xBzhyS3XMURtw==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.9.0", + "pinia": "^2.2.3" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + } + }, + "node_modules/@pinia/nuxt/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@poppinss/colors": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz", + "integrity": "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^4.1.5" + } + }, + "node_modules/@poppinss/dumper": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.5.tgz", + "integrity": "sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.5", + "@sindresorhus/is": "^7.0.2", + "supports-color": "^10.0.0" + } + }, + "node_modules/@poppinss/dumper/node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@poppinss/exception": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.3.tgz", + "integrity": "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@remirror/core-constants": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz", + "integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==", + "license": "MIT" + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz", + "integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-alias": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-6.0.0.tgz", + "integrity": "sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "rollup": ">=4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.0.tgz", + "integrity": "sha512-U2YHaxR2cU/yAiwKJtJRhnyLk7cifnQw0zUpISsocBDoHDJn+HTV74ABqnwr5bEgWUwFZC9oFL6wLe21lHu5eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "fdir": "^6.2.0", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-inject": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz", + "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-inject/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", + "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.3.tgz", + "integrity": "sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.56.0.tgz", + "integrity": "sha512-LNKIPA5k8PF1+jAFomGe3qN3bbIgJe/IlpDBwuVjrDKrJhVWywgnJvflMt/zkbVNLFtF1+94SljYQS6e99klnw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.56.0.tgz", + "integrity": "sha512-lfbVUbelYqXlYiU/HApNMJzT1E87UPGvzveGg2h0ktUNlOCxKlWuJ9jtfvs1sKHdwU4fzY7Pl8sAl49/XaEk6Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.56.0.tgz", + "integrity": "sha512-EgxD1ocWfhoD6xSOeEEwyE7tDvwTgZc8Bss7wCWe+uc7wO8G34HHCUH+Q6cHqJubxIAnQzAsyUsClt0yFLu06w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.56.0.tgz", + "integrity": "sha512-1vXe1vcMOssb/hOF8iv52A7feWW2xnu+c8BV4t1F//m9QVLTfNVpEdja5ia762j/UEJe2Z1jAmEqZAK42tVW3g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.56.0.tgz", + "integrity": "sha512-bof7fbIlvqsyv/DtaXSck4VYQ9lPtoWNFCB/JY4snlFuJREXfZnm+Ej6yaCHfQvofJDXLDMTVxWscVSuQvVWUQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.56.0.tgz", + "integrity": "sha512-KNa6lYHloW+7lTEkYGa37fpvPq+NKG/EHKM8+G/g9WDU7ls4sMqbVRV78J6LdNuVaeeK5WB9/9VAFbKxcbXKYg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.56.0.tgz", + "integrity": "sha512-E8jKK87uOvLrrLN28jnAAAChNq5LeCd2mGgZF+fGF5D507WlG/Noct3lP/QzQ6MrqJ5BCKNwI9ipADB6jyiq2A==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.56.0.tgz", + "integrity": "sha512-jQosa5FMYF5Z6prEpTCCmzCXz6eKr/tCBssSmQGEeozA9tkRUty/5Vx06ibaOP9RCrW1Pvb8yp3gvZhHwTDsJw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.56.0.tgz", + "integrity": "sha512-uQVoKkrC1KGEV6udrdVahASIsaF8h7iLG0U0W+Xn14ucFwi6uS539PsAr24IEF9/FoDtzMeeJXJIBo5RkbNWvQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.56.0.tgz", + "integrity": "sha512-vLZ1yJKLxhQLFKTs42RwTwa6zkGln+bnXc8ueFGMYmBTLfNu58sl5/eXyxRa2RarTkJbXl8TKPgfS6V5ijNqEA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.56.0.tgz", + "integrity": "sha512-FWfHOCub564kSE3xJQLLIC/hbKqHSVxy8vY75/YHHzWvbJL7aYJkdgwD/xGfUlL5UV2SB7otapLrcCj2xnF1dg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.56.0.tgz", + "integrity": "sha512-z1EkujxIh7nbrKL1lmIpqFTc/sr0u8Uk0zK/qIEFldbt6EDKWFk/pxFq3gYj4Bjn3aa9eEhYRlL3H8ZbPT1xvA==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.56.0.tgz", + "integrity": "sha512-iNFTluqgdoQC7AIE8Q34R3AuPrJGJirj5wMUErxj22deOcY7XwZRaqYmB6ZKFHoVGqRcRd0mqO+845jAibKCkw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.56.0.tgz", + "integrity": "sha512-MtMeFVlD2LIKjp2sE2xM2slq3Zxf9zwVuw0jemsxvh1QOpHSsSzfNOTH9uYW9i1MXFxUSMmLpeVeUzoNOKBaWg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.56.0.tgz", + "integrity": "sha512-in+v6wiHdzzVhYKXIk5U74dEZHdKN9KH0Q4ANHOTvyXPG41bajYRsy7a8TPKbYPl34hU7PP7hMVHRvv/5aCSew==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.56.0.tgz", + "integrity": "sha512-yni2raKHB8m9NQpI9fPVwN754mn6dHQSbDTwxdr9SE0ks38DTjLMMBjrwvB5+mXrX+C0npX0CVeCUcvvvD8CNQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.56.0.tgz", + "integrity": "sha512-zhLLJx9nQPu7wezbxt2ut+CI4YlXi68ndEve16tPc/iwoylWS9B3FxpLS2PkmfYgDQtosah07Mj9E0khc3Y+vQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.56.0.tgz", + "integrity": "sha512-MVC6UDp16ZSH7x4rtuJPAEoE1RwS8N4oK9DLHy3FTEdFoUTCFVzMfJl/BVJ330C+hx8FfprA5Wqx4FhZXkj2Kw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.56.0.tgz", + "integrity": "sha512-ZhGH1eA4Qv0lxaV00azCIS1ChedK0V32952Md3FtnxSqZTBTd6tgil4nZT5cU8B+SIw3PFYkvyR4FKo2oyZIHA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.56.0.tgz", + "integrity": "sha512-O16XcmyDeFI9879pEcmtWvD/2nyxR9mF7Gs44lf1vGGx8Vg2DRNx11aVXBEqOQhWb92WN4z7fW/q4+2NYzCbBA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.56.0.tgz", + "integrity": "sha512-LhN/Reh+7F3RCgQIRbgw8ZMwUwyqJM+8pXNT6IIJAqm2IdKkzpCh/V9EdgOMBKuebIrzswqy4ATlrDgiOwbRcQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.56.0.tgz", + "integrity": "sha512-kbFsOObXp3LBULg1d3JIUQMa9Kv4UitDmpS+k0tinPBz3watcUiV2/LUDMMucA6pZO3WGE27P7DsfaN54l9ing==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.56.0.tgz", + "integrity": "sha512-vSSgny54D6P4vf2izbtFm/TcWYedw7f8eBrOiGGecyHyQB9q4Kqentjaj8hToe+995nob/Wv48pDqL5a62EWtg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.56.0.tgz", + "integrity": "sha512-FeCnkPCTHQJFbiGG49KjV5YGW/8b9rrXAM2Mz2kiIoktq2qsJxRD5giEMEOD2lPdgs72upzefaUvS+nc8E3UzQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.56.0.tgz", + "integrity": "sha512-H8AE9Ur/t0+1VXujj90w0HrSOuv0Nq9r1vSZF2t5km20NTfosQsGGUXDaKdQZzwuLts7IyL1fYT4hM95TI9c4g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sentry-internal/browser-utils": { + "version": "9.47.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-9.47.1.tgz", + "integrity": "sha512-twv6YhrUlPkvKz4/iQDH4KHgcv9t4cMjmZPf4/dCSCXn4/GOjzjx2d74c1w+1KOdS7lcsQzI+MtbK6SeYLiGfQ==", + "license": "MIT", + "dependencies": { + "@sentry/core": "9.47.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry-internal/feedback": { + "version": "9.47.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-9.47.1.tgz", + "integrity": "sha512-xJ4vKvIpAT8e+Sz80YrsNinPU0XV7jPxPjdZ4ex8R2mMvx7pM0gq8JiR/sIVmNiOE0WiUDr6VwLDE8j2APSRMA==", + "license": "MIT", + "dependencies": { + "@sentry/core": "9.47.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry-internal/replay": { + "version": "9.47.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-9.47.1.tgz", + "integrity": "sha512-O9ZEfySpstGtX1f73m3NbdbS2utwPikaFt6sgp74RG4ZX4LlXe99VAjKR464xKECpYsLmj2bYpiK4opURF0pBA==", + "license": "MIT", + "dependencies": { + "@sentry-internal/browser-utils": "9.47.1", + "@sentry/core": "9.47.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry-internal/replay-canvas": { + "version": "9.47.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-9.47.1.tgz", + "integrity": "sha512-r9nve+l5+elGB9NXSN1+PUgJy790tXN1e8lZNH2ziveoU91jW4yYYt34mHZ30fU9tOz58OpaRMj3H3GJ/jYZVA==", + "license": "MIT", + "dependencies": { + "@sentry-internal/replay": "9.47.1", + "@sentry/core": "9.47.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/browser": { + "version": "9.47.1", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-9.47.1.tgz", + "integrity": "sha512-at5JOLziw5QpVYytxTDU6xijdV6lDQ/Rxp/qXJaHXud3gIK4suv2cXW+tupJfwoUoHFCnDNfccjCmPmP0yRqiA==", + "license": "MIT", + "dependencies": { + "@sentry-internal/browser-utils": "9.47.1", + "@sentry-internal/feedback": "9.47.1", + "@sentry-internal/replay": "9.47.1", + "@sentry-internal/replay-canvas": "9.47.1", + "@sentry/core": "9.47.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/core": { + "version": "9.47.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.47.1.tgz", + "integrity": "sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@sentry/integrations": { + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.114.0.tgz", + "integrity": "sha512-BJIBWXGKeIH0ifd7goxOS29fBA8BkEgVVCahs6xIOXBjX1IRS6PmX0zYx/GP23nQTfhJiubv2XPzoYOlZZmDxg==", + "license": "MIT", + "dependencies": { + "@sentry/core": "7.114.0", + "@sentry/types": "7.114.0", + "@sentry/utils": "7.114.0", + "localforage": "^1.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/integrations/node_modules/@sentry/core": { + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.114.0.tgz", + "integrity": "sha512-YnanVlmulkjgZiVZ9BfY9k6I082n+C+LbZo52MTvx3FY6RE5iyiPMpaOh67oXEZRWcYQEGm+bKruRxLVP6RlbA==", + "license": "MIT", + "dependencies": { + "@sentry/types": "7.114.0", + "@sentry/utils": "7.114.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/types": { + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.114.0.tgz", + "integrity": "sha512-tsqkkyL3eJtptmPtT0m9W/bPLkU7ILY7nvwpi1hahA5jrM7ppoU0IMaQWAgTD+U3rzFH40IdXNBFb8Gnqcva4w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/utils": { + "version": "7.114.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.114.0.tgz", + "integrity": "sha512-319N90McVpupQ6vws4+tfCy/03AdtsU0MurIE4+W5cubHME08HtiEWlfacvAxX+yuKFhvdsO4K4BB/dj54ideg==", + "license": "MIT", + "dependencies": { + "@sentry/types": "7.114.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@servie/events": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@servie/events/-/events-1.0.0.tgz", + "integrity": "sha512-sBSO19KzdrJCM3gdx6eIxV8M9Gxfgg6iDQmH5TIAGaUu+X9VDdsINXJOnoiZ1Kx3TrHdH4bt5UVglkjsEGBcvw==", + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz", + "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "license": "MIT" + }, + "node_modules/@speed-highlight/core": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.14.tgz", + "integrity": "sha512-G4ewlBNhUtlLvrJTb88d2mdy2KRijzs4UhnlrOSRT4bmjh/IqNElZa3zkrZ+TC47TwtlDWzVLFADljF1Ijp5hA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.18", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.18.tgz", + "integrity": "sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tailwindcss/aspect-ratio": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz", + "integrity": "sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1" + } + }, + "node_modules/@tailwindcss/container-queries": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/container-queries/-/container-queries-0.1.1.tgz", + "integrity": "sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.2.0" + } + }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.11.tgz", + "integrity": "sha512-h9wegbZDPurxG22xZSoWtdzc41/OlNEUQERNqI/0fOwa2aVlWGu7C35E/x6LDyD3lgtztFSSjKZyuVM0hxhbgA==", + "license": "MIT", + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.19.tgz", + "integrity": "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.13.18", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.18.tgz", + "integrity": "sha512-Mx86Hqu1k39icq2Zusq+Ey2J6dDWTjDvEv43PJtRCoEYTLyfaPnxIQ6iy7YAOK0NV/qOEmZQ/uCufrppZxTgcg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/vue-virtual": { + "version": "3.13.18", + "resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.13.18.tgz", + "integrity": "sha512-6pT8HdHtTU5Z+t906cGdCroUNA5wHjFXsNss9gwk7QAr1VNZtz9IQCs2Nhx0gABK48c+OocHl2As+TMg8+Hy4A==", + "license": "MIT", + "dependencies": { + "@tanstack/virtual-core": "3.13.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.0.0" + } + }, + "node_modules/@tiptap/core": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.17.1.tgz", + "integrity": "sha512-f8hB9MzXqsuXoF9qXEDEH5Fb3VgwhEFMBMfk9EKN88l5adri6oM8mt2XOWVxVVssjpEW0177zXSLPKWzoS/vrw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/pm": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-blockquote": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.17.1.tgz", + "integrity": "sha512-X4jU/fllJQ8QbjCHUafU4QIHBobyXP3yGBoOcXxUaKlWbLvUs0SQTREM3n6/86m2YyAxwTPG1cn3Xypf42DMAQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-bold": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.17.1.tgz", + "integrity": "sha512-PZmrljcVBziJkQDXT/QJv4ESxVVQ0iRH+ruTzPda56Kk4h2310cSXGjI33W7rlCikGPoBAAjY/inujm46YB4bw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-bubble-menu": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.17.1.tgz", + "integrity": "sha512-z3E8biLiWlzZJwNHnB6j/ZyBdFrJmpl1lqKHc72JqahUHZvidZHdCOYssvR3fc6IaI7MXV13XY1DXUdFbatnaw==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1", + "@tiptap/pm": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-bullet-list": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.17.1.tgz", + "integrity": "sha512-2zw17XHruOJQK7ntLVq0PmOLajFhvQ+U4/qTfJnV3VOsHkm+2GPAksFe7I7+X0XmSmDru0pcT339Yywx/6Aykw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-character-count": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-character-count/-/extension-character-count-3.17.1.tgz", + "integrity": "sha512-hlDtBTftExATw6s0voBxQI5CkE9HBTOIMrqB5MiE4x+W6CSNQmRABAFKfyMK3OaXtNtDVwySISfQjXLh0Ev8TQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-code": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.17.1.tgz", + "integrity": "sha512-4W0x1ZZqSnIVzQV0/b5VR0bktef2HykH5I/Czzir9yqoZ5zV2cLrMVuLvdFNgRIckU60tQLmHrfKWLF50OY0ew==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-code-block": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.17.1.tgz", + "integrity": "sha512-h4i+Y/cN7nMi0Tmlp6V1w4dI7NTqrUFSr1W/vMqnq4vn+c6jvm35KubKU5ry/1qQp8KfndDA02BtVQiMx6DmpA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1", + "@tiptap/pm": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-document": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.17.1.tgz", + "integrity": "sha512-F7Q5HoAU383HWFa6AXZQ5N6t6lTJzVjYM8z93XrtH/2GzDFwy1UmDSrsXqvgznedBLAOgCNVTNh9PjXpLoOUbg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-dropcursor": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.17.1.tgz", + "integrity": "sha512-EKJYPb7OSk3p9mX1SmHt4ccw89w1P1d55hC8aPtZJ6jxAUd5MSuVwvEEVz7LGldUZD9HZz9WFQ0Sv9U73Bpkmw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-floating-menu": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-3.17.1.tgz", + "integrity": "sha512-zYkoYsxp+cZ8tBDODm4E8hnSaMTdDWKJuCQWY2Ep14oMPkAkSJr8sCLL1tOnNSAnhGwLJQtRLkZ41nvUEP6xKA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@floating-ui/dom": "^1.0.0", + "@tiptap/core": "^3.17.1", + "@tiptap/pm": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-gapcursor": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.17.1.tgz", + "integrity": "sha512-xItmJZTi+Z6UbLBhpBBL9RZDNbDXf+ntWVgblAmxtpyEyNh5k5tkM6IP9SJRhk92uVfnFpH9qkGo66a537I8QA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-hard-break": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.17.1.tgz", + "integrity": "sha512-28FZPUho1Q2AB3ka5SVEVib5f9dMKbE1kewLZeRIOQ5FuFNholGIPL5X1tKcwGW7G3A7Y0fGxeNmIZJ3hrqhzA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-heading": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.17.1.tgz", + "integrity": "sha512-rT+Su/YnHdlikg8f78t6RXlc1sVSfp7B0fdJdtFgS2e6BBYJQoDMp5L9nt54RR9Yy953aDW2sko7NArUCb8log==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-highlight": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-3.17.1.tgz", + "integrity": "sha512-I4EdBhPVzJd4ECMI9kP0NE4aG4Numd46jy/AqeZyf3dqVgCxRyAbSyU7oy4aXUnsojYODrKKG6+djm07KgOGoQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-horizontal-rule": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.17.1.tgz", + "integrity": "sha512-CHG6LBtxV+3qj5EcCRVlpvSW5udKD6KbnXIGhP+Tvy+OabLGzO4HNxz3+duDE0pMR4eKX1libsnqffj0vq7mnQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1", + "@tiptap/pm": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-image": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-3.17.1.tgz", + "integrity": "sha512-VbSSZ//5qijm8F0lQQ6K+DGnZgjLKYQY2c+O56QNEoN8BaCFrJlsVgF1ttrSRUmoG4XBNIMlAS07kZXvMZQr0g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-italic": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.17.1.tgz", + "integrity": "sha512-unfRLmvf680Y0UkBToUcrDkSEKO/wAjd3nQ7CNPMfAc8m+ZMReXkcgLpeVvnDEiHNsJ0PlYSW7a45tnQD9HQdg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-link": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.17.1.tgz", + "integrity": "sha512-5kdN7vms5hMXtjiophUkgvzy8dNGvGSmol1Sawh30TEPrgXc93Ayj7YyGZlbimInKZcD8q+Od/FFc+wkrof3nA==", + "license": "MIT", + "dependencies": { + "linkifyjs": "^4.3.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1", + "@tiptap/pm": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-list": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.17.1.tgz", + "integrity": "sha512-LHKIxmXe5Me+vJZKhiwMBGHlApaBIAduNMRUpm5mkY7ER/m96zKR0VqrJd4LjVVH2iDvck5h1Ka4396MHWlKNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1", + "@tiptap/pm": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-list-item": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.17.1.tgz", + "integrity": "sha512-Qjj4oIa44cTX0E6aw/4+wleqX21t5jMDxeSqP5uQ8Q3IdD1GoR5+yo+41XAHELaeZOXLHLkAIbzIxik3pOqO8w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-list-keymap": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.17.1.tgz", + "integrity": "sha512-zRidxbkJNe/j3nZpOGLnPeVdyciUM8MM+NHhxcjVKoNDA+/zEBfjXJ1dKC4UBsnSr4AS/3SCWBYHGXOoSqdUaA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-mention": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-mention/-/extension-mention-3.17.1.tgz", + "integrity": "sha512-rggEOD7cnuglVtc7zvVYx/2u7w7XpkdR6BTSXNWohsCJDwpKx5MBfuQMXULlRKY9/N49FgwHzP8ipkSvgOtiEw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1", + "@tiptap/pm": "^3.17.1", + "@tiptap/suggestion": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-ordered-list": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.17.1.tgz", + "integrity": "sha512-pahAXbVajqX0Y51Zge9jKZlCtPV1oiq5Fbzs7gHF80KICIKf44i/AsUvfdJyT2N5/8kZrAMQHEiU/UgTMrhM3w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-paragraph": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.17.1.tgz", + "integrity": "sha512-Vl+xAlINaPtX8XTPvPmeveYMEIMLs8gA7ItcKpyyo4cCzAfVCY3DKuWzOkQGUf7DKrhyJQZhpgLNMaq+h5sTSw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-placeholder": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-3.17.1.tgz", + "integrity": "sha512-cE8Rij5/1t4KnWE7GaDewhBek9DKNB+97yrxyggMegILg6v195hOmOkRZkyfnFMYZoBDlrfSAtX9wBvbZBqIsg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-strike": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.17.1.tgz", + "integrity": "sha512-c6fS6YIhxoU55etlJgM0Xqker+jn7I1KC7GVu6ljmda8I00K3/lOLZgvFUNPmgp8EJWtyTctj+3D3D+PaZaFAA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-table": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-3.17.1.tgz", + "integrity": "sha512-FuAMdmM330tHJUYT5IV2ooFRqtXf+0D8llcE9nIQQCXKL4J0pfGSOIm40LVpunYgx2pV8SSCL51qTBuEmR84tQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1", + "@tiptap/pm": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-table-cell": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-3.17.1.tgz", + "integrity": "sha512-fezen+lLI3uMO/W0yZVRG3VjT9P0MIxf5XUn+WwWqoqFB1Ktuea/9swD8fS917NIMmBD/I1AzCqfoZNhPtZFxw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-table": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-table-header": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-3.17.1.tgz", + "integrity": "sha512-jgq5Qjml404IbF2s9DL5jW/r1p/kPxASZrvsfp3pVFfFym6Lw4oZAC9hOrd/6x3Mm4MCJAOcRTmybkwVHvqhjw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-table": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-table-row": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-3.17.1.tgz", + "integrity": "sha512-H3h6Z/1vV+DewIW0C8lG/DziGoGgs95YBd4EHji+Gyk/KCI30ybGOAypz+RwqtJsiKMzbjKUt/SJcFzseOfUtQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-table": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-task-item": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-task-item/-/extension-task-item-3.17.1.tgz", + "integrity": "sha512-aKCOGNatRLo2m5Qlb2mRxhN7BUE9yNY+yXtLIi+mDH7IUnygffyuz9iCy+rNGihvZdQQKm9vU51dAjVMu5ww+g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-task-list": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-task-list/-/extension-task-list-3.17.1.tgz", + "integrity": "sha512-EiJjlfNioQub9G6SZ83b/1+5VhVtlHStQN7+BTIsA9EhRAeKwge0KtO1oMIzFkDryd9mki9GQx/D+eek2CNsYw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-text": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.17.1.tgz", + "integrity": "sha512-rGml96vokQbvPB+w6L3+WKyYJWwqELaLdFUr1WMgg+py5uNYGJYAExYNAbDb5biWJBrX9GgMlCaNeiJj849L1w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-typography": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-typography/-/extension-typography-3.17.1.tgz", + "integrity": "sha512-bEocTrK/gryk3VtthC9Ca03p2kutVIIFnDkVW6iOG8PgQWEspuQRgqE8yPnHxY8pBBDWxiaBzcGTSrp+3U9d5A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-underline": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.17.1.tgz", + "integrity": "sha512-6RdBzmkg6DYs0EqPyoqLGkISXzCnPqM/q3A6nh3EmFmORcIDfuNmcidvA6EImebK8KQGmtZKsRhQSnK4CNQ39g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extension-youtube": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-youtube/-/extension-youtube-3.17.1.tgz", + "integrity": "sha512-AarpN4vI/S6jPMuLuFGEFLgdoasGiUW+rGLj+jH/0Of6l27nKRN00MTm/fD/62qjR6At3Rd7Xsue/GuXdmDUWw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1" + } + }, + "node_modules/@tiptap/extensions": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.17.1.tgz", + "integrity": "sha512-aQ4WA5bdRpv9yPQ6rRdiqwlMZ1eJw1HyEaNPQhOr2HVhQ0EqSDIOEXF4ymCveGAHxXbxNvtQ+4t1ymQEikGfXA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1", + "@tiptap/pm": "^3.17.1" + } + }, + "node_modules/@tiptap/pm": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.17.1.tgz", + "integrity": "sha512-UyVLkN8axV/zop6Se2DCBJRu5DM21X0XEQvwEC5P/vk8eC9OcQZ3FLtxeYy2ZjpAZUzBGLw0/BGsmEip/n7olw==", + "license": "MIT", + "dependencies": { + "prosemirror-changeset": "^2.3.0", + "prosemirror-collab": "^1.3.1", + "prosemirror-commands": "^1.6.2", + "prosemirror-dropcursor": "^1.8.1", + "prosemirror-gapcursor": "^1.3.2", + "prosemirror-history": "^1.4.1", + "prosemirror-inputrules": "^1.4.0", + "prosemirror-keymap": "^1.2.2", + "prosemirror-markdown": "^1.13.1", + "prosemirror-menu": "^1.2.4", + "prosemirror-model": "^1.24.1", + "prosemirror-schema-basic": "^1.2.3", + "prosemirror-schema-list": "^1.5.0", + "prosemirror-state": "^1.4.3", + "prosemirror-tables": "^1.6.4", + "prosemirror-trailing-node": "^3.0.0", + "prosemirror-transform": "^1.10.2", + "prosemirror-view": "^1.38.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@tiptap/starter-kit": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.17.1.tgz", + "integrity": "sha512-3vBGqag9mwuQoWTrfQlULtHeoFs7k/2Q8CREf3Y79hv2fqAXTvTOKlWYPSgZhiGVMp6Dti7BDiE9Y1QpvAat2g==", + "license": "MIT", + "dependencies": { + "@tiptap/core": "^3.17.1", + "@tiptap/extension-blockquote": "^3.17.1", + "@tiptap/extension-bold": "^3.17.1", + "@tiptap/extension-bullet-list": "^3.17.1", + "@tiptap/extension-code": "^3.17.1", + "@tiptap/extension-code-block": "^3.17.1", + "@tiptap/extension-document": "^3.17.1", + "@tiptap/extension-dropcursor": "^3.17.1", + "@tiptap/extension-gapcursor": "^3.17.1", + "@tiptap/extension-hard-break": "^3.17.1", + "@tiptap/extension-heading": "^3.17.1", + "@tiptap/extension-horizontal-rule": "^3.17.1", + "@tiptap/extension-italic": "^3.17.1", + "@tiptap/extension-link": "^3.17.1", + "@tiptap/extension-list": "^3.17.1", + "@tiptap/extension-list-item": "^3.17.1", + "@tiptap/extension-list-keymap": "^3.17.1", + "@tiptap/extension-ordered-list": "^3.17.1", + "@tiptap/extension-paragraph": "^3.17.1", + "@tiptap/extension-strike": "^3.17.1", + "@tiptap/extension-text": "^3.17.1", + "@tiptap/extension-underline": "^3.17.1", + "@tiptap/extensions": "^3.17.1", + "@tiptap/pm": "^3.17.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@tiptap/suggestion": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-3.17.1.tgz", + "integrity": "sha512-a188uVYjlLsUiwK3Ki7KsaWVWC0u28KsqGEAqCk9ECYmtVY99Hrb+rcAwGpMjA7tn8WAwThOxiLISoMdpuqXwg==", + "license": "MIT", + "peer": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.17.1", + "@tiptap/pm": "^3.17.1" + } + }, + "node_modules/@tiptap/vue-3": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@tiptap/vue-3/-/vue-3-3.17.1.tgz", + "integrity": "sha512-0NaAY3+S1KZuSY9Sl6e0zvgcX8JvKKwDamY+YOl/ZO4GRaA1VnVkS/OJtofuTAODJmoXWL8wS9NwOgAzKeAvkw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "optionalDependencies": { + "@tiptap/extension-bubble-menu": "^3.17.1", + "@tiptap/extension-floating-menu": "^3.17.1" + }, + "peerDependencies": { + "@floating-ui/dom": "^1.0.0", + "@tiptap/core": "^3.17.1", + "@tiptap/pm": "^3.17.1", + "vue": "^3.0.0" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/fs-extra": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", + "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, + "node_modules/@types/geojson-vt": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", + "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/leaflet": { + "version": "1.9.21", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.21.tgz", + "integrity": "sha512-TbAd9DaPGSnzp6QvtYngntMZgcRk+igFELwR2N99XZn7RXUdKgsXMR+28bUO0rPsWp8MIu/f47luLIQuSLYv/w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==", + "license": "MIT" + }, + "node_modules/@types/mapbox__point-geometry": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz", + "integrity": "sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==", + "license": "MIT" + }, + "node_modules/@types/mapbox__vector-tile": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz", + "integrity": "sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" + } + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.0.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.10.tgz", + "integrity": "sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/pako": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.4.tgz", + "integrity": "sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==", + "license": "MIT" + }, + "node_modules/@types/parse-path": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/parse-path/-/parse-path-7.0.3.tgz", + "integrity": "sha512-LriObC2+KYZD3FzCrgWGv/qufdUy4eXrxcLgQMfYXgPbLIecKIsVBaQgUPmxSSLcjmYbDTQbMgr6qr6l/eb7Bg==", + "license": "MIT" + }, + "node_modules/@types/pbf": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz", + "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==", + "license": "MIT" + }, + "node_modules/@types/resize-observer-browser": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.11.tgz", + "integrity": "sha512-cNw5iH8JkMkb3QkCoe7DaZiawbDQEUX8t7iuQaRTyLOyQCR2h+ibBD4GJt7p5yhUHrlOeL7ZtbxNHeipqNsBzQ==", + "license": "MIT" + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/supercluster": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "license": "MIT" + }, + "node_modules/@unhead/vue": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-2.1.2.tgz", + "integrity": "sha512-w5yxH/fkkLWAFAOnMSIbvAikNHYn6pgC7zGF/BasXf+K3CO1cYIPFehYAk5jpcsbiNPMc3goyyw1prGLoyD14g==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookable": "^6.0.1", + "unhead": "2.1.2" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + }, + "peerDependencies": { + "vue": ">=3.5.18" + } + }, + "node_modules/@unhead/vue/node_modules/hookable": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.0.1.tgz", + "integrity": "sha512-uKGyY8BuzN/a5gvzvA+3FVWo0+wUjgtfSdnmjtrOVwQCZPHpHDH2WRO3VZSOeluYrHoDCiXFffZXs8Dj1ULWtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vercel/nft": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-1.3.0.tgz", + "integrity": "sha512-i4EYGkCsIjzu4vorDUbqglZc5eFtQI2syHb++9ZUDm6TU4edVywGpVnYDein35x9sevONOn9/UabfQXuNXtuzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mapbox/node-pre-gyp": "^2.0.0", + "@rollup/pluginutils": "^5.1.3", + "acorn": "^8.6.0", + "acorn-import-attributes": "^1.9.5", + "async-sema": "^3.1.1", + "bindings": "^1.4.0", + "estree-walker": "2.0.2", + "glob": "^13.0.0", + "graceful-fs": "^4.2.9", + "node-gyp-build": "^4.2.2", + "picomatch": "^4.0.2", + "resolve-from": "^5.0.0" + }, + "bin": { + "nft": "out/cli.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@vercel/nft/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vicons/ionicons5": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@vicons/ionicons5/-/ionicons5-0.12.0.tgz", + "integrity": "sha512-Iy1EUVRpX0WWxeu1VIReR1zsZLMc4fqpt223czR+Rpnrwu7pt46nbnC2ycO7ItI/uqDLJxnbcMC7FujKs9IfFA==", + "license": "MIT" + }, + "node_modules/@vite-pwa/nuxt": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vite-pwa/nuxt/-/nuxt-1.1.0.tgz", + "integrity": "sha512-OKrqHg9PHCqp9dlrtCaLlh55V0xEG/zkXjvpl2nE+6IB3xW8mqnH0hXYc1pjN7qv0JzB+lbCfWxFsg5EZvAjWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.9.0", + "pathe": "^1.1.1", + "ufo": "^1.3.2", + "vite-plugin-pwa": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vite-pwa/assets-generator": "^1.0.0" + }, + "peerDependenciesMeta": { + "@vite-pwa/assets-generator": { + "optional": true + } + } + }, + "node_modules/@vite-pwa/nuxt/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@vite-pwa/nuxt/node_modules/@nuxt/kit/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vite-pwa/nuxt/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.3.tgz", + "integrity": "sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.53" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-5.1.3.tgz", + "integrity": "sha512-I6Zr8cYVr5WHMW5gNOP09DNqW9rgO8RX73Wa6Czgq/0ndpTfJM4vfDChfOT1+3KtdrNqilNBtNlFwVeB02ZzGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.5", + "@babel/plugin-syntax-typescript": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.28.5", + "@rolldown/pluginutils": "^1.0.0-beta.56", + "@vue/babel-plugin-jsx": "^2.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", + "vue": "^3.0.0" + } + }, + "node_modules/@vitejs/plugin-vue-jsx/node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.1.tgz", + "integrity": "sha512-UTBjtTxVOhodhzFVp/ayITaTETRHPUPYZPXQe0WU0wOgxghMojXxYjOiPOauKIYNWJAWS2fd7gJgGQK8GU8vDA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/language-core": { + "version": "2.4.27", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.27.tgz", + "integrity": "sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.27" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.27", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.27.tgz", + "integrity": "sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue-leaflet/vue-leaflet": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@vue-leaflet/vue-leaflet/-/vue-leaflet-0.10.1.tgz", + "integrity": "sha512-RNEDk8TbnwrJl8ujdbKgZRFygLCxd0aBcWLQ05q/pGv4+d0jamE3KXQgQBqGAteE1mbQsk3xoNcqqUgaIGfWVg==", + "license": "MIT", + "dependencies": { + "vue": "^3.2.25" + }, + "peerDependencies": { + "@types/leaflet": "^1.5.7", + "leaflet": "^1.6.0" + }, + "peerDependenciesMeta": { + "@types/leaflet": { + "optional": true + } + } + }, + "node_modules/@vue-macros/common": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-3.1.2.tgz", + "integrity": "sha512-h9t4ArDdniO9ekYHAD95t9AZcAbb19lEGK+26iAjUODOIJKmObDNBSe4+6ELQAA3vtYiFPPBtHh7+cQCKi3Dng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-sfc": "^3.5.22", + "ast-kit": "^2.1.2", + "local-pkg": "^1.1.2", + "magic-string-ast": "^1.0.2", + "unplugin-utils": "^0.3.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/vue-macros" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.2.25" + }, + "peerDependenciesMeta": { + "vue": { + "optional": true + } + } + }, + "node_modules/@vue-macros/common/node_modules/unplugin-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.1.tgz", + "integrity": "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==", + "dev": true, + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/@vue-pdf-viewer/shared": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@vue-pdf-viewer/shared/-/shared-1.1.3.tgz", + "integrity": "sha512-SwdwAAX0sx5CR5XC31BYhNiD3vsXnWNpq2X22PIUrgXPYQN221HHwrvD0erZD4P/RGSA3lS5ok/ye9jCv7VIaA==", + "license": "See license section", + "peerDependencies": { + "vue": "^3.2.37" + } + }, + "node_modules/@vue-pdf-viewer/viewer": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@vue-pdf-viewer/viewer/-/viewer-3.6.2.tgz", + "integrity": "sha512-JglDACtxjgC4jUhrioQRS/jsi23Q8yP9xBQw2P2MYCXf2xtbHqykVyGS+XHiSeN1FNm01SZ8B/+1XPr9i6rmZQ==", + "license": "See license section", + "dependencies": { + "@vue-pdf-viewer/shared": "1.1.3", + "@vueuse/core": "^13.6.0", + "node-forge": "^1.3.2", + "pdfjs-dist": "4.10.38", + "reka-ui": "^2.4.1", + "vite-plugin-css-injected-by-js": "^3.5.1" + }, + "engines": { + "bun": ">=1.0.4", + "node": ">=18.20.3", + "npm": ">=9.5.1", + "pnpm": ">=8.8.0", + "yarn": ">=1.20.0" + }, + "peerDependencies": { + "pdfjs-dist": "^4.10.38", + "vue": "^3.2.37" + } + }, + "node_modules/@vue-pdf-viewer/viewer/node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, + "node_modules/@vue-pdf-viewer/viewer/node_modules/@vueuse/core": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-13.9.0.tgz", + "integrity": "sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "13.9.0", + "@vueuse/shared": "13.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vue-pdf-viewer/viewer/node_modules/@vueuse/metadata": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-13.9.0.tgz", + "integrity": "sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vue-pdf-viewer/viewer/node_modules/@vueuse/shared": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-13.9.0.tgz", + "integrity": "sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-2.0.1.tgz", + "integrity": "sha512-uZ66EaFbnnZSYqYEyplWvn46GhZ1KuYSThdT68p+am7MgBNbQ3hphTL9L+xSIsWkdktwhPYLwPgVWqo96jDdRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-2.0.1.tgz", + "integrity": "sha512-a8CaLQjD/s4PVdhrLD/zT574ZNPnZBOY+IhdtKWRB4HRZ0I2tXBi5ne7d9eCfaYwp5gU5+4KIyFTV1W1YL9xZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@vue/babel-helper-vue-transform-on": "2.0.1", + "@vue/babel-plugin-resolve-type": "2.0.1", + "@vue/shared": "^3.5.22" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-2.0.1.tgz", + "integrity": "sha512-ybwgIuRGRRBhOU37GImDoWQoz+TlSqap65qVI6iwg/J7FfLTLmMf97TS7xQH9I7Qtr/gp161kYVdhr1ZMraSYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/parser": "^7.28.4", + "@vue/compiler-sfc": "^3.5.22" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.27.tgz", + "integrity": "sha512-gnSBQjZA+//qDZen+6a2EdHqJ68Z7uybrMf3SPjEGgG4dicklwDVmMC1AeIHxtLVPT7sn6sH1KOO+tS6gwOUeQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/shared": "3.5.27", + "entities": "^7.0.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-core/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.27.tgz", + "integrity": "sha512-oAFea8dZgCtVVVTEC7fv3T5CbZW9BxpFzGGxC79xakTr6ooeEqmRuvQydIiDAkglZEAd09LgVf1RoDnL54fu5w==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.27", + "@vue/shared": "3.5.27" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.27.tgz", + "integrity": "sha512-sHZu9QyDPeDmN/MRoshhggVOWE5WlGFStKFwu8G52swATgSny27hJRWteKDSUUzUH+wp+bmeNbhJnEAel/auUQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/compiler-core": "3.5.27", + "@vue/compiler-dom": "3.5.27", + "@vue/compiler-ssr": "3.5.27", + "@vue/shared": "3.5.27", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.27.tgz", + "integrity": "sha512-Sj7h+JHt512fV1cTxKlYhg7qxBvack+BGncSpH+8vnN+KN95iPIcqB5rsbblX40XorP+ilO7VIKlkuu3Xq2vjw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.27", + "@vue/shared": "3.5.27" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/devtools-core": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-8.0.5.tgz", + "integrity": "sha512-dpCw8nl0GDBuiL9SaY0mtDxoGIEmU38w+TQiYEPOLhW03VDC0lfNMYXS/qhl4I0YlysGp04NLY4UNn6xgD0VIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^8.0.5", + "@vue/devtools-shared": "^8.0.5", + "mitt": "^3.0.1", + "nanoid": "^5.1.5", + "pathe": "^2.0.3", + "vite-hot-client": "^2.1.0" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.0.5.tgz", + "integrity": "sha512-q2VV6x1U3KJMTQPUlRMyWEKVbcHuxhqJdSr6Jtjz5uAThAIrfJ6WVZdGZm5cuO63ZnSUz0RCsVwiUUb0mDV0Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^8.0.5", + "birpc": "^2.6.1", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^2.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.0.5.tgz", + "integrity": "sha512-bRLn6/spxpmgLk+iwOrR29KrYnJjG9DGpHGkDFG82UM21ZpJ39ztUT9OXX3g+usW7/b2z+h46I9ZiYyB07XMXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/language-core": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.4.tgz", + "integrity": "sha512-bqBGuSG4KZM45KKTXzGtoCl9cWju5jsaBKaJJe3h5hRAAWpZUuj5G+L+eI01sPIkm4H6setKRlw7E85wLdDNew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.27", + "@vue/compiler-dom": "^3.5.0", + "@vue/shared": "^3.5.0", + "alien-signals": "^3.0.0", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "picomatch": "^4.0.2" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.27", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.27.tgz", + "integrity": "sha512-vvorxn2KXfJ0nBEnj4GYshSgsyMNFnIQah/wczXlsNXt+ijhugmW+PpJ2cNPe4V6jpnBcs0MhCODKllWG+nvoQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.27" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.27", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.27.tgz", + "integrity": "sha512-fxVuX/fzgzeMPn/CLQecWeDIFNt3gQVhxM0rW02Tvp/YmZfXQgcTXlakq7IMutuZ/+Ogbn+K0oct9J3JZfyk3A==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.27", + "@vue/shared": "3.5.27" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.27", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.27.tgz", + "integrity": "sha512-/QnLslQgYqSJ5aUmb5F0z0caZPGHRB8LEAQ1s81vHFM5CBfnun63rxhvE/scVb/j3TbBuoZwkJyiLCkBluMpeg==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.27", + "@vue/runtime-core": "3.5.27", + "@vue/shared": "3.5.27", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.27", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.27.tgz", + "integrity": "sha512-qOz/5thjeP1vAFc4+BY3Nr6wxyLhpeQgAE/8dDtKo6a6xdk+L4W46HDZgNmLOBUDEkFXV3G7pRiUqxjX0/2zWA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.27", + "@vue/shared": "3.5.27" + }, + "peerDependencies": { + "vue": "3.5.27" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.27", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.27.tgz", + "integrity": "sha512-dXr/3CgqXsJkZ0n9F3I4elY8wM9jMJpP3pvRG52r6m0tu/MsAFIe6JpXVGeNMd/D9F4hQynWT8Rfuj0bdm9kFQ==", + "license": "MIT" + }, + "node_modules/@vuepic/vue-datepicker": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@vuepic/vue-datepicker/-/vue-datepicker-7.4.1.tgz", + "integrity": "sha512-sFdBMdFnvf6GMD5Ghaw6IQUbLqlVU1XYzMVJmjD34DggP5k/7866gDyH4CB+4oD6/FpYFL8y3z5sYgY0S8zHig==", + "license": "MIT", + "dependencies": { + "date-fns": "^2.30.0", + "date-fns-tz": "^1.3.7" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "vue": ">=3.2.0" + } + }, + "node_modules/@vuepic/vue-datepicker/node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/@vueuse/components": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/components/-/components-14.1.0.tgz", + "integrity": "sha512-SDRJUAv3H7/PMh+KkYpq0d5KMzpKOfqx4qcV4xyN4mZOLPw8NkiWu+yDcfXwI8h1uCqhRNz2cdeaLa+IuaehFw==", + "license": "MIT", + "dependencies": { + "@vueuse/core": "14.1.0", + "@vueuse/shared": "14.1.0" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/core": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-14.1.0.tgz", + "integrity": "sha512-rgBinKs07hAYyPF834mDTigH7BtPqvZ3Pryuzt1SD/lg5wEcWqvwzXXYGEDb2/cP0Sj5zSvHl3WkmMELr5kfWw==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "14.1.0", + "@vueuse/shared": "14.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/core/node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, + "node_modules/@vueuse/integrations": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-13.9.0.tgz", + "integrity": "sha512-SDobKBbPIOe0cVL7QxMzGkuUGHvWTdihi9zOrrWaWUgFKe15cwEcwfWmgrcNzjT6kHnNmWuTajPHoIzUjYNYYQ==", + "license": "MIT", + "dependencies": { + "@vueuse/core": "13.9.0", + "@vueuse/shared": "13.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "async-validator": "^4", + "axios": "^1", + "change-case": "^5", + "drauu": "^0.4", + "focus-trap": "^7", + "fuse.js": "^7", + "idb-keyval": "^6", + "jwt-decode": "^4", + "nprogress": "^0.2", + "qrcode": "^1.5", + "sortablejs": "^1", + "universal-cookie": "^7 || ^8", + "vue": "^3.5.0" + }, + "peerDependenciesMeta": { + "async-validator": { + "optional": true + }, + "axios": { + "optional": true + }, + "change-case": { + "optional": true + }, + "drauu": { + "optional": true + }, + "focus-trap": { + "optional": true + }, + "fuse.js": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "jwt-decode": { + "optional": true + }, + "nprogress": { + "optional": true + }, + "qrcode": { + "optional": true + }, + "sortablejs": { + "optional": true + }, + "universal-cookie": { + "optional": true + } + } + }, + "node_modules/@vueuse/integrations/node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, + "node_modules/@vueuse/integrations/node_modules/@vueuse/core": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-13.9.0.tgz", + "integrity": "sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "13.9.0", + "@vueuse/shared": "13.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/integrations/node_modules/@vueuse/metadata": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-13.9.0.tgz", + "integrity": "sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/integrations/node_modules/@vueuse/shared": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-13.9.0.tgz", + "integrity": "sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/math": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/math/-/math-13.9.0.tgz", + "integrity": "sha512-Qk2jqlaEGKwwe2/MBGtUd8nPpzoQPSQTfm2d30NPywjpYdpbI+WqOAE99MuSq9kIRoU7Xq3IYBtxMaLTy6lpsA==", + "license": "MIT", + "dependencies": { + "@vueuse/shared": "13.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/math/node_modules/@vueuse/shared": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-13.9.0.tgz", + "integrity": "sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/metadata": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-14.1.0.tgz", + "integrity": "sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/nuxt": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/nuxt/-/nuxt-14.1.0.tgz", + "integrity": "sha512-zw8WSgRrdtsA1daqlFl5ojoTJnvWad/IbMIcHw4EN8Wci09koeFfh5/oKbkKeIQ3gzihvr9x0bu8BVz8Z2auSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^4.1.3", + "@vueuse/core": "14.1.0", + "@vueuse/metadata": "14.1.0", + "local-pkg": "^1.1.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "nuxt": "^3.0.0 || ^4.0.0-0", + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/shared": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-14.1.0.tgz", + "integrity": "sha512-EcKxtYvn6gx1F8z9J5/rsg3+lTQnvOruQd8fUecW99DCK04BkWD7z5KQ/wTAx+DazyoEE9dJt/zV8OIEQbM6kw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", + "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@zip.js/zip.js": { + "version": "2.8.15", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.15.tgz", + "integrity": "sha512-HZKJLFe4eGVgCe9J87PnijY7T1Zn638bEHS+Fm/ygHZozRpefzWcOYfPaP52S8pqk9g4xN3+LzMDl3Lv9dLglA==", + "license": "BSD-3-Clause", + "engines": { + "bun": ">=0.7.0", + "deno": ">=1.0.0", + "node": ">=18.0.0" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "license": "ISC" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/alien-signals": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.1.2.tgz", + "integrity": "sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.2.0.tgz", + "integrity": "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/archiver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.2", + "async": "^3.2.4", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^10.0.0", + "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", + "lazystream": "^1.0.0", + "lodash": "^4.17.15", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/archiver-utils/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/archiver-utils/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "license": "MIT", + "dependencies": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/ast-kit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-2.2.0.tgz", + "integrity": "sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "pathe": "^2.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/ast-walker-scope": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.8.3.tgz", + "integrity": "sha512-cbdCP0PGOBq0ASG+sjnKIoYkWMKhhz+F/h9pRexUdX2Hd38+WOlBkRKlqkGOSm0YQpcFMQBJeK4WspUAkwsEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.4", + "ast-kit": "^2.1.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/async-mutex": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", + "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/async-sema": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", + "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.23", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", + "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001760", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.3.tgz", + "integrity": "sha512-ERT8kdX7DZjtUm7IitEyV7InTHAF42iJuMArIiDIV5YtPanJkgw4hw5Dyg9fh0mihdWNn1GKaeIWErfe56UQ1g==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.15.tgz", + "integrity": "sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.6", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.0.tgz", + "integrity": "sha512-AvDcMxJ34W4Wgy4KBIIePQTAOP1Ie2WFwkQp3dB7FQ/f0lI5+nM96zUnYEOE1P9sEg0es5VCP0HxiWu5fUHZAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.6", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.6.tgz", + "integrity": "sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.6" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.18", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.18.tgz", + "integrity": "sha512-e23vBV1ZLfjb9apvfPk4rHVu2ry6RIr2Wfs+O324okSidrX7pTAnEJPCh/O5BtRlr7QtZI7ktOP3vsqr7Z5XoA==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "dev": true, + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/binary-search": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/binary-search/-/binary-search-1.3.6.tgz", + "integrity": "sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==", + "license": "CC0-1.0" + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/birpc": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", + "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/blob-to-buffer": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/blob-to-buffer/-/blob-to-buffer-1.2.9.tgz", + "integrity": "sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/bowser": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.13.1.tgz", + "integrity": "sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==", + "license": "MIT" + }, + "node_modules/bplist-parser": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", + "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bresenham-zingl": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/bresenham-zingl/-/bresenham-zingl-0.2.5.tgz", + "integrity": "sha512-0TCrPvavRM/3Os9QIUDhe8jpAQXgEYjsVO+9IKnkC8cdzorDX5fMRfr3neEFGjcfRItEswHvIvPrqQzCalRYkw==", + "license": "MIT" + }, + "node_modules/brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.1.2" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-crc32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/byte-length/-/byte-length-1.0.2.tgz", + "integrity": "sha512-ovBpjmsgd/teRmgcPh23d4gJvxDoXtAzEL9xTfMU8Yc2kqCDb7L9jAG0XHl1nzuGl+h3ebCIF1i62UFyA9V/2Q==", + "license": "MIT" + }, + "node_modules/c12": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.3.tgz", + "integrity": "sha512-750hTRvgBy5kcMNPdh95Qo+XUBeGo8C7nsKSmedDmaQI+E0r82DwHeM6vBewDe4rGFbnxoa4V9pw+sPh5+Iz8Q==", + "license": "MIT", + "dependencies": { + "chokidar": "^5.0.0", + "confbox": "^0.2.2", + "defu": "^6.1.4", + "dotenv": "^17.2.3", + "exsolve": "^1.0.8", + "giget": "^2.0.0", + "jiti": "^2.6.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.0.0", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2" + }, + "peerDependencies": { + "magicast": "*" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-content-type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "license": "MIT", + "dependencies": { + "mime-types": "^2.1.18", + "ylru": "^1.2.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001766", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz", + "integrity": "sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/capacitor-plugin-safe-area": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/capacitor-plugin-safe-area/-/capacitor-plugin-safe-area-4.0.3.tgz", + "integrity": "sha512-RteQU+EcwfQFup66fOrlfYNfkGi3jSVwD8YimUAdyZlelriiqRctmKK5ONYXyt+Wd2e5y5F1A081kB9SRHGg2Q==", + "license": "MIT", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chart.js": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.5.1.tgz", + "integrity": "sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==", + "license": "MIT", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=8" + } + }, + "node_modules/cheminfo-types": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/cheminfo-types/-/cheminfo-types-1.10.0.tgz", + "integrity": "sha512-lDoOWfctAQPQrrhydtdb2vV3S8RDuRNp62lzs/gIjNqMNubhsvqr+hI8XQJSy8X1ZXpGvzIQNGBYy4SVrKQNaQ==", + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/client-oauth2": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/client-oauth2/-/client-oauth2-4.3.3.tgz", + "integrity": "sha512-k8AvUYJon0vv75ufoVo4nALYb/qwFFicO3I0+39C6xEdflqVtr+f9cy+0ZxAduoVSTfhP5DX2tY2XICAd5hy6Q==", + "license": "Apache-2.0", + "dependencies": { + "popsicle": "^12.0.5", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/clipboardy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz", + "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^8.0.1", + "is-wsl": "^3.1.0", + "is64bit": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/codex-notifier": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/codex-notifier/-/codex-notifier-1.1.2.tgz", + "integrity": "sha512-DCp6xe/LGueJ1N5sXEwcBc3r3PyVkEEDNWCVigfvywAkeXcZMk9K41a31tkEFBW0Ptlwji6/JlAb49E3Yrxbtg==", + "license": "MIT" + }, + "node_modules/codex-tooltip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/codex-tooltip/-/codex-tooltip-1.0.5.tgz", + "integrity": "sha512-IuA8LeyLU5p1B+HyhOsqR6oxyFQ11k3i9e9aXw40CrHFTRO2Y1npNBVU3W1SvhKAbUU7R/YikUBdcYFP0RcJag==", + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/compatx": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/compatx/-/compatx-0.2.0.tgz", + "integrity": "sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA==", + "dev": true, + "license": "MIT" + }, + "node_modules/compress-commons": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/compress-commons/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie-es": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", + "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==", + "license": "MIT" + }, + "node_modules/cookiejs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/cookiejs/-/cookiejs-2.1.3.tgz", + "integrity": "sha512-pA/nRQVka2eTXm1/Dq8pNt1PN+e1PJNItah0vL15qwpet81/tUfrAp8e0iiVM8WEAzDcTGK5/1hDyR6BdBZMVg==", + "license": "MIT", + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + } + }, + "node_modules/cookies": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", + "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/copy-anything": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-4.0.5.tgz", + "integrity": "sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^5.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-paste": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/copy-paste/-/copy-paste-2.2.0.tgz", + "integrity": "sha512-jqSL4r9DSeiIvJZStLzY/sMLt9ToTM7RsK237lYOTG+KcbQJHGala3R1TUpa8h1p9adswVgIdV4qGbseVhL4lg==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.4.8" + } + }, + "node_modules/core-js-compat": { + "version": "3.48.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.48.0.tgz", + "integrity": "sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", + "dev": true, + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "license": "MIT" + }, + "node_modules/croner": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/croner/-/croner-9.1.0.tgz", + "integrity": "sha512-p9nwwR4qyT5W996vBZhdvBCnMhicY5ytZkR4D1Xj0wuTDEiMnjwR57Q3RXYY/s0EpX6Ay3vgIcfaR+ewGHsi+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0" + } + }, + "node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crossws": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-declaration-sorter": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.3.1.tgz", + "integrity": "sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.2.tgz", + "integrity": "sha512-HYOPBsNvoiFeR1eghKD5C3ASm64v9YVyJB4Ivnl2gqKoQYvjjN/G0rztvKQq8OxocUtC6sjqY8jwYngIB4AByA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^7.0.10", + "lilconfig": "^3.1.3" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/cssnano-preset-default": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.10.tgz", + "integrity": "sha512-6ZBjW0Lf1K1Z+0OKUAUpEN62tSXmYChXWi2NAA0afxEVsj9a+MbcB1l5qel6BHJHmULai2fCGRthCeKSFbScpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^5.0.1", + "postcss-calc": "^10.1.1", + "postcss-colormin": "^7.0.5", + "postcss-convert-values": "^7.0.8", + "postcss-discard-comments": "^7.0.5", + "postcss-discard-duplicates": "^7.0.2", + "postcss-discard-empty": "^7.0.1", + "postcss-discard-overridden": "^7.0.1", + "postcss-merge-longhand": "^7.0.5", + "postcss-merge-rules": "^7.0.7", + "postcss-minify-font-values": "^7.0.1", + "postcss-minify-gradients": "^7.0.1", + "postcss-minify-params": "^7.0.5", + "postcss-minify-selectors": "^7.0.5", + "postcss-normalize-charset": "^7.0.1", + "postcss-normalize-display-values": "^7.0.1", + "postcss-normalize-positions": "^7.0.1", + "postcss-normalize-repeat-style": "^7.0.1", + "postcss-normalize-string": "^7.0.1", + "postcss-normalize-timing-functions": "^7.0.1", + "postcss-normalize-unicode": "^7.0.5", + "postcss-normalize-url": "^7.0.1", + "postcss-normalize-whitespace": "^7.0.1", + "postcss-ordered-values": "^7.0.2", + "postcss-reduce-initial": "^7.0.5", + "postcss-reduce-transforms": "^7.0.1", + "postcss-svgo": "^7.1.0", + "postcss-unique-selectors": "^7.0.4" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/cssnano-utils": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz", + "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/date-fns": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", + "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/date-fns-tz": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-1.3.8.tgz", + "integrity": "sha512-qwNXUFtMHTTU6CFSFjoJ80W8Fzzp24LntbjFFBgL/faqds4e5mo9mftoRLgr3Vi1trISsg4awSpYVsOQCRnapQ==", + "license": "MIT", + "peerDependencies": { + "date-fns": ">=2.0.0" + } + }, + "node_modules/dayjs": { + "version": "1.11.19", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", + "license": "MIT" + }, + "node_modules/db0": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/db0/-/db0-0.3.4.tgz", + "integrity": "sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@electric-sql/pglite": "*", + "@libsql/client": "*", + "better-sqlite3": "*", + "drizzle-orm": "*", + "mysql2": "*", + "sqlite3": "*" + }, + "peerDependenciesMeta": { + "@electric-sql/pglite": { + "optional": true + }, + "@libsql/client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "drizzle-orm": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "sqlite3": { + "optional": true + } + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz", + "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "license": "MIT", + "dependencies": { + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT" + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.2.tgz", + "integrity": "sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg==", + "dev": true, + "license": "MIT" + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/diff": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz", + "integrity": "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-10.1.0.tgz", + "integrity": "sha512-MVUtAugQMOff5RnBy2d9N31iG0lNwg1qAoAOn7pOK5wf94WIaE3My2p3uwTQuvS2AcqchkcR3bHByjaM0mmi7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^5.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotenv": { + "version": "17.2.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", + "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true, + "license": "MIT" + }, + "node_modules/earcut": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz", + "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==", + "license": "ISC" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.279", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.279.tgz", + "integrity": "sha512-0bblUU5UNdOt5G7XqGiJtpZMONma6WAfq9vsFmtn9x1+joAObr6x1chfqyxFSDCAFwFhCQDrqeAr6MYdpwJ9Hg==", + "license": "ISC" + }, + "node_modules/elementtree": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", + "integrity": "sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "sax": "1.1.4" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/engine.io-client": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.4.tgz", + "integrity": "sha512-+kjUJnZGwzewFDw951CDWcwj35vMNf2fcj7xQWOctq1F2i1jkDdVvdFG9kM/BEChymCH36KgjnW0NsL58JYRxw==", + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.18.3", + "xmlhttprequest-ssl": "~2.1.1" + } + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.4", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", + "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-stack-parser-es": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", + "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/errx": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/errx/-/errx-0.1.0.tgz", + "integrity": "sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==", + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", + "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "license": "MIT" + }, + "node_modules/externality": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/externality/-/externality-1.0.2.tgz", + "integrity": "sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "enhanced-resolve": "^5.14.1", + "mlly": "^1.3.0", + "pathe": "^1.1.1", + "ufo": "^1.1.2" + } + }, + "node_modules/externality/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-bmp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/fast-bmp/-/fast-bmp-4.0.1.tgz", + "integrity": "sha512-+KtMijJj+uA8Sl6EXAnhza7US7EXSY5Z9NeiJwT1wopVUksyLMXL5iFmn9FjY8FdkstOkpJI9RuEVXkGpIPSwg==", + "license": "MIT", + "dependencies": { + "iobuffer": "^6.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-jpeg": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-jpeg/-/fast-jpeg-3.0.1.tgz", + "integrity": "sha512-1r4CO4rgRY1CeqaHlXVBPhdGC+rbNwWFJvV9s3HTUC+svqTE7hC1cEH9srp5MPgAmhDdsZ/WtU3WGM8zVobFCA==", + "license": "MIT", + "dependencies": { + "iobuffer": "^6.0.0", + "tiff": "^7.1.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-npm-meta": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/fast-npm-meta/-/fast-npm-meta-0.4.8.tgz", + "integrity": "sha512-ybZVlDZ2PkO79dosM+6CLZfKWRH8MF0PiWlw8M4mVWJl8IEJrPfxYc7Tsu830Dwj/R96LKXfePGTSzKWbPJ08w==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/fast-png": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fast-png/-/fast-png-7.0.1.tgz", + "integrity": "sha512-aD5BELuxRrAPlRhb9V/z1PVMFJy3cUXqIvoxM3IQ+7Rku+T4cbXxWclZ47f1XwhViEl4n30TAN8JmvTJKKc2Dw==", + "license": "MIT", + "dependencies": { + "@types/pako": "^2.0.3", + "iobuffer": "^6.0.0", + "pako": "^2.1.0" + } + }, + "node_modules/fast-sort": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/fast-sort/-/fast-sort-3.4.1.tgz", + "integrity": "sha512-76uvGPsF6So53sZAqenP9UVT3p5l7cyTHkLWVCMinh41Y8NDrK1IYXJgaBMfc1gk7nJiSRZp676kddFG2Aa5+A==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "license": "MIT" + }, + "node_modules/fft.js": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/fft.js/-/fft.js-4.0.4.tgz", + "integrity": "sha512-f9c00hphOgeQTlDyavwTtu6RiK8AIFjD6+jvXkNkpeQ7rirK3uFWVpalkoS4LAwbdX7mfZ8aoBfFVQX1Re/8aw==", + "license": "MIT" + }, + "node_modules/file-type": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz", + "integrity": "sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "license": "MIT" + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fontaine": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/fontaine/-/fontaine-0.5.0.tgz", + "integrity": "sha512-vPDSWKhVAfTx4hRKT777+N6Szh2pAosAuzLpbppZ6O3UdD/1m6OlHjNcC3vIbgkRTIcLjzySLHXzPeLO2rE8cA==", + "license": "MIT", + "dependencies": { + "@capsizecss/metrics": "^2.1.1", + "@capsizecss/unpack": "^2.0.1", + "magic-regexp": "^0.8.0", + "magic-string": "^0.30.8", + "pathe": "^1.1.2", + "ufo": "^1.4.0", + "unplugin": "^1.8.3" + } + }, + "node_modules/fontaine/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/fontkit": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-2.0.4.tgz", + "integrity": "sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.12", + "brotli": "^1.3.2", + "clone": "^2.1.2", + "dfa": "^1.2.0", + "fast-deep-equal": "^3.1.3", + "restructure": "^3.0.0", + "tiny-inflate": "^1.0.3", + "unicode-properties": "^1.4.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fs-extra": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", + "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fuse.js": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz", + "integrity": "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/geojson-vt": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz", + "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==", + "license": "ISC" + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true, + "license": "ISC" + }, + "node_modules/get-port-please": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.2.0.tgz", + "integrity": "sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==", + "dev": true, + "license": "MIT" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/giget": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz", + "integrity": "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==", + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.0", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.6", + "nypm": "^0.6.0", + "pathe": "^2.0.3" + }, + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/git-up": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-8.1.1.tgz", + "integrity": "sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==", + "license": "MIT", + "dependencies": { + "is-ssh": "^1.4.0", + "parse-url": "^9.2.0" + } + }, + "node_modules/git-url-parse": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-16.1.0.tgz", + "integrity": "sha512-cPLz4HuK86wClEW7iDdeAKcCVlWXmrLpb2L+G9goW0Z1dtpNS6BXXSOckUTlJT/LDQViE1QZKstNORzHsLnobw==", + "license": "MIT", + "dependencies": { + "git-up": "^8.1.0" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz", + "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==", + "license": "MIT" + }, + "node_modules/glob": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", + "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "path-scurry": "^2.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "4.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-directory/node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/global-prefix": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-4.0.0.tgz", + "integrity": "sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==", + "license": "MIT", + "dependencies": { + "ini": "^4.1.3", + "kind-of": "^6.0.3", + "which": "^4.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/global-prefix/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/global-prefix/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-16.1.0.tgz", + "integrity": "sha512-+A4Hq7m7Ze592k9gZRy4gJ27DrXRNnC1vPjxTt1qQxEY8RxagBkBxivkCwg7FxSTG0iLLEMaUx13oOr0R2/qcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.5", + "is-path-inside": "^4.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.4.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/google-fonts-helper": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/google-fonts-helper/-/google-fonts-helper-3.7.3.tgz", + "integrity": "sha512-dENZeK6RMvkCOFoKbLbS+pyoDgpmk4U6BYmfXnztMar2d8SjEG6valxql/Lkyi7bu5F+3FTdE+gAEYSYZ5zzMA==", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.3.1", + "hookable": "^5.5.3", + "ofetch": "^1.4.1", + "ufo": "^1.5.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphql": { + "version": "16.12.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.12.0.tgz", + "integrity": "sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/gzip-size": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-7.0.0.tgz", + "integrity": "sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/h3": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.5.tgz", + "integrity": "sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg==", + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.2", + "crossws": "^0.3.5", + "defu": "^6.1.4", + "destr": "^2.0.5", + "iron-webcrypto": "^1.2.1", + "node-mock-http": "^1.0.4", + "radix3": "^1.1.2", + "ufo": "^1.6.3", + "uncrypto": "^0.1.3" + } + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT" + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "license": "ISC" + }, + "node_modules/http-assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "license": "MIT", + "dependencies": { + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-assert/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-assert/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-assert/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-shutdown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz", + "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/httpxy": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/httpxy/-/httpxy-0.1.7.tgz", + "integrity": "sha512-pXNx8gnANKAndgga5ahefxc++tJvNL87CXoRwxn1cJE2ZkWEojF3tNfQIEhZX/vfpt+wzeAzpUI4qkediX1MLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/image-js/-/image-js-1.3.0.tgz", + "integrity": "sha512-0CiWH00qI84cUQD76bC7/XV3nd6DB4zrPktAd7VTvU4PGcnOMNB2l2uEeZWMrzGSuyAM7cXzYNXE7RPPYi3G9A==", + "license": "MIT", + "dependencies": { + "bresenham-zingl": "^0.2.5", + "colord": "^2.9.3", + "fast-bmp": "^4.0.1", + "fast-jpeg": "^3.0.1", + "fast-png": "^7.0.1", + "image-type": "^4.1.0", + "jpeg-js": "^0.4.4", + "js-priority-queue": "^0.1.5", + "median-quickselect": "^1.0.1", + "ml-affine-transform": "^1.0.3", + "ml-convolution": "^2.0.0", + "ml-matrix": "^6.12.1", + "ml-ransac": "^1.0.0", + "ml-regression-multivariate-linear": "^2.0.4", + "ml-regression-polynomial-2d": "^1.0.0", + "ml-spectra-processing": "^14.18.0", + "robust-point-in-polygon": "^1.0.3", + "skia-canvas": "^3.0.8", + "ssim.js": "^3.5.0", + "tiff": "^7.1.2", + "ts-pattern": "^5.9.0", + "uint8-base64": "^1.0.0" + } + }, + "node_modules/image-meta": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/image-meta/-/image-meta-0.2.2.tgz", + "integrity": "sha512-3MOLanc3sb3LNGWQl1RlQlNWURE5g32aUphrDyFeCsxBTk08iE3VNe4CwsUZ0Qs1X+EfX0+r29Sxdpza4B+yRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/image-type": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/image-type/-/image-type-4.1.0.tgz", + "integrity": "sha512-CFJMJ8QK8lJvRlTCEgarL4ro6hfDQKif2HjSvYCdQZESaIPV4v9imrf7BQHK+sQeTeNeMpWciR9hyC/g8ybXEg==", + "license": "MIT", + "dependencies": { + "file-type": "^10.10.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/immutable": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", + "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", + "license": "MIT" + }, + "node_modules/impound": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/impound/-/impound-1.0.0.tgz", + "integrity": "sha512-8lAJ+1Arw2sMaZ9HE2ZmL5zOcMnt18s6+7Xqgq2aUVy4P1nlzAyPtzCDxsk51KVFwHEEdc6OWvUyqwHwhRYaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "exsolve": "^1.0.5", + "mocked-exports": "^0.1.1", + "pathe": "^2.0.3", + "unplugin": "^2.3.2", + "unplugin-utils": "^0.2.4" + } + }, + "node_modules/impound/node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "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.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/iobuffer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/iobuffer/-/iobuffer-6.0.1.tgz", + "integrity": "sha512-SZWYkWNfjIXIBYSDpXDYIgshqtbOPsi4lviawAEceR1Kqk+sHDlcQjWrzNQsii80AyBY0q5c8HCTNjqo74ul+Q==", + "license": "MIT" + }, + "node_modules/ioredis": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.9.2.tgz", + "integrity": "sha512-tAAg/72/VxOUW7RQSX1pIxJVucYKcjFjfvj60L57jrZpYCHC3XN0WCQ3sNYL4Gmvv+7GPvTAjc+KSdeNuE8oWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ioredis/commands": "1.5.0", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.1.0", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, + "node_modules/is-any-array": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz", + "integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==", + "license": "MIT" + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-1.0.0.tgz", + "integrity": "sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-directory": "^4.0.1", + "is-path-inside": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ssh": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.1.tgz", + "integrity": "sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==", + "license": "MIT", + "dependencies": { + "protocols": "^2.0.1" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-what": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-5.5.0.tgz", + "integrity": "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is64bit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz", + "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "system-architecture": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.9.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.6", + "filelist": "^1.0.4", + "picocolors": "^1.1.1" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", + "license": "BSD-3-Clause" + }, + "node_modules/js-priority-queue": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/js-priority-queue/-/js-priority-queue-0.1.5.tgz", + "integrity": "sha512-2dPmJT4GbXUpob7AZDR1wFMKz3Biy6oW69mwt5PTtdeoOgDin1i0p5gUV9k0LFeUxDpwkfr+JGMZDpcprjiY5w==", + "license": "Public Domain" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", + "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", + "license": "ISC" + }, + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "dependencies": { + "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/knitwork": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/knitwork/-/knitwork-1.3.0.tgz", + "integrity": "sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==", + "license": "MIT" + }, + "node_modules/koa": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.16.3.tgz", + "integrity": "sha512-zPPuIt+ku1iCpFBRwseMcPYQ1cJL8l60rSmKeOuGfOXyE6YnTBmf2aEFNL2HQGrD0cPcLO/t+v9RTgC+fwEh/g==", + "license": "MIT", + "dependencies": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.9.0", + "debug": "^4.3.2", + "delegates": "^1.0.0", + "depd": "^2.0.0", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^2.0.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" + }, + "engines": { + "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" + } + }, + "node_modules/koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "license": "MIT" + }, + "node_modules/koa-convert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", + "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", + "license": "MIT", + "dependencies": { + "co": "^4.6.0", + "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/koa-send": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", + "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "http-errors": "^1.7.3", + "resolve-path": "^1.4.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/koa-send/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa-send/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa-send/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa-static": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", + "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", + "license": "MIT", + "dependencies": { + "debug": "^3.1.0", + "koa-send": "^5.0.0" + }, + "engines": { + "node": ">= 7.6.0" + } + }, + "node_modules/koa-static/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/koa/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/koa/node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/node_modules/http-errors/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "license": "MIT" + }, + "node_modules/launch-editor": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.12.0.tgz", + "integrity": "sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "license": "BSD-2-Clause" + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/license-checker": { + "version": "25.0.1", + "resolved": "https://registry.npmjs.org/license-checker/-/license-checker-25.0.1.tgz", + "integrity": "sha512-mET5AIwl7MR2IAKYYoVBBpV0OnkKQ1xGj2IMMeEFIs42QAkEVjRtFZGWmQ28WeU7MP779iAgOaOy93Mn44mn6g==", + "license": "BSD-3-Clause", + "dependencies": { + "chalk": "^2.4.1", + "debug": "^3.1.0", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "read-installed": "~4.0.3", + "semver": "^5.5.0", + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-satisfies": "^4.0.0", + "treeify": "^1.1.0" + }, + "bin": { + "license-checker": "bin/license-checker" + } + }, + "node_modules/license-checker/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/license-checker/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/linkifyjs": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.2.tgz", + "integrity": "sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==", + "license": "MIT" + }, + "node_modules/listhen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.9.0.tgz", + "integrity": "sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/watcher": "^2.4.1", + "@parcel/watcher-wasm": "^2.4.1", + "citty": "^0.1.6", + "clipboardy": "^4.0.0", + "consola": "^3.2.3", + "crossws": ">=0.2.0 <0.4.0", + "defu": "^6.1.4", + "get-port-please": "^3.1.2", + "h3": "^1.12.0", + "http-shutdown": "^1.2.2", + "jiti": "^2.1.2", + "mlly": "^1.7.1", + "node-forge": "^1.3.1", + "pathe": "^1.1.2", + "std-env": "^3.7.0", + "ufo": "^1.5.4", + "untun": "^0.1.3", + "uqr": "^0.1.2" + }, + "bin": { + "listen": "bin/listhen.mjs", + "listhen": "bin/listhen.mjs" + } + }, + "node_modules/listhen/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/local-pkg": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz", + "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "license": "Apache-2.0", + "dependencies": { + "lie": "3.1.1" + } + }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-regexp": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/magic-regexp/-/magic-regexp-0.8.0.tgz", + "integrity": "sha512-lOSLWdE156csDYwCTIGiAymOLN7Epu/TU5e/oAnISZfU6qP+pgjkE+xbVjVn3yLPKN8n1G2yIAYTAM5KRk6/ow==", + "license": "MIT", + "dependencies": { + "estree-walker": "^3.0.3", + "magic-string": "^0.30.8", + "mlly": "^1.6.1", + "regexp-tree": "^0.1.27", + "type-level-regexp": "~0.1.17", + "ufo": "^1.4.0", + "unplugin": "^1.8.3" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magic-string-ast": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-1.0.3.tgz", + "integrity": "sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.19" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/magicast": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.1.tgz", + "integrity": "sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "source-map-js": "^1.2.1" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "license": "ISC" + }, + "node_modules/make-error-cause": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-2.3.0.tgz", + "integrity": "sha512-etgt+n4LlOkGSJbBTV9VROHA5R7ekIPS4vfh+bCAoJgRrJWdqJCBbpS3osRJ/HrT7R68MzMiY3L3sDJ/Fd8aBg==", + "license": "Apache-2.0", + "dependencies": { + "make-error": "^1.3.5" + } + }, + "node_modules/maplibre-gl": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.7.1.tgz", + "integrity": "sha512-lgL7XpIwsgICiL82ITplfS7IGwrB1OJIw/pCvprDp2dhmSSEBgmPzYRvwYYYvJGJD7fxUv1Tvpih4nZ6VrLuaA==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.6", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "@maplibre/maplibre-gl-style-spec": "^20.3.1", + "@types/geojson": "^7946.0.14", + "@types/geojson-vt": "3.2.5", + "@types/mapbox__point-geometry": "^0.1.4", + "@types/mapbox__vector-tile": "^1.3.4", + "@types/pbf": "^3.0.5", + "@types/supercluster": "^7.1.3", + "earcut": "^3.0.0", + "geojson-vt": "^4.0.2", + "gl-matrix": "^3.4.3", + "global-prefix": "^4.0.0", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^3.3.0", + "potpack": "^2.0.0", + "quickselect": "^3.0.0", + "supercluster": "^8.0.1", + "tinyqueue": "^3.0.0", + "vt-pbf": "^3.1.3" + }, + "engines": { + "node": ">=16.14.0", + "npm": ">=8.1.0" + }, + "funding": { + "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + } + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/median-quickselect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/median-quickselect/-/median-quickselect-1.0.1.tgz", + "integrity": "sha512-/QL9ptNuLsdA68qO+2o10TKCyu621zwwTFdLvtu8rzRNKsn8zvuGoq/vDxECPyELFG8wu+BpyoMR9BnsJqfVZQ==", + "license": "ISC" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.1.0.tgz", + "integrity": "sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa" + ], + "license": "MIT", + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "license": "MIT", + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ml-affine-transform": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ml-affine-transform/-/ml-affine-transform-1.0.3.tgz", + "integrity": "sha512-uv13li9HOGuMdSKL+QEdaV25emO9kt17LzGCD+FLQrBsrU8p/r/3kS/GJ7xI+f3/aWghkBK733x0yBG6EwKFJA==", + "license": "MIT", + "dependencies": { + "ml-matrix": "^6.10.4" + } + }, + "node_modules/ml-array-max": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/ml-array-max/-/ml-array-max-1.2.4.tgz", + "integrity": "sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==", + "license": "MIT", + "dependencies": { + "is-any-array": "^2.0.0" + } + }, + "node_modules/ml-array-median": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/ml-array-median/-/ml-array-median-1.1.6.tgz", + "integrity": "sha512-V6bV6bTPFRX8v5CaAx/7fuRXC39LLTHfPSVZZafdNaqNz2PFL5zEA7gesjv8dMXh+gwPeUMtB5QPovlTBaa4sw==", + "license": "MIT", + "dependencies": { + "is-any-array": "^2.0.0", + "median-quickselect": "^1.0.1" + } + }, + "node_modules/ml-array-min": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/ml-array-min/-/ml-array-min-1.2.3.tgz", + "integrity": "sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q==", + "license": "MIT", + "dependencies": { + "is-any-array": "^2.0.0" + } + }, + "node_modules/ml-array-rescale": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz", + "integrity": "sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ==", + "license": "MIT", + "dependencies": { + "is-any-array": "^2.0.0", + "ml-array-max": "^1.2.4", + "ml-array-min": "^1.2.3" + } + }, + "node_modules/ml-convolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ml-convolution/-/ml-convolution-2.0.0.tgz", + "integrity": "sha512-ExW6zVmN2YGuyO3aBiS1ymybme3nVgv2ccCfynSdgtW5sNp4DOHnfow4K/ErTDMQ1s9tINjv7kvzjnVhQHXJBA==", + "license": "MIT", + "dependencies": { + "fft.js": "^4.0.3", + "next-power-of-two": "^1.0.0" + } + }, + "node_modules/ml-matrix": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.12.1.tgz", + "integrity": "sha512-TJ+8eOFdp+INvzR4zAuwBQJznDUfktMtOB6g/hUcGh3rcyjxbz4Te57Pgri8Q9bhSQ7Zys4IYOGhFdnlgeB6Lw==", + "license": "MIT", + "dependencies": { + "is-any-array": "^2.0.1", + "ml-array-rescale": "^1.3.7" + } + }, + "node_modules/ml-random": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/ml-random/-/ml-random-0.5.0.tgz", + "integrity": "sha512-zLJBmNb34LOz+vN6BD8l3aYm/VWYWbmAunrLMPs4dHf4gTl8BWlhil72j56HubPg86zrXioIs4qoHq7Topy6tw==", + "license": "MIT", + "dependencies": { + "ml-xsadd": "^2.0.0" + } + }, + "node_modules/ml-ransac": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ml-ransac/-/ml-ransac-1.0.0.tgz", + "integrity": "sha512-fGi45s7T5+BEqdb5JqZC699w2riy6j0tzuZ2ZP63xavRa/yVKQIbUbj4XiE4XMr9T7HSiq1D9y0uybiyikDPvA==", + "license": "MIT", + "dependencies": { + "ml-array-median": "^1.1.6", + "ml-matrix": "^6.10.4", + "ml-random": "^0.5.0" + } + }, + "node_modules/ml-regression-base": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ml-regression-base/-/ml-regression-base-4.0.0.tgz", + "integrity": "sha512-V2VjB+K/BcgXaX450xvYw36TLOB+piD9G1pHU3VE+ggQUApsVGkYco6UMQykFOwBydHnDTbOiybH/lwrkqFT4g==", + "license": "MIT", + "dependencies": { + "cheminfo-types": "^1.7.3", + "is-any-array": "^2.0.1" + } + }, + "node_modules/ml-regression-multivariate-linear": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/ml-regression-multivariate-linear/-/ml-regression-multivariate-linear-2.0.4.tgz", + "integrity": "sha512-/vShPAlP+mB7P2mC5TuXwObSJNl/UBI71/bszt9ilTg6yLKy6btDLpAYyJNa6t+JnL5a7q+Yy4dCltfpvqXRIw==", + "license": "MIT", + "dependencies": { + "ml-matrix": "^6.10.1" + } + }, + "node_modules/ml-regression-polynomial-2d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ml-regression-polynomial-2d/-/ml-regression-polynomial-2d-1.0.0.tgz", + "integrity": "sha512-r34kaawZKMwjORIdzpa/o5fnjlTXkkaLJ3B4vvFNeKlvEGPtApqFxbDRmw07e2CjUH2MhGIChpMeXp/XB3Iogg==", + "license": "MIT", + "dependencies": { + "cheminfo-types": "^1.7.3", + "is-any-array": "^2.0.1", + "ml-matrix": "^6.11.0", + "ml-regression-base": "^4.0.0" + } + }, + "node_modules/ml-spectra-processing": { + "version": "14.19.0", + "resolved": "https://registry.npmjs.org/ml-spectra-processing/-/ml-spectra-processing-14.19.0.tgz", + "integrity": "sha512-PbvRh/cFneCDY629qpURsaq58oz0pF+TM8w5lLtvAVfZmA6QOHEf5eh93n73HXS7HgkAzLJNXnKefCW8kSBmKQ==", + "license": "MIT", + "dependencies": { + "binary-search": "^1.3.6", + "cheminfo-types": "^1.10.0", + "fft.js": "^4.0.4", + "is-any-array": "^2.0.1", + "ml-matrix": "^6.12.1", + "ml-xsadd": "^3.0.1" + } + }, + "node_modules/ml-spectra-processing/node_modules/ml-xsadd": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ml-xsadd/-/ml-xsadd-3.0.1.tgz", + "integrity": "sha512-Fz2q6dwgzGM8wYKGArTUTZDGa4lQFA2Vi6orjGeTVRy22ZnQFKlJuwS9n8NRviqz1KHAHAzdKJwbnYhdo38uYg==", + "license": "MIT" + }, + "node_modules/ml-xsadd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ml-xsadd/-/ml-xsadd-2.0.0.tgz", + "integrity": "sha512-VoAYUqmPRmzKbbqRejjqceGFp3VF81Qe8XXFGU0UXLxB7Mf4GGvyGq5Qn3k4AiQgDEV6WzobqlPOd+j0+m6IrA==", + "license": "MIT" + }, + "node_modules/mlly": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/mocked-exports": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/mocked-exports/-/mocked-exports-0.1.1.tgz", + "integrity": "sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.6.tgz", + "integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/nanotar": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nanotar/-/nanotar-0.2.0.tgz", + "integrity": "sha512-9ca1h0Xjvo9bEkE4UOxgAzLV0jHKe6LMaxo37ND2DAhhAtd0j8pR1Wxz+/goMrZO8AEZTWCmyaOsFI/W5AdpCQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/native-run": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/native-run/-/native-run-2.0.3.tgz", + "integrity": "sha512-U1PllBuzW5d1gfan+88L+Hky2eZx+9gv3Pf6rNBxKbORxi7boHzqiA6QFGSnqMem4j0A9tZ08NMIs5+0m/VS1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ionic/utils-fs": "^3.1.7", + "@ionic/utils-terminal": "^2.3.4", + "bplist-parser": "^0.3.2", + "debug": "^4.3.4", + "elementtree": "^0.1.7", + "ini": "^4.1.1", + "plist": "^3.1.0", + "split2": "^4.2.0", + "through2": "^4.0.2", + "tslib": "^2.6.2", + "yauzl": "^2.10.0" + }, + "bin": { + "native-run": "bin/native-run" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/next-power-of-two": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-power-of-two/-/next-power-of-two-1.0.0.tgz", + "integrity": "sha512-+z6QY1SxkDk6CQJAeaIZKmcNubBCRP7J8DMQUBglz/sSkNsZoJ1kULjqk9skNPPplzs4i9PFhYrvNDdtQleF/A==", + "license": "MIT" + }, + "node_modules/nitropack": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/nitropack/-/nitropack-2.13.1.tgz", + "integrity": "sha512-2dDj89C4wC2uzG7guF3CnyG+zwkZosPEp7FFBGHB3AJo11AywOolWhyQJFHDzve8COvGxJaqscye9wW2IrUsNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cloudflare/kv-asset-handler": "^0.4.2", + "@rollup/plugin-alias": "^6.0.0", + "@rollup/plugin-commonjs": "^29.0.0", + "@rollup/plugin-inject": "^5.0.5", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^16.0.3", + "@rollup/plugin-replace": "^6.0.3", + "@rollup/plugin-terser": "^0.4.4", + "@vercel/nft": "^1.2.0", + "archiver": "^7.0.1", + "c12": "^3.3.3", + "chokidar": "^5.0.0", + "citty": "^0.1.6", + "compatx": "^0.2.0", + "confbox": "^0.2.2", + "consola": "^3.4.2", + "cookie-es": "^2.0.0", + "croner": "^9.1.0", + "crossws": "^0.3.5", + "db0": "^0.3.4", + "defu": "^6.1.4", + "destr": "^2.0.5", + "dot-prop": "^10.1.0", + "esbuild": "^0.27.2", + "escape-string-regexp": "^5.0.0", + "etag": "^1.8.1", + "exsolve": "^1.0.8", + "globby": "^16.1.0", + "gzip-size": "^7.0.0", + "h3": "^1.15.5", + "hookable": "^5.5.3", + "httpxy": "^0.1.7", + "ioredis": "^5.9.1", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "listhen": "^1.9.0", + "magic-string": "^0.30.21", + "magicast": "^0.5.1", + "mime": "^4.1.0", + "mlly": "^1.8.0", + "node-fetch-native": "^1.6.7", + "node-mock-http": "^1.0.4", + "ofetch": "^1.5.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.0.0", + "pkg-types": "^2.3.0", + "pretty-bytes": "^7.1.0", + "radix3": "^1.1.2", + "rollup": "^4.55.1", + "rollup-plugin-visualizer": "^6.0.5", + "scule": "^1.3.0", + "semver": "^7.7.3", + "serve-placeholder": "^2.0.2", + "serve-static": "^2.2.1", + "source-map": "^0.7.6", + "std-env": "^3.10.0", + "ufo": "^1.6.3", + "ultrahtml": "^1.6.0", + "uncrypto": "^0.1.3", + "unctx": "^2.5.0", + "unenv": "^2.0.0-rc.24", + "unimport": "^5.6.0", + "unplugin-utils": "^0.3.1", + "unstorage": "^1.17.4", + "untyped": "^2.0.0", + "unwasm": "^0.5.3", + "youch": "^4.1.0-beta.13", + "youch-core": "^0.3.3" + }, + "bin": { + "nitro": "dist/cli/index.mjs", + "nitropack": "dist/cli/index.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "xml2js": "^0.6.2" + }, + "peerDependenciesMeta": { + "xml2js": { + "optional": true + } + } + }, + "node_modules/nitropack/node_modules/cookie-es": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.0.tgz", + "integrity": "sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==", + "dev": true, + "license": "MIT" + }, + "node_modules/nitropack/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nitropack/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/nitropack/node_modules/unplugin-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.1.tgz", + "integrity": "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==", + "dev": true, + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "license": "MIT" + }, + "node_modules/node-forge": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz", + "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "dev": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-mock-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.4.tgz", + "integrity": "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "license": "MIT" + }, + "node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "license": "ISC", + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "license": "ISC" + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nuxt": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/nuxt/-/nuxt-3.21.0.tgz", + "integrity": "sha512-K3vX68M0lXbqzvehWb+y6/YqAF+m7MEQQ3mtbcm34ynzB6OpFOJoZV9scBzFd5LehLoYl55CSNpY5vsupyJw7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@dxup/nuxt": "^0.3.2", + "@nuxt/cli": "^3.32.0", + "@nuxt/devtools": "^3.1.1", + "@nuxt/kit": "3.21.0", + "@nuxt/nitro-server": "3.21.0", + "@nuxt/schema": "3.21.0", + "@nuxt/telemetry": "^2.6.6", + "@nuxt/vite-builder": "3.21.0", + "@unhead/vue": "^2.1.2", + "@vue/shared": "^3.5.27", + "c12": "^3.3.3", + "chokidar": "^5.0.0", + "compatx": "^0.2.0", + "consola": "^3.4.2", + "cookie-es": "^2.0.0", + "defu": "^6.1.4", + "destr": "^2.0.5", + "devalue": "^5.6.2", + "errx": "^0.1.0", + "escape-string-regexp": "^5.0.0", + "exsolve": "^1.0.8", + "h3": "^1.15.5", + "hookable": "^5.5.3", + "ignore": "^7.0.5", + "impound": "^1.0.0", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "magic-string": "^0.30.21", + "mlly": "^1.8.0", + "nanotar": "^0.2.0", + "nypm": "^0.6.2", + "ofetch": "^1.5.1", + "ohash": "^2.0.11", + "on-change": "^6.0.1", + "oxc-minify": "^0.110.0", + "oxc-parser": "^0.110.0", + "oxc-transform": "^0.110.0", + "oxc-walker": "^0.7.0", + "pathe": "^2.0.3", + "perfect-debounce": "^2.0.0", + "pkg-types": "^2.3.0", + "rou3": "^0.7.12", + "scule": "^1.3.0", + "semver": "^7.7.3", + "std-env": "^3.10.0", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "ultrahtml": "^1.6.0", + "uncrypto": "^0.1.3", + "unctx": "^2.5.0", + "unimport": "^5.6.0", + "unplugin": "^2.3.11", + "unplugin-vue-router": "^0.19.2", + "untyped": "^2.0.0", + "vue": "^3.5.27", + "vue-router": "^4.6.4" + }, + "bin": { + "nuxi": "bin/nuxt.mjs", + "nuxt": "bin/nuxt.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@parcel/watcher": "^2.1.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "peerDependenciesMeta": { + "@parcel/watcher": { + "optional": true + }, + "@types/node": { + "optional": true + } + } + }, + "node_modules/nuxt-editorjs": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nuxt-editorjs/-/nuxt-editorjs-1.0.4.tgz", + "integrity": "sha512-ibINkIDIuwq0MaP0WjICAWEOsM/5AqZ4na7w/ui6atPo9t5FWwUaWQqrz3hcMie96YzI2gmYqaYdDREAu0A27Q==", + "license": "MIT", + "dependencies": { + "@editorjs/editorjs": "^2.25.0", + "@editorjs/header": "^2.6.2", + "@editorjs/list": "^1.7.0", + "@nuxt/kit": "^3.0.0-rc.4" + } + }, + "node_modules/nuxt-editorjs/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/nuxt-viewport": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/nuxt-viewport/-/nuxt-viewport-2.3.1.tgz", + "integrity": "sha512-XffVwSzJdODUjHeNWT933RlYEWVx2bGSXX4U7hCYwCtRfF8v+WCOFfagiF/uQyW1Nq6FzEoYkt6291hy1TK7zw==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.13.0", + "bowser": "^2.11.0", + "cookiejs": "^2.1.3", + "vue-demi": "^0.14.6" + } + }, + "node_modules/nuxt-viewport/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/nuxt/node_modules/@nuxt/kit": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.0.tgz", + "integrity": "sha512-KMTLK/dsGaQioZzkYUvgfN9le4grNW54aNcA1jqzgVZLcFVy4jJfrJr5WZio9NT2EMfajdoZ+V28aD7BRr4Zfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^2.1.2", + "scule": "^1.3.0", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/nuxt/node_modules/cookie-es": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.0.tgz", + "integrity": "sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==", + "dev": true, + "license": "MIT" + }, + "node_modules/nuxt/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nuxt/node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/nypm": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.4.tgz", + "integrity": "sha512-1TvCKjZyyklN+JJj2TS3P4uSQEInrM/HkkuSXsEzm1ApPgBffOn8gFguNnZf07r/1X6vlryfIqMUkJKQMzlZiw==", + "license": "MIT", + "dependencies": { + "citty": "^0.2.0", + "pathe": "^2.0.3", + "tinyexec": "^1.0.2" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/nypm/node_modules/citty": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.0.tgz", + "integrity": "sha512-8csy5IBFI2ex2hTVpaHN2j+LNE199AgiI7y4dMintrr8i0lQiFn+0AWMZrWdHKIgMOer65f8IThysYhoReqjWA==", + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, + "node_modules/ofetch": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz", + "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", + "license": "MIT", + "dependencies": { + "destr": "^2.0.5", + "node-fetch-native": "^1.6.7", + "ufo": "^1.6.1" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "license": "MIT" + }, + "node_modules/on-change": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/on-change/-/on-change-6.0.1.tgz", + "integrity": "sha512-P7o0hkMahOhjb1niG28vLNAXsJrRcfpJvYWcTmPt/Tf4xedcF2PA1E9++N1tufY8/vIsaiJgHhjQp53hJCe+zw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sindresorhus/on-change?sponsor=1" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onesignal-cordova-plugin": { + "version": "5.2.19", + "resolved": "https://registry.npmjs.org/onesignal-cordova-plugin/-/onesignal-cordova-plugin-5.2.19.tgz", + "integrity": "sha512-RGaEJTD3bFwxhsOZNgCB9XR31fLg8fy/PXclXMZfc8ohoKUq6jhEz0aE4AWON9XZx7eO+wbmd3dxn2U5AlZMKg==", + "engines": [ + { + "name": "cordova-android", + "version": ">=4.0.0" + }, + { + "name": "apple-xcode", + "version": ">=8.0.0" + }, + { + "name": "apple-ios", + "version": ">=7.0.0" + }, + { + "name": "cordova", + "version": ">=6.4.0" + }, + { + "name": "cordova-ios", + "version": ">=4.3.0" + } + ], + "license": "MIT" + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==" + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/orderedmap": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", + "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", + "license": "MIT" + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/oxc-minify": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/oxc-minify/-/oxc-minify-0.110.0.tgz", + "integrity": "sha512-KWGTzPo83QmGrXC4ml83PM9HDwUPtZFfasiclUvTV4i3/0j7xRRqINVkrL77CbQnoWura3CMxkRofjQKVDuhBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-minify/binding-android-arm-eabi": "0.110.0", + "@oxc-minify/binding-android-arm64": "0.110.0", + "@oxc-minify/binding-darwin-arm64": "0.110.0", + "@oxc-minify/binding-darwin-x64": "0.110.0", + "@oxc-minify/binding-freebsd-x64": "0.110.0", + "@oxc-minify/binding-linux-arm-gnueabihf": "0.110.0", + "@oxc-minify/binding-linux-arm-musleabihf": "0.110.0", + "@oxc-minify/binding-linux-arm64-gnu": "0.110.0", + "@oxc-minify/binding-linux-arm64-musl": "0.110.0", + "@oxc-minify/binding-linux-ppc64-gnu": "0.110.0", + "@oxc-minify/binding-linux-riscv64-gnu": "0.110.0", + "@oxc-minify/binding-linux-riscv64-musl": "0.110.0", + "@oxc-minify/binding-linux-s390x-gnu": "0.110.0", + "@oxc-minify/binding-linux-x64-gnu": "0.110.0", + "@oxc-minify/binding-linux-x64-musl": "0.110.0", + "@oxc-minify/binding-openharmony-arm64": "0.110.0", + "@oxc-minify/binding-wasm32-wasi": "0.110.0", + "@oxc-minify/binding-win32-arm64-msvc": "0.110.0", + "@oxc-minify/binding-win32-ia32-msvc": "0.110.0", + "@oxc-minify/binding-win32-x64-msvc": "0.110.0" + } + }, + "node_modules/oxc-parser": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.110.0.tgz", + "integrity": "sha512-GijUR3K1Ln/QwMyYXRsBtOyzqGaCs9ce5pOug1UtrMg8dSiE7VuuRuIcyYD4nyJbasat3K0YljiKt/PSFPdSBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "^0.110.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-parser/binding-android-arm-eabi": "0.110.0", + "@oxc-parser/binding-android-arm64": "0.110.0", + "@oxc-parser/binding-darwin-arm64": "0.110.0", + "@oxc-parser/binding-darwin-x64": "0.110.0", + "@oxc-parser/binding-freebsd-x64": "0.110.0", + "@oxc-parser/binding-linux-arm-gnueabihf": "0.110.0", + "@oxc-parser/binding-linux-arm-musleabihf": "0.110.0", + "@oxc-parser/binding-linux-arm64-gnu": "0.110.0", + "@oxc-parser/binding-linux-arm64-musl": "0.110.0", + "@oxc-parser/binding-linux-ppc64-gnu": "0.110.0", + "@oxc-parser/binding-linux-riscv64-gnu": "0.110.0", + "@oxc-parser/binding-linux-riscv64-musl": "0.110.0", + "@oxc-parser/binding-linux-s390x-gnu": "0.110.0", + "@oxc-parser/binding-linux-x64-gnu": "0.110.0", + "@oxc-parser/binding-linux-x64-musl": "0.110.0", + "@oxc-parser/binding-openharmony-arm64": "0.110.0", + "@oxc-parser/binding-wasm32-wasi": "0.110.0", + "@oxc-parser/binding-win32-arm64-msvc": "0.110.0", + "@oxc-parser/binding-win32-ia32-msvc": "0.110.0", + "@oxc-parser/binding-win32-x64-msvc": "0.110.0" + } + }, + "node_modules/oxc-transform": { + "version": "0.110.0", + "resolved": "https://registry.npmjs.org/oxc-transform/-/oxc-transform-0.110.0.tgz", + "integrity": "sha512-/fymQNzzUoKZweH0nC5yvbI2eR0yWYusT9TEKDYVgOgYrf9Qmdez9lUFyvxKR9ycx+PTHi/reIOzqf3wkShQsw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-transform/binding-android-arm-eabi": "0.110.0", + "@oxc-transform/binding-android-arm64": "0.110.0", + "@oxc-transform/binding-darwin-arm64": "0.110.0", + "@oxc-transform/binding-darwin-x64": "0.110.0", + "@oxc-transform/binding-freebsd-x64": "0.110.0", + "@oxc-transform/binding-linux-arm-gnueabihf": "0.110.0", + "@oxc-transform/binding-linux-arm-musleabihf": "0.110.0", + "@oxc-transform/binding-linux-arm64-gnu": "0.110.0", + "@oxc-transform/binding-linux-arm64-musl": "0.110.0", + "@oxc-transform/binding-linux-ppc64-gnu": "0.110.0", + "@oxc-transform/binding-linux-riscv64-gnu": "0.110.0", + "@oxc-transform/binding-linux-riscv64-musl": "0.110.0", + "@oxc-transform/binding-linux-s390x-gnu": "0.110.0", + "@oxc-transform/binding-linux-x64-gnu": "0.110.0", + "@oxc-transform/binding-linux-x64-musl": "0.110.0", + "@oxc-transform/binding-openharmony-arm64": "0.110.0", + "@oxc-transform/binding-wasm32-wasi": "0.110.0", + "@oxc-transform/binding-win32-arm64-msvc": "0.110.0", + "@oxc-transform/binding-win32-ia32-msvc": "0.110.0", + "@oxc-transform/binding-win32-x64-msvc": "0.110.0" + } + }, + "node_modules/oxc-walker": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/oxc-walker/-/oxc-walker-0.7.0.tgz", + "integrity": "sha512-54B4KUhrzbzc4sKvKwVYm7E2PgeROpGba0/2nlNZMqfDyca+yOor5IMb4WLGBatGDT0nkzYdYuzylg7n3YfB7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-regexp": "^0.10.0" + }, + "peerDependencies": { + "oxc-parser": ">=0.98.0" + } + }, + "node_modules/oxc-walker/node_modules/magic-regexp": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/magic-regexp/-/magic-regexp-0.10.0.tgz", + "integrity": "sha512-Uly1Bu4lO1hwHUW0CQeSWuRtzCMNO00CmXtS8N6fyvB3B979GOEEeAkiTUDsmbYLAbvpUS/Kt5c4ibosAzVyVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12", + "mlly": "^1.7.2", + "regexp-tree": "^0.1.27", + "type-level-regexp": "~0.1.17", + "ufo": "^1.5.4", + "unplugin": "^2.0.0" + } + }, + "node_modules/oxc-walker/node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/package-manager-detector": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", + "license": "MIT" + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" + }, + "node_modules/papaparse": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.3.tgz", + "integrity": "sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==", + "license": "MIT" + }, + "node_modules/parenthesis": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz", + "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==", + "license": "MIT" + }, + "node_modules/parse-path": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.1.0.tgz", + "integrity": "sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==", + "license": "MIT", + "dependencies": { + "protocols": "^2.0.0" + } + }, + "node_modules/parse-url": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-9.2.0.tgz", + "integrity": "sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==", + "license": "MIT", + "dependencies": { + "@types/parse-path": "^7.0.0", + "parse-path": "^7.0.0" + }, + "engines": { + "node": ">=14.13.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz", + "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/pbf": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz", + "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/pdf-lib": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/pdf-lib/-/pdf-lib-1.17.1.tgz", + "integrity": "sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==", + "license": "MIT", + "dependencies": { + "@pdf-lib/standard-fonts": "^1.0.0", + "@pdf-lib/upng": "^1.0.1", + "pako": "^1.0.11", + "tslib": "^1.11.1" + } + }, + "node_modules/pdf-lib/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/pdf-lib/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/pdfjs-dist": { + "version": "4.10.38", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.10.38.tgz", + "integrity": "sha512-/Y3fcFrXEAsMjJXeL9J8+ZG9U01LbuWaYypvDW2ycW1jL269L3js3DVBjDJ0Up9Np1uqDXsDrRihHANhZOlwdQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=20" + }, + "optionalDependencies": { + "@napi-rs/canvas": "^0.1.65" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", + "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinia": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.3.1.tgz", + "integrity": "sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.3", + "vue-demi": "^0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.4.4", + "vue": "^2.7.0 || ^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/plist": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/popsicle": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/popsicle/-/popsicle-12.1.2.tgz", + "integrity": "sha512-xE2vEUa15TiHvFhGmKTtdKk9aSLL5CHX8Vw5kHfVM3R0YHiaTon6Ybsamw0XYqMR+Ng2RijX88iYUKPBMpLBww==", + "license": "MIT", + "dependencies": { + "popsicle-content-encoding": "^1.0.0", + "popsicle-cookie-jar": "^1.0.1", + "popsicle-redirects": "^1.1.0", + "popsicle-transport-http": "^1.1.0", + "popsicle-transport-xhr": "^2.0.0", + "popsicle-user-agent": "^1.0.0", + "servie": "^4.3.3", + "throwback": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/popsicle-content-encoding": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/popsicle-content-encoding/-/popsicle-content-encoding-1.0.0.tgz", + "integrity": "sha512-4Df+vTfM8wCCJVTzPujiI6eOl3SiWQkcZg0AMrOkD1enMXsF3glIkFUZGvour1Sj7jOWCsNSEhBxpbbhclHhzw==", + "license": "MIT", + "peerDependencies": { + "servie": "^4.0.0" + } + }, + "node_modules/popsicle-cookie-jar": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/popsicle-cookie-jar/-/popsicle-cookie-jar-1.0.1.tgz", + "integrity": "sha512-QVIZhADP8nDbXIQW6wq8GU9IOSE8INUACO/9KD9TFKQ7qq8r/y3qUDz59xIi6p6TH19lCJJyBAPSXP1liIoySw==", + "license": "MIT", + "dependencies": { + "@types/tough-cookie": "^4.0.2", + "tough-cookie": "^4.1.3" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "servie": "^4.0.0" + } + }, + "node_modules/popsicle-redirects": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/popsicle-redirects/-/popsicle-redirects-1.1.1.tgz", + "integrity": "sha512-mC2HrKjdTAWDalOjGxlXw9j6Qxrz/Yd2ui6bPxpi2IQDYWpF4gUAMxbA8EpSWJhLi0PuWKDwTHHPrUPGutAoIA==", + "license": "MIT", + "peerDependencies": { + "servie": "^4.1.0" + } + }, + "node_modules/popsicle-transport-http": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/popsicle-transport-http/-/popsicle-transport-http-1.2.1.tgz", + "integrity": "sha512-i5r3IGHkGiBDm1oPFvOfEeSGWR0lQJcsdTqwvvDjXqcTHYJJi4iSi3ecXIttDiTBoBtRAFAE9nF91fspQr63FQ==", + "license": "MIT", + "dependencies": { + "make-error-cause": "^2.2.0" + }, + "peerDependencies": { + "servie": "^4.2.0" + } + }, + "node_modules/popsicle-transport-xhr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/popsicle-transport-xhr/-/popsicle-transport-xhr-2.0.0.tgz", + "integrity": "sha512-5Sbud4Widngf1dodJE5cjEYXkzEUIl8CzyYRYR57t6vpy9a9KPGQX6KBKdPjmBZlR5A06pOBXuJnVr23l27rtA==", + "license": "MIT", + "peerDependencies": { + "servie": "^4.2.0" + } + }, + "node_modules/popsicle-user-agent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/popsicle-user-agent/-/popsicle-user-agent-1.0.0.tgz", + "integrity": "sha512-epKaq3TTfTzXcxBxjpoKYMcTTcAX8Rykus6QZu77XNhJuRHSRxMd+JJrbX/3PFI0opFGSN0BabbAYCbGxbu0mA==", + "license": "MIT", + "peerDependencies": { + "servie": "^4.0.0" + } + }, + "node_modules/portfinder": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz", + "integrity": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==", + "license": "MIT", + "dependencies": { + "async": "^3.2.6", + "debug": "^4.3.6" + }, + "engines": { + "node": ">= 10.12" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz", + "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12 || ^20.9 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.38" + } + }, + "node_modules/postcss-calc/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-colormin": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.5.tgz", + "integrity": "sha512-ekIBP/nwzRWhEMmIxHHbXHcMdzd1HIUzBECaj5KEdLz9DVP2HzT065sEhvOx1dkLjYW7jyD0CngThx6bpFi2fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-convert-values": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.8.tgz", + "integrity": "sha512-+XNKuPfkHTCEo499VzLMYn94TiL3r9YqRE3Ty+jP7UX4qjewUONey1t7CG21lrlTLN07GtGM8MqFVp86D4uKJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-comments": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.5.tgz", + "integrity": "sha512-IR2Eja8WfYgN5n32vEGSctVQ1+JARfu4UH8M7bgGh1bC+xI/obsPJXaBpQF7MAByvgwZinhpHpdrmXtvVVlKcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-comments/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz", + "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-empty": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz", + "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz", + "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-merge-longhand": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz", + "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^7.0.5" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-merge-rules": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.7.tgz", + "integrity": "sha512-njWJrd/Ms6XViwowaaCc+/vqhPG3SmXn725AGrnl+BgTuRPEacjiLEaGq16J6XirMJbtKkTwnt67SS+e2WGoew==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^5.0.1", + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz", + "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz", + "integrity": "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-params": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.5.tgz", + "integrity": "sha512-FGK9ky02h6Ighn3UihsyeAH5XmLEE2MSGH5Tc4tXMFtEDx7B+zTG6hD/+/cT+fbF7PbYojsmmWjyTwFwW1JKQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.5.tgz", + "integrity": "sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-nesting": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz", + "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-resolve-nested": "^3.1.0", + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz", + "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz", + "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz", + "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz", + "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz", + "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-string": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz", + "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz", + "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.5.tgz", + "integrity": "sha512-X6BBwiRxVaFHrb2WyBMddIeB5HBjJcAaUHyhLrM2FsxSq5TFqcHSsK7Zu1otag+o0ZphQGJewGH1tAyrD0zX1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-url": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz", + "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz", + "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-ordered-values": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz", + "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.5.tgz", + "integrity": "sha512-RHagHLidG8hTZcnr4FpyMB2jtgd/OcyAazjMhoy5qmWJOx1uxKh4ntk0Pb46ajKM0rkf32lRH4C8c9qQiPR6IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz", + "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.0.tgz", + "integrity": "sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^4.0.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.4.tgz", + "integrity": "sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-unique-selectors/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/potpack": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.1.0.tgz", + "integrity": "sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==", + "license": "ISC" + }, + "node_modules/preact": { + "version": "10.12.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz", + "integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/pretty-bytes": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-7.1.0.tgz", + "integrity": "sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/prosemirror-changeset": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.3.1.tgz", + "integrity": "sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==", + "license": "MIT", + "dependencies": { + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-collab": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz", + "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0" + } + }, + "node_modules/prosemirror-commands": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", + "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.10.2" + } + }, + "node_modules/prosemirror-dropcursor": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.2.tgz", + "integrity": "sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0", + "prosemirror-view": "^1.1.0" + } + }, + "node_modules/prosemirror-gapcursor": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.4.0.tgz", + "integrity": "sha512-z00qvurSdCEWUIulij/isHaqu4uLS8r/Fi61IbjdIPJEonQgggbJsLnstW7Lgdk4zQ68/yr6B6bf7sJXowIgdQ==", + "license": "MIT", + "dependencies": { + "prosemirror-keymap": "^1.0.0", + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-view": "^1.0.0" + } + }, + "node_modules/prosemirror-history": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.5.0.tgz", + "integrity": "sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.2.2", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.31.0", + "rope-sequence": "^1.3.0" + } + }, + "node_modules/prosemirror-inputrules": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.1.tgz", + "integrity": "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-keymap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", + "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "w3c-keyname": "^2.2.0" + } + }, + "node_modules/prosemirror-markdown": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.3.tgz", + "integrity": "sha512-3E+Et6cdXIH0EgN2tGYQ+EBT7N4kMiZFsW+hzx+aPtOmADDHWCdd2uUQb7yklJrfUYUOjEEu22BiN6UFgPe4cQ==", + "license": "MIT", + "dependencies": { + "@types/markdown-it": "^14.0.0", + "markdown-it": "^14.0.0", + "prosemirror-model": "^1.25.0" + } + }, + "node_modules/prosemirror-menu": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.5.tgz", + "integrity": "sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==", + "license": "MIT", + "dependencies": { + "crelt": "^1.0.0", + "prosemirror-commands": "^1.0.0", + "prosemirror-history": "^1.0.0", + "prosemirror-state": "^1.0.0" + } + }, + "node_modules/prosemirror-model": { + "version": "1.25.4", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.4.tgz", + "integrity": "sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==", + "license": "MIT", + "dependencies": { + "orderedmap": "^2.0.0" + } + }, + "node_modules/prosemirror-schema-basic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.4.tgz", + "integrity": "sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.25.0" + } + }, + "node_modules/prosemirror-schema-list": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz", + "integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.7.3" + } + }, + "node_modules/prosemirror-state": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.4.tgz", + "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.27.0" + } + }, + "node_modules/prosemirror-tables": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.8.5.tgz", + "integrity": "sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw==", + "license": "MIT", + "dependencies": { + "prosemirror-keymap": "^1.2.3", + "prosemirror-model": "^1.25.4", + "prosemirror-state": "^1.4.4", + "prosemirror-transform": "^1.10.5", + "prosemirror-view": "^1.41.4" + } + }, + "node_modules/prosemirror-trailing-node": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-3.0.0.tgz", + "integrity": "sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==", + "license": "MIT", + "dependencies": { + "@remirror/core-constants": "3.0.0", + "escape-string-regexp": "^4.0.0" + }, + "peerDependencies": { + "prosemirror-model": "^1.22.1", + "prosemirror-state": "^1.4.2", + "prosemirror-view": "^1.33.8" + } + }, + "node_modules/prosemirror-trailing-node/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prosemirror-transform": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.11.0.tgz", + "integrity": "sha512-4I7Ce4KpygXb9bkiPS3hTEk4dSHorfRw8uI0pE8IhxlK2GXsqv5tIA7JUSxtSu7u8APVOTtbUBxTmnHIxVkIJw==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.21.0" + } + }, + "node_modules/prosemirror-view": { + "version": "1.41.5", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.5.tgz", + "integrity": "sha512-UDQbIPnDrjE8tqUBbPmCOZgtd75htE6W3r0JCmY9bL6W1iemDM37MZEKC49d+tdQ0v/CKx4gjxLoLsfkD2NiZA==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.20.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0" + } + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", + "license": "MIT" + }, + "node_modules/protocols": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.2.tgz", + "integrity": "sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==", + "license": "MIT" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quickselect": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", + "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", + "license": "ISC" + }, + "node_modules/radix3": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc9": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", + "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==", + "license": "MIT", + "dependencies": { + "defu": "^6.1.4", + "destr": "^2.0.3" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-installed": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", + "integrity": "sha512-O03wg/IYuV/VtnK2h/KXEt9VIbMUFbk3ERG0Iu4FhLZw0EP0T9znqrYDGn6ncbEsXUFaUjiVAWXHzxwt3lhRPQ==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/read-installed/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "dev": true, + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "dev": true, + "license": "MIT", + "dependencies": { + "redis-errors": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "license": "MIT", + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/reka-ui": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/reka-ui/-/reka-ui-2.7.0.tgz", + "integrity": "sha512-m+XmxQN2xtFzBP3OAdIafKq7C8OETo2fqfxcIIxYmNN2Ch3r5oAf6yEYCIJg5tL/yJU2mHqF70dCCekUkrAnXA==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.6.13", + "@floating-ui/vue": "^1.1.6", + "@internationalized/date": "^3.5.0", + "@internationalized/number": "^3.5.0", + "@tanstack/vue-virtual": "^3.12.0", + "@vueuse/core": "^12.5.0", + "@vueuse/shared": "^12.5.0", + "aria-hidden": "^1.2.4", + "defu": "^6.1.4", + "ohash": "^2.0.11" + }, + "peerDependencies": { + "vue": ">= 3.2.0" + } + }, + "node_modules/reka-ui/node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, + "node_modules/reka-ui/node_modules/@vueuse/core": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-12.8.2.tgz", + "integrity": "sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "12.8.2", + "@vueuse/shared": "12.8.2", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/reka-ui/node_modules/@vueuse/metadata": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-12.8.2.tgz", + "integrity": "sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/reka-ui/node_modules/@vueuse/shared": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-12.8.2.tgz", + "integrity": "sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==", + "license": "MIT", + "dependencies": { + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/replace-in-file": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.3.5.tgz", + "integrity": "sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "glob": "^7.2.0", + "yargs": "^17.2.1" + }, + "bin": { + "replace-in-file": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/replace-in-file/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/replace-in-file/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/replace-in-file/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/replace-in-file/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/replace-in-file/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/replace-in-file/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/replace-in-file/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/replace-in-file/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/replace-in-file/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-path": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", + "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", + "license": "MIT", + "dependencies": { + "http-errors": "~1.6.2", + "path-is-absolute": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/resolve-path/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/resolve-path/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/resolve-path/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" + }, + "node_modules/resolve-path/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "license": "ISC" + }, + "node_modules/resolve-path/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "license": "MIT", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "node_modules/restructure": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/restructure/-/restructure-3.0.2.tgz", + "integrity": "sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==", + "license": "MIT" + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.2.tgz", + "integrity": "sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "glob": "^13.0.0", + "package-json-from-dist": "^1.0.1" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/robust-orientation": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/robust-orientation/-/robust-orientation-1.2.1.tgz", + "integrity": "sha512-FuTptgKwY6iNuU15nrIJDLjXzCChWB+T4AvksRtwPS/WZ3HuP1CElCm1t+OBfgQKfWbtZIawip+61k7+buRKAg==", + "license": "MIT", + "dependencies": { + "robust-scale": "^1.0.2", + "robust-subtract": "^1.0.0", + "robust-sum": "^1.0.0", + "two-product": "^1.0.2" + } + }, + "node_modules/robust-point-in-polygon": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/robust-point-in-polygon/-/robust-point-in-polygon-1.0.3.tgz", + "integrity": "sha512-pPzz7AevOOcPYnFv4Vs5L0C7BKOq6C/TfAw5EUE58CylbjGiPyMjAnPLzzSuPZ2zftUGwWbmLWPOjPOz61tAcA==", + "license": "MIT", + "dependencies": { + "robust-orientation": "^1.0.2" + } + }, + "node_modules/robust-scale": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/robust-scale/-/robust-scale-1.0.2.tgz", + "integrity": "sha512-jBR91a/vomMAzazwpsPTPeuTPPmWBacwA+WYGNKcRGSh6xweuQ2ZbjRZ4v792/bZOhRKXRiQH0F48AvuajY0tQ==", + "license": "MIT", + "dependencies": { + "two-product": "^1.0.2", + "two-sum": "^1.0.0" + } + }, + "node_modules/robust-subtract": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-subtract/-/robust-subtract-1.0.0.tgz", + "integrity": "sha512-xhKUno+Rl+trmxAIVwjQMiVdpF5llxytozXJOdoT4eTIqmqsndQqFb1A0oiW3sZGlhMRhOi6pAD4MF1YYW6o/A==", + "license": "MIT" + }, + "node_modules/robust-sum": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-sum/-/robust-sum-1.0.0.tgz", + "integrity": "sha512-AvLExwpaqUqD1uwLU6MwzzfRdaI6VEZsyvQ3IAQ0ZJ08v1H+DTyqskrf2ZJyh0BDduFVLN7H04Zmc+qTiahhAw==", + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.56.0.tgz", + "integrity": "sha512-9FwVqlgUHzbXtDg9RCMgodF3Ua4Na6Gau+Sdt9vyCN4RhHfVKX2DCHy3BjMLTDd47ITDhYAnTwGulWTblJSDLg==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.56.0", + "@rollup/rollup-android-arm64": "4.56.0", + "@rollup/rollup-darwin-arm64": "4.56.0", + "@rollup/rollup-darwin-x64": "4.56.0", + "@rollup/rollup-freebsd-arm64": "4.56.0", + "@rollup/rollup-freebsd-x64": "4.56.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.56.0", + "@rollup/rollup-linux-arm-musleabihf": "4.56.0", + "@rollup/rollup-linux-arm64-gnu": "4.56.0", + "@rollup/rollup-linux-arm64-musl": "4.56.0", + "@rollup/rollup-linux-loong64-gnu": "4.56.0", + "@rollup/rollup-linux-loong64-musl": "4.56.0", + "@rollup/rollup-linux-ppc64-gnu": "4.56.0", + "@rollup/rollup-linux-ppc64-musl": "4.56.0", + "@rollup/rollup-linux-riscv64-gnu": "4.56.0", + "@rollup/rollup-linux-riscv64-musl": "4.56.0", + "@rollup/rollup-linux-s390x-gnu": "4.56.0", + "@rollup/rollup-linux-x64-gnu": "4.56.0", + "@rollup/rollup-linux-x64-musl": "4.56.0", + "@rollup/rollup-openbsd-x64": "4.56.0", + "@rollup/rollup-openharmony-arm64": "4.56.0", + "@rollup/rollup-win32-arm64-msvc": "4.56.0", + "@rollup/rollup-win32-ia32-msvc": "4.56.0", + "@rollup/rollup-win32-x64-gnu": "4.56.0", + "@rollup/rollup-win32-x64-msvc": "4.56.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-visualizer": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-6.0.5.tgz", + "integrity": "sha512-9+HlNgKCVbJDs8tVtjQ43US12eqaiHyyiLMdBwQ7vSZPiHMysGNo2E88TAp1si5wx8NAoYriI2A5kuKfIakmJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "open": "^8.0.0", + "picomatch": "^4.0.2", + "source-map": "^0.7.4", + "yargs": "^17.5.1" + }, + "bin": { + "rollup-plugin-visualizer": "dist/bin/cli.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "rolldown": "1.x || ^1.0.0-beta", + "rollup": "2.x || 3.x || 4.x" + }, + "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, + "rollup": { + "optional": true + } + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/rope-sequence": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", + "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", + "license": "MIT" + }, + "node_modules/rou3": { + "version": "0.7.12", + "resolved": "https://registry.npmjs.org/rou3/-/rou3-0.7.12.tgz", + "integrity": "sha512-iFE4hLDuloSWcD7mjdCDhx2bKcIsYbtOTpfH5MHHLSKMOUyjqQXTeZVa289uuwEGEKFoE/BAPbhaU4B774nceg==", + "dev": true, + "license": "MIT" + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sass": { + "version": "1.97.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", + "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sax": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", + "integrity": "sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==", + "dev": true, + "license": "ISC" + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/send/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/seroval": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.5.0.tgz", + "integrity": "sha512-OE4cvmJ1uSPrKorFIH9/w/Qwuvi/IMcGbv5RKgcJ/zjA/IohDLU6SVaxFN9FwajbP7nsX0dQqMDes1whk3y+yw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/serve-placeholder": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/serve-placeholder/-/serve-placeholder-2.0.2.tgz", + "integrity": "sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "defu": "^6.1.4" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/servie": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/servie/-/servie-4.3.3.tgz", + "integrity": "sha512-b0IrY3b1gVMsWvJppCf19g1p3JSnS0hQi6xu4Hi40CIhf0Lx8pQHcvBL+xunShpmOiQzg1NOia812NAWdSaShw==", + "license": "Apache-2.0", + "dependencies": { + "@servie/events": "^1.0.0", + "byte-length": "^1.0.2", + "ts-expect": "^1.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/simple-git": { + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.30.0.tgz", + "integrity": "sha512-q6lxyDsCmEal/MEGhP1aVyQ3oxnagGlBDOVSIB4XUVLl1iZh0Pah6ebC9V4xBap/RfgP2WlI8EKs0WS0rMEJHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/steveukx/git-js?sponsor=1" + } + }, + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/skia-canvas": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/skia-canvas/-/skia-canvas-3.0.8.tgz", + "integrity": "sha512-FSYKxp8Ng2vOeeOBiyPhnn6ui6FirPJXMyjk4PKl8N/OWzVrkMawUgY9zubIWHMdYtyWFn0gfX3QlRwg6HBmdg==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.1.1", + "follow-redirects": "^1.15.11", + "https-proxy-agent": "^7.0.6", + "string-split-by": "^1.0.0" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/smob": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", + "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", + "dev": true, + "license": "MIT" + }, + "node_modules/smooth-dnd": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/smooth-dnd/-/smooth-dnd-0.12.1.tgz", + "integrity": "sha512-Dndj/MOG7VP83mvzfGCLGzV2HuK1lWachMtWl/Iuk6zV7noDycIBnflwaPuDzoaapEl3Pc4+ybJArkkx9sxPZg==", + "license": "MIT" + }, + "node_modules/socket.io-client": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.3.tgz", + "integrity": "sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==", + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1", + "engine.io-client": "~6.6.1", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.5.tgz", + "integrity": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==", + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sortablejs": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz", + "integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true, + "license": "MIT" + }, + "node_modules/spdx-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", + "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", + "license": "MIT", + "dependencies": { + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "license": "CC0-1.0" + }, + "node_modules/spdx-ranges": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz", + "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==", + "license": "(MIT AND CC-BY-3.0)" + }, + "node_modules/spdx-satisfies": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-4.0.1.tgz", + "integrity": "sha512-WVzZ/cXAzoNmjCWiEluEA3BjHp5tiUmmhn9MK+X0tBbR9sOqtC6UQwmgCNrAIZvNlMuBUYAaHYfb2oqlF9SwKA==", + "license": "MIT", + "dependencies": { + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/srvx": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/srvx/-/srvx-0.10.1.tgz", + "integrity": "sha512-A//xtfak4eESMWWydSRFUVvCTQbSwivnGCEf8YGPe2eHU0+Z6znfUTCPF0a7oV3sObSOcrXHlL6Bs9vVctfXdg==", + "dev": true, + "license": "MIT", + "bin": { + "srvx": "bin/srvx.mjs" + }, + "engines": { + "node": ">=20.16.0" + } + }, + "node_modules/ssim.js": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/ssim.js/-/ssim.js-3.5.0.tgz", + "integrity": "sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g==", + "license": "MIT" + }, + "node_modules/standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", + "dev": true, + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/streamx": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-split-by": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", + "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", + "license": "MIT", + "dependencies": { + "parenthesis": "^3.1.5" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/structured-clone-es": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/structured-clone-es/-/structured-clone-es-1.0.0.tgz", + "integrity": "sha512-FL8EeKFFyNQv5cMnXI31CIMCsFarSVI2bF0U0ImeNE3g/F1IvJQyqzOXxPBRXiwQfyBTlbNe88jh1jFW0O/jiQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/stylehacks": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.7.tgz", + "integrity": "sha512-bJkD0JkEtbRrMFtwgpJyBbFIwfDDONQ1Ov3sDLZQP8HuJ73kBOyx66H4bOcAbVWmnfLdvQ0AJwXxOMkpujcO6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "license": "ISC", + "dependencies": { + "kdbush": "^4.0.2" + } + }, + "node_modules/superjson": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.6.tgz", + "integrity": "sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-anything": "^4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.0.tgz", + "integrity": "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^11.1.0", + "css-select": "^5.1.0", + "css-tree": "^3.0.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "^1.4.1" + }, + "bin": { + "svgo": "bin/svgo.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/svgo/node_modules/sax": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", + "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/system-architecture": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz", + "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tailwind-config-viewer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/tailwind-config-viewer/-/tailwind-config-viewer-2.0.4.tgz", + "integrity": "sha512-icvcmdMmt9dphvas8wL40qttrHwAnW3QEN4ExJ2zICjwRsPj7gowd1cOceaWG3IfTuM/cTNGQcx+bsjMtmV+cw==", + "license": "MIT", + "dependencies": { + "@koa/router": "^12.0.1", + "commander": "^6.0.0", + "fs-extra": "^9.0.1", + "koa": "^2.14.2", + "koa-static": "^5.0.0", + "open": "^7.0.4", + "portfinder": "^1.0.26", + "replace-in-file": "^6.1.0" + }, + "bin": { + "tailwind-config-viewer": "cli/index.js", + "tailwindcss-config-viewer": "cli/index.js" + }, + "engines": { + "node": ">=13" + }, + "peerDependencies": { + "tailwindcss": "1 || 2 || 2.0.1-compat || 3" + } + }, + "node_modules/tailwind-config-viewer/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwind-config-viewer/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tailwind-config-viewer/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tailwind-config-viewer/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tailwind-config-viewer/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tailwind-merge": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-safe-area-capacitor": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/tailwindcss-safe-area-capacitor/-/tailwindcss-safe-area-capacitor-0.5.1.tgz", + "integrity": "sha512-ieyA7odik1IKff+0QRVdKnCdmJl+XS6yXY70ALstBC87g5eNgSkCrsKyRVAatuX6jTyeRryHzaOFkqzFI/ZbTA==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "tailwindcss": "^2.0.0 || >=3.0.0" + } + }, + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tailwindcss/node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/tailwindcss/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tailwindcss/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "deprecated": "Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", + "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "devOptional": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/throwback": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throwback/-/throwback-4.1.0.tgz", + "integrity": "sha512-dLFe8bU8SeH0xeqeKL7BNo8XoPC/o91nz9/ooeplZPiso+DZukhoyZcSz9TFnUNScm+cA9qjU1m1853M6sPOng==", + "license": "MIT" + }, + "node_modules/tiff": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/tiff/-/tiff-7.1.3.tgz", + "integrity": "sha512-YEEq3fT++2pdta/9P/vGG4QRMdZQoe6W6JNaWnIi6NvAsbeNITwFCtmWwL/BZvOi+uo2I3ohyOkD3sZfme+c6g==", + "license": "MIT", + "dependencies": { + "fflate": "^0.8.2", + "iobuffer": "^6.0.0" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyqueue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", + "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", + "license": "ISC" + }, + "node_modules/tippy.js": { + "version": "6.3.7", + "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", + "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==", + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.9.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/treeify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", + "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-expect": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-expect/-/ts-expect-1.3.0.tgz", + "integrity": "sha512-e4g0EJtAjk64xgnFPD6kTBUtpnMVzDrMb12N1YZV0VvSlhnVT3SGxiYTLdGy8Q5cYHOIC/FAHmZ10eGrAguicQ==", + "license": "MIT" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/ts-pattern": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-5.9.0.tgz", + "integrity": "sha512-6s5V71mX8qBUmlgbrfL33xDUwO0fq48rxAu2LBE11WBeGdpCPOsXksQbZJHvHwhrd3QjUusd3mAOM5Gg0mFBLg==", + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "license": "MIT", + "engines": { + "node": ">=0.6.x" + } + }, + "node_modules/two-product": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/two-product/-/two-product-1.0.2.tgz", + "integrity": "sha512-vOyrqmeYvzjToVM08iU52OFocWT6eB/I5LUWYnxeAPGXAhAxXYU/Yr/R2uY5/5n4bvJQL9AQulIuxpIsMoT8XQ==", + "license": "MIT" + }, + "node_modules/two-sum": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/two-sum/-/two-sum-1.0.0.tgz", + "integrity": "sha512-phP48e8AawgsNUjEY2WvoIWqdie8PoiDZGxTDv70LDr01uX5wLEQbOgSP7Z/B6+SW5oLtbe8qaYX2fKJs3CGTw==", + "license": "MIT" + }, + "node_modules/type-fest": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.4.1.tgz", + "integrity": "sha512-xygQcmneDyzsEuKZrFbRMne5HDqMs++aFzefrJTgEIKjQ3rekM+RPfFCVq2Gp1VIDqddoYeppCj4Pcb+RZW0GQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-level-regexp": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/type-level-regexp/-/type-level-regexp-0.1.17.tgz", + "integrity": "sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==", + "license": "MIT" + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "license": "MIT" + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uint8-base64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uint8-base64/-/uint8-base64-1.0.0.tgz", + "integrity": "sha512-B6ZJfEZL2FAhbIyZZ7WlQq8MPq1X1P1DUA//LsSv/vB4r+Dao5/BPoxgw2t+t1XyvoSfBkE7zI4SYsnGj7BmlQ==", + "license": "MIT" + }, + "node_modules/ultrahtml": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.6.0.tgz", + "integrity": "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "license": "MIT" + }, + "node_modules/unctx": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/unctx/-/unctx-2.5.0.tgz", + "integrity": "sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==", + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21", + "unplugin": "^2.3.11" + } + }, + "node_modules/unctx/node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/unenv": { + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.24.tgz", + "integrity": "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3" + } + }, + "node_modules/unhead": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unhead/-/unhead-2.1.2.tgz", + "integrity": "sha512-vSihrxyb+zsEUfEbraZBCjdE0p/WSoc2NGDrpwwSNAwuPxhYK1nH3eegf02IENLpn1sUhL8IoO84JWmRQ6tILA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookable": "^6.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/unhead/node_modules/hookable": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.0.1.tgz", + "integrity": "sha512-uKGyY8BuzN/a5gvzvA+3FVWo0+wUjgtfSdnmjtrOVwQCZPHpHDH2WRO3VZSOeluYrHoDCiXFffZXs8Dj1ULWtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-properties": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", + "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "license": "MIT", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unicode-trie/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", + "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unimport": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/unimport/-/unimport-5.6.0.tgz", + "integrity": "sha512-8rqAmtJV8o60x46kBAJKtHpJDJWkA2xcBqWKPI14MgUb05o1pnpnCnXSxedUXyeq7p8fR5g3pTo2BaswZ9lD9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "local-pkg": "^1.1.2", + "magic-string": "^0.30.21", + "mlly": "^1.8.0", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "pkg-types": "^2.3.0", + "scule": "^1.3.0", + "strip-literal": "^3.1.0", + "tinyglobby": "^0.2.15", + "unplugin": "^2.3.11", + "unplugin-utils": "^0.3.1" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unimport/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unimport/node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unimport/node_modules/unplugin-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.1.tgz", + "integrity": "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==", + "dev": true, + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unplugin": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz", + "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/unplugin-utils": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.2.5.tgz", + "integrity": "sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/unplugin-vue-router": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/unplugin-vue-router/-/unplugin-vue-router-0.19.2.tgz", + "integrity": "sha512-u5dgLBarxE5cyDK/hzJGfpCTLIAyiTXGlo85COuD4Nssj6G7NxS+i9mhCWz/1p/ud1eMwdcUbTXehQe41jYZUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/generator": "^7.28.5", + "@vue-macros/common": "^3.1.1", + "@vue/language-core": "^3.2.1", + "ast-walker-scope": "^0.8.3", + "chokidar": "^5.0.0", + "json5": "^2.2.3", + "local-pkg": "^1.1.2", + "magic-string": "^0.30.21", + "mlly": "^1.8.0", + "muggle-string": "^0.4.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "scule": "^1.3.0", + "tinyglobby": "^0.2.15", + "unplugin": "^2.3.11", + "unplugin-utils": "^0.3.1", + "yaml": "^2.8.2" + }, + "peerDependencies": { + "@vue/compiler-sfc": "^3.5.17", + "vue-router": "^4.6.0" + }, + "peerDependenciesMeta": { + "vue-router": { + "optional": true + } + } + }, + "node_modules/unplugin-vue-router/node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unplugin-vue-router/node_modules/unplugin-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.1.tgz", + "integrity": "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==", + "dev": true, + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/unstorage": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.4.tgz", + "integrity": "sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^5.0.0", + "destr": "^2.0.5", + "h3": "^1.15.5", + "lru-cache": "^11.2.0", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.5.1", + "ufo": "^1.6.3" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6 || ^7 || ^8", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", + "@vercel/kv": "^1 || ^2 || ^3", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/functions": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/unstorage/node_modules/lru-cache": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz", + "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/untun": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/untun/-/untun-0.1.3.tgz", + "integrity": "sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.1.5", + "consola": "^3.2.3", + "pathe": "^1.1.1" + }, + "bin": { + "untun": "bin/untun.mjs" + } + }, + "node_modules/untun/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/untyped": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/untyped/-/untyped-2.0.0.tgz", + "integrity": "sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==", + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "defu": "^6.1.4", + "jiti": "^2.4.2", + "knitwork": "^1.2.0", + "scule": "^1.3.0" + }, + "bin": { + "untyped": "dist/cli.mjs" + } + }, + "node_modules/unwasm": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/unwasm/-/unwasm-0.5.3.tgz", + "integrity": "sha512-keBgTSfp3r6+s9ZcSma+0chwxQdmLbB5+dAD9vjtB21UTMYuKAxHXCU1K2CbCtnP09EaWeRvACnXk0EJtUx+hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "exsolve": "^1.0.8", + "knitwork": "^1.3.0", + "magic-string": "^0.30.21", + "mlly": "^1.8.0", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uqr": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/uqr/-/uqr-0.1.2.tgz", + "integrity": "sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==", + "dev": true, + "license": "MIT" + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/util-extend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==", + "license": "MIT" + }, + "node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "node_modules/uuidv4": { + "version": "6.2.13", + "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.13.tgz", + "integrity": "sha512-AXyzMjazYB3ovL3q051VLH06Ixj//Knx7QnUSi1T//Ie3io6CpsPu9nVMOx5MoLWh6xV0B9J0hIaxungxXUbPQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "dependencies": { + "@types/uuid": "8.3.4", + "uuid": "8.3.2" + } + }, + "node_modules/uuidv4/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v-calendar": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/v-calendar/-/v-calendar-3.1.2.tgz", + "integrity": "sha512-QDWrnp4PWCpzUblctgo4T558PrHgHzDtQnTeUNzKxfNf29FkCeFpwGd9bKjAqktaa2aJLcyRl45T5ln1ku34kg==", + "license": "MIT", + "dependencies": { + "@types/lodash": "^4.14.165", + "@types/resize-observer-browser": "^0.1.7", + "date-fns": "^2.16.1", + "date-fns-tz": "^2.0.0", + "lodash": "^4.17.20", + "vue-screen-utils": "^1.0.0-beta.13" + }, + "peerDependencies": { + "@popperjs/core": "^2.0.0", + "vue": "^3.2.0" + } + }, + "node_modules/v-calendar/node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/v-calendar/node_modules/date-fns-tz": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-2.0.1.tgz", + "integrity": "sha512-fJCG3Pwx8HUoLhkepdsP7Z5RsucUi+ZBOxyM5d0ZZ6c4SdYustq0VMmOu6Wf7bli+yS/Jwp91TOCqn9jMcVrUA==", + "license": "MIT", + "peerDependencies": { + "date-fns": "2.x" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", + "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-dev-rpc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vite-dev-rpc/-/vite-dev-rpc-1.1.0.tgz", + "integrity": "sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==", + "dev": true, + "license": "MIT", + "dependencies": { + "birpc": "^2.4.0", + "vite-hot-client": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0" + } + }, + "node_modules/vite-hot-client": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vite-hot-client/-/vite-hot-client-2.1.0.tgz", + "integrity": "sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0" + } + }, + "node_modules/vite-node": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-5.3.0.tgz", + "integrity": "sha512-8f20COPYJujc3OKPX6OuyBy3ZIv2det4eRRU4GY1y2MjbeGSUmPjedxg1b72KnTagCofwvZ65ThzjxDW2AtQFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "es-module-lexer": "^2.0.0", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "vite": "^7.3.1" + }, + "bin": { + "vite-node": "dist/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://opencollective.com/antfu" + } + }, + "node_modules/vite-plugin-checker": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.12.0.tgz", + "integrity": "sha512-CmdZdDOGss7kdQwv73UyVgLPv0FVYe5czAgnmRX2oKljgEvSrODGuClaV3PDR2+3ou7N/OKGauDDBjy2MB07Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "chokidar": "^4.0.3", + "npm-run-path": "^6.0.0", + "picocolors": "^1.1.1", + "picomatch": "^4.0.3", + "tiny-invariant": "^1.3.3", + "tinyglobby": "^0.2.15", + "vscode-uri": "^3.1.0" + }, + "engines": { + "node": ">=16.11" + }, + "peerDependencies": { + "@biomejs/biome": ">=1.7", + "eslint": ">=9.39.1", + "meow": "^13.2.0", + "optionator": "^0.9.4", + "oxlint": ">=1", + "stylelint": ">=16", + "typescript": "*", + "vite": ">=5.4.21", + "vls": "*", + "vti": "*", + "vue-tsc": "~2.2.10 || ^3.0.0" + }, + "peerDependenciesMeta": { + "@biomejs/biome": { + "optional": true + }, + "eslint": { + "optional": true + }, + "meow": { + "optional": true + }, + "optionator": { + "optional": true + }, + "oxlint": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vls": { + "optional": true + }, + "vti": { + "optional": true + }, + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/vite-plugin-checker/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/vite-plugin-checker/node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-checker/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-checker/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/vite-plugin-checker/node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-css-injected-by-js": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.2.tgz", + "integrity": "sha512-2MpU/Y+SCZyWUB6ua3HbJCrgnF0KACAsmzOQt1UvRVJCGF6S8xdA3ZUhWcWdM9ivG4I5az8PnQmwwrkC2CAQrQ==", + "license": "MIT", + "peerDependencies": { + "vite": ">2.0.0-0" + } + }, + "node_modules/vite-plugin-inspect": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-11.3.3.tgz", + "integrity": "sha512-u2eV5La99oHoYPHE6UvbwgEqKKOQGz86wMg40CCosP6q8BkB6e5xPneZfYagK4ojPJSj5anHCrnvC20DpwVdRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansis": "^4.1.0", + "debug": "^4.4.1", + "error-stack-parser-es": "^1.0.5", + "ohash": "^2.0.11", + "open": "^10.2.0", + "perfect-debounce": "^2.0.0", + "sirv": "^3.0.1", + "unplugin-utils": "^0.3.0", + "vite-dev-rpc": "^1.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/vite-plugin-inspect/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-inspect/node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-inspect/node_modules/unplugin-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.1.tgz", + "integrity": "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==", + "dev": true, + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/vite-plugin-pwa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-1.2.0.tgz", + "integrity": "sha512-a2xld+SJshT9Lgcv8Ji4+srFJL4k/1bVbd1x06JIkvecpQkwkvCncD1+gSzcdm3s+owWLpMJerG3aN5jupJEVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.6", + "pretty-bytes": "^6.1.1", + "tinyglobby": "^0.2.10", + "workbox-build": "^7.4.0", + "workbox-window": "^7.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vite-pwa/assets-generator": "^1.0.0", + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "workbox-build": "^7.4.0", + "workbox-window": "^7.4.0" + }, + "peerDependenciesMeta": { + "@vite-pwa/assets-generator": { + "optional": true + } + } + }, + "node_modules/vite-plugin-pwa/node_modules/pretty-bytes": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-tracer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-tracer/-/vite-plugin-vue-tracer-1.2.0.tgz", + "integrity": "sha512-a9Z/TLpxwmoE9kIcv28wqQmiszM7ec4zgndXWEsVD/2lEZLRGzcg7ONXmplzGF/UP5W59QNtS809OdywwpUWQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "estree-walker": "^3.0.3", + "exsolve": "^1.0.8", + "magic-string": "^0.30.21", + "pathe": "^2.0.3", + "source-map-js": "^1.2.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^6.0.0 || ^7.0.0", + "vue": "^3.5.0" + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "license": "MIT", + "dependencies": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, + "node_modules/vue": { + "version": "3.5.27", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.27.tgz", + "integrity": "sha512-aJ/UtoEyFySPBGarREmN4z6qNKpbEguYHMmXSiOGk69czc+zhs0NF6tEFrY8TZKAl8N/LYAkd4JHVd5E/AsSmw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.27", + "@vue/compiler-sfc": "3.5.27", + "@vue/runtime-dom": "3.5.27", + "@vue/server-renderer": "3.5.27", + "@vue/shared": "3.5.27" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-bundle-renderer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vue-bundle-renderer/-/vue-bundle-renderer-2.2.0.tgz", + "integrity": "sha512-sz/0WEdYH1KfaOm0XaBmRZOWgYTEvUDt6yPYaUzl4E52qzgWLlknaPPTTZmp6benaPTlQAI/hN1x3tAzZygycg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ufo": "^1.6.1" + } + }, + "node_modules/vue-chartjs": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-5.3.3.tgz", + "integrity": "sha512-jqxtL8KZ6YJ5NTv6XzrzLS7osyegOi28UGNZW0h9OkDL7Sh1396ht4Dorh04aKrl2LiSalQ84WtqiG0RIJb0tA==", + "license": "MIT", + "peerDependencies": { + "chart.js": "^4.1.1", + "vue": "^3.0.0-0 || ^2.7.0" + } + }, + "node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-devtools-stub": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/vue-devtools-stub/-/vue-devtools-stub-0.1.0.tgz", + "integrity": "sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue-router": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz", + "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/vue-screen-utils": { + "version": "1.0.0-beta.13", + "resolved": "https://registry.npmjs.org/vue-screen-utils/-/vue-screen-utils-1.0.0-beta.13.tgz", + "integrity": "sha512-EJ/8TANKhFj+LefDuOvZykwMr3rrLFPLNb++lNBqPOpVigT2ActRg6icH9RFQVm4nHwlHIHSGm5OY/Clar9yIg==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue3-smooth-dnd": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/vue3-smooth-dnd/-/vue3-smooth-dnd-0.0.6.tgz", + "integrity": "sha512-CH9ZZhEfE7qU1ef2rlfgBG+nZtQX8PnWlspB2HDDz1uVGU7fXM0Pr65DftBMz4X81S+edw2H+ZFG6Dyb5J81KA==", + "license": "MIT", + "dependencies": { + "smooth-dnd": "^0.12.1" + }, + "peerDependencies": { + "vue": "^3.0.11" + } + }, + "node_modules/vuedraggable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz", + "integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==", + "license": "MIT", + "dependencies": { + "sortablejs": "1.14.0" + }, + "peerDependencies": { + "vue": "^3.0.1" + } + }, + "node_modules/vuetify": { + "version": "3.11.7", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.11.7.tgz", + "integrity": "sha512-3nK1mKTXQRbU4QXukV4WIbs5YZgMK19flHpFq3pU+6Fpa5YLB8RyyK1BLWAW8JmhSVcaqVUcB/EJ3oJ8g3XNCw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/johnleider" + }, + "peerDependencies": { + "typescript": ">=4.7", + "vite-plugin-vuetify": ">=2.1.0", + "vue": "^3.5.0", + "webpack-plugin-vuetify": ">=3.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vite-plugin-vuetify": { + "optional": true + }, + "webpack-plugin-vuetify": { + "optional": true + } + } + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "license": "MIT" + }, + "node_modules/workbox-background-sync": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.4.0.tgz", + "integrity": "sha512-8CB9OxKAgKZKyNMwfGZ1XESx89GryWTfI+V5yEj8sHjFH8MFelUwYXEyldEK6M6oKMmn807GoJFUEA1sC4XS9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.4.0.tgz", + "integrity": "sha512-+eZQwoktlvo62cI0b+QBr40v5XjighxPq3Fzo9AWMiAosmpG5gxRHgTbGGhaJv/q/MFVxwFNGh/UwHZ/8K88lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-build": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.4.0.tgz", + "integrity": "sha512-Ntk1pWb0caOFIvwz/hfgrov/OJ45wPEhI5PbTywQcYjyZiVhT3UrwwUPl6TRYbTm4moaFYithYnl1lvZ8UjxcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.24.4", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-replace": "^2.4.1", + "@rollup/plugin-terser": "^0.4.3", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^11.0.1", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.79.2", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "7.4.0", + "workbox-broadcast-update": "7.4.0", + "workbox-cacheable-response": "7.4.0", + "workbox-core": "7.4.0", + "workbox-expiration": "7.4.0", + "workbox-google-analytics": "7.4.0", + "workbox-navigation-preload": "7.4.0", + "workbox-precaching": "7.4.0", + "workbox-range-requests": "7.4.0", + "workbox-recipes": "7.4.0", + "workbox-routing": "7.4.0", + "workbox-strategies": "7.4.0", + "workbox-streams": "7.4.0", + "workbox-sw": "7.4.0", + "workbox-window": "7.4.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-babel/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-node-resolve": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", + "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-replace/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/glob": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/workbox-build/node_modules/jackspeak": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", + "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/workbox-build/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/workbox-build/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/workbox-build/node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/workbox-build/node_modules/rollup": { + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "deprecated": "The work that was done in this beta branch won't be included in future versions", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.4.0.tgz", + "integrity": "sha512-0Fb8795zg/x23ISFkAc7lbWes6vbw34DGFIMw31cwuHPgDEC/5EYm6m/ZkylLX0EnEbbOyOCLjKgFS/Z5g0HeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-core": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.4.0.tgz", + "integrity": "sha512-6BMfd8tYEnN4baG4emG9U0hdXM4gGuDU3ectXuVHnj71vwxTFI7WOpQJC4siTOlVtGqCUtj0ZQNsrvi6kZZTAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-expiration": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.4.0.tgz", + "integrity": "sha512-V50p4BxYhtA80eOvulu8xVfPBgZbkxJ1Jr8UUn0rvqjGhLDqKNtfrDfjJKnLz2U8fO2xGQJTx/SKXNTzHOjnHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.4.0.tgz", + "integrity": "sha512-MVPXQslRF6YHkzGoFw1A4GIB8GrKym/A5+jYDUSL+AeJw4ytQGrozYdiZqUW1TPQHW8isBCBtyFJergUXyNoWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-background-sync": "7.4.0", + "workbox-core": "7.4.0", + "workbox-routing": "7.4.0", + "workbox-strategies": "7.4.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.4.0.tgz", + "integrity": "sha512-etzftSgdQfjMcfPgbfaZCfM2QuR1P+4o8uCA2s4rf3chtKTq/Om7g/qvEOcZkG6v7JZOSOxVYQiOu6PbAZgU6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-precaching": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.4.0.tgz", + "integrity": "sha512-VQs37T6jDqf1rTxUJZXRl3yjZMf5JX/vDPhmx2CPgDDKXATzEoqyRqhYnRoxl6Kr0rqaQlp32i9rtG5zTzIlNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0", + "workbox-routing": "7.4.0", + "workbox-strategies": "7.4.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.4.0.tgz", + "integrity": "sha512-3Vq854ZNuP6Y0KZOQWLaLC9FfM7ZaE+iuQl4VhADXybwzr4z/sMmnLgTeUZLq5PaDlcJBxYXQ3U91V7dwAIfvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-recipes": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.4.0.tgz", + "integrity": "sha512-kOkWvsAn4H8GvAkwfJTbwINdv4voFoiE9hbezgB1sb/0NLyTG4rE7l6LvS8lLk5QIRIto+DjXLuAuG3Vmt3cxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-cacheable-response": "7.4.0", + "workbox-core": "7.4.0", + "workbox-expiration": "7.4.0", + "workbox-precaching": "7.4.0", + "workbox-routing": "7.4.0", + "workbox-strategies": "7.4.0" + } + }, + "node_modules/workbox-routing": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.4.0.tgz", + "integrity": "sha512-C/ooj5uBWYAhAqwmU8HYQJdOjjDKBp9MzTQ+otpMmd+q0eF59K+NuXUek34wbL0RFrIXe/KKT+tUWcZcBqxbHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-strategies": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.4.0.tgz", + "integrity": "sha512-T4hVqIi5A4mHi92+5EppMX3cLaVywDp8nsyUgJhOZxcfSV/eQofcOA6/EMo5rnTNmNTpw0rUgjAI6LaVullPpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-streams": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.4.0.tgz", + "integrity": "sha512-QHPBQrey7hQbnTs5GrEVoWz7RhHJXnPT+12qqWM378orDMo5VMJLCkCM1cnCk+8Eq92lccx/VgRZ7WAzZWbSLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0", + "workbox-routing": "7.4.0" + } + }, + "node_modules/workbox-sw": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.4.0.tgz", + "integrity": "sha512-ltU+Kr3qWR6BtbdlMnCjobZKzeV1hN+S6UvDywBrwM19TTyqA03X66dzw1tEIdJvQ4lYKkBFox6IAEhoSEZ8Xw==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-window": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.4.0.tgz", + "integrity": "sha512-/bIYdBLAVsNR3v7gYGaV4pQW3M3kEPx5E8vDxGvxo6khTrGtSSCS7QiFKv9ogzBgZiy0OXLP9zO28U/1nF1mfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "7.4.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "devOptional": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yauzl/node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/ylru": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", + "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/youch": { + "version": "4.1.0-beta.13", + "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.13.tgz", + "integrity": "sha512-3+AG1Xvt+R7M7PSDudhbfbwiyveW6B8PLBIwTyEC598biEYIjHhC89i6DBEvR0EZUjGY3uGSnC429HpIa2Z09g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.5", + "@poppinss/dumper": "^0.6.5", + "@speed-highlight/core": "^1.2.9", + "cookie-es": "^2.0.0", + "youch-core": "^0.3.3" + } + }, + "node_modules/youch-core": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz", + "integrity": "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@poppinss/exception": "^1.2.2", + "error-stack-parser-es": "^1.0.5" + } + }, + "node_modules/youch/node_modules/cookie-es": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.0.tgz", + "integrity": "sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==", + "dev": true, + "license": "MIT" + }, + "node_modules/zebra-browser-print-wrapper": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/zebra-browser-print-wrapper/-/zebra-browser-print-wrapper-0.1.4.tgz", + "integrity": "sha512-w0mqnq83flxnNTgSgzkvSZWgnP/ffD0v+a5smOHUhB3UiaWqkDqIXzS6n6QnD6BBjE0qdrmlCmzoasSogEBJlw==", + "license": "GPL-3.0" + }, + "node_modules/zip-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zpl-renderer-js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/zpl-renderer-js/-/zpl-renderer-js-2.0.2.tgz", + "integrity": "sha512-zGGbLxwSFcYDsytuQlDl/tuIve80Ww2jnOkM3jAzxDqHhZ+jUCxMyNeflBHMAyCV0wRvTSIcL2TpHx1WgauWqA==", + "license": "MIT" + } + } +} diff --git a/mobile/app/more/account.tsx b/mobile/app/more/account.tsx new file mode 100644 index 0000000..77c2dec --- /dev/null +++ b/mobile/app/more/account.tsx @@ -0,0 +1,186 @@ +import { useState } from 'react'; +import { Redirect, router } from 'expo-router'; +import { Pressable, ScrollView, StyleSheet, Text, View } from 'react-native'; + +import { useAuth, useTokenStorageInfo } from '@/src/providers/auth-provider'; + +const PRIMARY = '#69c350'; + +export default function AccountScreen() { + const { token, user, tenants, activeTenantId, activeTenant, switchTenant, logout } = useAuth(); + const storageInfo = useTokenStorageInfo(); + + const [switchingTenantId, setSwitchingTenantId] = useState(null); + const [switchError, setSwitchError] = useState(null); + + if (!token) { + return ; + } + + const userId = String(user?.id || 'unbekannt'); + + async function onSwitchTenant(tenantId: number) { + setSwitchingTenantId(tenantId); + setSwitchError(null); + + try { + await switchTenant(tenantId); + } catch (err) { + setSwitchError(err instanceof Error ? err.message : 'Tenant konnte nicht gewechselt werden.'); + } finally { + setSwitchingTenantId(null); + } + } + + async function onLogout() { + await logout(); + router.replace('/login'); + } + + return ( + + + Token vorhanden + {token ? 'ja' : 'nein'} + + User ID + {userId} + + Aktiver Tenant + {activeTenant ? `${activeTenant.name} (#${activeTenantId})` : 'nicht gesetzt'} + + Storage Modus + {storageInfo.mode} + + + + Tenant wechseln + + {switchError ? {switchError} : null} + + {tenants.map((tenant) => { + const tenantId = Number(tenant.id); + const isActive = tenantId === activeTenantId; + const isSwitching = switchingTenantId === tenantId; + + return ( + onSwitchTenant(tenantId)} + disabled={isActive || switchingTenantId !== null}> + + + {tenant.name} + + ID: {tenantId} + + + {isActive ? 'Aktiv' : isSwitching ? 'Wechsel...' : 'Wechseln'} + + + ); + })} + + + + Logout + + + ); +} + +const styles = StyleSheet.create({ + container: { + flexGrow: 1, + backgroundColor: '#f9fafb', + padding: 16, + gap: 12, + }, + card: { + backgroundColor: '#ffffff', + borderRadius: 12, + padding: 14, + borderWidth: 1, + borderColor: '#e5e7eb', + gap: 8, + }, + sectionTitle: { + fontSize: 16, + fontWeight: '600', + color: '#111827', + marginBottom: 2, + }, + label: { + fontSize: 12, + color: '#6b7280', + textTransform: 'uppercase', + }, + value: { + fontSize: 16, + color: '#111827', + marginBottom: 2, + }, + error: { + color: '#dc2626', + marginBottom: 4, + }, + tenantButton: { + borderRadius: 10, + padding: 12, + borderWidth: 1, + borderColor: '#d1d5db', + backgroundColor: '#ffffff', + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + }, + tenantButtonActive: { + borderColor: PRIMARY, + backgroundColor: '#eff9ea', + }, + tenantButtonDisabled: { + opacity: 0.6, + }, + tenantInfo: { + flex: 1, + minWidth: 0, + paddingRight: 10, + }, + tenantName: { + fontSize: 15, + fontWeight: '600', + color: '#111827', + flexShrink: 1, + }, + tenantMeta: { + color: '#6b7280', + marginTop: 3, + }, + tenantActionWrap: { + minWidth: 84, + alignItems: 'flex-end', + }, + tenantAction: { + color: PRIMARY, + fontWeight: '600', + textAlign: 'right', + }, + logoutButton: { + marginTop: 4, + backgroundColor: '#dc2626', + minHeight: 44, + borderRadius: 10, + alignItems: 'center', + justifyContent: 'center', + }, + logoutText: { + color: '#ffffff', + fontWeight: '600', + fontSize: 16, + }, +}); diff --git a/mobile/app/more/customer/[id].tsx b/mobile/app/more/customer/[id].tsx new file mode 100644 index 0000000..58a5353 --- /dev/null +++ b/mobile/app/more/customer/[id].tsx @@ -0,0 +1,881 @@ +import { useCallback, useEffect, useMemo, useState } from 'react'; +import { + ActivityIndicator, + KeyboardAvoidingView, + Modal, + Platform, + Pressable, + RefreshControl, + ScrollView, + StyleSheet, + Text, + TextInput, + View, +} from 'react-native'; +import { router, useLocalSearchParams } from 'expo-router'; +import * as DocumentPicker from 'expo-document-picker'; +import * as WebBrowser from 'expo-web-browser'; +import { BarcodeScanningResult, BarcodeType, CameraView, useCameraPermissions } from 'expo-camera'; + +import { + createCustomerInventoryItem, + CreatedDocument, + Customer, + CustomerInventoryItem, + fetchCustomerById, + fetchCustomerCreatedDocuments, + fetchCreatedDocumentFiles, + fetchCustomerFiles, + fetchCustomerInventoryItems, + ProjectFile, + uploadCustomerFile, +} from '@/src/lib/api'; +import { useAuth } from '@/src/providers/auth-provider'; + +const PRIMARY = '#69c350'; + +const SCAN_TYPES: BarcodeType[] = [ + 'datamatrix', + 'code128', + 'code39', + 'code93', + 'ean13', + 'ean8', + 'upc_a', + 'upc_e', + 'itf14', + 'qr', +]; + +function formatDateTime(value: unknown): string { + if (!value) return '-'; + const date = new Date(String(value)); + if (Number.isNaN(date.getTime())) return String(value); + return date.toLocaleString('de-DE', { + day: '2-digit', + month: '2-digit', + year: '2-digit', + hour: '2-digit', + minute: '2-digit', + }); +} + +function formatDocType(value: unknown): string { + const type = String(value || ''); + if (!type) return 'Beleg'; + + const labels: Record = { + invoices: 'Rechnung', + advanceInvoices: 'Abschlagsrechnung', + cancellationInvoices: 'Stornorechnung', + quotes: 'Angebot', + confirmationOrders: 'Auftragsbestätigung', + deliveryNotes: 'Lieferschein', + }; + return labels[type] || type; +} + +export default function CustomerDetailScreen() { + const params = useLocalSearchParams<{ id?: string }>(); + const customerId = Number(params.id); + const { token } = useAuth(); + + const [cameraPermission, requestCameraPermission] = useCameraPermissions(); + + const [customer, setCustomer] = useState(null); + const [createdDocuments, setCreatedDocuments] = useState([]); + const [files, setFiles] = useState([]); + const [inventoryItems, setInventoryItems] = useState([]); + const [loading, setLoading] = useState(true); + const [refreshing, setRefreshing] = useState(false); + const [uploading, setUploading] = useState(false); + const [error, setError] = useState(null); + + const [inventorySearch, setInventorySearch] = useState(''); + const [showArchivedInventory, setShowArchivedInventory] = useState(false); + + const [createInventoryModalOpen, setCreateInventoryModalOpen] = useState(false); + const [creatingInventory, setCreatingInventory] = useState(false); + const [createInventoryError, setCreateInventoryError] = useState(null); + const [newInventoryName, setNewInventoryName] = useState(''); + const [newInventoryId, setNewInventoryId] = useState(''); + const [newInventorySerial, setNewInventorySerial] = useState(''); + const [newInventoryDescription, setNewInventoryDescription] = useState(''); + + const [scannerOpen, setScannerOpen] = useState(false); + const [hasScanned, setHasScanned] = useState(false); + const [scanTarget, setScanTarget] = useState<'customerInventoryId' | 'serialNumber' | 'search'>('serialNumber'); + + const validId = useMemo(() => Number.isFinite(customerId) && customerId > 0, [customerId]); + + const rows = useMemo(() => { + if (!customer) return []; + return [ + { label: 'Name', value: String(customer.name || '-') }, + { label: 'Kundennummer', value: String(customer.customerNumber || '-') }, + { label: 'Typ', value: String(customer.type || '-') }, + { label: 'E-Mail', value: String(customer.email || '-') }, + { label: 'Telefon', value: String(customer.phone || '-') }, + { label: 'Erstellt', value: formatDateTime(customer.createdAt || customer.created_at) }, + { label: 'Aktualisiert', value: formatDateTime(customer.updatedAt || customer.updated_at) }, + ]; + }, [customer]); + + const filteredInventoryItems = useMemo(() => { + const terms = inventorySearch.trim().toLowerCase().split(/\s+/).filter(Boolean); + + return (inventoryItems || []) + .filter((item) => { + if (!showArchivedInventory && item.archived) return false; + if (terms.length === 0) return true; + + const haystack = [ + item.name, + item.customerInventoryId, + item.serialNumber, + item.description, + item.manufacturer, + item.manufacturerNumber, + ] + .map((value) => String(value || '').toLowerCase()) + .join(' '); + + return terms.every((term) => haystack.includes(term)); + }) + .sort((a, b) => Number(b.id) - Number(a.id)); + }, [inventoryItems, inventorySearch, showArchivedInventory]); + + const load = useCallback( + async (showSpinner = true) => { + if (!token || !validId) return; + if (showSpinner) setLoading(true); + setError(null); + + try { + const [customerData, createdDocumentData, fileData, customerInventoryData] = await Promise.all([ + fetchCustomerById(token, customerId), + fetchCustomerCreatedDocuments(token, customerId), + fetchCustomerFiles(token, customerId), + fetchCustomerInventoryItems(token, customerId, true), + ]); + setCustomer(customerData); + setCreatedDocuments(createdDocumentData); + setFiles(fileData); + setInventoryItems(customerInventoryData); + } catch (err) { + setError(err instanceof Error ? err.message : 'Kundendaten konnten nicht geladen werden.'); + } finally { + setLoading(false); + setRefreshing(false); + } + }, + [customerId, token, validId] + ); + + useEffect(() => { + if (!token || !validId) return; + void load(true); + }, [load, token, validId]); + + async function onRefresh() { + setRefreshing(true); + await load(false); + } + + function closeCreateInventoryModal() { + setCreateInventoryModalOpen(false); + setCreateInventoryError(null); + setNewInventoryName(''); + setNewInventoryId(''); + setNewInventorySerial(''); + setNewInventoryDescription(''); + } + + async function onCreateInventoryItem() { + if (!token || !validId || creatingInventory) return; + + const name = newInventoryName.trim(); + if (!name) { + setCreateInventoryError('Bitte einen Namen eingeben.'); + return; + } + + setCreatingInventory(true); + setCreateInventoryError(null); + setError(null); + + try { + await createCustomerInventoryItem(token, { + customer: customerId, + name, + customerInventoryId: newInventoryId || null, + serialNumber: newInventorySerial || null, + description: newInventoryDescription || null, + }); + + closeCreateInventoryModal(); + await load(false); + } catch (err) { + setCreateInventoryError(err instanceof Error ? err.message : 'Kundeninventar konnte nicht erstellt werden.'); + } finally { + setCreatingInventory(false); + } + } + + async function openScanner(target: 'customerInventoryId' | 'serialNumber' | 'search') { + const granted = cameraPermission?.granted; + if (!granted) { + const request = await requestCameraPermission(); + if (!request.granted) { + setCreateInventoryError('Bitte erlaube den Zugriff auf die Kamera zum Scannen.'); + return; + } + } + + setScanTarget(target); + setHasScanned(false); + setScannerOpen(true); + } + + function closeScanner() { + setScannerOpen(false); + setHasScanned(false); + } + + function onBarcodeScanned(result: BarcodeScanningResult) { + if (hasScanned) return; + const code = String(result.data || '').trim(); + if (!code) return; + + setHasScanned(true); + + if (scanTarget === 'customerInventoryId') { + setNewInventoryId(code); + } else if (scanTarget === 'search') { + setInventorySearch(code); + } else { + setNewInventorySerial(code); + } + + closeScanner(); + } + + async function onOpenFile(file: ProjectFile) { + if (!file.url) return; + await WebBrowser.openBrowserAsync(file.url, { + presentationStyle: WebBrowser.WebBrowserPresentationStyle.FORM_SHEET, + controlsColor: PRIMARY, + showTitle: true, + enableDefaultShareMenuItem: true, + }); + } + + async function onPickAndUpload() { + if (!token || !validId || uploading) return; + + const result = await DocumentPicker.getDocumentAsync({ + multiple: false, + copyToCacheDirectory: true, + type: ['image/*', 'application/pdf', '*/*'], + }); + if (result.canceled || !result.assets?.length) return; + + const asset = result.assets[0]; + const filename = asset.name || `upload-${Date.now()}`; + setUploading(true); + setError(null); + + try { + await uploadCustomerFile(token, { + customerId, + uri: asset.uri, + filename, + mimeType: asset.mimeType || 'application/octet-stream', + }); + await load(false); + } catch (err) { + setError(err instanceof Error ? err.message : 'Upload fehlgeschlagen.'); + } finally { + setUploading(false); + } + } + + async function onOpenCreatedDocument(doc: CreatedDocument) { + if (!token) return; + + try { + const linkedFiles = await fetchCreatedDocumentFiles(token, doc.id); + const fileToOpen = linkedFiles.find((file) => Boolean(file.url)); + + if (!fileToOpen?.url) { + setError('Kein verknüpftes Dokument zum Öffnen gefunden.'); + return; + } + + await onOpenFile(fileToOpen); + } catch (err) { + setError(err instanceof Error ? err.message : 'Dokument konnte nicht geöffnet werden.'); + } + } + + return ( + <> + }> + {error ? {error} : null} + + {loading ? ( + + + Kunde wird geladen... + + ) : null} + + {!loading && customer ? ( + <> + + + Informationen + + router.push({ + pathname: '/more/wiki', + params: { + entityType: 'customers', + entityId: String(customerId), + title: `Kunden-Wiki: ${String(customer.name || customerId)}`, + }, + }) + }> + Wiki + + + + {rows.map((row) => ( + + {row.label} + {row.value} + + ))} + + {customer.notes ? ( + + Notizen + {String(customer.notes)} + + ) : null} + + + + + Kundeninventar ({inventoryItems.length}) + + openScanner('search')}> + Scannen + + setCreateInventoryModalOpen(true)}> + Neu + + + + + + + setShowArchivedInventory((prev) => !prev)}> + + Abgeschlossene anzeigen + + + + {filteredInventoryItems.length === 0 ? ( + Kein Kundeninventar gefunden. + ) : ( + filteredInventoryItems.map((item) => ( + + + + + {item.name || '-'} + + {item.archived ? Abgeschlossen : null} + + + ID: {item.customerInventoryId || '-'} + + + Seriennummer: {item.serialNumber || '-'} + + {item.description ? ( + + {String(item.description)} + + ) : null} + + + )) + )} + + + + Ausgangsbelege ({createdDocuments.length}) + + {createdDocuments.length === 0 ? ( + Keine Ausgangsbelege vorhanden. + ) : ( + createdDocuments.map((doc) => ( + onOpenCreatedDocument(doc)}> + + + {doc.documentNumber || doc.title || `#${doc.id}`} + + + {formatDocType(doc.type)} + {doc.state ? ` · ${String(doc.state)}` : ''} + {doc.documentDate ? ` · ${formatDateTime(doc.documentDate)}` : ''} + + + + )) + )} + + + + + Dokumente ({files.length}) + + {uploading ? 'Upload...' : 'Hochladen'} + + + + {files.length === 0 ? ( + Noch keine Dokumente vorhanden. + ) : ( + files.map((file) => ( + onOpenFile(file)}> + + + {file.name || file.path?.split('/').pop() || file.id} + + {file.mimeType || 'Datei'} + + + )) + )} + + + ) : null} + + + + + + + Neuer Kundeninventarartikel + + + + + + openScanner('customerInventoryId')}> + Scannen + + + + + + openScanner('serialNumber')}> + Scannen + + + + + + {createInventoryError ? {createInventoryError} : null} + + + + Abbrechen + + + {creatingInventory ? 'Speichere...' : 'Anlegen'} + + + + + + + + + + + + {scanTarget === 'customerInventoryId' ? 'Kundeninventar-ID scannen' : 'Seriennummer scannen'} + + + Schließen + + + + + + Barcode oder DataMatrix mittig ins Bild halten. + + + + ); +} + +const styles = StyleSheet.create({ + container: { + padding: 16, + gap: 12, + backgroundColor: '#f9fafb', + }, + card: { + backgroundColor: '#ffffff', + borderRadius: 12, + borderWidth: 1, + borderColor: '#e5e7eb', + padding: 12, + gap: 8, + }, + title: { + color: '#111827', + fontSize: 18, + fontWeight: '700', + }, + table: { + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 10, + overflow: 'hidden', + }, + row: { + borderBottomWidth: 1, + borderBottomColor: '#e5e7eb', + paddingHorizontal: 10, + paddingVertical: 8, + gap: 2, + }, + label: { + color: '#6b7280', + fontSize: 12, + textTransform: 'uppercase', + fontWeight: '600', + }, + value: { + color: '#111827', + fontSize: 14, + fontWeight: '500', + }, + notesWrap: { + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 10, + padding: 10, + gap: 4, + backgroundColor: '#fafafa', + }, + notesLabel: { + color: '#6b7280', + fontSize: 12, + textTransform: 'uppercase', + fontWeight: '600', + }, + notes: { + color: '#374151', + fontSize: 14, + }, + sectionHeader: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + gap: 10, + }, + sectionTitle: { + color: '#111827', + fontSize: 16, + fontWeight: '700', + }, + inventoryHeaderActions: { + flexDirection: 'row', + alignItems: 'center', + gap: 8, + }, + searchInput: { + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 10, + paddingHorizontal: 12, + paddingVertical: 10, + fontSize: 15, + color: '#111827', + backgroundColor: '#ffffff', + }, + uploadButton: { + minHeight: 38, + borderRadius: 9, + backgroundColor: PRIMARY, + paddingHorizontal: 12, + alignItems: 'center', + justifyContent: 'center', + }, + uploadButtonText: { + color: '#ffffff', + fontWeight: '700', + fontSize: 13, + }, + filterButton: { + alignSelf: 'flex-start', + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 999, + paddingHorizontal: 10, + paddingVertical: 6, + backgroundColor: '#ffffff', + }, + filterButtonActive: { + borderColor: PRIMARY, + backgroundColor: '#eff9ea', + }, + filterButtonText: { + color: '#374151', + fontSize: 12, + fontWeight: '500', + }, + filterButtonTextActive: { + color: '#3d7a30', + }, + badge: { + color: '#3d7a30', + backgroundColor: '#eff9ea', + borderRadius: 999, + paddingHorizontal: 8, + paddingVertical: 4, + fontSize: 12, + overflow: 'hidden', + }, + fileRow: { + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 10, + padding: 10, + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + gap: 10, + }, + fileInfo: { + flex: 1, + minWidth: 0, + }, + inventoryTitleRow: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + gap: 8, + }, + fileName: { + color: '#111827', + fontSize: 14, + fontWeight: '600', + flex: 1, + minWidth: 0, + }, + fileMeta: { + color: '#6b7280', + fontSize: 12, + marginTop: 2, + }, + empty: { + color: '#6b7280', + fontSize: 13, + paddingVertical: 4, + }, + loadingBox: { + paddingVertical: 20, + alignItems: 'center', + gap: 8, + }, + loadingText: { + color: '#6b7280', + }, + error: { + color: '#dc2626', + fontSize: 13, + }, + modalOverlay: { + flex: 1, + backgroundColor: 'rgba(0,0,0,0.35)', + justifyContent: 'center', + padding: 16, + }, + modalKeyboardWrap: { + width: '100%', + }, + modalCard: { + backgroundColor: '#ffffff', + borderRadius: 14, + padding: 14, + gap: 10, + }, + modalTitle: { + fontSize: 18, + fontWeight: '700', + color: '#111827', + }, + fieldGroup: { + gap: 8, + }, + secondaryActionButton: { + minHeight: 36, + borderRadius: 9, + borderWidth: 1, + borderColor: '#d1d5db', + paddingHorizontal: 12, + alignItems: 'center', + justifyContent: 'center', + backgroundColor: '#ffffff', + }, + secondaryActionButtonText: { + color: '#111827', + fontWeight: '600', + fontSize: 13, + }, + multilineInput: { + minHeight: 72, + textAlignVertical: 'top', + }, + modalActions: { + flexDirection: 'row', + justifyContent: 'flex-end', + gap: 8, + marginTop: 2, + }, + secondaryButton: { + minHeight: 42, + borderRadius: 10, + paddingHorizontal: 14, + alignItems: 'center', + justifyContent: 'center', + backgroundColor: '#e5e7eb', + }, + secondaryButtonText: { + color: '#111827', + fontWeight: '600', + }, + primaryButton: { + minHeight: 42, + borderRadius: 10, + paddingHorizontal: 14, + backgroundColor: PRIMARY, + alignItems: 'center', + justifyContent: 'center', + }, + primaryButtonText: { + color: '#ffffff', + fontWeight: '600', + }, + scannerScreen: { + flex: 1, + backgroundColor: '#000000', + }, + scannerHeader: { + paddingTop: 56, + paddingHorizontal: 16, + paddingBottom: 12, + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + gap: 10, + }, + scannerTitle: { + color: '#ffffff', + fontSize: 16, + fontWeight: '700', + flex: 1, + minWidth: 0, + }, + scannerCloseButton: { + minHeight: 34, + borderRadius: 8, + borderWidth: 1, + borderColor: '#ffffff', + paddingHorizontal: 10, + alignItems: 'center', + justifyContent: 'center', + }, + scannerCloseButtonText: { + color: '#ffffff', + fontWeight: '600', + }, + scannerCamera: { + flex: 1, + }, + scannerHint: { + color: '#ffffff', + fontSize: 13, + textAlign: 'center', + paddingHorizontal: 16, + paddingVertical: 14, + backgroundColor: 'rgba(17,24,39,0.85)', + }, + buttonDisabled: { + opacity: 0.6, + }, +}); diff --git a/mobile/app/more/customers.tsx b/mobile/app/more/customers.tsx new file mode 100644 index 0000000..704b328 --- /dev/null +++ b/mobile/app/more/customers.tsx @@ -0,0 +1,369 @@ +import { useCallback, useEffect, useMemo, useState } from 'react'; +import { + ActivityIndicator, + KeyboardAvoidingView, + Modal, + Platform, + Pressable, + RefreshControl, + ScrollView, + StyleSheet, + Text, + TextInput, + View, +} from 'react-native'; +import { useRouter } from 'expo-router'; + +import { createCustomer, Customer, fetchCustomers } from '@/src/lib/api'; +import { useAuth } from '@/src/providers/auth-provider'; + +const PRIMARY = '#69c350'; + +export default function CustomersScreen() { + const { token } = useAuth(); + const router = useRouter(); + + const [customers, setCustomers] = useState([]); + const [search, setSearch] = useState(''); + const [showArchived, setShowArchived] = useState(false); + const [loading, setLoading] = useState(true); + const [refreshing, setRefreshing] = useState(false); + const [error, setError] = useState(null); + + const [createOpen, setCreateOpen] = useState(false); + const [saving, setSaving] = useState(false); + const [createError, setCreateError] = useState(null); + const [nameInput, setNameInput] = useState(''); + const [numberInput, setNumberInput] = useState(''); + const [notesInput, setNotesInput] = useState(''); + + const filtered = useMemo(() => { + const terms = search.trim().toLowerCase().split(/\s+/).filter(Boolean); + + return customers.filter((customer) => { + if (!showArchived && customer.archived) return false; + if (terms.length === 0) return true; + + const haystack = [customer.name, customer.customerNumber, customer.notes] + .map((value) => String(value || '').toLowerCase()) + .join(' '); + + return terms.every((term) => haystack.includes(term)); + }); + }, [customers, search, showArchived]); + + const load = useCallback(async (showSpinner = true) => { + if (!token) return; + if (showSpinner) setLoading(true); + setError(null); + + try { + const rows = await fetchCustomers(token, true); + setCustomers(rows); + } catch (err) { + setError(err instanceof Error ? err.message : 'Kunden konnten nicht geladen werden.'); + } finally { + setLoading(false); + setRefreshing(false); + } + }, [token]); + + useEffect(() => { + if (!token) return; + void load(true); + }, [load, token]); + + async function onRefresh() { + setRefreshing(true); + await load(false); + } + + function closeCreateModal() { + setCreateOpen(false); + setCreateError(null); + setNameInput(''); + setNumberInput(''); + setNotesInput(''); + } + + async function onCreateCustomer() { + if (!token) return; + + const name = nameInput.trim(); + if (!name) { + setCreateError('Bitte einen Namen eingeben.'); + return; + } + + setSaving(true); + setCreateError(null); + + try { + await createCustomer(token, { + name, + customerNumber: numberInput.trim() || null, + notes: notesInput.trim() || null, + }); + closeCreateModal(); + await load(false); + } catch (err) { + setCreateError(err instanceof Error ? err.message : 'Kunde konnte nicht erstellt werden.'); + } finally { + setSaving(false); + } + } + + return ( + + + + setShowArchived((prev) => !prev)}> + + Abgeschlossene anzeigen + + + + + }> + {error ? {error} : null} + + {loading ? ( + + + Kunden werden geladen... + + ) : null} + + {!loading && filtered.length === 0 ? Keine Kunden gefunden. : null} + + {!loading && + filtered.map((customer) => ( + [styles.row, pressed ? styles.rowPressed : null]} + onPress={() => router.push(`/more/customer/${customer.id}`)}> + + {customer.name} + {customer.archived ? Abgeschlossen : null} + + {customer.customerNumber ? ( + Nr.: {customer.customerNumber} + ) : null} + {customer.notes ? {String(customer.notes)} : null} + + ))} + + + setCreateOpen(true)}> + + + + + + + + + Neuer Kunde + + + + + + {createError ? {createError} : null} + + + + Abbrechen + + + {saving ? 'Speichere...' : 'Anlegen'} + + + + + + + + ); +} + +const styles = StyleSheet.create({ + screen: { flex: 1, backgroundColor: '#ffffff' }, + searchWrap: { + paddingHorizontal: 16, + paddingTop: 12, + paddingBottom: 10, + borderBottomWidth: 1, + borderBottomColor: '#e5e7eb', + backgroundColor: '#ffffff', + gap: 8, + }, + searchInput: { + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 10, + paddingHorizontal: 12, + paddingVertical: 10, + fontSize: 15, + color: '#111827', + backgroundColor: '#ffffff', + }, + list: { flex: 1, backgroundColor: '#ffffff' }, + listContent: { paddingBottom: 96 }, + row: { + paddingHorizontal: 16, + paddingVertical: 14, + borderBottomWidth: 1, + borderBottomColor: '#e5e7eb', + backgroundColor: '#ffffff', + }, + rowPressed: { backgroundColor: '#f3f4f6' }, + rowHeader: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + gap: 8, + }, + rowTitle: { flex: 1, color: '#111827', fontSize: 15, fontWeight: '600' }, + rowSubtitle: { color: '#6b7280', fontSize: 13, marginTop: 2 }, + badge: { + color: '#3d7a30', + fontSize: 11, + fontWeight: '600', + backgroundColor: '#eff9ea', + borderRadius: 999, + paddingHorizontal: 8, + paddingVertical: 3, + overflow: 'hidden', + }, + toggleButton: { + alignSelf: 'flex-start', + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 999, + paddingHorizontal: 10, + paddingVertical: 6, + backgroundColor: '#ffffff', + }, + toggleButtonActive: { borderColor: PRIMARY, backgroundColor: '#eff9ea' }, + toggleButtonText: { color: '#374151', fontSize: 12, fontWeight: '600' }, + toggleButtonTextActive: { color: '#3d7a30' }, + loadingBox: { paddingVertical: 20, alignItems: 'center', gap: 8 }, + loadingText: { color: '#6b7280' }, + empty: { color: '#6b7280', textAlign: 'center', paddingVertical: 20 }, + error: { color: '#dc2626', fontSize: 13, paddingHorizontal: 16, paddingTop: 10 }, + fab: { + position: 'absolute', + right: 18, + bottom: 20, + width: 56, + height: 56, + borderRadius: 28, + backgroundColor: PRIMARY, + alignItems: 'center', + justifyContent: 'center', + shadowColor: '#111827', + shadowOpacity: 0.25, + shadowRadius: 8, + shadowOffset: { width: 0, height: 4 }, + elevation: 5, + }, + fabText: { + color: '#ffffff', + fontSize: 30, + lineHeight: 30, + marginTop: -2, + }, + modalOverlay: { + flex: 1, + backgroundColor: 'rgba(17, 24, 39, 0.45)', + justifyContent: 'center', + padding: 20, + }, + modalKeyboardWrap: { + width: '100%', + }, + modalCard: { + backgroundColor: '#ffffff', + borderRadius: 14, + padding: 16, + gap: 10, + }, + modalTitle: { + color: '#111827', + fontSize: 18, + fontWeight: '700', + }, + multilineInput: { + minHeight: 92, + textAlignVertical: 'top', + }, + modalActions: { + flexDirection: 'row', + justifyContent: 'flex-end', + gap: 8, + marginTop: 4, + }, + secondaryButton: { + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 10, + minHeight: 40, + paddingHorizontal: 14, + alignItems: 'center', + justifyContent: 'center', + }, + secondaryButtonText: { + color: '#374151', + fontWeight: '600', + }, + primaryButton: { + borderRadius: 10, + minHeight: 40, + paddingHorizontal: 14, + alignItems: 'center', + justifyContent: 'center', + backgroundColor: PRIMARY, + }, + primaryButtonText: { + color: '#ffffff', + fontWeight: '700', + }, + buttonDisabled: { + opacity: 0.6, + }, +}); diff --git a/mobile/app/more/inventory.tsx b/mobile/app/more/inventory.tsx new file mode 100644 index 0000000..fc54389 --- /dev/null +++ b/mobile/app/more/inventory.tsx @@ -0,0 +1,541 @@ +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { + ActivityIndicator, + Modal, + Pressable, + RefreshControl, + ScrollView, + StyleSheet, + Text, + TextInput, + View, +} from 'react-native'; +import { router, useLocalSearchParams } from 'expo-router'; +import { BarcodeScanningResult, BarcodeType, CameraView, useCameraPermissions } from 'expo-camera'; + +import { Customer, CustomerInventoryItem, fetchAllCustomerInventoryItems, fetchCustomers, renderPrintLabel } from '@/src/lib/api'; +import { getActiveNimbotConnection, printNimbotEncodedLabel } from '@/src/lib/nimbot'; +import { useAuth } from '@/src/providers/auth-provider'; + +const PRIMARY = '#69c350'; +const SCAN_TYPES: BarcodeType[] = [ + 'datamatrix', + 'code128', + 'code39', + 'code93', + 'ean13', + 'ean8', + 'upc_a', + 'upc_e', + 'itf14', + 'qr', +]; + +function resolveCustomerId(item: CustomerInventoryItem): number | null { + const raw = item.customer; + if (!raw) return null; + if (typeof raw === 'object') { + return raw.id ? Number(raw.id) : null; + } + return Number(raw); +} + +function resolveCustomerName(item: CustomerInventoryItem, customersById: Map): string { + const raw = item.customer; + if (raw && typeof raw === 'object' && raw.name) { + return String(raw.name); + } + + const id = resolveCustomerId(item); + if (!id) return '-'; + return String(customersById.get(id)?.name || `#${id}`); +} + +export default function InventoryScreen() { + const { token } = useAuth(); + const params = useLocalSearchParams<{ action?: string | string[] }>(); + + const [cameraPermission, requestCameraPermission] = useCameraPermissions(); + const scanTriggeredRef = useRef(false); + + const [items, setItems] = useState([]); + const [customers, setCustomers] = useState([]); + const [search, setSearch] = useState(''); + const [showArchived, setShowArchived] = useState(false); + const [loading, setLoading] = useState(true); + const [refreshing, setRefreshing] = useState(false); + const [error, setError] = useState(null); + const [printingItemId, setPrintingItemId] = useState(null); + const [printInfo, setPrintInfo] = useState(null); + const [printError, setPrintError] = useState(null); + + const [scannerOpen, setScannerOpen] = useState(false); + const [hasScanned, setHasScanned] = useState(false); + + const incomingAction = useMemo(() => { + const raw = Array.isArray(params.action) ? params.action[0] : params.action; + return String(raw || '').toLowerCase(); + }, [params.action]); + + const customersById = useMemo(() => { + const map = new Map(); + (customers || []).forEach((customer) => { + if (Number.isFinite(Number(customer.id))) { + map.set(Number(customer.id), customer); + } + }); + return map; + }, [customers]); + + const filteredItems = useMemo(() => { + const terms = search.trim().toLowerCase().split(/\s+/).filter(Boolean); + + return (items || []) + .filter((item) => { + if (!showArchived && item.archived) return false; + if (terms.length === 0) return true; + + const customerName = resolveCustomerName(item, customersById); + const haystack = [ + item.name, + item.customerInventoryId, + item.serialNumber, + item.description, + item.manufacturer, + item.manufacturerNumber, + customerName, + ] + .map((value) => String(value || '').toLowerCase()) + .join(' '); + + return terms.every((term) => haystack.includes(term)); + }) + .sort((a, b) => Number(b.id) - Number(a.id)); + }, [customersById, items, search, showArchived]); + + const load = useCallback( + async (showSpinner = true) => { + if (!token) return; + if (showSpinner) setLoading(true); + setError(null); + + try { + const [inventoryRows, customerRows] = await Promise.all([ + fetchAllCustomerInventoryItems(token, true), + fetchCustomers(token, true), + ]); + setItems(inventoryRows || []); + setCustomers(customerRows || []); + } catch (err) { + setError(err instanceof Error ? err.message : 'Kundeninventar konnte nicht geladen werden.'); + } finally { + setLoading(false); + setRefreshing(false); + } + }, + [token] + ); + + useEffect(() => { + if (!token) return; + void load(true); + }, [load, token]); + + const openScanner = useCallback(async () => { + const granted = cameraPermission?.granted; + if (!granted) { + const request = await requestCameraPermission(); + if (!request.granted) { + setError('Bitte erlaube den Zugriff auf die Kamera zum Scannen.'); + return; + } + } + + setHasScanned(false); + setScannerOpen(true); + }, [cameraPermission?.granted, requestCameraPermission]); + + useEffect(() => { + if (incomingAction !== 'scan') return; + if (scanTriggeredRef.current) return; + scanTriggeredRef.current = true; + void openScanner(); + }, [incomingAction, openScanner]); + + async function onRefresh() { + setRefreshing(true); + await load(false); + } + + function closeScanner() { + setScannerOpen(false); + setHasScanned(false); + } + + function onBarcodeScanned(result: BarcodeScanningResult) { + if (hasScanned) return; + const code = String(result.data || '').trim(); + if (!code) return; + + setHasScanned(true); + setSearch(code); + closeScanner(); + } + + function openNimbotForItem(item: CustomerInventoryItem, customerName: string) { + router.push({ + pathname: '/more/nimbot', + params: { + itemName: item.name || '', + itemId: item.customerInventoryId || '', + serial: item.serialNumber || '', + customerInventoryId: item.customerInventoryId || '', + serialNumber: item.serialNumber || '', + customerName, + }, + }); + } + + async function printItemLabel(item: CustomerInventoryItem, customerName: string) { + setPrintError(null); + setPrintInfo(null); + + const connected = getActiveNimbotConnection(); + if (!connected) { + openNimbotForItem(item, customerName); + return; + } + + if (!token) { + setPrintError('Nicht angemeldet. Bitte erneut einloggen.'); + return; + } + + setPrintingItemId(Number(item.id)); + + try { + const context: Record = { + id: item.id, + customerInventoryId: item.customerInventoryId || null, + name: item.name || null, + customerName: customerName === '-' ? null : customerName, + serialNumber: item.serialNumber || null, + }; + + const rendered = await renderPrintLabel(token, context, 584, 354); + await printNimbotEncodedLabel(rendered.encoded, { density: 5, copies: 1, labelType: 1 }); + + setPrintInfo(`Label gedruckt: ${item.name || item.customerInventoryId || `#${item.id}`}`); + } catch (err) { + setPrintError(err instanceof Error ? err.message : 'Label konnte nicht gedruckt werden.'); + } finally { + setPrintingItemId(null); + } + } + + const isPrinterConnected = Boolean(getActiveNimbotConnection()?.device.id); + + return ( + <> + + + + + + Scannen + + setShowArchived((prev) => !prev)}> + + Abgeschlossene anzeigen + + + + + + }> + {error ? {error} : null} + {printError ? {printError} : null} + {printInfo ? {printInfo} : null} + + {loading ? ( + + + Kundeninventar wird geladen... + + ) : null} + + {!loading && filteredItems.length === 0 ? Kein Kundeninventar gefunden. : null} + + {!loading && + filteredItems.map((item) => { + const customerId = resolveCustomerId(item); + const customerName = resolveCustomerName(item, customersById); + + return ( + [styles.row, pressed ? styles.rowPressed : null]} + onPress={() => { + if (customerId) { + router.push(`/more/customer/${customerId}`); + } + }}> + + + {item.name || '-'} + + {item.archived ? Abgeschlossen : null} + + + Kunde: {customerName} + + + ID: {item.customerInventoryId || '-'} · Seriennummer: {item.serialNumber || '-'} + + + {(() => { + const isPrinting = printingItemId === Number(item.id); + return ( + { + event.stopPropagation(); + void printItemLabel(item, customerName); + }} + disabled={isPrinting}> + + {isPrinting ? 'Drucke...' : isPrinterConnected ? 'Label drucken' : 'Mit Nimbot verbinden'} + + + ); + })()} + + + ); + })} + + + + + + + Kundeninventar scannen + + Schließen + + + + + + Barcode oder DataMatrix mittig ins Bild halten. + + + + ); +} + +const styles = StyleSheet.create({ + screen: { flex: 1, backgroundColor: '#ffffff' }, + searchWrap: { + paddingHorizontal: 16, + paddingTop: 12, + paddingBottom: 10, + borderBottomWidth: 1, + borderBottomColor: '#e5e7eb', + backgroundColor: '#ffffff', + gap: 8, + }, + searchInput: { + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 10, + paddingHorizontal: 12, + paddingVertical: 10, + fontSize: 15, + color: '#111827', + backgroundColor: '#ffffff', + }, + searchActions: { + flexDirection: 'row', + alignItems: 'center', + gap: 8, + flexWrap: 'wrap', + }, + scanButton: { + minHeight: 36, + borderRadius: 9, + backgroundColor: PRIMARY, + paddingHorizontal: 12, + alignItems: 'center', + justifyContent: 'center', + }, + scanButtonText: { + color: '#ffffff', + fontWeight: '700', + fontSize: 13, + }, + toggleButton: { + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 999, + paddingHorizontal: 10, + paddingVertical: 6, + backgroundColor: '#ffffff', + }, + toggleButtonActive: { + borderColor: PRIMARY, + backgroundColor: '#eff9ea', + }, + toggleButtonText: { + color: '#374151', + fontSize: 12, + fontWeight: '500', + }, + toggleButtonTextActive: { + color: '#3d7a30', + }, + list: { flex: 1, backgroundColor: '#ffffff' }, + listContent: { paddingBottom: 96 }, + row: { + paddingHorizontal: 16, + paddingVertical: 14, + borderBottomWidth: 1, + borderBottomColor: '#e5e7eb', + backgroundColor: '#ffffff', + gap: 2, + }, + rowPressed: { backgroundColor: '#f3f4f6' }, + rowHeader: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + gap: 8, + }, + rowTitle: { + color: '#111827', + fontSize: 15, + fontWeight: '600', + flex: 1, + minWidth: 0, + }, + rowSubtitle: { + color: '#6b7280', + fontSize: 13, + }, + rowActions: { + marginTop: 8, + }, + printButton: { + minHeight: 34, + borderRadius: 8, + borderWidth: 1, + borderColor: PRIMARY, + backgroundColor: '#eff9ea', + paddingHorizontal: 10, + alignItems: 'center', + justifyContent: 'center', + alignSelf: 'flex-start', + }, + printButtonText: { + color: '#3d7a30', + fontSize: 12, + fontWeight: '700', + }, + badge: { + color: '#3d7a30', + backgroundColor: '#eff9ea', + borderRadius: 999, + paddingHorizontal: 8, + paddingVertical: 4, + fontSize: 12, + overflow: 'hidden', + }, + empty: { + color: '#6b7280', + textAlign: 'center', + paddingVertical: 16, + }, + loadingBox: { + padding: 16, + alignItems: 'center', + gap: 8, + }, + loadingText: { + color: '#6b7280', + }, + error: { + color: '#dc2626', + fontSize: 13, + paddingHorizontal: 16, + paddingTop: 10, + }, + info: { + color: '#166534', + fontSize: 13, + paddingHorizontal: 16, + paddingTop: 10, + }, + printButtonDisabled: { + opacity: 0.65, + }, + scannerScreen: { + flex: 1, + backgroundColor: '#000000', + }, + scannerHeader: { + paddingTop: 56, + paddingHorizontal: 16, + paddingBottom: 12, + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + gap: 10, + }, + scannerTitle: { + color: '#ffffff', + fontSize: 16, + fontWeight: '700', + flex: 1, + minWidth: 0, + }, + scannerCloseButton: { + minHeight: 34, + borderRadius: 8, + borderWidth: 1, + borderColor: '#ffffff', + paddingHorizontal: 10, + alignItems: 'center', + justifyContent: 'center', + }, + scannerCloseButtonText: { + color: '#ffffff', + fontWeight: '600', + }, + scannerCamera: { + flex: 1, + }, + scannerHint: { + color: '#ffffff', + fontSize: 13, + textAlign: 'center', + paddingHorizontal: 16, + paddingVertical: 14, + backgroundColor: 'rgba(17,24,39,0.85)', + }, +}); diff --git a/mobile/app/more/nimbot.tsx b/mobile/app/more/nimbot.tsx new file mode 100644 index 0000000..0ea0fb0 --- /dev/null +++ b/mobile/app/more/nimbot.tsx @@ -0,0 +1,410 @@ +import { useCallback, useEffect, useMemo, useState } from 'react'; +import { ActivityIndicator, Pressable, RefreshControl, ScrollView, StyleSheet, Text, TextInput, View } from 'react-native'; +import { useLocalSearchParams } from 'expo-router'; + +import { renderPrintLabel } from '@/src/lib/api'; +import { + connectNimbotDevice, + disconnectNimbotDevice, + getActiveNimbotConnection, + printNimbotEncodedLabel, + scanNimbotDevices, +} from '@/src/lib/nimbot'; +import { useAuth } from '@/src/providers/auth-provider'; + +const PRIMARY = '#69c350'; + +type ListedDevice = { + id: string; + name: string; + rssi: number | null; +}; + +export default function NimbotScreen() { + const { token } = useAuth(); + const params = useLocalSearchParams<{ + itemName?: string; + itemId?: string; + serial?: string; + customerName?: string; + customerInventoryId?: string; + serialNumber?: string; + }>(); + + const [devices, setDevices] = useState([]); + const [loading, setLoading] = useState(true); + const [refreshing, setRefreshing] = useState(false); + const [scanning, setScanning] = useState(false); + const [connectingId, setConnectingId] = useState(null); + const [printing, setPrinting] = useState(false); + const [error, setError] = useState(null); + const [info, setInfo] = useState(null); + + const [manualLabelText, setManualLabelText] = useState(''); + + const activeConnection = getActiveNimbotConnection(); + + const normalizedInventoryId = useMemo(() => String(params.customerInventoryId || params.itemId || '').trim(), [params.customerInventoryId, params.itemId]); + const normalizedSerial = useMemo(() => String(params.serialNumber || params.serial || '').trim(), [params.serial, params.serialNumber]); + + const prefilledText = useMemo(() => { + const parts = [params.itemName, normalizedInventoryId ? `ID: ${normalizedInventoryId}` : null, normalizedSerial ? `SN: ${normalizedSerial}` : null] + .filter(Boolean) + .map((value) => String(value)); + return parts.join(' | '); + }, [normalizedInventoryId, normalizedSerial, params.itemName]); + + useEffect(() => { + if (!prefilledText) return; + setManualLabelText(prefilledText); + }, [prefilledText]); + + const loadDevices = useCallback(async () => { + setError(null); + setInfo(null); + setScanning(true); + + try { + const result = await scanNimbotDevices(); + setDevices(result); + if (result.length === 0) { + setInfo('Kein Nimbot gefunden. Drucker einschalten und nah an das iPhone halten.'); + } + } catch (err) { + setError(err instanceof Error ? err.message : 'Nimbot-Suche fehlgeschlagen.'); + } finally { + setScanning(false); + setLoading(false); + setRefreshing(false); + } + }, []); + + useEffect(() => { + void loadDevices(); + }, [loadDevices]); + + async function onRefresh() { + setRefreshing(true); + await loadDevices(); + } + + async function onConnect(deviceId: string) { + setConnectingId(deviceId); + setError(null); + setInfo(null); + + try { + const connected = await connectNimbotDevice(deviceId); + setInfo(`Verbunden mit ${connected.device.name}`); + } catch (err) { + setError(err instanceof Error ? err.message : 'Verbindung fehlgeschlagen.'); + } finally { + setConnectingId(null); + } + } + + async function onDisconnect() { + setError(null); + setInfo(null); + + try { + await disconnectNimbotDevice(); + setInfo('Verbindung getrennt.'); + } catch (err) { + setError(err instanceof Error ? err.message : 'Trennen fehlgeschlagen.'); + } + } + + async function onPrint() { + setError(null); + setInfo(null); + setPrinting(true); + + try { + if (!token) { + throw new Error('Nicht angemeldet. Bitte erneut einloggen.'); + } + + const text = manualLabelText.trim(); + if (!text) { + throw new Error('Bitte Label-Inhalt eingeben.'); + } + + const context: Record = { + text, + name: params.itemName || text, + }; + + if (normalizedInventoryId) { + context.customerInventoryId = normalizedInventoryId; + } + if (normalizedSerial) { + context.serialNumber = normalizedSerial; + } + if (params.customerName) { + context.customerName = String(params.customerName); + } + + const rendered = await renderPrintLabel(token, context, 584, 354); + + await printNimbotEncodedLabel(rendered.encoded, { + density: 5, + copies: 1, + labelType: 1, + }); + setInfo('Label wurde an den Nimbot gesendet.'); + } catch (err) { + setError(err instanceof Error ? err.message : 'Label konnte nicht gedruckt werden.'); + } finally { + setPrinting(false); + } + } + + const connectedId = activeConnection?.device.id || null; + + return ( + }> + + Nimbot M2 + Bluetooth-Anbindung (Beta) + + {connectedId ? ( + Verbunden: {activeConnection?.device.name || connectedId} + ) : ( + Nicht verbunden + )} + + + void loadDevices()} + disabled={scanning}> + {scanning ? 'Suche...' : 'Geräte suchen'} + + + void onDisconnect()} + disabled={!connectedId}> + Trennen + + + + + + void onPrint()} + disabled={!connectedId || printing}> + {printing ? 'Drucke...' : 'Label drucken'} + + + {info ? {info} : null} + {error ? {error} : null} + + + + Gefundene Geräte + + {loading ? ( + + + Suche läuft... + + ) : null} + + {!loading && devices.length === 0 ? Keine Geräte gefunden. : null} + + {!loading && + devices.map((device) => { + const isConnected = connectedId === device.id; + const isConnecting = connectingId === device.id; + + return ( + + + + {device.name} + + + {device.id} + {typeof device.rssi === 'number' ? ` · RSSI ${device.rssi}` : ''} + + + + void onConnect(device.id)} + disabled={isConnecting || isConnected}> + + {isConnected ? 'Verbunden' : isConnecting ? 'Verbinde...' : 'Verbinden'} + + + + ); + })} + + + ); +} + +const styles = StyleSheet.create({ + container: { + padding: 16, + gap: 12, + backgroundColor: '#f9fafb', + }, + card: { + backgroundColor: '#ffffff', + borderRadius: 12, + borderWidth: 1, + borderColor: '#e5e7eb', + padding: 12, + gap: 10, + }, + title: { + color: '#111827', + fontSize: 18, + fontWeight: '700', + }, + subtitle: { + color: '#6b7280', + fontSize: 13, + }, + connectedText: { + color: '#166534', + fontSize: 13, + fontWeight: '600', + }, + disconnectedText: { + color: '#6b7280', + fontSize: 13, + }, + actionRow: { + flexDirection: 'row', + gap: 8, + }, + input: { + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 10, + paddingHorizontal: 12, + paddingVertical: 10, + minHeight: 72, + textAlignVertical: 'top', + color: '#111827', + backgroundColor: '#ffffff', + }, + primaryButton: { + minHeight: 40, + borderRadius: 10, + backgroundColor: PRIMARY, + paddingHorizontal: 12, + alignItems: 'center', + justifyContent: 'center', + }, + primaryButtonText: { + color: '#ffffff', + fontWeight: '700', + fontSize: 13, + }, + secondaryButton: { + minHeight: 40, + borderRadius: 10, + borderWidth: 1, + borderColor: '#d1d5db', + backgroundColor: '#ffffff', + paddingHorizontal: 12, + alignItems: 'center', + justifyContent: 'center', + }, + secondaryButtonText: { + color: '#111827', + fontWeight: '600', + fontSize: 13, + }, + sectionTitle: { + color: '#111827', + fontSize: 16, + fontWeight: '700', + }, + deviceRow: { + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 10, + padding: 10, + flexDirection: 'row', + alignItems: 'center', + gap: 10, + }, + deviceInfo: { + flex: 1, + minWidth: 0, + }, + deviceName: { + color: '#111827', + fontSize: 14, + fontWeight: '600', + }, + deviceMeta: { + color: '#6b7280', + fontSize: 12, + marginTop: 2, + }, + connectButton: { + minHeight: 36, + borderRadius: 9, + borderWidth: 1, + borderColor: PRIMARY, + paddingHorizontal: 12, + alignItems: 'center', + justifyContent: 'center', + backgroundColor: '#eff9ea', + }, + connectButtonConnected: { + borderColor: '#9ca3af', + backgroundColor: '#f3f4f6', + }, + connectButtonText: { + color: '#3d7a30', + fontSize: 12, + fontWeight: '700', + }, + loadingBox: { + padding: 12, + alignItems: 'center', + gap: 8, + }, + loadingText: { + color: '#6b7280', + }, + empty: { + color: '#6b7280', + fontSize: 13, + paddingVertical: 4, + }, + info: { + color: '#1d4ed8', + fontSize: 13, + }, + error: { + color: '#dc2626', + fontSize: 13, + }, + buttonDisabled: { + opacity: 0.6, + }, +}); diff --git a/mobile/app/more/plant/[id].tsx b/mobile/app/more/plant/[id].tsx new file mode 100644 index 0000000..d47a37c --- /dev/null +++ b/mobile/app/more/plant/[id].tsx @@ -0,0 +1,396 @@ +import { useCallback, useEffect, useMemo, useState } from 'react'; +import { ActivityIndicator, Pressable, RefreshControl, ScrollView, StyleSheet, Text, View } from 'react-native'; +import { router, useLocalSearchParams } from 'expo-router'; +import * as DocumentPicker from 'expo-document-picker'; +import * as ImagePicker from 'expo-image-picker'; +import * as WebBrowser from 'expo-web-browser'; + +import { fetchPlantById, fetchPlantFiles, Plant, ProjectFile, uploadPlantFile } from '@/src/lib/api'; +import { useAuth } from '@/src/providers/auth-provider'; + +const PRIMARY = '#69c350'; + +function formatDateTime(value: unknown): string { + if (!value) return '-'; + const date = new Date(String(value)); + if (Number.isNaN(date.getTime())) return String(value); + return date.toLocaleString('de-DE', { + day: '2-digit', + month: '2-digit', + year: '2-digit', + hour: '2-digit', + minute: '2-digit', + }); +} + +function getCustomerName(raw: Plant['customer']): string { + if (!raw) return '-'; + if (typeof raw === 'object') return String(raw.name || raw.id || '-'); + return String(raw); +} + +export default function PlantDetailScreen() { + const params = useLocalSearchParams<{ id?: string }>(); + const plantId = Number(params.id); + const { token } = useAuth(); + + const [plant, setPlant] = useState(null); + const [files, setFiles] = useState([]); + const [loading, setLoading] = useState(true); + const [refreshing, setRefreshing] = useState(false); + const [uploading, setUploading] = useState(false); + const [error, setError] = useState(null); + + const validId = useMemo(() => Number.isFinite(plantId) && plantId > 0, [plantId]); + + const rows = useMemo(() => { + if (!plant) return []; + return [ + { label: 'Name', value: String(plant.name || '-') }, + { label: 'Kunde', value: getCustomerName(plant.customer) }, + { label: 'Typ', value: String(plant.type || '-') }, + { label: 'Stadt', value: String(plant.city || '-') }, + { label: 'Strasse', value: String(plant.street || '-') }, + { label: 'PLZ', value: String(plant.zip || '-') }, + { label: 'Erstellt', value: formatDateTime(plant.createdAt || plant.created_at) }, + { label: 'Aktualisiert', value: formatDateTime(plant.updatedAt || plant.updated_at) }, + ]; + }, [plant]); + + const load = useCallback(async (showSpinner = true) => { + if (!token || !validId) return; + if (showSpinner) setLoading(true); + setError(null); + + try { + const [plantData, fileData] = await Promise.all([ + fetchPlantById(token, plantId), + fetchPlantFiles(token, plantId), + ]); + setPlant(plantData); + setFiles(fileData); + } catch (err) { + setError(err instanceof Error ? err.message : 'Objektdaten konnten nicht geladen werden.'); + } finally { + setLoading(false); + setRefreshing(false); + } + }, [plantId, token, validId]); + + useEffect(() => { + if (!token || !validId) return; + void load(true); + }, [load, token, validId]); + + async function onRefresh() { + setRefreshing(true); + await load(false); + } + + async function onOpenFile(file: ProjectFile) { + if (!file.url) return; + await WebBrowser.openBrowserAsync(file.url, { + presentationStyle: WebBrowser.WebBrowserPresentationStyle.FORM_SHEET, + controlsColor: PRIMARY, + showTitle: true, + enableDefaultShareMenuItem: true, + }); + } + + async function onPickAndUpload() { + if (!token || !validId || uploading) return; + + const result = await DocumentPicker.getDocumentAsync({ + multiple: false, + copyToCacheDirectory: true, + type: ['image/*', 'application/pdf', '*/*'], + }); + if (result.canceled || !result.assets?.length) return; + + const asset = result.assets[0]; + const filename = asset.name || `upload-${Date.now()}`; + setUploading(true); + setError(null); + + try { + await uploadPlantFile(token, { + plantId, + uri: asset.uri, + filename, + mimeType: asset.mimeType || 'application/octet-stream', + }); + await load(false); + } catch (err) { + setError(err instanceof Error ? err.message : 'Upload fehlgeschlagen.'); + } finally { + setUploading(false); + } + } + + async function uploadImageFromUri(uri: string, filename: string, mimeType?: string) { + if (!token || !validId) return; + + setUploading(true); + setError(null); + + try { + await uploadPlantFile(token, { + plantId, + uri, + filename, + mimeType: mimeType || 'image/jpeg', + }); + await load(false); + } catch (err) { + setError(err instanceof Error ? err.message : 'Upload fehlgeschlagen.'); + } finally { + setUploading(false); + } + } + + async function onPickImage() { + if (!token || !validId || uploading) return; + + const permission = await ImagePicker.requestMediaLibraryPermissionsAsync(); + if (!permission.granted) { + setError('Bitte erlaube den Zugriff auf deine Fotos.'); + return; + } + + const result = await ImagePicker.launchImageLibraryAsync({ + mediaTypes: ['images'], + quality: 0.85, + allowsEditing: false, + }); + if (result.canceled || !result.assets?.length) return; + + const asset = result.assets[0]; + const filename = asset.fileName || `bild-${Date.now()}.jpg`; + await uploadImageFromUri(asset.uri, filename, asset.mimeType || 'image/jpeg'); + } + + async function onTakePhoto() { + if (!token || !validId || uploading) return; + + const permission = await ImagePicker.requestCameraPermissionsAsync(); + if (!permission.granted) { + setError('Bitte erlaube den Zugriff auf die Kamera.'); + return; + } + + const result = await ImagePicker.launchCameraAsync({ + mediaTypes: ['images'], + quality: 0.85, + allowsEditing: false, + }); + if (result.canceled || !result.assets?.length) return; + + const asset = result.assets[0]; + const filename = asset.fileName || `foto-${Date.now()}.jpg`; + await uploadImageFromUri(asset.uri, filename, asset.mimeType || 'image/jpeg'); + } + + return ( + }> + {error ? {error} : null} + + {loading ? ( + + + Objekt wird geladen... + + ) : null} + + {!loading && plant ? ( + <> + + + Informationen + + router.push({ + pathname: '/more/wiki', + params: { + entityType: 'plants', + entityId: String(plantId), + title: `Objekt-Wiki: ${String(plant.name || plantId)}`, + }, + }) + }> + Wiki + + + + {rows.map((row) => ( + + {row.label} + {row.value} + + ))} + + + + + + Dokumente ({files.length}) + + + + {uploading ? 'Upload...' : 'Foto aufnehmen'} + + + {uploading ? 'Upload...' : 'Bild auswählen'} + + + {uploading ? 'Upload...' : 'Dokument hochladen'} + + + + {files.length === 0 ? ( + Noch keine Dokumente vorhanden. + ) : ( + files.map((file) => ( + onOpenFile(file)}> + + + {file.name || file.path?.split('/').pop() || file.id} + + {file.mimeType || 'Datei'} + + + )) + )} + + + ) : null} + + ); +} + +const styles = StyleSheet.create({ + container: { + padding: 16, + gap: 12, + backgroundColor: '#f9fafb', + }, + card: { + backgroundColor: '#ffffff', + borderRadius: 12, + borderWidth: 1, + borderColor: '#e5e7eb', + padding: 12, + gap: 8, + }, + title: { + color: '#111827', + fontSize: 18, + fontWeight: '700', + }, + table: { + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 10, + overflow: 'hidden', + }, + row: { + borderBottomWidth: 1, + borderBottomColor: '#e5e7eb', + paddingHorizontal: 10, + paddingVertical: 8, + gap: 2, + }, + label: { + color: '#6b7280', + fontSize: 12, + textTransform: 'uppercase', + fontWeight: '600', + }, + value: { + color: '#111827', + fontSize: 14, + fontWeight: '500', + }, + sectionHeader: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + gap: 10, + }, + sectionTitle: { + color: '#111827', + fontSize: 16, + fontWeight: '700', + }, + uploadButton: { + minHeight: 38, + borderRadius: 9, + backgroundColor: PRIMARY, + paddingHorizontal: 12, + alignItems: 'center', + justifyContent: 'center', + }, + uploadActions: { + gap: 8, + }, + uploadButtonText: { + color: '#ffffff', + fontWeight: '700', + fontSize: 13, + }, + fileRow: { + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 10, + padding: 10, + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + gap: 10, + }, + fileInfo: { + flex: 1, + minWidth: 0, + }, + fileName: { + color: '#111827', + fontSize: 14, + fontWeight: '600', + }, + fileMeta: { + color: '#6b7280', + fontSize: 12, + marginTop: 2, + }, + empty: { + color: '#6b7280', + fontSize: 13, + paddingVertical: 4, + }, + loadingBox: { + paddingVertical: 20, + alignItems: 'center', + gap: 8, + }, + loadingText: { + color: '#6b7280', + }, + error: { + color: '#dc2626', + fontSize: 13, + }, + buttonDisabled: { + opacity: 0.6, + }, +}); diff --git a/mobile/app/more/plants.tsx b/mobile/app/more/plants.tsx new file mode 100644 index 0000000..3fcdd75 --- /dev/null +++ b/mobile/app/more/plants.tsx @@ -0,0 +1,432 @@ +import { useCallback, useEffect, useMemo, useState } from 'react'; +import { + ActivityIndicator, + KeyboardAvoidingView, + Modal, + Platform, + Pressable, + RefreshControl, + ScrollView, + StyleSheet, + Text, + TextInput, + View, +} from 'react-native'; +import { useRouter } from 'expo-router'; + +import { createPlant, Customer, fetchCustomers, fetchPlants, Plant } from '@/src/lib/api'; +import { useAuth } from '@/src/providers/auth-provider'; + +const PRIMARY = '#69c350'; + +function getCustomerName(raw: Plant['customer']): string | null { + if (!raw) return null; + if (typeof raw === 'object') return raw.name ? String(raw.name) : null; + return String(raw); +} + +export default function PlantsScreen() { + const { token } = useAuth(); + const router = useRouter(); + + const [plants, setPlants] = useState([]); + const [customers, setCustomers] = useState([]); + const [search, setSearch] = useState(''); + const [showArchived, setShowArchived] = useState(false); + const [loading, setLoading] = useState(true); + const [refreshing, setRefreshing] = useState(false); + const [error, setError] = useState(null); + + const [createOpen, setCreateOpen] = useState(false); + const [saving, setSaving] = useState(false); + const [createError, setCreateError] = useState(null); + const [nameInput, setNameInput] = useState(''); + const [descriptionInput, setDescriptionInput] = useState(''); + const [selectedCustomerId, setSelectedCustomerId] = useState(null); + + const [pickerMode, setPickerMode] = useState<'customer' | null>(null); + const [customerSearch, setCustomerSearch] = useState(''); + + const filtered = useMemo(() => { + const terms = search.trim().toLowerCase().split(/\s+/).filter(Boolean); + + return plants.filter((plant) => { + if (!showArchived && plant.archived) return false; + if (terms.length === 0) return true; + + const haystack = [plant.name, plant.description, getCustomerName(plant.customer)] + .map((value) => String(value || '').toLowerCase()) + .join(' '); + + return terms.every((term) => haystack.includes(term)); + }); + }, [plants, search, showArchived]); + + const filteredCustomerOptions = useMemo(() => { + const terms = customerSearch.trim().toLowerCase().split(/\s+/).filter(Boolean); + return customers + .filter((customer) => !customer.archived) + .filter((customer) => { + if (terms.length === 0) return true; + const haystack = [customer.name, customer.customerNumber] + .map((value) => String(value || '').toLowerCase()) + .join(' '); + return terms.every((term) => haystack.includes(term)); + }); + }, [customerSearch, customers]); + + const selectedCustomerLabel = useMemo(() => { + if (!selectedCustomerId) return 'Kunde auswählen (optional)'; + const customer = customers.find((item) => Number(item.id) === selectedCustomerId); + return customer ? `${customer.name}${customer.customerNumber ? ` · ${customer.customerNumber}` : ''}` : `ID ${selectedCustomerId}`; + }, [customers, selectedCustomerId]); + + const load = useCallback(async (showSpinner = true) => { + if (!token) return; + if (showSpinner) setLoading(true); + setError(null); + + try { + const [plantRows, customerRows] = await Promise.all([fetchPlants(token, true), fetchCustomers(token, true)]); + setPlants(plantRows); + setCustomers(customerRows); + } catch (err) { + setError(err instanceof Error ? err.message : 'Objekte konnten nicht geladen werden.'); + } finally { + setLoading(false); + setRefreshing(false); + } + }, [token]); + + useEffect(() => { + if (!token) return; + void load(true); + }, [load, token]); + + async function onRefresh() { + setRefreshing(true); + await load(false); + } + + function closeCreateModal() { + setCreateOpen(false); + setCreateError(null); + setNameInput(''); + setDescriptionInput(''); + setSelectedCustomerId(null); + setCustomerSearch(''); + setPickerMode(null); + } + + async function onCreatePlant() { + if (!token) return; + + const name = nameInput.trim(); + if (!name) { + setCreateError('Bitte einen Namen eingeben.'); + return; + } + + setSaving(true); + setCreateError(null); + + try { + await createPlant(token, { + name, + customer: selectedCustomerId, + description: descriptionInput.trim() || null, + }); + closeCreateModal(); + await load(false); + } catch (err) { + setCreateError(err instanceof Error ? err.message : 'Objekt konnte nicht erstellt werden.'); + } finally { + setSaving(false); + } + } + + return ( + + + + setShowArchived((prev) => !prev)}> + + Abgeschlossene anzeigen + + + + + }> + {error ? {error} : null} + + {loading ? ( + + + Objekte werden geladen... + + ) : null} + + {!loading && filtered.length === 0 ? Keine Objekte gefunden. : null} + + {!loading && + filtered.map((plant) => ( + [styles.row, pressed ? styles.rowPressed : null]} + onPress={() => router.push(`/more/plant/${plant.id}`)}> + + {plant.name} + {plant.archived ? Abgeschlossen : null} + + {getCustomerName(plant.customer) ? ( + Kunde: {getCustomerName(plant.customer)} + ) : null} + {plant.description ? {String(plant.description)} : null} + + ))} + + + setCreateOpen(true)}> + + + + + + + + + Neues Objekt + + + + setPickerMode('customer')}> + {selectedCustomerLabel} + + + + + {pickerMode === 'customer' ? ( + + Kunde auswählen + + + { + setSelectedCustomerId(null); + setPickerMode(null); + }}> + Keine Auswahl + + {filteredCustomerOptions.map((customer) => ( + { + setSelectedCustomerId(Number(customer.id)); + setPickerMode(null); + }}> + {customer.name} + + {customer.customerNumber ? `Nr. ${customer.customerNumber}` : `ID ${customer.id}`} + + + ))} + + + ) : null} + + {createError ? {createError} : null} + + + + Abbrechen + + + {saving ? 'Speichere...' : 'Anlegen'} + + + + + + + + ); +} + +const styles = StyleSheet.create({ + screen: { flex: 1, backgroundColor: '#ffffff' }, + searchWrap: { + paddingHorizontal: 16, + paddingTop: 12, + paddingBottom: 10, + borderBottomWidth: 1, + borderBottomColor: '#e5e7eb', + backgroundColor: '#ffffff', + gap: 8, + }, + searchInput: { + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 10, + paddingHorizontal: 12, + paddingVertical: 10, + fontSize: 15, + color: '#111827', + backgroundColor: '#ffffff', + }, + list: { flex: 1, backgroundColor: '#ffffff' }, + listContent: { paddingBottom: 96 }, + row: { + paddingHorizontal: 16, + paddingVertical: 14, + borderBottomWidth: 1, + borderBottomColor: '#e5e7eb', + backgroundColor: '#ffffff', + }, + rowPressed: { backgroundColor: '#f3f4f6' }, + rowHeader: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + gap: 8, + }, + rowTitle: { flex: 1, color: '#111827', fontSize: 15, fontWeight: '600' }, + rowSubtitle: { color: '#6b7280', fontSize: 13, marginTop: 2 }, + badge: { + color: '#3d7a30', + fontSize: 11, + fontWeight: '600', + backgroundColor: '#eff9ea', + borderRadius: 999, + paddingHorizontal: 8, + paddingVertical: 3, + overflow: 'hidden', + }, + toggleButton: { + alignSelf: 'flex-start', + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 999, + paddingHorizontal: 10, + paddingVertical: 6, + backgroundColor: '#ffffff', + }, + toggleButtonActive: { borderColor: PRIMARY, backgroundColor: '#eff9ea' }, + toggleButtonText: { color: '#374151', fontSize: 12, fontWeight: '600' }, + toggleButtonTextActive: { color: '#3d7a30' }, + loadingBox: { paddingVertical: 20, alignItems: 'center', gap: 8 }, + loadingText: { color: '#6b7280' }, + empty: { color: '#6b7280', textAlign: 'center', paddingVertical: 20 }, + error: { color: '#dc2626', fontSize: 13, paddingHorizontal: 16, paddingTop: 10 }, + fab: { + position: 'absolute', + right: 18, + bottom: 20, + width: 56, + height: 56, + borderRadius: 28, + backgroundColor: PRIMARY, + alignItems: 'center', + justifyContent: 'center', + shadowColor: '#111827', + shadowOpacity: 0.25, + shadowRadius: 8, + shadowOffset: { width: 0, height: 4 }, + elevation: 5, + }, + fabText: { color: '#ffffff', fontSize: 30, lineHeight: 30, marginTop: -2 }, + modalOverlay: { + flex: 1, + backgroundColor: 'rgba(17, 24, 39, 0.45)', + justifyContent: 'center', + padding: 20, + }, + modalKeyboardWrap: { width: '100%' }, + modalCard: { backgroundColor: '#ffffff', borderRadius: 14, padding: 16, gap: 10 }, + modalTitle: { color: '#111827', fontSize: 18, fontWeight: '700' }, + multilineInput: { minHeight: 92, textAlignVertical: 'top' }, + selectButton: { + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 10, + paddingHorizontal: 12, + paddingVertical: 10, + backgroundColor: '#ffffff', + }, + selectButtonText: { color: '#111827', fontSize: 15 }, + inlinePickerBox: { + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 10, + padding: 10, + gap: 8, + backgroundColor: '#fafafa', + }, + inlinePickerTitle: { color: '#111827', fontSize: 14, fontWeight: '700' }, + pickerList: { maxHeight: 220 }, + pickerRow: { + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 10, + paddingHorizontal: 12, + paddingVertical: 10, + marginBottom: 8, + backgroundColor: '#ffffff', + }, + pickerRowTitle: { color: '#111827', fontSize: 14, fontWeight: '600' }, + pickerRowMeta: { color: '#6b7280', fontSize: 12, marginTop: 2 }, + modalActions: { flexDirection: 'row', justifyContent: 'flex-end', gap: 8, marginTop: 4 }, + secondaryButton: { + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 10, + minHeight: 40, + paddingHorizontal: 14, + alignItems: 'center', + justifyContent: 'center', + }, + secondaryButtonText: { color: '#374151', fontWeight: '600' }, + primaryButton: { + borderRadius: 10, + minHeight: 40, + paddingHorizontal: 14, + alignItems: 'center', + justifyContent: 'center', + backgroundColor: PRIMARY, + }, + primaryButtonText: { color: '#ffffff', fontWeight: '700' }, + buttonDisabled: { opacity: 0.6 }, +}); diff --git a/mobile/app/more/settings.tsx b/mobile/app/more/settings.tsx new file mode 100644 index 0000000..52ae896 --- /dev/null +++ b/mobile/app/more/settings.tsx @@ -0,0 +1,223 @@ +import { useCallback, useEffect, useState } from 'react'; +import { Pressable, ScrollView, StyleSheet, Text, TextInput, View } from 'react-native'; +import { router } from 'expo-router'; + +import { DEFAULT_API_BASE_URL } from '@/src/config/env'; +import { + getApiBaseUrlSync, + hydrateApiBaseUrl, + resetApiBaseUrl, + serverStorageInfo, + setApiBaseUrl, +} from '@/src/lib/server-config'; +import { useAuth } from '@/src/providers/auth-provider'; + +const PRIMARY = '#69c350'; + +function isValidServerUrl(value: string): boolean { + return /^https?:\/\/.+/i.test(value.trim()); +} + +export default function SettingsScreen() { + const { logout, token } = useAuth(); + const [serverUrl, setServerUrlInput] = useState(getApiBaseUrlSync()); + const [savedUrl, setSavedUrl] = useState(getApiBaseUrlSync()); + const [submitting, setSubmitting] = useState(false); + const [error, setError] = useState(null); + const [success, setSuccess] = useState(null); + + const loadConfig = useCallback(async () => { + const current = await hydrateApiBaseUrl(); + setServerUrlInput(current); + setSavedUrl(current); + }, []); + + useEffect(() => { + void loadConfig(); + }, [loadConfig]); + + async function onSave() { + setError(null); + setSuccess(null); + + if (!isValidServerUrl(serverUrl)) { + setError('Bitte eine gültige URL mit http:// oder https:// eingeben.'); + return; + } + + setSubmitting(true); + try { + const normalized = await setApiBaseUrl(serverUrl); + setServerUrlInput(normalized); + setSavedUrl(normalized); + setSuccess('Server-Instanz gespeichert.'); + + if (token) { + await logout(); + router.replace('/login'); + } + } catch (err) { + setError(err instanceof Error ? err.message : 'Server-Instanz konnte nicht gespeichert werden.'); + } finally { + setSubmitting(false); + } + } + + async function onResetToDefault() { + setError(null); + setSuccess(null); + setSubmitting(true); + + try { + const fallback = await resetApiBaseUrl(); + setServerUrlInput(fallback); + setSavedUrl(fallback); + setSuccess('Auf Standard-Server zurückgesetzt.'); + + if (token) { + await logout(); + router.replace('/login'); + } + } catch (err) { + setError(err instanceof Error ? err.message : 'Zuruecksetzen fehlgeschlagen.'); + } finally { + setSubmitting(false); + } + } + + const isDirty = serverUrl.trim() !== savedUrl; + + return ( + + + Server-Instanz + + Hinterlege hier die URL deiner eigenen FEDEO-Server-Instanz. Nach dem Speichern wird die Session + neu gestartet. + + + Server URL + + + Aktiv: {savedUrl} + Standard: {DEFAULT_API_BASE_URL} + Storage: {serverStorageInfo.mode} + + {error ? {error} : null} + {success ? {success} : null} + + + + {submitting ? 'Speichern...' : 'Speichern'} + + + + Auf Standard zurücksetzen + + + + + ); +} + +const styles = StyleSheet.create({ + container: { + flexGrow: 1, + backgroundColor: '#f9fafb', + padding: 16, + }, + card: { + backgroundColor: '#ffffff', + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 12, + padding: 14, + gap: 10, + }, + title: { + color: '#111827', + fontSize: 18, + fontWeight: '700', + }, + hint: { + color: '#6b7280', + fontSize: 13, + lineHeight: 18, + }, + label: { + color: '#374151', + fontSize: 13, + fontWeight: '600', + marginTop: 2, + }, + input: { + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 10, + paddingHorizontal: 12, + paddingVertical: 10, + fontSize: 15, + color: '#111827', + backgroundColor: '#ffffff', + }, + meta: { + color: '#6b7280', + fontSize: 12, + }, + actions: { + gap: 8, + marginTop: 6, + }, + saveButton: { + minHeight: 42, + backgroundColor: PRIMARY, + borderRadius: 10, + alignItems: 'center', + justifyContent: 'center', + }, + saveButtonText: { + color: '#ffffff', + fontSize: 15, + fontWeight: '700', + }, + resetButton: { + minHeight: 42, + borderRadius: 10, + borderWidth: 1, + borderColor: '#d1d5db', + alignItems: 'center', + justifyContent: 'center', + backgroundColor: '#ffffff', + }, + resetButtonText: { + color: '#374151', + fontSize: 14, + fontWeight: '600', + }, + buttonDisabled: { + opacity: 0.6, + }, + error: { + color: '#dc2626', + fontSize: 13, + }, + success: { + color: '#166534', + fontSize: 13, + }, +}); diff --git a/mobile/app/more/wiki.tsx b/mobile/app/more/wiki.tsx new file mode 100644 index 0000000..50d7177 --- /dev/null +++ b/mobile/app/more/wiki.tsx @@ -0,0 +1,804 @@ +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { + ActivityIndicator, + KeyboardAvoidingView, + Modal, + Platform, + Pressable, + RefreshControl, + ScrollView, + StyleSheet, + Text, + TextInput, + View, +} from 'react-native'; +import { useLocalSearchParams } from 'expo-router'; + +import { + createWikiPage, + deleteWikiPage, + fetchWikiPageById, + fetchWikiTree, + updateWikiPage, + WikiTreeItem, +} from '@/src/lib/api'; +import { useAuth } from '@/src/providers/auth-provider'; + +const PRIMARY = '#69c350'; + +type FlatNode = WikiTreeItem & { depth: number }; + +type TiptapDoc = { + type: string; + content?: Record[]; +}; + +type EditorMessage = { + type: 'ready' | 'content' | 'error'; + content?: unknown; + message?: string; +}; + +const WebViewComponent: any = (() => { + try { + // `react-native-webview` is optional until dependency install is complete on the user's machine. + // eslint-disable-next-line @typescript-eslint/no-require-imports + return require('react-native-webview').WebView; + } catch { + return null; + } +})(); + +function createEmptyDoc(): TiptapDoc { + return { + type: 'doc', + content: [{ type: 'paragraph', content: [] }], + }; +} + +function normalizeDoc(value: unknown): TiptapDoc { + if (value && typeof value === 'object' && (value as { type?: unknown }).type === 'doc') { + return value as TiptapDoc; + } + + if (typeof value === 'string' && value.trim()) { + return { + type: 'doc', + content: [{ type: 'paragraph', content: [{ type: 'text', text: value }] }], + }; + } + + return createEmptyDoc(); +} + +function buildTiptapHtml(initialDoc: TiptapDoc): string { + const initialDocJson = JSON.stringify(initialDoc).replace(/ + + + + + + + +

+ + + +`; +} + +function isVirtualNode(node: WikiTreeItem): boolean { + return Boolean(node.isVirtual) || String(node.id).startsWith('virtual-'); +} + +export default function WikiScreen() { + const { token } = useAuth(); + const params = useLocalSearchParams<{ entityType?: string; entityId?: string; entityUuid?: string; title?: string }>(); + + const entityType = useMemo(() => String(params.entityType || '').trim(), [params.entityType]); + const entityId = useMemo(() => { + const value = Number(params.entityId); + return Number.isFinite(value) && value > 0 ? value : null; + }, [params.entityId]); + const entityUuid = useMemo(() => String(params.entityUuid || '').trim() || null, [params.entityUuid]); + const screenTitle = useMemo(() => String(params.title || '').trim() || 'Wiki', [params.title]); + + const [items, setItems] = useState([]); + const [expandedIds, setExpandedIds] = useState([]); + const [selectedPageId, setSelectedPageId] = useState(null); + + const [selectedTitle, setSelectedTitle] = useState(''); + const [selectedDoc, setSelectedDoc] = useState(createEmptyDoc()); + const [editorVersion, setEditorVersion] = useState(0); + const [editorError, setEditorError] = useState(null); + + const [loading, setLoading] = useState(true); + const [refreshing, setRefreshing] = useState(false); + const [loadingPage, setLoadingPage] = useState(false); + const [saving, setSaving] = useState(false); + const [deleting, setDeleting] = useState(false); + const [error, setError] = useState(null); + const [info, setInfo] = useState(null); + + const [createModalOpen, setCreateModalOpen] = useState(false); + const [creating, setCreating] = useState(false); + const [newTitle, setNewTitle] = useState(''); + const [newIsFolder, setNewIsFolder] = useState(false); + + const webViewRef = useRef(null); + + const flatNodes = useMemo(() => { + const byParent = new Map(); + + (items || []).forEach((item) => { + const parentId = String(item.parentId || 'root'); + if (!byParent.has(parentId)) byParent.set(parentId, []); + byParent.get(parentId)?.push(item); + }); + + const sortNodes = (nodes: WikiTreeItem[]) => + nodes.sort((a, b) => { + if ((a.isFolder ? 1 : 0) !== (b.isFolder ? 1 : 0)) return (b.isFolder ? 1 : 0) - (a.isFolder ? 1 : 0); + const sortA = Number(a.sortOrder || 0); + const sortB = Number(b.sortOrder || 0); + if (sortA !== sortB) return sortA - sortB; + return String(a.title || '').localeCompare(String(b.title || ''), 'de'); + }); + + byParent.forEach((nodes, key) => { + byParent.set(key, sortNodes(nodes)); + }); + + const out: FlatNode[] = []; + + const walk = (parentId: string, depth: number) => { + const children = byParent.get(parentId) || []; + children.forEach((child) => { + out.push({ ...child, depth }); + const isExpandable = Boolean(child.isFolder) || (byParent.get(String(child.id)) || []).length > 0; + if (isExpandable && expandedIds.includes(String(child.id))) { + walk(String(child.id), depth + 1); + } + }); + }; + + walk('root', 0); + return out; + }, [expandedIds, items]); + + const selectedNode = useMemo( + () => (selectedPageId ? (items || []).find((item) => String(item.id) === String(selectedPageId)) || null : null), + [items, selectedPageId] + ); + const selectedNodeIsVirtual = useMemo(() => (selectedNode ? isVirtualNode(selectedNode) : false), [selectedNode]); + + const isEntityScope = Boolean(entityType && (entityId || entityUuid)); + + const loadTree = useCallback( + async (showSpinner = true) => { + if (!token) return; + if (showSpinner) setLoading(true); + setError(null); + setInfo(null); + + try { + const rows = await fetchWikiTree(token, { + entityType: entityType || undefined, + entityId, + entityUuid, + }); + setItems(rows || []); + + const autoExpand = new Set(); + (rows || []).forEach((item) => { + if (item.isFolder || isVirtualNode(item)) autoExpand.add(String(item.id)); + }); + setExpandedIds(Array.from(autoExpand)); + } catch (err) { + setError(err instanceof Error ? err.message : 'Wiki konnte nicht geladen werden.'); + } finally { + setLoading(false); + setRefreshing(false); + } + }, + [entityId, entityType, entityUuid, token] + ); + + const loadPage = useCallback( + async (pageId: string) => { + if (!token) return; + setLoadingPage(true); + setError(null); + setEditorError(null); + + try { + const page = await fetchWikiPageById(token, pageId); + setSelectedPageId(String(page.id)); + setSelectedTitle(String(page.title || '')); + setSelectedDoc(normalizeDoc(page.content)); + setEditorVersion((prev) => prev + 1); + } catch (err) { + setError(err instanceof Error ? err.message : 'Wiki-Seite konnte nicht geladen werden.'); + } finally { + setLoadingPage(false); + } + }, + [token] + ); + + useEffect(() => { + if (!token) return; + void loadTree(true); + }, [loadTree, token]); + + async function onRefresh() { + setRefreshing(true); + await loadTree(false); + } + + async function onSavePage() { + if (!token || !selectedPageId || saving) return; + + setSaving(true); + setError(null); + setInfo(null); + + try { + await updateWikiPage(token, selectedPageId, { + title: selectedTitle.trim() || 'Ohne Titel', + content: selectedDoc, + }); + + setItems((prev) => + prev.map((item) => + String(item.id) === String(selectedPageId) ? { ...item, title: selectedTitle.trim() || 'Ohne Titel' } : item + ) + ); + setInfo('Wiki-Seite gespeichert.'); + } catch (err) { + setError(err instanceof Error ? err.message : 'Wiki-Seite konnte nicht gespeichert werden.'); + } finally { + setSaving(false); + } + } + + async function onDeletePage() { + if (!token || !selectedPageId || deleting) return; + setDeleting(true); + setError(null); + setInfo(null); + + try { + await deleteWikiPage(token, selectedPageId); + setSelectedPageId(null); + setSelectedTitle(''); + setSelectedDoc(createEmptyDoc()); + setEditorVersion((prev) => prev + 1); + await loadTree(false); + setInfo('Wiki-Seite gelöscht.'); + } catch (err) { + setError(err instanceof Error ? err.message : 'Wiki-Seite konnte nicht gelöscht werden.'); + } finally { + setDeleting(false); + } + } + + function closeCreateModal() { + setCreateModalOpen(false); + setNewTitle(''); + setNewIsFolder(false); + } + + async function onCreatePage() { + if (!token || creating) return; + const title = newTitle.trim(); + if (!title) { + setError('Bitte einen Titel eingeben.'); + return; + } + + setCreating(true); + setError(null); + setInfo(null); + + try { + const page = await createWikiPage(token, { + title, + parentId: null, + isFolder: newIsFolder, + entityType: entityType || undefined, + entityId, + entityUuid, + }); + closeCreateModal(); + await loadTree(false); + + if (!newIsFolder && page?.id) { + await loadPage(String(page.id)); + } + setInfo(newIsFolder ? 'Wiki-Ordner erstellt.' : 'Wiki-Seite erstellt.'); + } catch (err) { + setError(err instanceof Error ? err.message : 'Wiki-Seite konnte nicht erstellt werden.'); + } finally { + setCreating(false); + } + } + + return ( + <> + }> + + {screenTitle} + {isEntityScope ? 'Entity-Wiki' : 'Zentrale Wissensübersicht'} + + setCreateModalOpen(true)}> + Neue Seite + + + + {error ? {error} : null} + {info ? {info} : null} + + + Seiten + {loading ? ( + + + Wiki wird geladen... + + ) : flatNodes.length === 0 ? ( + Noch keine Wiki-Seiten vorhanden. + ) : ( + + {flatNodes.map((node) => { + const id = String(node.id); + const isSelected = selectedPageId === id; + const childrenExist = flatNodes.some((item) => String(item.parentId || '') === id); + const expandable = Boolean(node.isFolder) || childrenExist || isVirtualNode(node); + const expanded = expandedIds.includes(id); + + return ( + { + if (expandable) { + setExpandedIds((prev) => (prev.includes(id) ? prev.filter((entry) => entry !== id) : [...prev, id])); + } + + if (node.isFolder || isVirtualNode(node)) return; + void loadPage(id); + }}> + + {expandable ? (expanded ? '⌄' : '›') : '·'} + {node.isFolder || isVirtualNode(node) ? '📁' : '📄'} + + {String(node.title || 'Ohne Titel')} + + + + ); + })} + + )} + + + + Inhalt + + {!selectedPageId ? ( + Wähle eine Wiki-Seite aus der Liste aus. + ) : loadingPage ? ( + + + Inhalt wird geladen... + + ) : ( + <> + + + + {WebViewComponent ? ( + { + try { + const payload = JSON.parse(String(event?.nativeEvent?.data || '{}')) as EditorMessage; + if (payload.type === 'content' && payload.content) { + setSelectedDoc(normalizeDoc(payload.content)); + } else if (payload.type === 'error') { + setEditorError(payload.message || 'Editor-Fehler'); + } + } catch { + setEditorError('Editor-Nachricht konnte nicht gelesen werden.'); + } + }} + onError={() => setEditorError('TipTap Editor konnte nicht geladen werden.')} + setSupportMultipleWindows={false} + style={styles.webView} + /> + ) : ( + + `react-native-webview` ist noch nicht installiert. + + )} + + + {editorError ? {editorError} : null} + + + void onSavePage()} + disabled={saving}> + {saving ? 'Speichert...' : 'Speichern'} + + + void onDeletePage()} + disabled={deleting || Boolean(selectedNode?.isFolder) || selectedNodeIsVirtual}> + {deleting ? 'Löscht...' : 'Löschen'} + + + + )} + + + + + + + + Neue Wiki-Seite + + + + {!isEntityScope ? ( + setNewIsFolder((prev) => !prev)}> + + Als Ordner erstellen + + + ) : null} + + + + Abbrechen + + void onCreatePage()} + disabled={creating}> + {creating ? 'Erstelle...' : 'Erstellen'} + + + + + + + + ); +} + +const styles = StyleSheet.create({ + container: { + padding: 16, + gap: 12, + backgroundColor: '#f9fafb', + }, + headerCard: { + backgroundColor: '#ffffff', + borderRadius: 12, + borderWidth: 1, + borderColor: '#e5e7eb', + padding: 12, + gap: 8, + }, + headerTitle: { + color: '#111827', + fontSize: 18, + fontWeight: '700', + }, + headerSubtitle: { + color: '#6b7280', + fontSize: 13, + }, + card: { + backgroundColor: '#ffffff', + borderRadius: 12, + borderWidth: 1, + borderColor: '#e5e7eb', + padding: 12, + gap: 8, + }, + sectionTitle: { + color: '#111827', + fontSize: 16, + fontWeight: '700', + }, + treeWrap: { + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 10, + overflow: 'hidden', + }, + treeRow: { + borderBottomWidth: 1, + borderBottomColor: '#e5e7eb', + backgroundColor: '#ffffff', + }, + treeRowActive: { + backgroundColor: '#f0f9eb', + }, + treeRowInner: { + minHeight: 40, + flexDirection: 'row', + alignItems: 'center', + gap: 6, + paddingRight: 10, + }, + treeArrow: { + color: '#6b7280', + fontSize: 15, + width: 14, + textAlign: 'center', + }, + treeIcon: { + fontSize: 14, + }, + treeTitle: { + flex: 1, + color: '#111827', + fontSize: 14, + fontWeight: '500', + }, + input: { + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 10, + paddingHorizontal: 12, + paddingVertical: 10, + fontSize: 15, + color: '#111827', + backgroundColor: '#ffffff', + }, + editorWrap: { + height: 320, + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 10, + overflow: 'hidden', + backgroundColor: '#ffffff', + }, + webView: { + flex: 1, + backgroundColor: '#ffffff', + }, + missingWebView: { + flex: 1, + alignItems: 'center', + justifyContent: 'center', + padding: 12, + }, + editorActions: { + flexDirection: 'row', + gap: 8, + }, + primaryButton: { + minHeight: 38, + borderRadius: 9, + backgroundColor: PRIMARY, + paddingHorizontal: 12, + alignItems: 'center', + justifyContent: 'center', + }, + primaryButtonText: { + color: '#ffffff', + fontWeight: '700', + fontSize: 13, + }, + secondaryButton: { + minHeight: 38, + borderRadius: 9, + borderWidth: 1, + borderColor: '#d1d5db', + backgroundColor: '#ffffff', + paddingHorizontal: 12, + alignItems: 'center', + justifyContent: 'center', + }, + secondaryButtonText: { + color: '#374151', + fontWeight: '600', + fontSize: 13, + }, + deleteButton: { + minHeight: 38, + borderRadius: 9, + borderWidth: 1, + borderColor: '#ef4444', + backgroundColor: '#ffffff', + paddingHorizontal: 12, + alignItems: 'center', + justifyContent: 'center', + }, + deleteButtonText: { + color: '#b91c1c', + fontWeight: '700', + fontSize: 13, + }, + buttonDisabled: { + opacity: 0.6, + }, + empty: { + color: '#6b7280', + fontSize: 13, + paddingVertical: 4, + }, + loadingBox: { + paddingVertical: 16, + alignItems: 'center', + gap: 8, + }, + loadingText: { + color: '#6b7280', + }, + error: { + color: '#dc2626', + fontSize: 13, + }, + info: { + color: '#166534', + fontSize: 13, + }, + modalOverlay: { + flex: 1, + backgroundColor: 'rgba(0,0,0,0.35)', + justifyContent: 'center', + padding: 16, + }, + modalKeyboardWrap: { + width: '100%', + }, + modalCard: { + backgroundColor: '#ffffff', + borderRadius: 14, + padding: 14, + gap: 10, + }, + modalTitle: { + color: '#111827', + fontSize: 16, + fontWeight: '700', + }, + modalActions: { + flexDirection: 'row', + justifyContent: 'flex-end', + gap: 8, + }, + filterButton: { + alignSelf: 'flex-start', + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 999, + paddingHorizontal: 10, + paddingVertical: 6, + backgroundColor: '#ffffff', + }, + filterButtonActive: { + borderColor: PRIMARY, + backgroundColor: '#eff9ea', + }, + filterButtonText: { + color: '#374151', + fontSize: 12, + fontWeight: '500', + }, + filterButtonTextActive: { + color: '#3d7a30', + }, +}); diff --git a/mobile/app/project/[id].tsx b/mobile/app/project/[id].tsx new file mode 100644 index 0000000..77fddc3 --- /dev/null +++ b/mobile/app/project/[id].tsx @@ -0,0 +1,802 @@ +import { useCallback, useEffect, useMemo, useState } from 'react'; +import { + ActivityIndicator, + KeyboardAvoidingView, + Modal, + Platform, + Pressable, + RefreshControl, + ScrollView, + StyleSheet, + Text, + TextInput, + View, +} from 'react-native'; +import { router, useLocalSearchParams } from 'expo-router'; +import * as DocumentPicker from 'expo-document-picker'; +import * as ImagePicker from 'expo-image-picker'; +import * as WebBrowser from 'expo-web-browser'; + +import { + createProjectTask, + fetchProjectById, + fetchProjectFiles, + fetchProjectTasks, + Project, + ProjectFile, + Task, + TaskStatus, + uploadProjectFile, + updateTask, +} from '@/src/lib/api'; +import { useAuth } from '@/src/providers/auth-provider'; + +const PRIMARY = '#69c350'; +const TASK_STATUS_ORDER: TaskStatus[] = ['Offen', 'In Bearbeitung', 'Abgeschlossen']; + +function normalizeTaskStatus(status: unknown): TaskStatus { + if (status === 'In Bearbeitung' || status === 'Abgeschlossen') return status; + return 'Offen'; +} + +function formatDateTime(value: unknown): string { + if (!value) return '-'; + const date = new Date(String(value)); + if (Number.isNaN(date.getTime())) return String(value); + return date.toLocaleString('de-DE', { + day: '2-digit', + month: '2-digit', + year: '2-digit', + hour: '2-digit', + minute: '2-digit', + }); +} + +function getRefName(value: unknown): string { + if (!value) return '-'; + if (typeof value === 'object') { + const record = value as { name?: string; full_name?: string; email?: string; id?: string | number }; + return String(record.name || record.full_name || record.email || record.id || '-'); + } + return String(value); +} + +export default function ProjectDetailScreen() { + const params = useLocalSearchParams<{ id?: string }>(); + const projectId = Number(params.id); + const { token, user } = useAuth(); + + const [project, setProject] = useState(null); + const [files, setFiles] = useState([]); + const [tasks, setTasks] = useState([]); + const [loading, setLoading] = useState(true); + const [refreshing, setRefreshing] = useState(false); + const [uploading, setUploading] = useState(false); + const [creatingTask, setCreatingTask] = useState(false); + const [updatingTaskId, setUpdatingTaskId] = useState(null); + const [createTaskModalOpen, setCreateTaskModalOpen] = useState(false); + const [createTaskError, setCreateTaskError] = useState(null); + const [newTaskName, setNewTaskName] = useState(''); + const [newTaskDescription, setNewTaskDescription] = useState(''); + const [showCompletedTasks, setShowCompletedTasks] = useState(false); + const [error, setError] = useState(null); + + const validProjectId = useMemo(() => Number.isFinite(projectId) && projectId > 0, [projectId]); + const currentUserId = useMemo(() => (user?.id ? String(user.id) : null), [user]); + const infoRows = useMemo(() => { + if (!project) return []; + + return [ + { label: 'Projektname', value: project.name || '-' }, + { label: 'Projekt-Nr.', value: String(project.projectNumber || '-') }, + { label: 'Aktive Phase', value: String(project.active_phase || '-') }, + { label: 'Kunde', value: getRefName(project.customer) }, + { label: 'Objekt', value: getRefName(project.plant) }, + { label: 'Vertrag', value: getRefName(project.contract) }, + { label: 'Projekttyp', value: getRefName(project.projecttype || project.projectType) }, + { label: 'Kunden-Ref.', value: String(project.customerRef || '-') }, + { label: 'Leistung', value: String(project.measure || '-') }, + { label: 'Erstellt', value: formatDateTime(project.createdAt || project.created_at) }, + { label: 'Aktualisiert', value: formatDateTime(project.updatedAt || project.updated_at) }, + ]; + }, [project]); + const visibleTasks = useMemo(() => { + return (tasks || []) + .filter((task) => { + const status = normalizeTaskStatus(task.categorie); + return showCompletedTasks || status !== 'Abgeschlossen'; + }) + .sort((a, b) => { + const statusDiff = + TASK_STATUS_ORDER.indexOf(normalizeTaskStatus(a.categorie)) - + TASK_STATUS_ORDER.indexOf(normalizeTaskStatus(b.categorie)); + if (statusDiff !== 0) return statusDiff; + return Number(b.id) - Number(a.id); + }); + }, [showCompletedTasks, tasks]); + + const load = useCallback(async (showSpinner = true) => { + if (!token || !validProjectId) return; + if (showSpinner) setLoading(true); + setError(null); + + try { + const [projectData, fileData, taskData] = await Promise.all([ + fetchProjectById(token, projectId), + fetchProjectFiles(token, projectId), + fetchProjectTasks(token, projectId), + ]); + setProject(projectData); + setFiles(fileData); + setTasks(taskData); + } catch (err) { + setError(err instanceof Error ? err.message : 'Projektdaten konnten nicht geladen werden.'); + } finally { + setLoading(false); + setRefreshing(false); + } + }, [projectId, token, validProjectId]); + + useEffect(() => { + if (!token || !validProjectId) return; + void load(true); + }, [load, token, validProjectId]); + + async function onRefresh() { + setRefreshing(true); + await load(false); + } + + function closeCreateTaskModal() { + setCreateTaskModalOpen(false); + setCreateTaskError(null); + setNewTaskName(''); + setNewTaskDescription(''); + } + + async function onCreateTask() { + if (!token || !validProjectId || creatingTask) return; + + const name = newTaskName.trim(); + if (!name) { + setCreateTaskError('Bitte einen Aufgabentitel eingeben.'); + return; + } + + setCreatingTask(true); + setCreateTaskError(null); + setError(null); + + try { + await createProjectTask(token, { + projectId, + name, + description: newTaskDescription.trim() || null, + userId: currentUserId, + }); + closeCreateTaskModal(); + await load(false); + } catch (err) { + setCreateTaskError(err instanceof Error ? err.message : 'Aufgabe konnte nicht erstellt werden.'); + } finally { + setCreatingTask(false); + } + } + + async function onOpenFile(file: ProjectFile) { + if (!file.url) return; + await WebBrowser.openBrowserAsync(file.url, { + presentationStyle: WebBrowser.WebBrowserPresentationStyle.FORM_SHEET, + controlsColor: PRIMARY, + showTitle: true, + enableDefaultShareMenuItem: true, + }); + } + + async function onCompleteTask(task: Task) { + if (!token || !task?.id) return; + if (normalizeTaskStatus(task.categorie) === 'Abgeschlossen') return; + + setUpdatingTaskId(Number(task.id)); + setError(null); + + try { + await updateTask(token, Number(task.id), { categorie: 'Abgeschlossen' }); + setTasks((prev) => + prev.map((item) => (Number(item.id) === Number(task.id) ? { ...item, categorie: 'Abgeschlossen' } : item)) + ); + } catch (err) { + setError(err instanceof Error ? err.message : 'Aufgabe konnte nicht abgeschlossen werden.'); + } finally { + setUpdatingTaskId(null); + } + } + + async function onPickAndUpload() { + if (!token || !validProjectId || uploading) return; + + const result = await DocumentPicker.getDocumentAsync({ + multiple: false, + copyToCacheDirectory: true, + type: ['image/*', 'application/pdf', '*/*'], + }); + + if (result.canceled || !result.assets?.length) return; + + const asset = result.assets[0]; + const filename = asset.name || `upload-${Date.now()}`; + + setUploading(true); + setError(null); + + try { + await uploadProjectFile(token, { + projectId, + uri: asset.uri, + filename, + mimeType: asset.mimeType || 'application/octet-stream', + }); + await load(false); + } catch (err) { + setError(err instanceof Error ? err.message : 'Upload fehlgeschlagen.'); + } finally { + setUploading(false); + } + } + + async function uploadImageFromUri(uri: string, filename: string, mimeType?: string) { + if (!token || !validProjectId) return; + + setUploading(true); + setError(null); + + try { + await uploadProjectFile(token, { + projectId, + uri, + filename, + mimeType: mimeType || 'image/jpeg', + }); + await load(false); + } catch (err) { + setError(err instanceof Error ? err.message : 'Upload fehlgeschlagen.'); + } finally { + setUploading(false); + } + } + + async function onPickImage() { + if (!token || !validProjectId || uploading) return; + + const permission = await ImagePicker.requestMediaLibraryPermissionsAsync(); + if (!permission.granted) { + setError('Bitte erlaube den Zugriff auf deine Fotos.'); + return; + } + + const result = await ImagePicker.launchImageLibraryAsync({ + mediaTypes: ['images'], + quality: 0.85, + allowsEditing: false, + }); + + if (result.canceled || !result.assets?.length) return; + + const asset = result.assets[0]; + const filename = asset.fileName || `bild-${Date.now()}.jpg`; + await uploadImageFromUri(asset.uri, filename, asset.mimeType || 'image/jpeg'); + } + + async function onTakePhoto() { + if (!token || !validProjectId || uploading) return; + + const permission = await ImagePicker.requestCameraPermissionsAsync(); + if (!permission.granted) { + setError('Bitte erlaube den Zugriff auf die Kamera.'); + return; + } + + const result = await ImagePicker.launchCameraAsync({ + mediaTypes: ['images'], + quality: 0.85, + allowsEditing: false, + }); + + if (result.canceled || !result.assets?.length) return; + + const asset = result.assets[0]; + const filename = asset.fileName || `foto-${Date.now()}.jpg`; + await uploadImageFromUri(asset.uri, filename, asset.mimeType || 'image/jpeg'); + } + + if (!validProjectId) { + return ( + + Ungültige Projekt-ID. + + ); + } + + return ( + }> + {error ? {error} : null} + + {loading ? ( + + + Projekt wird geladen... + + ) : null} + + {!loading && project ? ( + <> + + + Informationen + + router.push({ + pathname: '/more/wiki', + params: { + entityType: 'projects', + entityId: String(projectId), + title: `Projekt-Wiki: ${String(project.name || projectId)}`, + }, + }) + }> + Wiki + + + + {infoRows.map((row) => ( + + {row.label} + {row.value} + + ))} + + {project.notes ? ( + + Notizen + {String(project.notes)} + + ) : null} + + + + + Aufgaben ({tasks.length}) + + setShowCompletedTasks((prev) => !prev)}> + + Abgeschlossene anzeigen + + + setCreateTaskModalOpen(true)}> + Neue Aufgabe + + + + {visibleTasks.length === 0 ? ( + Keine Aufgaben vorhanden. + ) : ( + visibleTasks.map((task) => { + const status = normalizeTaskStatus(task.categorie); + const isUpdatingTask = updatingTaskId === Number(task.id); + const canComplete = status !== 'Abgeschlossen'; + return ( + + + + {task.name || '-'} + + {task.description ? ( + + {String(task.description)} + + ) : null} + + + {status} + {canComplete ? ( + onCompleteTask(task)} + disabled={isUpdatingTask}> + {isUpdatingTask ? '...' : 'Abhaken'} + + ) : null} + + + ); + }) + )} + + + + + Dokumente ({files.length}) + + + + {uploading ? 'Upload...' : 'Foto aufnehmen'} + + + {uploading ? 'Upload...' : 'Bild auswählen'} + + + {uploading ? 'Upload...' : 'Dokument hochladen'} + + + + {files.length === 0 ? ( + Noch keine Dokumente vorhanden. + ) : ( + files.map((file) => ( + onOpenFile(file)}> + + + {file.name || file.path?.split('/').pop() || file.id} + + {file.mimeType || 'Datei'} + + + )) + )} + + + ) : null} + + + + + + Neue Projekt-Aufgabe + + + + + {createTaskError ? {createTaskError} : null} + + + + Abbrechen + + + {creatingTask ? 'Speichere...' : 'Anlegen'} + + + + + + + + ); +} + +const styles = StyleSheet.create({ + container: { + padding: 16, + gap: 12, + backgroundColor: '#f9fafb', + }, + centered: { + flex: 1, + alignItems: 'center', + justifyContent: 'center', + padding: 16, + }, + card: { + backgroundColor: '#ffffff', + borderRadius: 12, + borderWidth: 1, + borderColor: '#e5e7eb', + padding: 12, + gap: 8, + }, + title: { + color: '#111827', + fontSize: 18, + fontWeight: '700', + }, + infoTable: { + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 10, + overflow: 'hidden', + }, + infoRow: { + borderBottomWidth: 1, + borderBottomColor: '#e5e7eb', + paddingHorizontal: 10, + paddingVertical: 8, + gap: 2, + backgroundColor: '#ffffff', + }, + infoLabel: { + color: '#6b7280', + fontSize: 12, + textTransform: 'uppercase', + fontWeight: '600', + }, + infoValue: { + color: '#111827', + fontSize: 14, + fontWeight: '500', + }, + notesBox: { + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 10, + padding: 10, + backgroundColor: '#fafafa', + gap: 4, + }, + notesLabel: { + color: '#6b7280', + fontSize: 12, + fontWeight: '600', + textTransform: 'uppercase', + }, + notes: { + color: '#374151', + fontSize: 14, + }, + sectionHeader: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'flex-start', + gap: 10, + }, + sectionTitle: { + color: '#111827', + fontSize: 16, + fontWeight: '700', + }, + sectionHeaderActions: { + alignItems: 'flex-end', + gap: 8, + }, + filterChip: { + borderRadius: 999, + borderWidth: 1, + borderColor: '#d1d5db', + paddingHorizontal: 10, + paddingVertical: 6, + backgroundColor: '#ffffff', + }, + filterChipActive: { + borderColor: PRIMARY, + backgroundColor: '#eff9ea', + }, + filterChipText: { + color: '#374151', + fontSize: 12, + fontWeight: '500', + }, + filterChipTextActive: { + color: '#3d7a30', + }, + smallPrimaryButton: { + minHeight: 34, + borderRadius: 8, + backgroundColor: PRIMARY, + paddingHorizontal: 11, + alignItems: 'center', + justifyContent: 'center', + }, + smallPrimaryButtonText: { + color: '#ffffff', + fontWeight: '700', + fontSize: 12, + }, + taskRow: { + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 10, + padding: 10, + gap: 8, + }, + taskRowMain: { + gap: 4, + }, + taskTitle: { + color: '#111827', + fontSize: 14, + fontWeight: '600', + }, + taskDescription: { + color: '#374151', + fontSize: 13, + }, + statusBadge: { + alignSelf: 'flex-start', + color: '#3d7a30', + backgroundColor: '#eff9ea', + borderRadius: 999, + paddingHorizontal: 8, + paddingVertical: 4, + fontSize: 12, + overflow: 'hidden', + }, + taskRowFooter: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + gap: 8, + }, + completeButton: { + minHeight: 28, + borderRadius: 8, + borderWidth: 1, + borderColor: PRIMARY, + backgroundColor: '#eff9ea', + paddingHorizontal: 10, + alignItems: 'center', + justifyContent: 'center', + }, + completeButtonText: { + color: '#3d7a30', + fontSize: 12, + fontWeight: '700', + }, + uploadButton: { + minHeight: 38, + borderRadius: 9, + backgroundColor: PRIMARY, + paddingHorizontal: 12, + alignItems: 'center', + justifyContent: 'center', + }, + uploadActions: { + gap: 8, + }, + uploadButtonText: { + color: '#ffffff', + fontWeight: '700', + fontSize: 13, + }, + fileRow: { + borderWidth: 1, + borderColor: '#e5e7eb', + borderRadius: 10, + padding: 10, + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + gap: 10, + }, + fileInfo: { + flex: 1, + minWidth: 0, + }, + fileName: { + color: '#111827', + fontSize: 14, + fontWeight: '600', + }, + fileMeta: { + color: '#6b7280', + fontSize: 12, + marginTop: 2, + }, + empty: { + color: '#6b7280', + fontSize: 13, + paddingVertical: 4, + }, + loadingBox: { + paddingVertical: 20, + alignItems: 'center', + gap: 8, + }, + loadingText: { + color: '#6b7280', + }, + error: { + color: '#dc2626', + fontSize: 13, + }, + modalOverlay: { + flex: 1, + backgroundColor: 'rgba(0,0,0,0.35)', + justifyContent: 'center', + padding: 16, + }, + modalKeyboardWrap: { + width: '100%', + }, + modalCard: { + backgroundColor: '#ffffff', + borderRadius: 14, + padding: 14, + gap: 10, + }, + modalTitle: { + fontSize: 18, + fontWeight: '700', + color: '#111827', + }, + input: { + borderWidth: 1, + borderColor: '#d1d5db', + borderRadius: 10, + paddingHorizontal: 12, + paddingVertical: 10, + fontSize: 15, + color: '#111827', + backgroundColor: '#ffffff', + }, + inputMultiline: { + minHeight: 72, + textAlignVertical: 'top', + }, + modalActions: { + flexDirection: 'row', + justifyContent: 'flex-end', + gap: 8, + marginTop: 2, + }, + secondaryButton: { + minHeight: 42, + borderRadius: 10, + paddingHorizontal: 14, + alignItems: 'center', + justifyContent: 'center', + backgroundColor: '#e5e7eb', + }, + secondaryButtonText: { + color: '#111827', + fontWeight: '600', + }, + primaryButton: { + minHeight: 42, + borderRadius: 10, + paddingHorizontal: 14, + backgroundColor: PRIMARY, + alignItems: 'center', + justifyContent: 'center', + }, + primaryButtonText: { + color: '#ffffff', + fontWeight: '600', + }, + buttonDisabled: { + opacity: 0.6, + }, +}); diff --git a/mobile/eas.json b/mobile/eas.json new file mode 100644 index 0000000..3b01770 --- /dev/null +++ b/mobile/eas.json @@ -0,0 +1,23 @@ +{ + "cli": { + "version": ">= 16.14.0" + }, + "build": { + "development": { + "developmentClient": true, + "distribution": "internal", + "ios": { + "simulator": false + } + }, + "preview": { + "distribution": "internal" + }, + "production": { + "autoIncrement": true + } + }, + "submit": { + "production": {} + } +} diff --git a/mobile/src/lib/nimbot.ts b/mobile/src/lib/nimbot.ts new file mode 100644 index 0000000..53a8139 --- /dev/null +++ b/mobile/src/lib/nimbot.ts @@ -0,0 +1,628 @@ +import { PermissionsAndroid, Platform } from 'react-native'; +import { BleManager, Device, Subscription } from 'react-native-ble-plx'; + +import { EncodedLabelImage, EncodedLabelRow } from '@/src/lib/api'; + +const NIMBOT_NAME_MARKERS = ['NIIMBOT', 'NIMBOT', 'M2', 'D11', 'D110', 'B21']; +const SCAN_TIMEOUT_MS = 12_000; +const SCAN_AFTER_FIRST_FOUND_MS = 2_200; + +type DiscoveredNimbotDevice = { + id: string; + name: string; + rssi: number | null; +}; + +type NimbotConnectionInfo = { + device: DiscoveredNimbotDevice; + writeServiceId: string | null; + writeCharacteristicId: string | null; + writeWithoutResponse: boolean; + writeWithResponse: boolean; + notifyServiceId: string | null; + notifyCharacteristicId: string | null; +}; + +type NimbotPrintOptions = { + density?: number; + labelType?: number; + copies?: number; + totalPages?: number; + packetIntervalMs?: number; + printheadPixels?: number; + useIndexedRows?: boolean; +}; + +type NimbotPacket = { + command: number; + data: Uint8Array; +}; + +type PacketWaiter = { + ids: number[]; + resolve: (packet: NimbotPacket) => void; + reject: (error: Error) => void; + timeoutId: ReturnType; +}; + +let manager: BleManager | null = null; +let disconnectSubscription: Subscription | null = null; +let notifySubscription: Subscription | null = null; +let activeConnection: NimbotConnectionInfo | null = null; +let packetBuffer = new Uint8Array(); + +const packetWaiters: PacketWaiter[] = []; + +function getManager(): BleManager { + if (!manager) manager = new BleManager(); + return manager; +} + +function normalizeName(device: Device): string { + return String(device.localName || device.name || '').trim(); +} + +function isNimbotDevice(device: Device): boolean { + const name = normalizeName(device).toUpperCase(); + if (!name) return false; + return NIMBOT_NAME_MARKERS.some((marker) => name.includes(marker)); +} + +function toDiscoveredDevice(device: Device): DiscoveredNimbotDevice { + return { + id: device.id, + name: normalizeName(device) || device.id, + rssi: typeof device.rssi === 'number' ? device.rssi : null, + }; +} + +function clamp(value: number, min: number, max: number): number { + return Math.max(min, Math.min(max, value)); +} + +function sleep(ms: number): Promise { + return new Promise((resolve) => setTimeout(resolve, ms)); +} + +function toU16BE(value: number): [number, number] { + const v = clamp(Math.floor(value), 0, 0xffff); + return [(v >> 8) & 0xff, v & 0xff]; +} + +function toU16Parts(value: number): [number, number] { + return toU16BE(value); +} + +function countPixelsForBitmapPacketWithMode( + buf: Uint8Array, + printheadPixels: number, + mode: 'auto' | 'split' | 'total' = 'auto' +): { total: number; parts: [number, number, number] } { + let total = 0; + const parts: [number, number, number] = [0, 0, 0]; + const chunkSize = Math.floor(printheadPixels / 8 / 3); + + let split = buf.byteLength <= chunkSize * 3; + if (mode === 'total') { + split = false; + } else if (mode === 'split') { + split = buf.byteLength <= chunkSize * 3; + } + + buf.forEach((value, byteN) => { + const chunkIdx = chunkSize > 0 ? Math.floor(byteN / chunkSize) : 0; + for (let bitN = 0; bitN < 8; bitN += 1) { + if ((value & (1 << bitN)) === 0) continue; + total += 1; + if (!split) continue; + if (chunkIdx > 2) continue; + parts[chunkIdx] = (parts[chunkIdx] + 1) & 0xff; + } + }); + + if (split) { + return { total, parts }; + } + + const [hi, lo] = toU16BE(total); + return { total, parts: [0x00, lo, hi] }; +} + +function indexPixels(buf: Uint8Array): Uint8Array { + const result: number[] = []; + + for (let bytePos = 0; bytePos < buf.byteLength; bytePos += 1) { + const b = buf[bytePos]; + for (let bitPos = 0; bitPos < 8; bitPos += 1) { + if (b & (1 << (7 - bitPos))) { + const pixelIndex = bytePos * 8 + bitPos; + const [hi, lo] = toU16BE(pixelIndex); + result.push(hi, lo); + } + } + } + + return Uint8Array.from(result); +} + +function normalizeRowData(rowData: EncodedLabelRow['rowData']): Uint8Array { + if (!rowData) return new Uint8Array(); + if (rowData instanceof Uint8Array) return rowData; + if (Array.isArray(rowData)) return Uint8Array.from(rowData.map((v) => Number(v) & 0xff)); + + return Uint8Array.from( + Object.keys(rowData) + .sort((a, b) => Number(a) - Number(b)) + .map((key) => Number((rowData as Record)[key]) & 0xff) + ); +} + +function buildNimbotPacket(command: number, payload: number[]): Uint8Array { + const cmd = command & 0xff; + const length = payload.length & 0xff; + let checksum = cmd ^ length; + for (const b of payload) checksum ^= b & 0xff; + return Uint8Array.from([0x55, 0x55, cmd, length, ...payload, checksum & 0xff, 0xaa, 0xaa]); +} + +function encodeBase64(bytes: Uint8Array): string { + const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + let output = ''; + + for (let i = 0; i < bytes.length; i += 3) { + const b0 = bytes[i] ?? 0; + const b1 = bytes[i + 1] ?? 0; + const b2 = bytes[i + 2] ?? 0; + const chunk = (b0 << 16) | (b1 << 8) | b2; + + output += chars[(chunk >> 18) & 63]; + output += chars[(chunk >> 12) & 63]; + output += i + 1 < bytes.length ? chars[(chunk >> 6) & 63] : '='; + output += i + 2 < bytes.length ? chars[chunk & 63] : '='; + } + + return output; +} + +function decodeBase64(input: string): Uint8Array { + const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + const clean = input.replace(/[^A-Za-z0-9+/=]/g, ''); + const out: number[] = []; + + let i = 0; + while (i < clean.length) { + const c0 = chars.indexOf(clean[i] || 'A'); + const c1 = chars.indexOf(clean[i + 1] || 'A'); + const c2 = chars.indexOf(clean[i + 2] || 'A'); + const c3 = chars.indexOf(clean[i + 3] || 'A'); + + const n = (Math.max(c0, 0) << 18) | (Math.max(c1, 0) << 12) | ((Math.max(c2, 0) & 63) << 6) | (Math.max(c3, 0) & 63); + out.push((n >> 16) & 0xff); + if (clean[i + 2] !== '=') out.push((n >> 8) & 0xff); + if (clean[i + 3] !== '=') out.push(n & 0xff); + i += 4; + } + + return Uint8Array.from(out); +} + +function clearPacketWaiters(message: string): void { + while (packetWaiters.length > 0) { + const waiter = packetWaiters.shift(); + if (!waiter) continue; + clearTimeout(waiter.timeoutId); + waiter.reject(new Error(message)); + } +} + +function parseNimbotPackets(chunk: Uint8Array): NimbotPacket[] { + packetBuffer = Uint8Array.from([...packetBuffer, ...chunk]); + const packets: NimbotPacket[] = []; + let cursor = 0; + + while (cursor + 8 <= packetBuffer.length) { + if (packetBuffer[cursor] !== 0x55 || packetBuffer[cursor + 1] !== 0x55) { + cursor += 1; + continue; + } + + const command = packetBuffer[cursor + 2] & 0xff; + const len = packetBuffer[cursor + 3] & 0xff; + const end = cursor + 8 + len; + if (end > packetBuffer.length) break; + + if (packetBuffer[end - 2] !== 0xaa || packetBuffer[end - 1] !== 0xaa) { + cursor += 1; + continue; + } + + const dataStart = cursor + 4; + const dataEnd = dataStart + len; + const data = packetBuffer.slice(dataStart, dataEnd); + const checksum = packetBuffer[dataEnd] & 0xff; + + let calculated = command ^ len; + for (let i = 0; i < data.length; i += 1) { + calculated ^= data[i] & 0xff; + } + + if ((calculated & 0xff) === checksum) { + packets.push({ command, data }); + cursor = end; + continue; + } + + cursor += 1; + } + + packetBuffer = packetBuffer.slice(cursor); + return packets; +} + +function onRawNotification(base64Value: string): void { + if (!base64Value) return; + const packets = parseNimbotPackets(decodeBase64(base64Value)); + if (packets.length === 0) return; + + for (const packet of packets) { + if (packet.command === 0xdb || packet.command === 0x00) { + clearPacketWaiters(`Drucker meldet Fehler (0x${packet.command.toString(16).padStart(2, '0')}).`); + continue; + } + + const waiterIndex = packetWaiters.findIndex((waiter) => waiter.ids.length === 0 || waiter.ids.includes(packet.command)); + if (waiterIndex < 0) continue; + + const waiter = packetWaiters.splice(waiterIndex, 1)[0]; + clearTimeout(waiter.timeoutId); + waiter.resolve(packet); + } +} + +function waitForPacket(ids: number[] = [], timeoutMs = 1800): Promise { + return new Promise((resolve, reject) => { + const timeoutId = setTimeout(() => { + const idx = packetWaiters.findIndex((waiter) => waiter.timeoutId === timeoutId); + if (idx >= 0) packetWaiters.splice(idx, 1); + reject(new Error(`Timeout auf Druckerantwort (${ids.map((id) => `0x${id.toString(16)}`).join(', ') || 'any'})`)); + }, timeoutMs); + + packetWaiters.push({ ids, resolve, reject, timeoutId }); + }); +} + +async function findCharacteristics(device: Device): Promise { + const services = await device.services(); + let writeServiceId: string | null = null; + let writeCharacteristicId: string | null = null; + let writeWithoutResponse = false; + let writeWithResponse = false; + let notifyServiceId: string | null = null; + let notifyCharacteristicId: string | null = null; + + for (const service of services) { + if (!service.uuid || service.uuid.length < 5) continue; + const characteristics = await service.characteristics(); + + for (const characteristic of characteristics) { + if (characteristic.isNotifiable && characteristic.isWritableWithoutResponse) { + return { + device: toDiscoveredDevice(device), + writeServiceId: service.uuid, + writeCharacteristicId: characteristic.uuid, + writeWithoutResponse: true, + writeWithResponse: Boolean(characteristic.isWritableWithResponse), + notifyServiceId: service.uuid, + notifyCharacteristicId: characteristic.uuid, + }; + } + } + + for (const characteristic of characteristics) { + if (!writeCharacteristicId && (characteristic.isWritableWithResponse || characteristic.isWritableWithoutResponse)) { + writeServiceId = service.uuid; + writeCharacteristicId = characteristic.uuid; + writeWithoutResponse = Boolean(characteristic.isWritableWithoutResponse); + writeWithResponse = Boolean(characteristic.isWritableWithResponse); + } + if (!notifyCharacteristicId && characteristic.isNotifiable) { + notifyServiceId = service.uuid; + notifyCharacteristicId = characteristic.uuid; + } + if (writeCharacteristicId && notifyCharacteristicId) { + return { + device: toDiscoveredDevice(device), + writeServiceId, + writeCharacteristicId, + writeWithoutResponse, + writeWithResponse, + notifyServiceId, + notifyCharacteristicId, + }; + } + } + } + + return { + device: toDiscoveredDevice(device), + writeServiceId, + writeCharacteristicId, + writeWithoutResponse, + writeWithResponse, + notifyServiceId, + notifyCharacteristicId, + }; +} + +export async function requestBluetoothPermissions(): Promise { + if (Platform.OS !== 'android') return true; + + if (Platform.Version >= 31) { + const result = await PermissionsAndroid.requestMultiple([ + PermissionsAndroid.PERMISSIONS.BLUETOOTH_SCAN, + PermissionsAndroid.PERMISSIONS.BLUETOOTH_CONNECT, + PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION, + ]); + + return ( + result[PermissionsAndroid.PERMISSIONS.BLUETOOTH_SCAN] === PermissionsAndroid.RESULTS.GRANTED && + result[PermissionsAndroid.PERMISSIONS.BLUETOOTH_CONNECT] === PermissionsAndroid.RESULTS.GRANTED && + result[PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION] === PermissionsAndroid.RESULTS.GRANTED + ); + } + + const location = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION); + return location === PermissionsAndroid.RESULTS.GRANTED; +} + +export async function scanNimbotDevices(): Promise { + const hasPermission = await requestBluetoothPermissions(); + if (!hasPermission) throw new Error('Bluetooth-Berechtigungen fehlen.'); + + const ble = getManager(); + const found = new Map(); + await ble.stopDeviceScan(); + + await new Promise((resolve, reject) => { + let timeoutId: ReturnType | null = setTimeout(() => { + ble.stopDeviceScan(); + resolve(); + }, SCAN_TIMEOUT_MS); + + const finalizeSoon = () => { + if (timeoutId) clearTimeout(timeoutId); + timeoutId = setTimeout(() => { + ble.stopDeviceScan(); + resolve(); + }, SCAN_AFTER_FIRST_FOUND_MS); + }; + + ble.startDeviceScan(null, null, (error, device) => { + if (error) { + if (timeoutId) clearTimeout(timeoutId); + ble.stopDeviceScan(); + reject(error); + return; + } + + if (!device || !isNimbotDevice(device)) return; + found.set(device.id, toDiscoveredDevice(device)); + finalizeSoon(); + }); + }); + + return Array.from(found.values()).sort((a, b) => { + const rssiA = typeof a.rssi === 'number' ? a.rssi : -200; + const rssiB = typeof b.rssi === 'number' ? b.rssi : -200; + return rssiB - rssiA; + }); +} + +export async function connectNimbotDevice(deviceId: string): Promise { + const ble = getManager(); + await ble.stopDeviceScan(); + + if (activeConnection?.device.id && activeConnection.device.id !== deviceId) { + try { + await ble.cancelDeviceConnection(activeConnection.device.id); + } catch {} + } + + const connected = await ble.connectToDevice(deviceId, { autoConnect: false }); + await connected.discoverAllServicesAndCharacteristics(); + + const metadata = await findCharacteristics(connected); + activeConnection = metadata; + + if (metadata.notifyServiceId && metadata.notifyCharacteristicId) { + notifySubscription?.remove(); + notifySubscription = ble.monitorCharacteristicForDevice( + connected.id, + metadata.notifyServiceId, + metadata.notifyCharacteristicId, + (error, characteristic) => { + if (error) return; + if (!characteristic?.value) return; + onRawNotification(characteristic.value); + } + ); + } + + disconnectSubscription?.remove(); + disconnectSubscription = ble.onDeviceDisconnected(connected.id, () => { + clearPacketWaiters('Bluetooth-Verbindung getrennt.'); + notifySubscription?.remove(); + notifySubscription = null; + packetBuffer = new Uint8Array(); + activeConnection = null; + }); + + return activeConnection; +} + +export function getActiveNimbotConnection(): NimbotConnectionInfo | null { + return activeConnection; +} + +export async function disconnectNimbotDevice(): Promise { + if (!activeConnection?.device.id) return; + const ble = getManager(); + + try { + await ble.cancelDeviceConnection(activeConnection.device.id); + } finally { + clearPacketWaiters('Verbindung beendet.'); + notifySubscription?.remove(); + notifySubscription = null; + packetBuffer = new Uint8Array(); + activeConnection = null; + disconnectSubscription?.remove(); + disconnectSubscription = null; + } +} + +export async function sendNimbotRawCommand(payloadBase64: string): Promise { + if (!activeConnection) throw new Error('Kein Nimbot verbunden.'); + + const ble = getManager(); + const writeServiceId = activeConnection.writeServiceId; + const writeCharId = activeConnection.writeCharacteristicId; + if (!writeServiceId || !writeCharId) throw new Error('Kein schreibbares Characteristic gefunden.'); + + if (activeConnection.writeWithoutResponse) { + await ble.writeCharacteristicWithoutResponseForDevice(activeConnection.device.id, writeServiceId, writeCharId, payloadBase64); + return; + } + + if (activeConnection.writeWithResponse) { + await ble.writeCharacteristicWithResponseForDevice(activeConnection.device.id, writeServiceId, writeCharId, payloadBase64); + return; + } + + throw new Error('Characteristic ist nicht schreibbar.'); +} + +async function sendNimbotPacket( + command: number, + payload: number[], + options: { expectedResponseIds?: number[]; timeoutMs?: number; connectPrefix03?: boolean; allowResponseTimeout?: boolean } = {} +): Promise { + const packet = buildNimbotPacket(command, payload); + const payloadBytes = options.connectPrefix03 ? Uint8Array.from([0x03, ...Array.from(packet)]) : packet; + const waiter = options.expectedResponseIds ? waitForPacket(options.expectedResponseIds, options.timeoutMs ?? 1800) : null; + + await sendNimbotRawCommand(encodeBase64(payloadBytes)); + + if (waiter) { + try { + await waiter; + } catch (error) { + if (!options.allowResponseTimeout) { + throw error; + } + } + } +} + +async function sendNimbotConnectHandshake(): Promise { + await sendNimbotPacket(0xc1, [0x01], { + expectedResponseIds: [0xc2], + timeoutMs: 2500, + connectPrefix03: true, + allowResponseTimeout: true, + }); +} + +function buildImagePackets( + encoded: EncodedLabelImage, + options: { printheadPixels?: number; useIndexedRows?: boolean } = {} +): { cmd: number; payload: number[] }[] { + const packets: { cmd: number; payload: number[] }[] = []; + const printheadPixels = clamp(Math.floor(options.printheadPixels ?? 567), 32, 2048); + const useIndexedRows = Boolean(options.useIndexedRows); + + for (const row of encoded.rowsData || []) { + if (row.dataType === 'void') { + const [rowHi, rowLo] = toU16Parts(row.rowNumber); + const repeat = clamp(row.repeat || 1, 1, 255); + packets.push({ cmd: 0x84, payload: [rowHi, rowLo, repeat] }); + continue; + } + + if (row.dataType !== 'pixels') continue; + + const rowData = normalizeRowData(row.rowData); + const [rowHi, rowLo] = toU16Parts(row.rowNumber); + const repeat = clamp(row.repeat || 1, 1, 255); + const counts = countPixelsForBitmapPacketWithMode(rowData, printheadPixels, 'auto'); + + if (useIndexedRows && (row.blackPixelsCount || 0) <= 6) { + const indexes = Array.from(indexPixels(rowData)); + packets.push({ + cmd: 0x83, + payload: [rowHi, rowLo, ...counts.parts, repeat, ...indexes], + }); + continue; + } + + packets.push({ + cmd: 0x85, + payload: [rowHi, rowLo, ...counts.parts, repeat, ...Array.from(rowData)], + }); + } + + return packets; +} + +export async function printNimbotEncodedLabel(encoded: EncodedLabelImage, options: NimbotPrintOptions = {}): Promise { + if (!activeConnection) throw new Error('Kein Nimbot verbunden.'); + + const density = clamp(Math.floor(options.density ?? 5), 1, 5); + const labelType = clamp(Math.floor(options.labelType ?? 1), 1, 11); + const copies = clamp(Math.floor(options.copies ?? 1), 1, 20); + const totalPages = clamp(Math.floor(options.totalPages ?? 1), 1, 20); + const packetIntervalMs = clamp(Math.floor(options.packetIntervalMs ?? 10), 2, 80); + const printheadPixels = clamp(Math.floor(options.printheadPixels ?? 567), 32, 2048); + const useIndexedRows = Boolean(options.useIndexedRows ?? false); + + if (!encoded?.rows || !encoded?.cols || !Array.isArray(encoded.rowsData)) { + throw new Error('Ungültiges Label-Format.'); + } + + const rows = Number(encoded.rows); + const cols = Number(encoded.cols); + const [rowsHi, rowsLo] = toU16Parts(rows); + const [colsHi, colsLo] = toU16Parts(cols); + const [copiesHi, copiesLo] = toU16Parts(copies); + + await sendNimbotConnectHandshake(); + await sleep(30); + + await sendNimbotPacket(0x21, [density], { expectedResponseIds: [0x31], allowResponseTimeout: true }); + await sleep(packetIntervalMs); + await sendNimbotPacket(0x23, [labelType], { expectedResponseIds: [0x33], allowResponseTimeout: true }); + await sleep(packetIntervalMs); + await sendNimbotPacket(0x01, [0x00, totalPages, 0x00, 0x00, 0x00, 0x00, 0x00], { + expectedResponseIds: [0x02], + allowResponseTimeout: true, + }); + await sleep(packetIntervalMs); + await sendNimbotPacket(0x03, [0x01], { expectedResponseIds: [0x04], allowResponseTimeout: true }); + await sleep(packetIntervalMs); + await sendNimbotPacket(0x13, [rowsHi, rowsLo, colsHi, colsLo, copiesHi, copiesLo], { + expectedResponseIds: [0x14], + allowResponseTimeout: true, + }); + await sleep(packetIntervalMs); + + const imagePackets = buildImagePackets(encoded, { printheadPixels, useIndexedRows }); + for (let i = 0; i < imagePackets.length; i += 1) { + const p = imagePackets[i]; + await sendNimbotPacket(p.cmd, p.payload); + await sleep(packetIntervalMs); + } + + await sendNimbotPacket(0xe3, [0x01], { expectedResponseIds: [0xe4], allowResponseTimeout: true }); + await sleep(25); + await sendNimbotPacket(0xf3, [0x01], { expectedResponseIds: [0xf4], timeoutMs: 3000, allowResponseTimeout: true }); +} diff --git a/mobile/src/lib/server-config.ts b/mobile/src/lib/server-config.ts new file mode 100644 index 0000000..f9e29a0 --- /dev/null +++ b/mobile/src/lib/server-config.ts @@ -0,0 +1,91 @@ +import * as SecureStore from 'expo-secure-store'; + +import { DEFAULT_API_BASE_URL } from '@/src/config/env'; + +const SERVER_BASE_KEY = 'fedeo.mobile.server.base'; +const SERVER_SETUP_DONE_KEY = 'fedeo.mobile.server.setup.done'; + +let memoryApiBaseUrl = DEFAULT_API_BASE_URL; +let memorySetupDone = false; + +function normalizeApiBaseUrl(value: string): string { + return value.trim().replace(/\/+$/, ''); +} + +async function hasSecureStore(): Promise { + try { + return await SecureStore.isAvailableAsync(); + } catch { + return false; + } +} + +export function getApiBaseUrlSync(): string { + return memoryApiBaseUrl || DEFAULT_API_BASE_URL; +} + +export async function hydrateApiBaseUrl(): Promise { + if (await hasSecureStore()) { + const stored = await SecureStore.getItemAsync(SERVER_BASE_KEY); + const setupDone = await SecureStore.getItemAsync(SERVER_SETUP_DONE_KEY); + memorySetupDone = setupDone === '1'; + + if (stored) { + memoryApiBaseUrl = normalizeApiBaseUrl(stored); + return memoryApiBaseUrl; + } + } else { + memorySetupDone = false; + } + + memoryApiBaseUrl = DEFAULT_API_BASE_URL; + return memoryApiBaseUrl; +} + +export async function isServerSetupDone(): Promise { + if (await hasSecureStore()) { + const setupDone = await SecureStore.getItemAsync(SERVER_SETUP_DONE_KEY); + memorySetupDone = setupDone === '1'; + return memorySetupDone; + } + + return memorySetupDone; +} + +export async function markServerSetupDone(): Promise { + memorySetupDone = true; + + if (await hasSecureStore()) { + await SecureStore.setItemAsync(SERVER_SETUP_DONE_KEY, '1'); + } +} + +export async function setApiBaseUrl(nextApiBaseUrl: string): Promise { + const normalized = normalizeApiBaseUrl(nextApiBaseUrl); + memoryApiBaseUrl = normalized; + + if (await hasSecureStore()) { + await SecureStore.setItemAsync(SERVER_BASE_KEY, normalized); + await SecureStore.setItemAsync(SERVER_SETUP_DONE_KEY, '1'); + } + memorySetupDone = true; + + return normalized; +} + +export async function resetApiBaseUrl(): Promise { + memoryApiBaseUrl = DEFAULT_API_BASE_URL; + + if (await hasSecureStore()) { + await SecureStore.deleteItemAsync(SERVER_BASE_KEY); + } + + return memoryApiBaseUrl; +} + +export const serverStorageInfo = { + mode: 'secure-store', + key: SERVER_BASE_KEY, + setupKey: SERVER_SETUP_DONE_KEY, + fallback: DEFAULT_API_BASE_URL, +} as const; diff --git a/skills/openclaw-m2m-openapi/SKILL.md b/skills/openclaw-m2m-openapi/SKILL.md new file mode 100644 index 0000000..f6c299f --- /dev/null +++ b/skills/openclaw-m2m-openapi/SKILL.md @@ -0,0 +1,102 @@ +--- +name: openclaw-m2m-openapi +description: Implement and maintain OpenAPI plus machine-to-machine access for FEDEO/OpenClaw-style Fastify backends. Use when creating tenant-bound API keys, authenticating M2M callers, exchanging API keys for short-lived JWTs, exposing OpenAPI docs/spec endpoints, and ensuring req.user is populated for impersonated tenant/user execution. +--- + +# OpenClaw M2M + OpenAPI + +Implement OpenAPI publication and M2M authentication with tenant+user impersonation. + +## Define Data Model + +Create a DB table for M2M API keys with at least: +- Key identity: `id`, `name`, `key_prefix`, `key_hash` +- Scope: `tenant_id`, `user_id` +- Lifecycle: `active`, `expires_at`, `last_used_at`, `created_at`, `updated_at` +- Auditing: `created_by` + +Store only a hash (`sha256`) of the key, never plaintext. + +## Publish OpenAPI + +Configure Fastify Swagger dynamically and expose: +- UI endpoint: `/docs` +- Raw spec endpoint: `/openapi.json` + +Define OpenAPI metadata and bearer auth security schema (`bearerAuth`). + +## Implement M2M Authentication + +In M2M auth plugin: +1. Read API key from `x-api-key`. +2. Hash and compare against `key_hash` in DB. +3. Reject missing/invalid/inactive/expired keys with 401. +4. Load mapped tenant/user. +5. Populate `req.user` with: + - `user_id` + - `email` + - `tenant_id` +6. Update key usage metadata (`last_used_at`, `updated_at`). + +Always keep `req.user` compatible with existing JWT-authenticated route expectations. + +## Implement API Key Management + +Expose tenant-scoped management endpoints on authenticated API routes: +- `GET /api/tenant/api-keys` +- `POST /api/tenant/api-keys` +- `PATCH /api/tenant/api-keys/:id` +- `DELETE /api/tenant/api-keys/:id` + +For create: +- Generate random plaintext key once. +- Return plaintext only in create response. +- Persist only hash + prefix. +- Enforce that selected `user_id` belongs to current tenant. + +## Add Token Exchange (Preferred M2M Flow) + +Expose internal route: +- `POST /internal/auth/m2m/token` + +Behavior: +1. Require M2M-authenticated request. +2. Revalidate tenant membership of impersonated user. +3. Issue short-lived JWT signed with app JWT secret. +4. JWT payload must include `user_id`, `email`, `tenant_id`. + +Use this JWT for normal `/api/*` requests via `Authorization: Bearer `. + +## Security Rules + +- Never log full API keys. +- Enforce TTL bounds for exchanged JWTs (e.g. 60..3600 seconds). +- Treat expired keys as unauthorized. +- Keep key hash comparison deterministic and normalized. +- Keep management endpoints tenant-isolated. + +## Verification Checklist + +Run and verify: +1. Backend build passes. +2. OpenAPI UI and raw spec are reachable. +3. API key create/list/update/delete works per tenant. +4. Exchange endpoint returns JWT. +5. JWT can call `/api/me` and shows impersonated tenant/user. + +## Quick Commands + +```bash +# Build backend +npm run build + +# Exchange key for JWT +curl -X POST http://localhost:3000/internal/auth/m2m/token \ + -H "x-api-key: " \ + -H "Content-Type: application/json" \ + -d '{"expires_in_seconds":900}' + +# Use exchanged JWT on normal API +curl http://localhost:3000/api/me \ + -H "Authorization: Bearer " +``` diff --git a/skills/openclaw-m2m-openapi/agents/openai.yaml b/skills/openclaw-m2m-openapi/agents/openai.yaml new file mode 100644 index 0000000..62966b4 --- /dev/null +++ b/skills/openclaw-m2m-openapi/agents/openai.yaml @@ -0,0 +1,7 @@ +interface: + display_name: "OpenClaw M2M + OpenAPI" + short_description: "Set up tenant-bound M2M auth and OpenAPI endpoints" + default_prompt: "Use $openclaw-m2m-openapi to add tenant-scoped API keys, token exchange, and OpenAPI publishing to this backend." + +policy: + allow_implicit_invocation: true

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