From e160a0901cf284c5c53d4dd7809ed7fdd643f5b5 Mon Sep 17 00:00:00 2001 From: Isaac_Aracena Date: Mon, 13 Jul 2026 16:10:01 -0400 Subject: [PATCH] Update project files --- .env.example | 36 +- .npmrc | 1 + BUILD_INFO.txt | 6 + index.html | 6 +- metadata.json | 4 +- package-lock.json | 2799 +++++--------------------- package.json | 25 +- public/favicon.png | Bin 0 -> 11261 bytes public/gt-flag.png | Bin 0 -> 8052 bytes public/tt-flag.png | Bin 0 -> 22967 bytes src/App.tsx | 355 +++- src/components/CountryCard.tsx | 47 - src/components/CountrySelector.tsx | 73 + src/components/Dashboard.tsx | 1454 +++++++++++++ src/components/History.tsx | 650 ++++++ src/components/Login.tsx | 104 + src/components/LoginScreen.tsx | 121 -- src/components/NotificationModal.tsx | 140 -- src/components/PortalPrincipal.tsx | 94 - src/components/Sidebar.tsx | 196 ++ src/components/Toast.tsx | 54 + src/config/countries.ts | 26 + src/data.ts | 99 - src/index.css | 27 +- src/lib/auth.ts | 8 +- src/lib/supabase.ts | 6 +- src/types.ts | 118 ++ src/vite-env.d.ts | 21 + vite.config.ts | 11 +- 29 files changed, 3583 insertions(+), 2898 deletions(-) create mode 100644 .npmrc create mode 100644 BUILD_INFO.txt create mode 100644 public/favicon.png create mode 100644 public/gt-flag.png create mode 100644 public/tt-flag.png delete mode 100644 src/components/CountryCard.tsx create mode 100644 src/components/CountrySelector.tsx create mode 100644 src/components/Dashboard.tsx create mode 100644 src/components/History.tsx create mode 100644 src/components/Login.tsx delete mode 100644 src/components/LoginScreen.tsx delete mode 100644 src/components/NotificationModal.tsx delete mode 100644 src/components/PortalPrincipal.tsx create mode 100644 src/components/Sidebar.tsx create mode 100644 src/components/Toast.tsx create mode 100644 src/config/countries.ts delete mode 100644 src/data.ts create mode 100644 src/types.ts diff --git a/.env.example b/.env.example index d158e64..058403a 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,33 @@ -# Supabase Auth con Google -# Crea un archivo .env.local y coloca tus valores reales. -VITE_SUPABASE_URL="https://TU-PROYECTO.supabase.co" +# Portal multinacional - Cruce de Cuentas GLM +# Copiar como .env.local y ajustar los valores por ambiente. + +# Ruta pública actual. Puede cambiarse a /cruce-cuentas/ cuando el portal +# multinacional sea publicado en una ruta general. +VITE_BASE_PATH="/cruce-cuentas/guatemala/" + +# Guatemala: servicio principal que ejecuta el cruce Nómina vs Banco. +VITE_N8N_GUATEMALA_WEBHOOK_URL="https://agenteit.digitalcompass.agency/webhook/nominagt-bamboo-test" +# Compatibilidad con instalaciones anteriores. +VITE_N8N_WEBHOOK_URL="https://agenteit.digitalcompass.agency/webhook/nominagt-bamboo-test" + +# Guatemala: históricos y resolución. +VITE_HISTORICOS_GT_URL="https://agenteit.digitalcompass.agency/webhook/cruce-cuentas-gt-historicos" +VITE_MARCAR_RESUELTO_GT_URL="https://agenteit.digitalcompass.agency/webhook/cruce-cuentas-gt-marcar-resuelto" + +# Trinidad y Tobago: completar cuando los workflows estén listos. +VITE_N8N_TRINIDAD_WEBHOOK_URL="" +VITE_HISTORICOS_TT_URL="" +VITE_MARCAR_RESUELTO_TT_URL="" + +# Endpoint opcional de n8n + Gemini para analizar el nombre del archivo de nómina. +# La app ya incluye detección local como respaldo. +VITE_ANALIZAR_NOMINA_URL="https://agenteit.digitalcompass.agency/webhook/cruce-cuentas-analizar-nomina" + +# Login Google vía Supabase. +VITE_ENABLE_SUPABASE_AUTH="true" +VITE_SUPABASE_URL="https://dbit.digitalcompass.agency" VITE_SUPABASE_ANON_KEY="TU_SUPABASE_ANON_KEY" -# URL pública esperada para producción: -# https://digitalcompass.agency/cruce-cuentas/ +# Usuario temporal solo si VITE_ENABLE_SUPABASE_AUTH="false". +VITE_OPERATOR_NAME="Isaac Aracena" +VITE_OPERATOR_EMAIL="iaracena@gomezleemarketing.com" diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..214c29d --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +registry=https://registry.npmjs.org/ diff --git a/BUILD_INFO.txt b/BUILD_INFO.txt new file mode 100644 index 0000000..5061da1 --- /dev/null +++ b/BUILD_INFO.txt @@ -0,0 +1,6 @@ +Portal de Cruce de Cuentas GLM — Guatemala +Build validado: 2026-07-13 +Ruta pública: /cruce-cuentas/guatemala/ +Cruce GT: https://agenteit.digitalcompass.agency/webhook/nominagt-bamboo-test +Análisis de nómina: https://agenteit.digitalcompass.agency/webhook/cruce-cuentas-analizar-nomina +Validaciones ejecutadas: npm run lint, npm run build diff --git a/index.html b/index.html index 21dfe69..2eec020 100644 --- a/index.html +++ b/index.html @@ -1,9 +1,11 @@ - + - My Google AI Studio App + Portal de Cruce de Cuentas GLM + +
diff --git a/metadata.json b/metadata.json index bda6bf7..61ed7f3 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { - "name": "Cruce de Cuentas GLM", - "description": "Portal centralizado de Cruce de Cuentas GLM para la conciliación de cuentas regionales.", + "name": "Portal de Cruce de Cuentas GLM", + "description": "Portal multinacional de GomezLee Marketing para conciliación de nóminas y planillas bancarias.", "requestFramePermissions": [], "majorCapabilities": ["MAJOR_CAPABILITY_SERVER_SIDE_GEMINI_API"] } diff --git a/package-lock.json b/package-lock.json index f6c79c3..dc6b817 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,40 +1,34 @@ { - "name": "cruce-de-cuentas-glm", - "version": "0.0.0", + "name": "cruce-cuentas-glm-guatemala", + "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "cruce-de-cuentas-glm", - "version": "0.0.0", + "name": "cruce-cuentas-glm-guatemala", + "version": "0.1.0", "dependencies": { - "@google/genai": "^2.4.0", - "@supabase/supabase-js": "^2.77.0", - "@tailwindcss/vite": "^4.1.14", - "@vitejs/plugin-react": "^5.0.4", - "dotenv": "^17.2.3", - "express": "^4.21.2", + "@supabase/supabase-js": "^2.86.0", "lucide-react": "^0.546.0", "motion": "^12.23.24", "react": "^19.0.1", - "react-dom": "^19.0.1", - "vite": "^6.2.3" + "react-dom": "^19.0.1" }, "devDependencies": { - "@types/express": "^4.17.21", + "@tailwindcss/vite": "^4.1.14", "@types/node": "^22.14.0", - "autoprefixer": "^10.4.21", - "esbuild": "^0.25.0", + "@vitejs/plugin-react": "^5.0.4", "tailwindcss": "^4.1.14", - "tsx": "^4.21.0", "typescript": "~5.8.2", "vite": "^6.2.3" } }, "node_modules/@babel/code-frame": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/code-frame/-/code-frame-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", @@ -46,16 +40,20 @@ }, "node_modules/@babel/compat-data": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/compat-data/-/compat-data-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/core/-/core-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", @@ -83,8 +81,10 @@ }, "node_modules/@babel/generator": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/generator/-/generator-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", @@ -98,8 +98,10 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.29.7", "@babel/helper-validator-option": "^7.29.7", @@ -113,8 +115,9 @@ }, "node_modules/@babel/helper-globals": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -122,8 +125,10 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7" @@ -134,8 +139,9 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.29.7", @@ -151,8 +157,9 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -160,8 +167,9 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -169,8 +177,9 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -178,16 +187,19 @@ }, "node_modules/@babel/helper-validator-option": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/helpers/-/helpers-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.29.7", @@ -199,8 +211,9 @@ }, "node_modules/@babel/parser": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/parser/-/parser-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.29.7" @@ -214,8 +227,9 @@ }, "node_modules/@babel/plugin-transform-react-jsx-self": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.29.7.tgz", "integrity": "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" @@ -229,8 +243,9 @@ }, "node_modules/@babel/plugin-transform-react-jsx-source": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz", "integrity": "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" @@ -244,8 +259,10 @@ }, "node_modules/@babel/template": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/template/-/template-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/parser": "^7.29.7", @@ -257,8 +274,9 @@ }, "node_modules/@babel/traverse": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/traverse/-/traverse-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.7", @@ -275,8 +293,9 @@ }, "node_modules/@babel/types": { "version": "7.29.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@babel/types/-/types-7.29.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.29.7", @@ -288,11 +307,12 @@ }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -304,11 +324,12 @@ }, "node_modules/@esbuild/android-arm": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -320,11 +341,12 @@ }, "node_modules/@esbuild/android-arm64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -336,11 +358,12 @@ }, "node_modules/@esbuild/android-x64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -352,11 +375,12 @@ }, "node_modules/@esbuild/darwin-arm64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -368,11 +392,12 @@ }, "node_modules/@esbuild/darwin-x64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -384,11 +409,12 @@ }, "node_modules/@esbuild/freebsd-arm64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -400,11 +426,12 @@ }, "node_modules/@esbuild/freebsd-x64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -416,11 +443,12 @@ }, "node_modules/@esbuild/linux-arm": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -432,11 +460,12 @@ }, "node_modules/@esbuild/linux-arm64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -448,11 +477,12 @@ }, "node_modules/@esbuild/linux-ia32": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -464,11 +494,12 @@ }, "node_modules/@esbuild/linux-loong64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -480,11 +511,12 @@ }, "node_modules/@esbuild/linux-mips64el": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -496,11 +528,12 @@ }, "node_modules/@esbuild/linux-ppc64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -512,11 +545,12 @@ }, "node_modules/@esbuild/linux-riscv64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -528,11 +562,12 @@ }, "node_modules/@esbuild/linux-s390x": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -544,11 +579,12 @@ }, "node_modules/@esbuild/linux-x64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -560,11 +596,12 @@ }, "node_modules/@esbuild/netbsd-arm64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -576,11 +613,12 @@ }, "node_modules/@esbuild/netbsd-x64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -592,11 +630,12 @@ }, "node_modules/@esbuild/openbsd-arm64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -608,11 +647,12 @@ }, "node_modules/@esbuild/openbsd-x64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -624,11 +664,12 @@ }, "node_modules/@esbuild/openharmony-arm64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -640,11 +681,12 @@ }, "node_modules/@esbuild/sunos-x64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -656,11 +698,12 @@ }, "node_modules/@esbuild/win32-arm64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -672,11 +715,12 @@ }, "node_modules/@esbuild/win32-ia32": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -688,11 +732,12 @@ }, "node_modules/@esbuild/win32-x64": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -702,33 +747,12 @@ "node": ">=18" } }, - "node_modules/@google/genai": { - "version": "2.8.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@google/genai/-/genai-2.8.0.tgz", - "integrity": "sha512-pc2ayxqO5+O7AvnHBqpNHIk7PAZkHZgL31tbyx0gJZBSS9qPYiQoqwK7oYOw/ePmG6QY4EMSu+304vD5QlhXAw==", - "hasInstallScript": true, - "dependencies": { - "google-auth-library": "^10.3.0", - "p-retry": "^4.6.2", - "protobufjs": "^7.5.4", - "ws": "^8.18.0" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "@modelcontextprotocol/sdk": "^1.25.2" - }, - "peerDependenciesMeta": { - "@modelcontextprotocol/sdk": { - "optional": true - } - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" @@ -736,8 +760,9 @@ }, "node_modules/@jridgewell/remapping": { "version": "2.3.5", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -746,97 +771,47 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.31", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.5", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@protobufjs/codegen/-/codegen-2.0.5.tgz", - "integrity": "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@protobufjs/eventemitter/-/eventemitter-1.1.1.tgz", - "integrity": "sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@protobufjs/fetch/-/fetch-1.1.1.tgz", - "integrity": "sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@protobufjs/inquire/-/inquire-1.1.2.tgz", - "integrity": "sha512-pa0vFRuws4wkvaXKK1uXZMAwAX4/t8ANaJo45iw/oQHNQ9q5xUzwgFmVJGXiga2BeN+zpX7Vf9vmsiIa2J+MUw==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@protobufjs/utf8/-/utf8-1.1.1.tgz", - "integrity": "sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==" - }, "node_modules/@rolldown/pluginutils": { "version": "1.0.0-rc.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz", "integrity": "sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==", + "dev": true, "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.61.1.tgz", - "integrity": "sha512-JnBB8MdXj45cajvTuO5FmPlvFVJRQgvrz1uSEl3NwqFnReAPGwb8EanbGi4z2nRaqLzjJSv5/JmycoTKlRZxHA==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz", + "integrity": "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==", "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -844,12 +819,13 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.61.1.tgz", - "integrity": "sha512-Jx2g7iSjw4AOT0HDPHM9RV3GNjRXwybWtSFZiZAYUTjUwjVrYIwq3kBf+LnhqJlzXFAqTAh2F7IGI+O568exPw==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.2.tgz", + "integrity": "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -857,12 +833,13 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.61.1.tgz", - "integrity": "sha512-0F1L/Z3Eqv8mT2n3dCpeO8GcTvHvVqkP5/t6DMsn0KzhYVcg+s7Ncl5DS8qjKYEeio6Az0Gt6nyBORay5qIlCA==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.2.tgz", + "integrity": "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -870,12 +847,13 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.61.1.tgz", - "integrity": "sha512-qLttcH871ujY4YcVfUSShhOw+CsoTatYz8gRbHO7Bb92QH059/P0y5do1KMs41fY0BpD2x4AJH/gID0zFiqVKQ==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.2.tgz", + "integrity": "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -883,12 +861,13 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.61.1.tgz", - "integrity": "sha512-fUI4RapGE0Oh3mb8mgfvC1O2nU1RpDZUKnDQm3xB1Ipg7C2wTs5Kstz7G2uWK99a8S2yTMq8/P4uycwNa0nJyw==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.2.tgz", + "integrity": "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -896,12 +875,13 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.61.1.tgz", - "integrity": "sha512-H5YrdvJaDtI/U9/emrD4b++xkvp3y/JvOe4rizHbxvkyMfRS/CiRYdji+Pl8D0brEaNFWUh1drQxgAGIl6Xudw==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.2.tgz", + "integrity": "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -909,12 +889,13 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.61.1.tgz", - "integrity": "sha512-Q8CBCCQtDFrYtXoeUXSrnFXKOnyUhx6bz+SkL6A0E7V8kAiCJ5pamq1WtbfpVGhR5TSpXY6ak3avmDc5fHTyJA==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.2.tgz", + "integrity": "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==", "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -922,12 +903,13 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.61.1.tgz", - "integrity": "sha512-nwnhk1581l0FBVellGcVCAT0Oi06onEA3WB53sf01VO3I0UPBkMH9sXONYME2K0ovXcNayJfNtHfm6mpJElatQ==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.2.tgz", + "integrity": "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==", "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -935,12 +917,13 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.61.1.tgz", - "integrity": "sha512-x5Xr49hwt3hdW75UOZm3395YwwzPyauktslv29KpWL/T+vVAzoT3azLcTWv0eMciBNrx+DYjH4paehHoLpPvpg==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.2.tgz", + "integrity": "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -948,12 +931,13 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.61.1.tgz", - "integrity": "sha512-unMS3H73DpaoPyyEVPjGKleM/s0mkmsauTENpw4INQY8y4+IuLNjkueQ5QCtC0D3N38Y38yhAU8OoZ20S2Tm6w==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.2.tgz", + "integrity": "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -961,12 +945,13 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.61.1.tgz", - "integrity": "sha512-zNZzGRnAhwjFEYmvphJRV5XaQGjs62cCmeYYHUT//NbvEnHauw+I85nGG+SiVg5ld4GX8D1IbKIX+ozITQnhMQ==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.2.tgz", + "integrity": "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==", "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -974,12 +959,13 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.61.1.tgz", - "integrity": "sha512-LdpWGL8X209B2SIvWjqlc8VZgM6PKfontSerGepuldQmHYrAOtnMCXeJkxXGbC+PPZVOuu5czJo7fNV6aeW8rQ==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.2.tgz", + "integrity": "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==", "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -987,12 +973,13 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.61.1.tgz", - "integrity": "sha512-EC5kTtNaNGOmbMGqar8dvJy6y/hg99GAwjfBz++pxZhQATXGcRjd6c5en5wcbru0vkRmiMGsQKdMJOOf6sza4g==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.2.tgz", + "integrity": "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==", "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1000,12 +987,13 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.61.1.tgz", - "integrity": "sha512-8hiwp6D4acEcNK78I4rP0/XtS1sknWIAMJBPdR4l6zUtyTm5KiTDr5bXmWt4foY7nAN7AThDHgkLIEZOWKbzWw==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.2.tgz", + "integrity": "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==", "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1013,12 +1001,13 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.61.1.tgz", - "integrity": "sha512-10dh/h/BqA7DuMPWSxkR8uks18FRwnwOEqr5zOTEl+NOwP/OMzKX8OFR/Of9xxDA7D5qef1Nzar5WDD2kCCr1g==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.2.tgz", + "integrity": "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==", "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1026,12 +1015,13 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.61.1.tgz", - "integrity": "sha512-YKJ5lg35DP17gcAOggnihe+APw9HLyj1Xn7gsmGumBJAUDa6NGXNixJzmkWLhcK9TOuuyQjdamzvJefkO7qHZQ==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.2.tgz", + "integrity": "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==", "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1039,12 +1029,13 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.61.1.tgz", - "integrity": "sha512-Mlil5G2Jj6a7B3LWGctg+XPL9vdXYuzCtNXfxOQ0nPjc2m6ueUktocPGH9bnAM0bNRKb/bAWTujUU7IJQdQA+g==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.2.tgz", + "integrity": "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==", "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1052,24 +1043,27 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.61.1.tgz", - "integrity": "sha512-bVWIOIk6pV01p4CdUbPP7CJ/434z+OooYjDuFcR+44N35YvKUC66G8MGnvcWx5mWKW3g61J+t74l3Kj15Kwn2Q==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.2.tgz", + "integrity": "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==", "cpu": [ "x64" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.61.1.tgz", - "integrity": "sha512-qy5pBvZbqNFheBz61R1rzsezjm0J7O2oNGoWtGoY89SZYLUfxAJTBAqDChqAIdB4rCiIbi9nF7yZ83GnNiLwSw==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.2.tgz", + "integrity": "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1077,12 +1071,13 @@ ] }, "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.61.1.tgz", - "integrity": "sha512-E83TXjI4zm0+5f2qO+UOudaCYIhYwpJ5jq6YCZNIZ+6CbfhKrkAGezeiASBL9ElxAxFsRS9ZhESv8mfnj6TKeg==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.2.tgz", + "integrity": "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1090,12 +1085,13 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.61.1.tgz", - "integrity": "sha512-fbWnKqVkjrJN38vNe3ahkbk6iejS/3b0Nt7EEtPpE6RBacZcGXNKbzfHN3GUUlXOPghUg0j6XUGrtjX9z1sIvA==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.2.tgz", + "integrity": "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1103,12 +1099,13 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.61.1.tgz", - "integrity": "sha512-ArMl38iVAbk0New1ogihQNY6iphLi4ZaRsa037gUzv5yeKPY8TD3Dmy4x2RNC1VztU/uqm+G+/RwFrSka3Oy2g==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.2.tgz", + "integrity": "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1116,12 +1113,13 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.61.1.tgz", - "integrity": "sha512-0mYtjHS9ucAbcATycCNK9IGBk/cCe/ma7EmSLGZdsxnOA8cjRIyU04wDpVAD9NiOfLUR9KTxdiO53uOkherqjQ==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.2.tgz", + "integrity": "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==", "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1129,12 +1127,13 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.61.1.tgz", - "integrity": "sha512-gK1iCEPfpoSG9wfBihXxvBMi8ZfcWffYkEsC/Eih+iFENTaewvNcrEQ69lIOWYO5pePHKLHHO7nq5AILGO/HQQ==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.2.tgz", + "integrity": "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1142,12 +1141,13 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.61.1.tgz", - "integrity": "sha512-X+zaP2x+j4RXGfbp/seSoRHWnPxzApilDszisZxbYH5C/jTxFhCtDNdPGZb9lJyYPs24wGxruPF7Y+sIXt9Gzw==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.2.tgz", + "integrity": "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1155,127 +1155,137 @@ ] }, "node_modules/@supabase/auth-js": { - "version": "2.107.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@supabase/auth-js/-/auth-js-2.107.0.tgz", - "integrity": "sha512-XA7x+WIeIvuC3GTZ2ey67QcBbGw4n+o5B7M+dMm9KT1lL3wX1B52DfEWW00WuPt/LnniJLLIn1WIm9YPtuxzKQ==", + "version": "2.110.2", + "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.110.2.tgz", + "integrity": "sha512-Qj7a6EDP+AMMQFWqGv+qFa8r6re//dk+qQI5bA0KK+PZmnI3JPu97TDeNt6SMiQ2FkklP79hP2yDFYSnA989OA==", "license": "MIT", "dependencies": { "tslib": "2.8.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.0.0" } }, "node_modules/@supabase/functions-js": { - "version": "2.107.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@supabase/functions-js/-/functions-js-2.107.0.tgz", - "integrity": "sha512-iMtRUmEj1KOgQd/a3MR4hnBlPnZc62DW8+z8aPpnzbxWkexEZUVL2fSgvvp15gqFg1V55e2yMGqgK+yhSQxp5w==", + "version": "2.110.2", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.110.2.tgz", + "integrity": "sha512-ZjjqrXpxM9/rE+eAtZxiK45EWy9EBoJQ322Q5Y75LccYQNh212neHTgXP/o4MIzmH0LNXT8UzvTZtQOfOzyoeQ==", + "license": "MIT", "dependencies": { "tslib": "2.8.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.0.0" } }, "node_modules/@supabase/phoenix": { - "version": "0.4.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@supabase/phoenix/-/phoenix-0.4.2.tgz", - "integrity": "sha512-YSAGnmDAfuleFCVt3CeurQZAhxRfXWeZIIkwp7NhYzQ1UwW6ePSnzsFAiUm/mbCkfoCf70QQHKW/K6RKh52a4A==", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@supabase/phoenix/-/phoenix-0.4.4.tgz", + "integrity": "sha512-Gt0pqoXuIqX/8dvG0OKp/wMCobXNH3klNbUPBNyOfN0YA1IswrM3HyWFMOPk1Jy+BRaIyDPcFx4jLBwHNmlyfQ==", "license": "MIT" }, "node_modules/@supabase/postgrest-js": { - "version": "2.107.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@supabase/postgrest-js/-/postgrest-js-2.107.0.tgz", - "integrity": "sha512-7ARs47/tyIjX7T0Ive20d4NY8zQYXsP5/P07jJWxffSIM2gpnSnGRnL/Fe15GPbdjsW2sTYeckHcyaoKbM6yWQ==", + "version": "2.110.2", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-2.110.2.tgz", + "integrity": "sha512-++LBmcIMwCtgO4tISQUmo9+2xkRwHQqS8ZKMCnhXLe9P8k8YQRXuMoh/RiSzQSoev8gqet0W7yOboW0cUxnt0Q==", + "license": "MIT", "dependencies": { "tslib": "2.8.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.0.0" } }, "node_modules/@supabase/realtime-js": { - "version": "2.107.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@supabase/realtime-js/-/realtime-js-2.107.0.tgz", - "integrity": "sha512-cF2KYdR3JIn9YlWGeluY9S0G+otqTdL6hB8GzpatlEIY6fZudCcyFo6Dc3+X9tjeb+x9XcIyNAk9qhNAknjH1A==", + "version": "2.110.2", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.110.2.tgz", + "integrity": "sha512-z3jTOTPgyn6E3r6dVOOQ10He4yAMB2czjFw7xVdX3s16MHElna5rY1gVaePs0NIo6xvtMYbtmOXlFaFt/ePLpg==", + "license": "MIT", "dependencies": { - "@supabase/phoenix": "^0.4.2", + "@supabase/phoenix": "0.4.4", "tslib": "2.8.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.0.0" } }, "node_modules/@supabase/storage-js": { - "version": "2.107.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@supabase/storage-js/-/storage-js-2.107.0.tgz", - "integrity": "sha512-/X8OOVwKBn8aVKuHAGOz2yLA0d2OauqhVuy4mNtN+o7wttHOgx1/j+pqOzlsjmhOHrYykF6AJNZhs3gKZzcMUw==", + "version": "2.110.2", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.110.2.tgz", + "integrity": "sha512-EhsRSwSnmQefKJsAxoRUZ0hvHr92ECM8DDGAKR5z0HdoJx4heI60PjHUTruVNZxKX6XeobLGDyLud020Bw1iwg==", + "license": "MIT", "dependencies": { "iceberg-js": "^0.8.1", "tslib": "2.8.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.0.0" } }, "node_modules/@supabase/supabase-js": { - "version": "2.107.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@supabase/supabase-js/-/supabase-js-2.107.0.tgz", - "integrity": "sha512-ChKzdlWVweMUUhr0U79JhMmgm1haS/C5JquaiCDr70JaGARRtjjoY9rkIheXWybXxTSNzRiQs3Sk8IAg1HS3ZA==", + "version": "2.110.2", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.110.2.tgz", + "integrity": "sha512-r9q9w4ZQ6mOjh36aqUNFSisBF611vzpO8JphBESr2Q1SWvmGFQeI7Jq7Y+PaNMZ6Zszz+S2yTlJStCpnaMSnQg==", + "license": "MIT", "dependencies": { - "@supabase/auth-js": "2.107.0", - "@supabase/functions-js": "2.107.0", - "@supabase/postgrest-js": "2.107.0", - "@supabase/realtime-js": "2.107.0", - "@supabase/storage-js": "2.107.0" + "@supabase/auth-js": "2.110.2", + "@supabase/functions-js": "2.110.2", + "@supabase/postgrest-js": "2.110.2", + "@supabase/realtime-js": "2.110.2", + "@supabase/storage-js": "2.110.2" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.0.0" } }, "node_modules/@tailwindcss/node": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/node/-/node-4.3.0.tgz", - "integrity": "sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.2.tgz", + "integrity": "sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg==", + "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.5", - "enhanced-resolve": "^5.21.0", - "jiti": "^2.6.1", + "enhanced-resolve": "5.21.6", + "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", - "tailwindcss": "4.3.0" + "tailwindcss": "4.3.2" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/oxide/-/oxide-4.3.0.tgz", - "integrity": "sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.2.tgz", + "integrity": "sha512-z8ZgnzX8gdNoWLBLqBPoh/sjnxkwvf9ZuWjnO0l0yIzbLa5/9S+eC5QxGZKRobVHIC3/1BoMWjHblqWjcgFgag==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 20" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.3.0", - "@tailwindcss/oxide-darwin-arm64": "4.3.0", - "@tailwindcss/oxide-darwin-x64": "4.3.0", - "@tailwindcss/oxide-freebsd-x64": "4.3.0", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.0", - "@tailwindcss/oxide-linux-arm64-gnu": "4.3.0", - "@tailwindcss/oxide-linux-arm64-musl": "4.3.0", - "@tailwindcss/oxide-linux-x64-gnu": "4.3.0", - "@tailwindcss/oxide-linux-x64-musl": "4.3.0", - "@tailwindcss/oxide-wasm32-wasi": "4.3.0", - "@tailwindcss/oxide-win32-arm64-msvc": "4.3.0", - "@tailwindcss/oxide-win32-x64-msvc": "4.3.0" + "@tailwindcss/oxide-android-arm64": "4.3.2", + "@tailwindcss/oxide-darwin-arm64": "4.3.2", + "@tailwindcss/oxide-darwin-x64": "4.3.2", + "@tailwindcss/oxide-freebsd-x64": "4.3.2", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.2", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.2", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.2", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.2", + "@tailwindcss/oxide-linux-x64-musl": "4.3.2", + "@tailwindcss/oxide-wasm32-wasi": "4.3.2", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.2", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.2" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.0.tgz", - "integrity": "sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.2.tgz", + "integrity": "sha512-WHxqIuHpvZ5VtdX6GTl1Ik/Vp2YuN42Et+0CdeaVd/frQ9jAvGmvR8vLT+jk3e8/Q3x8kECB9+R17pgpp2BulA==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1286,12 +1296,13 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.0.tgz", - "integrity": "sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.2.tgz", + "integrity": "sha512-GZypeUY/IDJW3877KeM+O67vbXr3MBnbtEL4aYhNErv/JWZhye2vGSWWG9tB6iiqR2MqRNkY8IOUy4NdSZV26w==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1302,12 +1313,13 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.0.tgz", - "integrity": "sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.2.tgz", + "integrity": "sha512-UIIzmefR6KO1sDU7MzRqAxC8iBpft/VhkGjTjnhoS6k7Z3rQ9wEgA1ODSiyH/tcSYssulNm4Ci3hOeK1jH7ccQ==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1318,12 +1330,13 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.0.tgz", - "integrity": "sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.2.tgz", + "integrity": "sha512-GN+uAmcI6DNspnCDwtOAZrTz6oukJnp337qZvxqCGLd3BHBzJpO0ZbTLRvJNdztOeAmTzewewGIMPb0tk2R4WA==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1334,12 +1347,13 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.0.tgz", - "integrity": "sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.2.tgz", + "integrity": "sha512-4ABn7qSbdHRwTiDiuWNegCyb5+2FJ4vKIKc3DmKrvAFw7MU1Lm11dIkTPwUaFdTzc7IsOpDbqBrlh0x6y36U/w==", "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1350,12 +1364,13 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.0.tgz", - "integrity": "sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.2.tgz", + "integrity": "sha512-wDgEIGwoM8w8pufh9LVt1PahDgNdKXrLC2qfAnV3vAmococ9RWbxeAw4pxPttd/TsJfwjyLf90Dg1y9y8I6Emw==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1366,12 +1381,13 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.0.tgz", - "integrity": "sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.2.tgz", + "integrity": "sha512-J5Nuk0uZQIiMTJj3LEx4sAA9tMFUoXQZFv1J6An+QGYe53HKRJuFDi0rpq/tuouCZeAbOBY3kQ6g8qeD4TUjtA==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1382,12 +1398,13 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.0.tgz", - "integrity": "sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.2.tgz", + "integrity": "sha512-kqCZpSKOBEJO4mz7OqWoofBZeXTAwaVGPj0ErAj7CojmhKpWVWVOnrt9dE8odoIraZq4oj3ausM37kXi+Tow8w==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1398,12 +1415,13 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.0.tgz", - "integrity": "sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.2.tgz", + "integrity": "sha512-cixpqbh2toJDmkuCRI68nXA8ZxNmdK9Y+9v5h3MC3ZQKy/0BO8AWzlkWyRM7JAFSGBlfig4YVTPsK6MVgqz1uw==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1414,9 +1432,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.0.tgz", - "integrity": "sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.2.tgz", + "integrity": "sha512-4ec2Z/LOmRsAgU23CS4xeJfcJlmRg94A/XrbGRCF1gyU/zdDfRLYDVsS+ynSZCmGNxQ1jQriQOKMQeQxBA3Isw==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -1428,14 +1446,15 @@ "cpu": [ "wasm32" ], + "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.10.0", - "@emnapi/runtime": "^1.10.0", - "@emnapi/wasi-threads": "^1.2.1", + "@emnapi/core": "^1.11.1", + "@emnapi/runtime": "^1.11.1", + "@emnapi/wasi-threads": "^1.2.2", "@napi-rs/wasm-runtime": "^1.1.4", - "@tybys/wasm-util": "^0.10.1", + "@tybys/wasm-util": "^0.10.2", "tslib": "^2.8.1" }, "engines": { @@ -1443,12 +1462,13 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.0.tgz", - "integrity": "sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.2.tgz", + "integrity": "sha512-Zyr/M0+XcYZu3bZrUytc7TXvrk0ftWfl8gN2MwekNDzhqhKRUucMPSeOzM0o0wH5AWOU49BsKRrfKxI2atCPMQ==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1459,12 +1479,13 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.0.tgz", - "integrity": "sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.2.tgz", + "integrity": "sha512-QI9BO7KlNZsp2GuO0jwAAj5jCDABOKXRkCk2XuKTSaNEFSdfzqswYVTtCHBNKHLsqyjFyFkqlDiwkNbTYSssMQ==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1475,13 +1496,15 @@ } }, "node_modules/@tailwindcss/vite": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@tailwindcss/vite/-/vite-4.3.0.tgz", - "integrity": "sha512-t6J3OrB5Fc0ExuhohouH0fWUGMYL6PTLhW+E7zIk/pdbnJARZDCwjBznFnkh5ynRnIRSI4YjtTH0t6USjJISrw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.2.tgz", + "integrity": "sha512-eHpMeX4JXfVNJDEcsouTeCBubJBTcTLigeaw/NTUW6PB5ATKKXdyonnXgTBX2VuRbjz1hjfz6C5XAhr52ImQXA==", + "dev": true, + "license": "MIT", "dependencies": { - "@tailwindcss/node": "4.3.0", - "@tailwindcss/oxide": "4.3.0", - "tailwindcss": "4.3.0" + "@tailwindcss/node": "4.3.2", + "@tailwindcss/oxide": "4.3.2", + "tailwindcss": "4.3.2" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" @@ -1489,8 +1512,9 @@ }, "node_modules/@types/babel__core": { "version": "7.20.5", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/babel__core/-/babel__core-7.20.5.tgz", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", @@ -1502,16 +1526,19 @@ }, "node_modules/@types/babel__generator": { "version": "7.27.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { "version": "7.4.4", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/babel__template/-/babel__template-7.4.4.tgz", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", @@ -1520,144 +1547,36 @@ }, "node_modules/@types/babel__traverse": { "version": "7.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.28.2" } }, - "node_modules/@types/body-parser": { - "version": "1.19.6", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/body-parser/-/body-parser-1.19.6.tgz", - "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.9", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/estree/-/estree-1.0.9.tgz", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.25", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/express/-/express-4.17.25.tgz", - "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "^1" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.8", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", - "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.5", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/http-errors/-/http-errors-2.0.5.tgz", - "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true, "license": "MIT" }, "node_modules/@types/node": { - "version": "22.19.20", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/node/-/node-22.19.20.tgz", - "integrity": "sha512-6tELRwSDYWW9EdZhbeZmYGZ1/7Djkt+Ah3/ScEYT9cDord7UJzasR/4D3VONg9tQI5CDp+/CZC1AXj2pCFOvpw==", + "version": "22.20.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.1.tgz", + "integrity": "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==", + "dev": true, "license": "MIT", "dependencies": { "undici-types": "~6.21.0" } }, - "node_modules/@types/qs": { - "version": "6.15.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/qs/-/qs-6.15.1.tgz", - "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" - }, - "node_modules/@types/send": { - "version": "1.2.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/send/-/send-1.2.1.tgz", - "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.10", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/serve-static/-/serve-static-1.15.10.tgz", - "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "<1" - } - }, - "node_modules/@types/serve-static/node_modules/@types/send": { - "version": "0.17.6", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@types/send/-/send-0.17.6.tgz", - "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, "node_modules/@vitejs/plugin-react": { "version": "5.2.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@vitejs/plugin-react/-/plugin-react-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.2.0.tgz", "integrity": "sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.29.0", @@ -1674,94 +1593,12 @@ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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/agent-base": { - "version": "7.1.4", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, - "node_modules/autoprefixer": { - "version": "10.5.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/autoprefixer/-/autoprefixer-10.5.0.tgz", - "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", - "dev": true, - "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" - } - ], - "dependencies": { - "browserslist": "^4.28.2", - "caniuse-lite": "^1.0.30001787", - "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/base64-js": { - "version": "1.5.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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.10.34", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/baseline-browser-mapping/-/baseline-browser-mapping-2.10.34.tgz", - "integrity": "sha512-IMDedajPifLnHNY0X9n8hKxRTQ6/eTHwr5bDo04WnuqxyKw6LYtQywCuuqPZwhl3aBXMvQpJov42GLCwRRdQzw==", + "version": "2.10.42", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.42.tgz", + "integrity": "sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q==", + "dev": true, + "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" }, @@ -1769,56 +1606,11 @@ "node": ">=6.0.0" } }, - "node_modules/bignumber.js": { - "version": "9.3.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/bignumber.js/-/bignumber.js-9.3.1.tgz", - "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", - "engines": { - "node": "*" - } - }, - "node_modules/body-parser": { - "version": "1.20.5", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/body-parser/-/body-parser-1.20.5.tgz", - "integrity": "sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==", - "license": "MIT", - "dependencies": { - "bytes": "~3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "~1.2.0", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "on-finished": "~2.4.1", - "qs": "~6.15.1", - "raw-body": "~2.5.3", - "type-is": "~1.6.18", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, "node_modules/browserslist": { - "version": "4.28.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/browserslist/-/browserslist-4.28.2.tgz", - "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.5.tgz", + "integrity": "sha512-Cu2E6QejHWzuDMTkuwgpABFgDfZrXLQq5V13YOACZx4mFAG4IwGTbTfHPMr4WtxlHoXSM8FIuRwYYCz5XiabaQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -1835,10 +1627,10 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.10.12", - "caniuse-lite": "^1.0.30001782", - "electron-to-chromium": "^1.5.328", - "node-releases": "^2.0.36", + "baseline-browser-mapping": "^2.10.42", + "caniuse-lite": "^1.0.30001800", + "electron-to-chromium": "^1.5.387", + "node-releases": "^2.0.50", "update-browserslist-db": "^1.2.3" }, "bin": { @@ -1848,53 +1640,11 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "license": "BSD-3-Clause" - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "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/caniuse-lite": { - "version": "1.0.30001797", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/caniuse-lite/-/caniuse-lite-1.0.30001797.tgz", - "integrity": "sha512-l8xKG+gwAIExZGl9FrF7KUwuOmk6wbEPC9Xoy/RtnWv1XG0Q4LFlagaLpUv3Kiza3W/wm27zy0yWJEieYKAP6w==", + "version": "1.0.30001803", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001803.tgz", + "integrity": "sha512-g/uHREV2ZpK9qMalCsWaxmA6ol+DX8GYhuf3T40RKoP+oL7vhRJh8LNt73PCjpnR6l14FzfPrB5Yux4PKm2meg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -1911,61 +1661,19 @@ ], "license": "CC-BY-4.0" }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/convert-source-map/-/convert-source-map-2.0.0.tgz", + "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": { - "version": "0.7.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/cookie-signature/-/cookie-signature-1.0.7.tgz", - "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", - "license": "MIT" - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, "node_modules/debug": { "version": "4.4.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/debug/-/debug-4.4.3.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -1978,94 +1686,29 @@ } } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/detect-libc/-/detect-libc-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=8" } }, - "node_modules/dotenv": { - "version": "17.4.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/dotenv/-/dotenv-17.4.2.tgz", - "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, "node_modules/electron-to-chromium": { - "version": "1.5.368", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/electron-to-chromium/-/electron-to-chromium-1.5.368.tgz", - "integrity": "sha512-7RckJJK4uESJF9PxvfMWd3TGqIiieUTG4HxnKaKuIpGbcr+r2ZEB3g2gAhCP3Fqm42vJSzLfgab9eva/C4/XVw==", + "version": "1.5.389", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.389.tgz", + "integrity": "sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg==", + "dev": true, "license": "ISC" }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/enhanced-resolve": { - "version": "5.23.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/enhanced-resolve/-/enhanced-resolve-5.23.0.tgz", - "integrity": "sha512-yJN/BOOLxcOW2aQgeif9mSnaUB8KtvmMMp56oA1kx1CRfBKbhZm2pJ+NBY+3eOboHxix8lfjWpHE0Ei5U8RbSA==", + "version": "5.21.6", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz", + "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==", + "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" @@ -2074,38 +1717,11 @@ "node": ">=10.13.0" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/es-object-atoms/-/es-object-atoms-1.1.2.tgz", - "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/esbuild": { "version": "0.25.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/esbuild/-/esbuild-0.25.12.tgz", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -2145,97 +1761,19 @@ }, "node_modules/escalade": { "version": "3.2.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/escalade/-/escalade-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.22.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/express/-/express-4.22.2.tgz", - "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "~1.20.5", - "content-disposition": "~0.5.4", - "content-type": "~1.0.4", - "cookie": "~0.7.1", - "cookie-signature": "~1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.3.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "~0.1.12", - "proxy-addr": "~2.0.7", - "qs": "~6.15.1", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "~0.19.0", - "serve-static": "~1.16.2", - "setprototypeof": "1.2.0", - "statuses": "~2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, "node_modules/fdir": { "version": "6.5.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/fdir/-/fdir-6.5.0.tgz", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -2249,102 +1787,13 @@ } } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/finalhandler": { - "version": "1.3.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/finalhandler/-/finalhandler-1.3.2.tgz", - "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "statuses": "~2.0.2", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "license": "MIT", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "5.3.4", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/fraction.js/-/fraction.js-5.3.4.tgz", - "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/rawify" - } - }, "node_modules/framer-motion": { - "version": "12.40.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/framer-motion/-/framer-motion-12.40.0.tgz", - "integrity": "sha512-uaBd3qC1v3KQqBEjwTUd183K6PbS+j0yR9w9VmEOLWA/tnUcSn8Xa3uck7t4dgpDoUss8xQTcj8W2L07lrnLFg==", + "version": "12.42.2", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.42.2.tgz", + "integrity": "sha512-5XY9luDiu0oHfHBjpDthFMh0ES+122w6p/papSJBweMkO8Sn+PW2QaEgRblQBpWFnuvZS5qvarpt/hO2pjGmnw==", "license": "MIT", "dependencies": { - "motion-dom": "^12.40.0", + "motion-dom": "^12.42.2", "motion-utils": "^12.39.0", "tslib": "^2.4.0" }, @@ -2365,19 +1814,11 @@ } } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/fsevents/-/fsevents-2.3.3.tgz", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -2388,223 +1829,37 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gaxios": { - "version": "7.1.5", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/gaxios/-/gaxios-7.1.5.tgz", - "integrity": "sha512-5FZy72Rh8LhtjmvDrKkI+lVhrsQrVKVsItxMoDm5mNQE+xR0WVIIs+jzPSJgBvKVsLi24fZhXJIsNI0bihDzFg==", - "license": "Apache-2.0", - "dependencies": { - "extend": "^3.0.2", - "https-proxy-agent": "^7.0.1", - "node-fetch": "^3.3.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/gcp-metadata": { - "version": "8.1.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/gcp-metadata/-/gcp-metadata-8.1.2.tgz", - "integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==", - "dependencies": { - "gaxios": "^7.0.0", - "google-logging-utils": "^1.0.0", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/gensync/-/gensync-1.0.0-beta.2.tgz", + "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/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "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-proto": { - "version": "1.0.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/google-auth-library": { - "version": "10.7.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/google-auth-library/-/google-auth-library-10.7.0.tgz", - "integrity": "sha512-QpTAbNJ36TliZLx3TTtahR8HG0hN9RllL1e3FymOvQSIKK8JmgV58H924ub2wa2DsS3ANjjP1Aw1N+Ramc8hqQ==", - "license": "Apache-2.0", - "dependencies": { - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "gaxios": "^7.1.4", - "gcp-metadata": "8.1.2", - "google-logging-utils": "1.1.3", - "jws": "^4.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/google-logging-utils": { - "version": "1.1.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/google-logging-utils/-/google-logging-utils-1.1.3.tgz", - "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==", - "license": "Apache-2.0", - "engines": { - "node": ">=14" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/graceful-fs/-/graceful-fs-4.2.11.tgz", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, "license": "ISC" }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.4", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/hasown/-/hasown-2.0.4.tgz", - "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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/iceberg-js": { "version": "0.8.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/iceberg-js/-/iceberg-js-0.8.1.tgz", + "resolved": "https://registry.npmjs.org/iceberg-js/-/iceberg-js-0.8.1.tgz", "integrity": "sha512-1dhVQZXhcHje7798IVM+xoo/1ZdVfzOMIc8/rgVSijRK38EDqOJoGula9N/8ZI5RD8QTxNQtK/Gozpr+qUqRRA==", + "license": "MIT", "engines": { "node": ">=20.0.0" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/jiti": { "version": "2.7.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/jiti/-/jiti-2.7.0.tgz", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, "license": "MIT", "bin": { "jiti": "lib/jiti-cli.mjs" @@ -2612,13 +1867,16 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "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://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/jsesc/-/jsesc-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -2627,18 +1885,12 @@ "node": ">=6" } }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/json5/-/json5-2.2.3.tgz", + "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" }, @@ -2646,30 +1898,12 @@ "node": ">=6" } }, - "node_modules/jwa": { - "version": "2.0.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/jwa/-/jwa-2.0.1.tgz", - "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", - "license": "MIT", - "dependencies": { - "buffer-equal-constant-time": "^1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "4.0.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/jws/-/jws-4.0.1.tgz", - "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", - "dependencies": { - "jwa": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "node_modules/lightningcss": { "version": "1.32.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lightningcss/-/lightningcss-1.32.0.tgz", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", "dependencies": { "detect-libc": "^2.0.3" }, @@ -2696,11 +1930,12 @@ }, "node_modules/lightningcss-android-arm64": { "version": "1.32.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", "cpu": [ "arm64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2716,11 +1951,12 @@ }, "node_modules/lightningcss-darwin-arm64": { "version": "1.32.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", "cpu": [ "arm64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2736,11 +1972,12 @@ }, "node_modules/lightningcss-darwin-x64": { "version": "1.32.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", "cpu": [ "x64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2756,11 +1993,12 @@ }, "node_modules/lightningcss-freebsd-x64": { "version": "1.32.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", "cpu": [ "x64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2776,11 +2014,12 @@ }, "node_modules/lightningcss-linux-arm-gnueabihf": { "version": "1.32.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", "cpu": [ "arm" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2796,11 +2035,12 @@ }, "node_modules/lightningcss-linux-arm64-gnu": { "version": "1.32.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", "cpu": [ "arm64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2816,11 +2056,12 @@ }, "node_modules/lightningcss-linux-arm64-musl": { "version": "1.32.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", "cpu": [ "arm64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2836,11 +2077,12 @@ }, "node_modules/lightningcss-linux-x64-gnu": { "version": "1.32.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", "cpu": [ "x64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2856,11 +2098,12 @@ }, "node_modules/lightningcss-linux-x64-musl": { "version": "1.32.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", "cpu": [ "x64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2876,11 +2119,12 @@ }, "node_modules/lightningcss-win32-arm64-msvc": { "version": "1.32.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", "cpu": [ "arm64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2896,11 +2140,12 @@ }, "node_modules/lightningcss-win32-x64-msvc": { "version": "1.32.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", "cpu": [ "x64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -2914,16 +2159,11 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/long": { - "version": "5.3.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", - "license": "Apache-2.0" - }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lru-cache/-/lru-cache-5.1.1.tgz", + "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" @@ -2931,7 +2171,7 @@ }, "node_modules/lucide-react": { "version": "0.546.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/lucide-react/-/lucide-react-0.546.0.tgz", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.546.0.tgz", "integrity": "sha512-Z94u6fKT43lKeYHiVyvyR8fT7pwCzDu7RyMPpTvh054+xahSgj4HFQ+NmflvzdXsoAjYGdCguGaFKYuvq0ThCQ==", "license": "ISC", "peerDependencies": { @@ -2940,88 +2180,21 @@ }, "node_modules/magic-string": { "version": "0.30.21", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/magic-string/-/magic-string-0.30.21.tgz", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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/motion": { - "version": "12.40.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/motion/-/motion-12.40.0.tgz", - "integrity": "sha512-yjrHUrBFW6kQvjJwRsoiPSAhC5tRwRqNGJWmiJ4CrGnbKp0V88AdzkhBmDoqIsIPfarOe0Uddd37Xq43/gIocA==", + "version": "12.42.2", + "resolved": "https://registry.npmjs.org/motion/-/motion-12.42.2.tgz", + "integrity": "sha512-Atvv11yUKIid41cVrRBDVX5m8tF8kNpExRSlbpt6APClhDjtwQssgFHhQzejxw7/7YYbjHSPKBVbHo05BuJT5Q==", "license": "MIT", "dependencies": { - "framer-motion": "^12.40.0", + "framer-motion": "^12.42.2", "tslib": "^2.4.0" }, "peerDependencies": { @@ -3042,9 +2215,9 @@ } }, "node_modules/motion-dom": { - "version": "12.40.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/motion-dom/-/motion-dom-12.40.0.tgz", - "integrity": "sha512-HxU3ZaBwNPVQUBQf1xxgq+7JrPNZvjLVxgbpEZL7RrWJnsxOf0/OM+yrHG9ogLQ31Do/r57Oz2gQWPK+6q62mg==", + "version": "12.42.2", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.42.2.tgz", + "integrity": "sha512-5gIMWLp/PycBtJRJWRgjxke5n8dlvkSn2DrYW+tr3XcqAZY1xZh6BJyooJXCM8wdfM7wfMjkBJNLge1CKPUIRA==", "license": "MIT", "dependencies": { "motion-utils": "^12.39.0" @@ -3052,26 +2225,29 @@ }, "node_modules/motion-utils": { "version": "12.39.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/motion-utils/-/motion-utils-12.39.0.tgz", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.39.0.tgz", "integrity": "sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==", "license": "MIT" }, "node_modules/ms": { "version": "2.1.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/ms/-/ms-2.1.3.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.12", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/nanoid/-/nanoid-3.3.12.tgz", - "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "version": "3.3.15", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", + "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", + "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -3079,120 +2255,28 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "deprecated": "Use your platform's native DOMException instead", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "license": "MIT", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, "node_modules/node-releases": { - "version": "2.0.47", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/node-releases/-/node-releases-2.0.47.tgz", - "integrity": "sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==", + "version": "2.0.51", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.51.tgz", + "integrity": "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==", + "dev": true, + "license": "MIT", "engines": { "node": ">=18" } }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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/on-finished": { - "version": "2.4.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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/p-retry": { - "version": "4.6.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.13", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/path-to-regexp/-/path-to-regexp-0.1.13.tgz", - "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", - "license": "MIT" - }, "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -3202,9 +2286,10 @@ } }, "node_modules/postcss": { - "version": "8.5.15", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/postcss/-/postcss-8.5.15.tgz", - "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "version": "8.5.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", + "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -3229,91 +2314,9 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/protobufjs": { - "version": "7.6.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/protobufjs/-/protobufjs-7.6.2.tgz", - "integrity": "sha512-N9EiLovGEQOJSPF26Ij7qUGvahfEnq0eeYZ02aigIedkmz1qZSwjnP9SBITHJuF/6MYbIW4HDN8zdYjsjqJKXQ==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.5", - "@protobufjs/eventemitter": "^1.1.1", - "@protobufjs/fetch": "^1.1.1", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.2", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.1", - "@types/node": ">=13.7.0", - "long": "^5.3.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/qs": { - "version": "6.15.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/qs/-/qs-6.15.2.tgz", - "integrity": "sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/raw-body/-/raw-body-2.5.3.tgz", - "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", - "license": "MIT", - "dependencies": { - "bytes": "~3.1.2", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/react": { "version": "19.2.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/react/-/react-19.2.7.tgz", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", "license": "MIT", "engines": { @@ -3322,7 +2325,7 @@ }, "node_modules/react-dom": { "version": "19.2.7", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/react-dom/-/react-dom-19.2.7.tgz", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", "license": "MIT", "dependencies": { @@ -3334,26 +2337,20 @@ }, "node_modules/react-refresh": { "version": "0.18.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/react-refresh/-/react-refresh-0.18.0.tgz", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz", "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/rollup": { - "version": "4.61.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/rollup/-/rollup-4.61.1.tgz", - "integrity": "sha512-I4KW6iuRpuu2uHBLraZ1wNZe0DP7lnRha+VJ9tNaYVaVgKhW0aI3h4RYnoRPeql0flHm/Co55b7snEDcOfOJrA==", + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.2.tgz", + "integrity": "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==", + "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "1.0.9" }, @@ -3365,229 +2362,72 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.61.1", - "@rollup/rollup-android-arm64": "4.61.1", - "@rollup/rollup-darwin-arm64": "4.61.1", - "@rollup/rollup-darwin-x64": "4.61.1", - "@rollup/rollup-freebsd-arm64": "4.61.1", - "@rollup/rollup-freebsd-x64": "4.61.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.61.1", - "@rollup/rollup-linux-arm-musleabihf": "4.61.1", - "@rollup/rollup-linux-arm64-gnu": "4.61.1", - "@rollup/rollup-linux-arm64-musl": "4.61.1", - "@rollup/rollup-linux-loong64-gnu": "4.61.1", - "@rollup/rollup-linux-loong64-musl": "4.61.1", - "@rollup/rollup-linux-ppc64-gnu": "4.61.1", - "@rollup/rollup-linux-ppc64-musl": "4.61.1", - "@rollup/rollup-linux-riscv64-gnu": "4.61.1", - "@rollup/rollup-linux-riscv64-musl": "4.61.1", - "@rollup/rollup-linux-s390x-gnu": "4.61.1", - "@rollup/rollup-linux-x64-gnu": "4.61.1", - "@rollup/rollup-linux-x64-musl": "4.61.1", - "@rollup/rollup-openbsd-x64": "4.61.1", - "@rollup/rollup-openharmony-arm64": "4.61.1", - "@rollup/rollup-win32-arm64-msvc": "4.61.1", - "@rollup/rollup-win32-ia32-msvc": "4.61.1", - "@rollup/rollup-win32-x64-gnu": "4.61.1", - "@rollup/rollup-win32-x64-msvc": "4.61.1", + "@rollup/rollup-android-arm-eabi": "4.62.2", + "@rollup/rollup-android-arm64": "4.62.2", + "@rollup/rollup-darwin-arm64": "4.62.2", + "@rollup/rollup-darwin-x64": "4.62.2", + "@rollup/rollup-freebsd-arm64": "4.62.2", + "@rollup/rollup-freebsd-x64": "4.62.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.62.2", + "@rollup/rollup-linux-arm-musleabihf": "4.62.2", + "@rollup/rollup-linux-arm64-gnu": "4.62.2", + "@rollup/rollup-linux-arm64-musl": "4.62.2", + "@rollup/rollup-linux-loong64-gnu": "4.62.2", + "@rollup/rollup-linux-loong64-musl": "4.62.2", + "@rollup/rollup-linux-ppc64-gnu": "4.62.2", + "@rollup/rollup-linux-ppc64-musl": "4.62.2", + "@rollup/rollup-linux-riscv64-gnu": "4.62.2", + "@rollup/rollup-linux-riscv64-musl": "4.62.2", + "@rollup/rollup-linux-s390x-gnu": "4.62.2", + "@rollup/rollup-linux-x64-gnu": "4.62.2", + "@rollup/rollup-linux-x64-musl": "4.62.2", + "@rollup/rollup-openbsd-x64": "4.62.2", + "@rollup/rollup-openharmony-arm64": "4.62.2", + "@rollup/rollup-win32-arm64-msvc": "4.62.2", + "@rollup/rollup-win32-ia32-msvc": "4.62.2", + "@rollup/rollup-win32-x64-gnu": "4.62.2", + "@rollup/rollup-win32-x64-msvc": "4.62.2", "fsevents": "~2.3.2" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, "node_modules/scheduler": { "version": "0.27.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/scheduler/-/scheduler-0.27.0.tgz", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", "license": "MIT" }, "node_modules/semver": { "version": "6.3.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/semver/-/semver-6.3.1.tgz", + "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/send": { - "version": "0.19.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/send/-/send-0.19.2.tgz", - "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.4.1", - "range-parser": "~1.2.1", - "statuses": "~2.0.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/serve-static": { - "version": "1.16.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/serve-static/-/serve-static-1.16.3.tgz", - "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "~0.19.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "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.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/side-channel-list/-/side-channel-list-1.0.1.tgz", - "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "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/source-map-js": { "version": "1.2.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/source-map-js/-/source-map-js-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/tailwindcss": { - "version": "4.3.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/tailwindcss/-/tailwindcss-4.3.0.tgz", - "integrity": "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==" + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.2.tgz", + "integrity": "sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA==", + "dev": true, + "license": "MIT" }, "node_modules/tapable": { "version": "2.3.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/tapable/-/tapable-2.3.3.tgz", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -3599,8 +2439,9 @@ }, "node_modules/tinyglobby": { "version": "0.2.17", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/tinyglobby/-/tinyglobby-0.2.17.tgz", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", @@ -3613,513 +2454,15 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, "node_modules/tslib": { "version": "2.8.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/tslib/-/tslib-2.8.1.tgz", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/tsx": { - "version": "4.22.4", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/tsx/-/tsx-4.22.4.tgz", - "integrity": "sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.28.0" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "node_modules/tsx/node_modules/@esbuild/aix-ppc64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", - "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/android-arm": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/android-arm/-/android-arm-0.28.0.tgz", - "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/android-arm64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", - "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/android-x64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/android-x64/-/android-x64-0.28.0.tgz", - "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", - "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/darwin-x64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", - "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", - "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", - "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-arm": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", - "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-arm64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", - "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-ia32": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", - "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-loong64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", - "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", - "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", - "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", - "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-s390x": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", - "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-x64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", - "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/netbsd-arm64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", - "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", - "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/openbsd-arm64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", - "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", - "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/openharmony-arm64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", - "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/sunos-x64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", - "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/win32-arm64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", - "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/win32-ia32": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", - "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/win32-x64": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", - "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/esbuild": { - "version": "0.28.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/esbuild/-/esbuild-0.28.0.tgz", - "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", - "devOptional": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.0", - "@esbuild/android-arm": "0.28.0", - "@esbuild/android-arm64": "0.28.0", - "@esbuild/android-x64": "0.28.0", - "@esbuild/darwin-arm64": "0.28.0", - "@esbuild/darwin-x64": "0.28.0", - "@esbuild/freebsd-arm64": "0.28.0", - "@esbuild/freebsd-x64": "0.28.0", - "@esbuild/linux-arm": "0.28.0", - "@esbuild/linux-arm64": "0.28.0", - "@esbuild/linux-ia32": "0.28.0", - "@esbuild/linux-loong64": "0.28.0", - "@esbuild/linux-mips64el": "0.28.0", - "@esbuild/linux-ppc64": "0.28.0", - "@esbuild/linux-riscv64": "0.28.0", - "@esbuild/linux-s390x": "0.28.0", - "@esbuild/linux-x64": "0.28.0", - "@esbuild/netbsd-arm64": "0.28.0", - "@esbuild/netbsd-x64": "0.28.0", - "@esbuild/openbsd-arm64": "0.28.0", - "@esbuild/openbsd-x64": "0.28.0", - "@esbuild/openharmony-arm64": "0.28.0", - "@esbuild/sunos-x64": "0.28.0", - "@esbuild/win32-arm64": "0.28.0", - "@esbuild/win32-ia32": "0.28.0", - "@esbuild/win32-x64": "0.28.0" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/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/typescript": { "version": "5.8.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/typescript/-/typescript-5.8.3.tgz", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", @@ -4133,23 +2476,16 @@ }, "node_modules/undici-types": { "version": "6.21.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/undici-types/-/undici-types-6.21.0.tgz", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, "license": "MIT" }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/update-browserslist-db": { "version": "1.2.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, "funding": [ { "type": "opencollective", @@ -4164,6 +2500,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" @@ -4175,28 +2512,12 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/vite": { "version": "6.4.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/vite/-/vite-6.4.3.tgz", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.3.tgz", "integrity": "sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==", + "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -4266,39 +2587,11 @@ } } }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/ws": { - "version": "8.21.0", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/ws/-/ws-8.21.0.tgz", - "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", - "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/yallist": { "version": "3.1.1", - "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/yallist/-/yallist-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, "license": "ISC" } } diff --git a/package.json b/package.json index 1865d69..876385b 100644 --- a/package.json +++ b/package.json @@ -1,36 +1,27 @@ { - "name": "cruce-de-cuentas-glm", + "name": "cruce-cuentas-glm-guatemala", "private": true, - "version": "0.0.0", + "version": "0.1.0", "type": "module", "scripts": { "dev": "vite --port=3000 --host=0.0.0.0", "build": "vite build", "preview": "vite preview", - "clean": "rm -rf dist server.js", "lint": "tsc --noEmit" }, "dependencies": { - "@google/genai": "^2.4.0", - "@tailwindcss/vite": "^4.1.14", - "@vitejs/plugin-react": "^5.0.4", + "@supabase/supabase-js": "^2.86.0", "lucide-react": "^0.546.0", - "react": "^19.0.1", - "react-dom": "^19.0.1", - "vite": "^6.2.3", - "express": "^4.21.2", - "dotenv": "^17.2.3", "motion": "^12.23.24", - "@supabase/supabase-js": "^2.77.0" + "react": "^19.0.1", + "react-dom": "^19.0.1" }, "devDependencies": { + "@tailwindcss/vite": "^4.1.14", "@types/node": "^22.14.0", - "autoprefixer": "^10.4.21", - "esbuild": "^0.25.0", + "@vitejs/plugin-react": "^5.0.4", "tailwindcss": "^4.1.14", - "tsx": "^4.21.0", "typescript": "~5.8.2", - "vite": "^6.2.3", - "@types/express": "^4.17.21" + "vite": "^6.2.3" } } diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..11eccc8ab9b6371d2fe2cf3f33ef44be6dfa531f GIT binary patch literal 11261 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 literal 0 HcmV?d00001 diff --git a/public/tt-flag.png b/public/tt-flag.png new file mode 100644 index 0000000000000000000000000000000000000000..2ba6c2152402452a1a7bc3741b36d412432a614c GIT binary patch literal 22967 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 F{|kaa##jIV literal 0 HcmV?d00001 diff --git a/src/App.tsx b/src/App.tsx index 1187dad..e3cf2c0 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,144 +1,289 @@ -/** - * @license - * SPDX-License-Identifier: Apache-2.0 - */ +import React, { useEffect, useMemo, useState } from 'react'; +import { motion, AnimatePresence } from 'motion/react'; +import Sidebar from './components/Sidebar'; +import Dashboard from './components/Dashboard'; +import History from './components/History'; +import Toast from './components/Toast'; +import Login from './components/Login'; +import CountrySelector from './components/CountrySelector'; +import { + AppUser, + CountryCode, + ReconciliationResponse, + ToastType, + UploadedFile, + ViewType, +} from './types'; +import { isAllowedEmail } from './lib/auth'; +import { isSupabaseConfigured, supabase } from './lib/supabase'; +import { COUNTRIES, getCountryConfig } from './config/countries'; -import { useEffect, useState } from "react"; -import type { Session } from "@supabase/supabase-js"; -import { AnimatePresence, motion } from "motion/react"; -import { LoginScreen } from "./components/LoginScreen"; -import { PortalPrincipal } from "./components/PortalPrincipal"; -import { ALLOWED_EMAILS, isAllowedEmail } from "./lib/auth"; -import { isSupabaseConfigured, supabase } from "./lib/supabase"; +const AUTH_ENABLED = import.meta.env.VITE_ENABLE_SUPABASE_AUTH === 'true'; +const COUNTRY_STORAGE_KEY = 'glm_cruce_selected_country'; + +const TEMPORARY_USER: AppUser = { + name: (import.meta.env.VITE_OPERATOR_NAME as string | undefined) || 'Usuario GLM', + email: (import.meta.env.VITE_OPERATOR_EMAIL as string | undefined) || 'usuario@gomezleemarketing.com', +}; + +function getDisplayNameFromSessionUser(user: any): string { + const metadata = user?.user_metadata ?? {}; + const fullName = metadata.full_name || metadata.name || metadata.display_name; + if (fullName) return String(fullName); + + const email = String(user?.email ?? 'Usuario GLM'); + return email.includes('@') ? email.split('@')[0] : email; +} + +function getStoredCountry(): CountryCode | null { + try { + const stored = window.localStorage.getItem(COUNTRY_STORAGE_KEY) as CountryCode | null; + const country = COUNTRIES.find((item) => item.code === stored && item.enabled); + return country?.code ?? null; + } catch { + return null; + } +} export default function App() { - const [session, setSession] = useState(null); - const [isLoadingSession, setIsLoadingSession] = useState(true); - const [authError, setAuthError] = useState(""); + const [currentView, setCurrentView] = useState('cruce'); + const [isSidebarOpen, setIsSidebarOpen] = useState(false); + const [uploadedPayroll, setUploadedPayroll] = useState(null); + const [uploadedBankFiles, setUploadedBankFiles] = useState([]); + const [isCruceExecuted, setIsCruceExecuted] = useState(false); + const [cruceResponse, setCruceResponse] = useState(null); + const [cruceResetToken, setCruceResetToken] = useState(0); + const [selectedCountryCode, setSelectedCountryCode] = useState(() => getStoredCountry()); + const [currentUser, setCurrentUser] = useState(AUTH_ENABLED ? null : TEMPORARY_USER); + const [authLoading, setAuthLoading] = useState(AUTH_ENABLED); + const [toast, setToast] = useState<{ message: string; type: ToastType } | null>(null); - const validateAndSetSession = async (currentSession: Session | null) => { - const email = currentSession?.user?.email; + const authReady = useMemo(() => AUTH_ENABLED && isSupabaseConfigured && supabase, []); + const selectedCountry = selectedCountryCode ? getCountryConfig(selectedCountryCode) : null; - if (!currentSession) { - setSession(null); - return; - } - - if (!isAllowedEmail(email)) { - setSession(null); - setAuthError( - "Este correo no tiene acceso al portal. Usa ymadera@gomezleemarketing.com o iaracena@gomezleemarketing.com." - ); - await supabase?.auth.signOut(); - return; - } - - setAuthError(""); - setSession(currentSession); + const handleShowToast = (message: string, type: ToastType) => { + setToast({ message, type }); }; useEffect(() => { - if (!isSupabaseConfigured || !supabase) { - setAuthError("Falta configurar Supabase en el archivo .env.local."); - setIsLoadingSession(false); + if (!AUTH_ENABLED) return; + + if (!authReady || !supabase) { + setAuthLoading(false); return; } let isMounted = true; - supabase.auth.getSession().then(async ({ data, error }) => { - if (!isMounted) return; - - if (error) { - setAuthError("No se pudo validar la sesión. Intenta iniciar sesión nuevamente."); - setSession(null); - } else { - await validateAndSetSession(data.session); + const applySessionUser = async (sessionUser: any) => { + if (!sessionUser?.email) { + setCurrentUser(null); + return; } - setIsLoadingSession(false); - }); + if (!isAllowedEmail(sessionUser.email)) { + await supabase.auth.signOut(); + setCurrentUser(null); + handleShowToast('Tu usuario no tiene acceso autorizado a este módulo.', 'error'); + return; + } - const { data: listener } = supabase.auth.onAuthStateChange(async (_event, currentSession) => { - await validateAndSetSession(currentSession); - setIsLoadingSession(false); + setCurrentUser({ + name: getDisplayNameFromSessionUser(sessionUser), + email: sessionUser.email, + }); + }; + + const loadSession = async () => { + const { data } = await supabase.auth.getSession(); + if (!isMounted) return; + await applySessionUser(data.session?.user); + setAuthLoading(false); + }; + + loadSession(); + + const { data: listener } = supabase.auth.onAuthStateChange(async (_event, session) => { + await applySessionUser(session?.user); }); return () => { isMounted = false; listener.subscription.unsubscribe(); }; - }, []); + }, [authReady]); - const handleLogin = async () => { - setAuthError(""); - - if (!isSupabaseConfigured || !supabase) { - setAuthError("Falta configurar VITE_SUPABASE_URL y VITE_SUPABASE_ANON_KEY en .env.local."); - return; - } - - const redirectTo = `${window.location.origin}${import.meta.env.BASE_URL}`; - - const { error } = await supabase.auth.signInWithOAuth({ - provider: "google", - options: { - redirectTo, - }, - }); - - if (error) { - setAuthError("No se pudo iniciar sesión con Google. Revisa la configuración de Supabase Auth."); - } + const clearCurrentCruce = () => { + setUploadedPayroll(null); + setUploadedBankFiles([]); + setIsCruceExecuted(false); + setCruceResponse(null); + setCruceResetToken((token) => token + 1); }; const handleLogout = async () => { - setAuthError(""); - await supabase?.auth.signOut(); - setSession(null); + if (supabase) await supabase.auth.signOut(); + setCurrentUser(AUTH_ENABLED ? null : TEMPORARY_USER); + setSelectedCountryCode(null); + window.localStorage.removeItem(COUNTRY_STORAGE_KEY); + clearCurrentCruce(); + setCurrentView('cruce'); + handleShowToast('Sesión cerrada correctamente.', 'success'); }; - if (isLoadingSession) { + const handleNewCruce = () => { + clearCurrentCruce(); + setCurrentView('cruce'); + handleShowToast('Nuevo cruce iniciado.', 'success'); + }; + + const handleSelectCountry = (countryCode: CountryCode) => { + const country = getCountryConfig(countryCode); + if (!country.enabled) { + handleShowToast(`${country.name} estará disponible próximamente.`, 'info'); + return; + } + + if (selectedCountryCode && selectedCountryCode !== countryCode) { + clearCurrentCruce(); + } + + setSelectedCountryCode(countryCode); + window.localStorage.setItem(COUNTRY_STORAGE_KEY, countryCode); + setCurrentView('cruce'); + setIsSidebarOpen(false); + }; + + const handleChooseAnotherCountry = () => { + setSelectedCountryCode(null); + setIsSidebarOpen(false); + }; + + if (authLoading) { return ( -
- Validando sesión... +
+ Validando acceso...
); } - const isLoggedIn = Boolean(session && isAllowedEmail(session.user.email)); + if (AUTH_ENABLED && !currentUser) { + return ( + <> + + + {toast && setToast(null)} />} + + + ); + } + + if (!selectedCountry) { + return ( + <> + + + {toast && setToast(null)} />} + + + ); + } + + const activeUser = currentUser ?? TEMPORARY_USER; return ( -
- - {!isLoggedIn ? ( - - + + + {isSidebarOpen && ( + setIsSidebarOpen(false)} + className="fixed inset-0 bg-black/45 z-45 md:hidden" /> - - ) : ( - - - - )} + )} + + + { + setCurrentView(view); + setIsSidebarOpen(false); + }} + onNewCruce={() => { + handleNewCruce(); + setIsSidebarOpen(false); + }} + isSidebarOpen={isSidebarOpen} + onCloseSidebar={() => setIsSidebarOpen(false)} + user={activeUser} + isAuthEnabled={AUTH_ENABLED} + onLogout={handleLogout} + country={selectedCountry} + onCountryChange={handleSelectCountry} + onChooseAnotherCountry={handleChooseAnotherCountry} + /> + +
+ + {currentView === 'cruce' ? ( + + setIsSidebarOpen(true)} + operatorName={activeUser.name} + operatorEmail={activeUser.email} + resetToken={cruceResetToken} + country={selectedCountry} + /> + + ) : ( + + setIsSidebarOpen(true)} + operatorName={activeUser.name} + operatorEmail={activeUser.email} + country={selectedCountry} + /> + + )} + +
+
+ + + {toast && setToast(null)} />}
); diff --git a/src/components/CountryCard.tsx b/src/components/CountryCard.tsx deleted file mode 100644 index 22b1909..0000000 --- a/src/components/CountryCard.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { motion } from "motion/react"; -import { ArrowRight } from "lucide-react"; -import { Country } from "../data"; - -interface CountryCardProps { - country: Country; - onSelect: (country: Country) => void; - key?: string; -} - -export function CountryCard({ country, onSelect }: CountryCardProps) { - return ( - -
- {/* Country Flag Container */} -
- {`Bandera -
- - {/* Country Name */} -

- {country.name} -

-
- - {/* Action Button */} - -
- ); -} diff --git a/src/components/CountrySelector.tsx b/src/components/CountrySelector.tsx new file mode 100644 index 0000000..df9f31d --- /dev/null +++ b/src/components/CountrySelector.tsx @@ -0,0 +1,73 @@ +import React from 'react'; +import { motion } from 'motion/react'; +import { ArrowRight, Globe2, LockKeyhole } from 'lucide-react'; +import { COUNTRIES } from '../config/countries'; +import { CountryCode } from '../types'; + +interface CountrySelectorProps { + onSelect: (country: CountryCode) => void; +} + +const LOGO_URL = 'https://dbit.digitalcompass.agency/storage/v1/object/public/public-assets/GLM_completo.png'; + +export default function CountrySelector({ onSelect }: CountrySelectorProps) { + return ( +
+
+
+ + GomezLee Marketing + +
+
+ +
+
+

+ Selecciona el país +

+

+ El portal cargará las reglas, la moneda y los reportes correspondientes. +

+
+
+ +
+ {COUNTRIES.map((country) => ( + + ))} +
+
+
+
+ ); +} diff --git a/src/components/Dashboard.tsx b/src/components/Dashboard.tsx new file mode 100644 index 0000000..ae87549 --- /dev/null +++ b/src/components/Dashboard.tsx @@ -0,0 +1,1454 @@ +import React, { useEffect, useMemo, useRef, useState } from 'react'; +import { motion, AnimatePresence } from 'motion/react'; +import { + AlertTriangle, + Banknote, + CalendarDays, + CheckCircle2, + ExternalLink, + FileSpreadsheet, + FileText, + Info, + Loader2, + Menu, + Play, + Search, + Trash2, + Upload, +} from 'lucide-react'; +import { + CountryConfig, + PeriodRange, + PeriodType, + ReconciliationResponse, + ReconciliationRow, + ReconciliationStatus, + UploadedFile, +} from '../types'; + +interface DashboardProps { + onShowToast: (msg: string, type: 'success' | 'error' | 'info') => void; + uploadedPayroll: UploadedFile | null; + setUploadedPayroll: (file: UploadedFile | null) => void; + uploadedBankFiles: UploadedFile[]; + setUploadedBankFiles: (files: UploadedFile[]) => void; + isCruceExecuted: boolean; + setIsCruceExecuted: (val: boolean) => void; + response: ReconciliationResponse | null; + setResponse: (response: ReconciliationResponse | null) => void; + onOpenSidebar?: () => void; + operatorName: string; + operatorEmail: string; + resetToken?: number; + country: CountryConfig; +} + +const MONTHS = [ + { value: 1, label: 'Enero' }, + { value: 2, label: 'Febrero' }, + { value: 3, label: 'Marzo' }, + { value: 4, label: 'Abril' }, + { value: 5, label: 'Mayo' }, + { value: 6, label: 'Junio' }, + { value: 7, label: 'Julio' }, + { value: 8, label: 'Agosto' }, + { value: 9, label: 'Septiembre' }, + { value: 10, label: 'Octubre' }, + { value: 11, label: 'Noviembre' }, + { value: 12, label: 'Diciembre' }, +]; + +const PERIOD_TYPES: { value: PeriodType; label: string; description: string }[] = [ + { value: 'quincena_15', label: 'Quincena 15', description: 'Del día 1 al 15 del mes.' }, + { value: 'quincena_30', label: 'Quincena 30 / fin de mes', description: 'Del día 16 al último día del mes.' }, +]; + +const PAYROLL_FILENAME_ANALYSIS_URL = + (import.meta.env.VITE_ANALIZAR_NOMINA_URL as string | undefined) || ''; + +function getReconciliationUrl(countryCode: string) { + if (countryCode === 'TT') { + return (import.meta.env.VITE_N8N_TRINIDAD_WEBHOOK_URL as string | undefined) || ''; + } + + return ( + (import.meta.env.VITE_N8N_GUATEMALA_WEBHOOK_URL as string | undefined) || + (import.meta.env.VITE_N8N_WEBHOOK_URL as string | undefined) || + '' + ); +} + +function getYearOptions() { + const currentYear = new Date().getFullYear(); + const startYear = currentYear - 5; + const endYear = currentYear + 10; + return Array.from({ length: endYear - startYear + 1 }, (_, index) => startYear + index); +} + +function getDefaultPaidPeriod() { + const today = new Date(); + const day = today.getDate(); + let year = today.getFullYear(); + let month = today.getMonth() + 1; + let periodType: PeriodType = 'quincena_15'; + + if (day <= 15) { + month -= 1; + periodType = 'quincena_30'; + if (month === 0) { + month = 12; + year -= 1; + } + } + + return { year, month, periodType }; +} + +function formatBytes(bytes: number) { + if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`; + return `${(bytes / (1024 * 1024)).toFixed(2)} MB`; +} + +function isExcelFile(file: File) { + const name = file.name.toLowerCase(); + return name.endsWith('.xlsx') || name.endsWith('.xls'); +} + +function isCsvFile(file: File) { + return file.name.toLowerCase().endsWith('.csv'); +} + +function toUploadedBankFiles(files: FileList | File[]) { + return Array.from(files).map((file) => ({ + name: file.name, + size: formatBytes(file.size), + type: 'bank' as const, + rawFile: file, + })); +} + +function toIsoDate(year: number, month: number, day: number) { + return `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`; +} + +function getPeriodRange(year: number, month: number, periodType: PeriodType): PeriodRange { + const lastDay = new Date(year, month, 0).getDate(); + const monthLabel = MONTHS.find((m) => m.value === month)?.label ?? 'Mes'; + + if (periodType === 'quincena_15') { + return { + start: toIsoDate(year, month, 1), + end: toIsoDate(year, month, 15), + label: `${monthLabel} ${year} · Quincena 15`, + }; + } + + return { + start: toIsoDate(year, month, 16), + end: toIsoDate(year, month, lastDay), + label: `${monthLabel} ${year} · Quincena 30 / fin de mes`, + }; +} + +function formatCurrency(value: number | null | undefined, country: CountryConfig) { + if (value === null || value === undefined || Number.isNaN(value)) return '—'; + return new Intl.NumberFormat(country.locale, { + style: 'currency', + currency: country.currency, + minimumFractionDigits: 2, + }).format(value); +} + +function toNumber(value: unknown, fallback = 0) { + const parsed = Number(value); + return Number.isFinite(parsed) ? parsed : fallback; +} + +function normalizeText(value: string) { + return value + .normalize('NFD') + .replace(/[\u0300-\u036f]/g, '') + .toLowerCase(); +} + +function normalizeStatus(value: unknown, category?: string): ReconciliationStatus { + const text = normalizeText(String(value ?? category ?? '')); + + if (text.includes('coincid')) return 'Coincidencia'; + if (text.includes('resuelto')) return 'Resuelto'; + if (text.includes('no encontrado')) return 'No encontrado'; + if (text.includes('pendiente')) return 'Pendiente revisión'; + if (text.includes('riesgo') || text.includes('discrep') || text.includes('mal digitada')) return 'Riesgo'; + if (category === 'coincidencia') return 'Coincidencia'; + if (category === 'posible_cuenta_mal_digitada' || category === 'discrepancia') return 'Riesgo'; + + return 'Pendiente revisión'; +} + +function extractNumber(item: Record, keys: string[]) { + for (const key of keys) { + if (typeof item[key] === 'number') return item[key] as number; + if (typeof item[key] === 'string' && item[key] !== '') { + const normalized = item[key].replace(/[Q,$\s]/g, '').replace(/,/g, ''); + const parsed = Number(normalized); + if (Number.isFinite(parsed)) return parsed; + } + } + return null; +} + +function normalizeRows(input: unknown): ReconciliationRow[] { + if (!Array.isArray(input)) return []; + + return input.map((row, index) => { + const item = row as Record; + const category = String(item.category ?? item.categoria ?? item.tipo ?? item.source ?? item.fuente ?? ''); + const amountPayroll = extractNumber(item, ['amountPayroll', 'monto_nomina', 'payroll_amount', 'amount_payroll', 'montoNomina']); + const amountBank = extractNumber(item, ['amountBank', 'monto_banco', 'bank_amount', 'amount_bank', 'montoBanco']); + const difference = extractNumber(item, ['difference', 'diferencia', 'diff']); + + return { + id: String(item.id ?? item.employeeNumber ?? item.employee_number ?? item.account ?? item.cuenta ?? `row-${index + 1}`), + employee: String(item.employee ?? item.empleado ?? item.name ?? item.nombre ?? item.employee_name ?? 'Sin nombre'), + employeeNumber: String(item.employeeNumber ?? item.employee_number ?? item.codigo ?? ''), + account: item.account || item.cuenta || item.bank_account ? String(item.account ?? item.cuenta ?? item.bank_account) : undefined, + amountPayroll, + amountBank, + difference: difference ?? (amountPayroll !== null && amountBank !== null ? amountPayroll - amountBank : null), + status: normalizeStatus(item.status ?? item.estado, category), + category, + observation: String(item.observation ?? item.observacion ?? item.note ?? item.nota ?? item.comentario ?? ''), + source: (item.source ?? item.fuente ?? category) as ReconciliationRow['source'], + }; + }); +} + +function normalizeWebhookResponse(payload: unknown): ReconciliationResponse { + const data = Array.isArray(payload) ? payload[0] : payload; + const item = (data ?? {}) as Record; + const original = (item.originalResponse ?? item.original_response ?? item.response ?? item) as Record; + const rawSummary = (original.summary ?? original.resumen ?? item.summary ?? item.resumen ?? {}) as Record; + + const primaryRows = normalizeRows( + original.rows ?? item.rows ?? original.resultados ?? item.resultados ?? [] + ); + const bankWithoutBambooRows = normalizeRows( + original.bankWithoutBamboo ?? + item.bankWithoutBamboo ?? + original.banco_sin_bamboo_rows ?? + item.banco_sin_bamboo_rows ?? + [] + ).map((row) => ({ + ...row, + category: row.category || 'banco_sin_bamboo', + source: 'banco_sin_bamboo' as const, + status: row.status === 'Coincidencia' ? 'Pendiente revisión' as const : row.status, + })); + + const rowMap = new Map(); + [...primaryRows, ...bankWithoutBambooRows].forEach((row, index) => { + const key = row.id || `${row.source ?? row.category ?? 'row'}-${index}`; + rowMap.set(key, row); + }); + const rows = Array.from(rowMap.values()); + + const matches = toNumber( + rawSummary.matches ?? rawSummary.coincidencias, + primaryRows.filter((row) => row.status === 'Coincidencia').length + ); + const discrepancies = toNumber( + rawSummary.discrepancies ?? rawSummary.discrepancias, + primaryRows.filter((row) => { + const category = normalizeText(String(row.category ?? row.source ?? '')); + return category.includes('discrepancia') || category.includes('posible_cuenta_mal_digitada'); + }).length + ); + const bankWithoutPayroll = toNumber( + rawSummary.bankWithoutPayroll ?? + rawSummary.bancoSinNomina ?? + rawSummary.banco_sin_nomina, + primaryRows.filter((row) => isSourceRow(row, 'banco_sin_nomina')).length + ); + const bankWithoutBamboo = toNumber( + rawSummary.bankWithoutBamboo ?? + rawSummary.bancoSinBamboo ?? + rawSummary.banco_sin_bamboo, + bankWithoutBambooRows.length + ); + const payrollWithoutAccount = toNumber( + rawSummary.payrollWithoutAccount ?? rawSummary.nominaSinCuenta ?? rawSummary.nomina_sin_cuenta + ); + const nameDifferences = toNumber( + rawSummary.nameDifferences ?? rawSummary.diferenciasNombreBanco ?? rawSummary.diferencias_nombre_banco, + primaryRows.filter((row) => normalizeText(String(row.category ?? '')).includes('diferencia_nombre_banco')).length + ); + const possibleWrongAccounts = toNumber( + rawSummary.possibleWrongAccounts ?? + rawSummary.posiblesCuentasMalDigitadas ?? + rawSummary.posibles_cuentas_mal_digitadas, + primaryRows.filter((row) => normalizeText(String(row.category ?? '')).includes('posible_cuenta_mal_digitada')).length + ); + + const totalPending = + discrepancies + + bankWithoutPayroll + + bankWithoutBamboo + + payrollWithoutAccount + + nameDifferences; + + return { + ok: Boolean(original.ok ?? item.ok ?? true), + executionId: original.executionId || original.execution_id || item.executionId || item.execution_id + ? String(original.executionId ?? original.execution_id ?? item.executionId ?? item.execution_id) + : undefined, + reportUrl: original.reportUrl || original.report_url || item.reportUrl || item.report_url || item.google_sheet_url + ? String(original.reportUrl ?? original.report_url ?? item.reportUrl ?? item.report_url ?? item.google_sheet_url) + : undefined, + summary: { + matches, + discrepancies, + bankWithoutPayroll, + bankWithoutBamboo, + payrollWithoutAccount, + nameDifferences, + possibleWrongAccounts, + totalPending, + totalRows: rows.length, + totalPayroll: toNumber(rawSummary.totalNomina ?? rawSummary.total_nomina, undefined as unknown as number), + totalBank: toNumber(rawSummary.totalBanco ?? rawSummary.total_banco, undefined as unknown as number), + totalDifference: toNumber(rawSummary.diferenciaTotal ?? rawSummary.diferencia_total, undefined as unknown as number), + }, + rows, + message: original.message || item.message ? String(original.message ?? item.message) : undefined, + }; +} + +function statusClass(status: ReconciliationStatus) { + if (status === 'Coincidencia') return 'bg-emerald-50 text-emerald-800 border-emerald-200'; + if (status === 'Resuelto') return 'bg-blue-50 text-blue-800 border-blue-200'; + if (status === 'No encontrado') return 'bg-amber-50 text-amber-800 border-amber-200'; + if (status === 'Pendiente revisión') return 'bg-neutral-100 text-neutral-700 border-neutral-300'; + return 'bg-red-50 text-[#ba1a1a] border-red-200'; +} + +function getRowPriority(row: ReconciliationRow) { + const normalizedCategory = normalizeText(String(row.category ?? row.source ?? '')); + const normalizedObservation = normalizeText(row.observation ?? ''); + + if (row.status === 'Coincidencia' || normalizedCategory.includes('coincidencia')) return 90; + if (normalizedCategory.includes('posible_cuenta_mal_digitada') || normalizedObservation.includes('mal digitada')) return 1; + if (normalizedCategory.includes('discrepancia') || row.status === 'Riesgo') return 2; + if (normalizedCategory.includes('banco_sin_bamboo')) return 3; + if (normalizedCategory.includes('banco_sin_nomina')) return 4; + if (normalizedCategory.includes('diferencia_nombre_banco')) return 5; + if (normalizedCategory.includes('nomina_sin_cuenta')) return 6; + if (row.status === 'Pendiente revisión') return 7; + if (row.status === 'No encontrado') return 10; + return 20; +} + +function sortReconciliationRows(rows: ReconciliationRow[]) { + return [...rows].sort((a, b) => { + const priority = getRowPriority(a) - getRowPriority(b); + if (priority !== 0) return priority; + return a.employee.localeCompare(b.employee, 'es'); + }); +} + + +function isDiscrepancyRow(row: ReconciliationRow) { + const normalizedCategory = normalizeText(String(row.category ?? row.source ?? '')); + return ( + normalizedCategory.includes('discrepancia') || + normalizedCategory.includes('posible_cuenta_mal_digitada') + ); +} + +function isSourceRow(row: ReconciliationRow, source: string) { + return row.source === source || normalizeText(String(row.category ?? '')).includes(source); +} + +function formatCategory(value?: string) { + const normalized = normalizeText(String(value ?? '')); + if (!normalized) return '—'; + if (normalized.includes('posible_cuenta_mal_digitada')) return 'Posible cuenta mal digitada'; + if (normalized.includes('banco_sin_bamboo')) return 'Banco sin Bamboo'; + if (normalized.includes('banco_sin_nomina')) return 'Banco sin nómina'; + if (normalized.includes('diferencia_nombre_banco')) return 'Diferencia nombre banco'; + if (normalized.includes('nomina_sin_cuenta')) return 'Nómina sin cuenta'; + if (normalized.includes('discrepancia')) return 'Discrepancia'; + if (normalized.includes('coincidencia')) return 'Coincidencia'; + return String(value).replace(/_/g, ' '); +} + +function getFriendlyProcessingError(error: unknown) { + const message = error instanceof Error ? error.message : ''; + if (message.includes('planillas del banco repetidas')) return message; + return 'No se pudo procesar el cruce. Verifica los archivos e intenta nuevamente.'; +} + +function decodeFileBuffer(buffer: ArrayBuffer) { + try { + return new TextDecoder('windows-1252').decode(buffer); + } catch { + return new TextDecoder('utf-8').decode(buffer); + } +} + +function countDelimiterOutsideQuotes(line: string, delimiter: string) { + let count = 0; + let inQuotes = false; + + for (let index = 0; index < line.length; index += 1) { + const character = line[index]; + + if (character === '"') { + if (inQuotes && line[index + 1] === '"') { + index += 1; + } else { + inQuotes = !inQuotes; + } + continue; + } + + if (!inQuotes && character === delimiter) count += 1; + } + + return count; +} + +function detectCsvDelimiter(line: string) { + const delimiters = [',', ';', '\t', '|']; + + return delimiters.reduce((best, candidate) => + countDelimiterOutsideQuotes(line, candidate) > countDelimiterOutsideQuotes(line, best) + ? candidate + : best + ); +} + +function parseCsvLine(line: string, delimiter = detectCsvDelimiter(line)) { + const values: string[] = []; + let current = ''; + let inQuotes = false; + + for (let index = 0; index < line.length; index += 1) { + const character = line[index]; + + if (character === '"') { + if (inQuotes && line[index + 1] === '"') { + current += '"'; + index += 1; + } else { + inQuotes = !inQuotes; + } + continue; + } + + if (character === delimiter && !inQuotes) { + values.push(current.trim()); + current = ''; + continue; + } + + current += character; + } + + values.push(current.trim()); + + return values.map((value) => value.replace(/^\uFEFF/, '').trim()); +} + +function normalizeShipmentNumber(value: string | null | undefined) { + const digits = String(value ?? '').replace(/\D/g, ''); + return /^\d{1,20}$/.test(digits) ? digits : null; +} + +function extractShipmentNumberFromText(text: string) { + const lines = text.split(/\r?\n/).slice(0, 120); + + // Formato frecuente del encabezado del archivo: + // "Consulta del detalle del envío 1243 del plan..." + for (const line of lines.slice(0, 25)) { + const normalizedLine = normalizeText(line); + const titleMatch = normalizedLine.match( + /(?:consulta\s+(?:del\s+)?)?detalle\s+(?:del\s+)?envio\s+(\d{1,20})/ + ); + + if (titleMatch?.[1]) return titleMatch[1]; + } + + // Formato tabular: localiza la columna "Número de envío" y toma + // el valor numérico de la primera fila real de datos. Nunca acepta + // encabezados como "Monto" como si fueran un número de envío. + for (let lineIndex = 0; lineIndex < lines.length; lineIndex += 1) { + const headerLine = lines[lineIndex]; + const delimiter = detectCsvDelimiter(headerLine); + const headers = parseCsvLine(headerLine, delimiter); + const normalizedHeaders = headers.map((header) => normalizeText(header).trim()); + const shipmentColumnIndex = normalizedHeaders.findIndex( + (header) => header === 'numero de envio' || header.includes('numero de envio') + ); + + if (shipmentColumnIndex < 0) continue; + + for ( + let dataLineIndex = lineIndex + 1; + dataLineIndex < Math.min(lineIndex + 8, lines.length); + dataLineIndex += 1 + ) { + const dataLine = lines[dataLineIndex]; + if (!dataLine.trim()) continue; + + const dataColumns = parseCsvLine(dataLine, delimiter); + const shipmentNumber = normalizeShipmentNumber(dataColumns[shipmentColumnIndex]); + + if (shipmentNumber) return shipmentNumber; + } + } + + // Último recurso para variantes como "Número de envío: 1243". + for (const line of lines) { + const normalizedLine = normalizeText(line); + const fallbackMatch = normalizedLine.match( + /numero\s+de\s+envio[^0-9]{0,40}(\d{1,20})/ + ); + + if (fallbackMatch?.[1]) return fallbackMatch[1]; + } + + return null; +} + +async function getShipmentNumber(file: File) { + const buffer = await file.arrayBuffer(); + const text = decodeFileBuffer(buffer); + return extractShipmentNumberFromText(text); +} + +async function findDuplicateBankShipments(files: UploadedFile[]) { + const byShipment = new Map(); + + for (const uploaded of files) { + if (!uploaded.rawFile) continue; + const shipmentNumber = await getShipmentNumber(uploaded.rawFile); + if (!shipmentNumber) continue; + const current = byShipment.get(shipmentNumber) ?? []; + current.push(uploaded.name); + byShipment.set(shipmentNumber, current); + } + + return Array.from(byShipment.entries()) + .filter(([, fileNames]) => fileNames.length > 1) + .map(([shipmentNumber, fileNames]) => ({ shipmentNumber, fileNames })); +} + +interface DetectedPayrollPeriod { + year: number; + month: number; + periodType: PeriodType; + confidence?: number; + requiresManualReview?: boolean; + source?: string; +} + +const MONTH_ALIASES: Record = { + 1: ['enero', 'january', 'jan'], + 2: ['febrero', 'february', 'feb'], + 3: ['marzo', 'march', 'mar'], + 4: ['abril', 'april', 'apr'], + 5: ['mayo', 'may'], + 6: ['junio', 'june', 'jun'], + 7: ['julio', 'july', 'jul'], + 8: ['agosto', 'august', 'aug'], + 9: ['septiembre', 'setiembre', 'september', 'sep'], + 10: ['octubre', 'october', 'oct'], + 11: ['noviembre', 'november', 'nov'], + 12: ['diciembre', 'december', 'dec'], +}; + +function detectPeriodFromPayrollFilename(fileName: string): Partial { + const normalized = normalizeText(fileName) + .replace(/[_\-.()]+/g, ' ') + .replace(/\s+/g, ' ') + .trim(); + + const yearMatch = normalized.match(/\b(20\d{2})\b/); + const year = yearMatch ? Number(yearMatch[1]) : undefined; + + let month: number | undefined; + for (const [monthNumber, aliases] of Object.entries(MONTH_ALIASES)) { + if (aliases.some((alias) => new RegExp(`\\b${alias}\\b`, 'i').test(normalized))) { + month = Number(monthNumber); + break; + } + } + + let periodType: PeriodType | undefined; + if (/\b(?:1q|q1|quincena\s*15|primera\s+quincena)\b/.test(normalized)) { + periodType = 'quincena_15'; + } else if (/\b(?:2q|q2|quincena\s*30|segunda\s+quincena|fin\s+de\s+mes)\b/.test(normalized)) { + periodType = 'quincena_30'; + } else if (/\b15\b/.test(normalized)) { + periodType = 'quincena_15'; + } else if (/\b(?:30|31)\b/.test(normalized)) { + periodType = 'quincena_30'; + } + + return { year, month, periodType }; +} + +function readStoredPeriod(countryCode: string): DetectedPayrollPeriod { + const fallback = getDefaultPaidPeriod(); + + try { + const raw = window.localStorage.getItem(`glm_cruce_period_${countryCode}`); + if (!raw) return fallback; + const parsed = JSON.parse(raw) as Partial; + + if ( + Number.isInteger(parsed.year) && + Number.isInteger(parsed.month) && + parsed.month! >= 1 && + parsed.month! <= 12 && + (parsed.periodType === 'quincena_15' || parsed.periodType === 'quincena_30') + ) { + return parsed as DetectedPayrollPeriod; + } + } catch { + // Si el valor guardado no es válido, se usa el período pagado por defecto. + } + + return fallback; +} + +async function analyzePayrollFilename(fileName: string, country: CountryConfig) { + const local = detectPeriodFromPayrollFilename(fileName); + + if (!PAYROLL_FILENAME_ANALYSIS_URL) { + return { + ...local, + source: 'local_fallback', + requiresManualReview: !( + Number.isInteger(local.year) && + Number.isInteger(local.month) && + (local.periodType === 'quincena_15' || local.periodType === 'quincena_30') + ), + } as Partial; + } + + try { + const response = await fetch(PAYROLL_FILENAME_ANALYSIS_URL, { + method: 'POST', + headers: { 'Content-Type': 'application/json; charset=utf-8' }, + body: JSON.stringify({ + fileName, + country: country.code, + countryName: country.name, + }), + }); + + if (!response.ok) return local; + const payload = await response.json().catch(() => null); + const result = payload?.detected ?? payload?.result ?? payload?.analysis ?? payload ?? {}; + const remotePeriod = String(result.periodType ?? result.period_type ?? ''); + const detectedYear = Number(result.year) || local.year; + const detectedMonth = Number(result.month) || local.month; + const detectedPeriod = + remotePeriod === 'quincena_15' || remotePeriod === 'quincena_30' + ? remotePeriod + : local.periodType; + + return { + year: detectedYear, + month: detectedMonth, + periodType: detectedPeriod, + confidence: Number.isFinite(Number(result.confidence)) + ? Number(result.confidence) + : undefined, + requiresManualReview: Boolean( + result.requiresManualReview ?? result.requires_manual_review ?? false + ), + source: String(result.source ?? 'gemini'), + } as Partial; + } catch { + return { + ...local, + source: 'local_fallback', + requiresManualReview: !( + Number.isInteger(local.year) && + Number.isInteger(local.month) && + (local.periodType === 'quincena_15' || local.periodType === 'quincena_30') + ), + } as Partial; + } +} + +export default function Dashboard({ + onShowToast, + uploadedPayroll, + setUploadedPayroll, + uploadedBankFiles, + setUploadedBankFiles, + isCruceExecuted, + setIsCruceExecuted, + response, + setResponse, + onOpenSidebar, + operatorName, + operatorEmail, + resetToken = 0, + country, +}: DashboardProps) { + const defaultPeriod = useMemo(() => readStoredPeriod(country.code), [country.code]); + const [isProcessing, setIsProcessing] = useState(false); + const [processingStep, setProcessingStep] = useState(''); + const [filterMode, setFilterMode] = useState< + | 'todos' + | 'discrepancias' + | 'coincidencias' + | 'banco_sin_nomina' + | 'banco_sin_bamboo' + | 'diferencia_nombre_banco' + | 'nomina_sin_cuenta' + >('todos'); + const [selectedYear, setSelectedYear] = useState(defaultPeriod.year); + const [selectedMonth, setSelectedMonth] = useState(defaultPeriod.month); + const [periodType, setPeriodType] = useState(defaultPeriod.periodType); + const [currentPage, setCurrentPage] = useState(1); + const [searchTerm, setSearchTerm] = useState(''); + const periodStorageKey = `glm_cruce_period_${country.code}`; + + const payrollInputRef = useRef(null); + const bankInputRef = useRef(null); + + const yearOptions = useMemo(() => getYearOptions(), []); + + const periodRange = useMemo( + () => getPeriodRange(selectedYear, selectedMonth, periodType), + [selectedYear, selectedMonth, periodType] + ); + + const rows = useMemo(() => sortReconciliationRows(response?.rows ?? []), [response?.rows]); + const filteredResults = rows.filter((row) => { + const normalizedSearch = normalizeText(searchTerm.trim()); + const matchesSearch = normalizeText( + `${row.employee} ${row.employeeNumber} ${row.account ?? ''} ${row.observation} ${row.category ?? ''} ${row.source ?? ''}` + ).includes(normalizedSearch); + + if (!matchesSearch) return false; + if (filterMode === 'discrepancias') return isDiscrepancyRow(row); + if (filterMode === 'coincidencias') return row.status === 'Coincidencia'; + if (filterMode === 'banco_sin_nomina') return isSourceRow(row, 'banco_sin_nomina'); + if (filterMode === 'banco_sin_bamboo') return isSourceRow(row, 'banco_sin_bamboo'); + if (filterMode === 'diferencia_nombre_banco') return isSourceRow(row, 'diferencia_nombre_banco'); + if (filterMode === 'nomina_sin_cuenta') return isSourceRow(row, 'nomina_sin_cuenta'); + return true; + }); + + const rowsPerPage = 10; + const totalPages = Math.max(1, Math.ceil(filteredResults.length / rowsPerPage)); + const paginatedRows = filteredResults.slice((currentPage - 1) * rowsPerPage, currentPage * rowsPerPage); + + useEffect(() => { + if (currentPage > totalPages) setCurrentPage(totalPages); + }, [currentPage, totalPages]); + + const selectedPeriodDescription = useMemo( + () => PERIOD_TYPES.find((period) => period.value === periodType)?.description ?? '', + [periodType] + ); + + useEffect(() => { + const storedPeriod = readStoredPeriod(country.code); + setSelectedYear(storedPeriod.year); + setSelectedMonth(storedPeriod.month); + setPeriodType(storedPeriod.periodType); + setCurrentPage(1); + setSearchTerm(''); + setFilterMode('todos'); + }, [country.code]); + + useEffect(() => { + window.localStorage.setItem( + periodStorageKey, + JSON.stringify({ + year: selectedYear, + month: selectedMonth, + periodType, + }) + ); + }, [periodStorageKey, selectedYear, selectedMonth, periodType]); + + useEffect(() => { + setSearchTerm(''); + setFilterMode('todos'); + setCurrentPage(1); + setProcessingStep(''); + setIsProcessing(false); + if (payrollInputRef.current) payrollInputRef.current.value = ''; + if (bankInputRef.current) bankInputRef.current.value = ''; + }, [resetToken]); + + const resetResults = () => { + setIsCruceExecuted(false); + setResponse(null); + setCurrentPage(1); + setSearchTerm(''); + setFilterMode('todos'); + }; + + const applyPayrollFile = async (file: File) => { + setUploadedPayroll({ + name: file.name, + size: formatBytes(file.size), + type: 'payroll', + rawFile: file, + }); + resetResults(); + + const detected = await analyzePayrollFilename(file.name, country); + const completeDetection = + Number.isInteger(detected.year) && + Number.isInteger(detected.month) && + (detected.periodType === 'quincena_15' || detected.periodType === 'quincena_30'); + + if (completeDetection) { + setSelectedYear(detected.year!); + setSelectedMonth(detected.month!); + setPeriodType(detected.periodType!); + const detectedRange = getPeriodRange(detected.year!, detected.month!, detected.periodType!); + if (detected.requiresManualReview) { + onShowToast( + `Nómina cargada. Período sugerido: ${detectedRange.label}. Confirma los datos antes de ejecutar.`, + 'info' + ); + } else { + onShowToast(`Nómina cargada. Período detectado: ${detectedRange.label}.`, 'success'); + } + return; + } + + onShowToast('Archivo de nómina cargado con éxito.', 'success'); + }; + + const handleDragOver = (e: React.DragEvent) => { + e.preventDefault(); + }; + + const handlePayrollDrop = async (e: React.DragEvent) => { + e.preventDefault(); + const file = e.dataTransfer.files[0]; + if (!file) return; + + if (isExcelFile(file)) { + await applyPayrollFile(file); + } else { + onShowToast('Formato inválido. Por favor carga un archivo Excel (.xlsx, .xls).', 'error'); + } + }; + + const handleBankDrop = (e: React.DragEvent) => { + e.preventDefault(); + const files = Array.from(e.dataTransfer.files) as File[]; + const csvFiles = files.filter(isCsvFile); + + if (csvFiles.length === 0) { + onShowToast('Formato inválido. Por favor carga uno o varios archivos CSV (.csv).', 'error'); + return; + } + + setUploadedBankFiles([...uploadedBankFiles, ...toUploadedBankFiles(csvFiles)]); + resetResults(); + onShowToast(`${csvFiles.length} planilla(s) del banco cargada(s) con éxito.`, 'success'); + }; + + const handlePayrollSelect = async (e: React.ChangeEvent) => { + const file = e.target.files?.[0]; + if (!file) return; + + if (isExcelFile(file)) { + await applyPayrollFile(file); + } else { + onShowToast('Formato inválido. Por favor carga un archivo Excel (.xlsx, .xls).', 'error'); + } + }; + + const handleBankSelect = (e: React.ChangeEvent) => { + const files = e.target.files; + if (!files || files.length === 0) return; + + const csvFiles = (Array.from(files) as File[]).filter(isCsvFile); + + if (csvFiles.length === 0) { + onShowToast('Formato inválido. Por favor carga uno o varios archivos CSV (.csv).', 'error'); + return; + } + + setUploadedBankFiles([...uploadedBankFiles, ...toUploadedBankFiles(csvFiles)]); + resetResults(); + onShowToast(`${csvFiles.length} planilla(s) del banco cargada(s) con éxito.`, 'success'); + }; + + const removeBankFile = (indexToRemove: number) => { + setUploadedBankFiles(uploadedBankFiles.filter((_, index) => index !== indexToRemove)); + if (bankInputRef.current) bankInputRef.current.value = ''; + resetResults(); + onShowToast('Planilla de banco removida.', 'info'); + }; + + const handleExecuteCruce = async () => { + if (isProcessing) return; + + if (!selectedYear || !selectedMonth || !periodType) { + onShowToast('Debes seleccionar año, mes y tipo de cruce antes de ejecutar.', 'error'); + return; + } + + if (!uploadedPayroll?.rawFile) { + onShowToast('Debes cargar la nómina antes de ejecutar el cruce.', 'error'); + return; + } + + if (uploadedBankFiles.length === 0 || uploadedBankFiles.some((file) => !file.rawFile)) { + onShowToast('Debes cargar al menos una planilla del banco antes de ejecutar el cruce.', 'error'); + return; + } + + setIsProcessing(true); + setProcessingStep('Validando archivos...'); + setCurrentPage(1); + + try { + const duplicatedShipments = await findDuplicateBankShipments(uploadedBankFiles); + if (duplicatedShipments.length > 0) { + const details = duplicatedShipments + .map((item) => `Número de envío ${item.shipmentNumber}: ${item.fileNames.join(', ')}`) + .join('\n'); + throw new Error(`Hay planillas del banco repetidas. Revisa los archivos cargados antes de continuar.\n${details}`); + } + + const reconciliationUrl = getReconciliationUrl(country.code); + + if (!reconciliationUrl) { + throw new Error('No se pudo procesar el cruce. El servicio de conciliación no está disponible.'); + } + + const metadata = { + country: country.code, + country_name: country.name, + year: selectedYear, + month: selectedMonth, + period_type: periodType, + period_label: periodRange.label, + period_start: periodRange.start, + period_end: periodRange.end, + payroll_file_name: uploadedPayroll.name, + bank_file_names: uploadedBankFiles.map((file) => file.name), + requested_by_name: operatorName, + requested_by_email: operatorEmail, + auth_mode: import.meta.env.VITE_ENABLE_SUPABASE_AUTH === 'true' ? 'supabase_google' : 'temporal_sin_login', + source_app: 'portal-cruce-cuentas-glm', + }; + + setProcessingStep('Procesando cruce de cuentas...'); + + const formData = new FormData(); + formData.append('metadata', JSON.stringify(metadata)); + Object.entries(metadata).forEach(([key, value]) => { + formData.append(key, Array.isArray(value) ? JSON.stringify(value) : String(value)); + }); + formData.append('payroll_file', uploadedPayroll.rawFile, uploadedPayroll.name); + uploadedBankFiles.forEach((file, index) => { + if (file.rawFile) { + formData.append('bank_files', file.rawFile, file.name); + formData.append(`bank_file_${index + 1}`, file.rawFile, file.name); + } + }); + + const reconciliationResponse = await fetch(reconciliationUrl, { + method: 'POST', + body: formData, + }); + + setProcessingStep('Generando reporte...'); + + const contentType = reconciliationResponse.headers.get('content-type') ?? ''; + const payload = contentType.includes('application/json') + ? await reconciliationResponse.json() + : { ok: reconciliationResponse.ok, message: await reconciliationResponse.text() }; + + if (!reconciliationResponse.ok || payload?.ok === false) { + throw new Error( + typeof payload?.message === 'string' + ? payload.message + : 'No se pudo procesar el cruce. Verifica los archivos e intenta nuevamente.' + ); + } + + const normalized = normalizeWebhookResponse(payload); + setResponse(normalized); + setIsCruceExecuted(true); + onShowToast(normalized.message || 'Cruce procesado correctamente.', 'success'); + + setTimeout(() => { + const elem = document.getElementById('resultados-seccion'); + if (elem) elem.scrollIntoView({ behavior: 'smooth', block: 'start' }); + }, 150); + } catch (error) { + const friendlyMessage = getFriendlyProcessingError(error); + setIsCruceExecuted(false); + setResponse(null); + onShowToast(friendlyMessage, 'error'); + } finally { + setIsProcessing(false); + setProcessingStep(''); + } + }; + + const handleOpenGoogleSheets = () => { + if (response?.reportUrl) { + window.open(response.reportUrl, '_blank', 'noopener,noreferrer'); + return; + } + onShowToast('El reporte aún no tiene un enlace disponible.', 'info'); + }; + + return ( +
+
+
+ + +

+ Cruce de Cuentas GLM - {country.name} +

+
+ +
+
+ {`Bandera +
+
+
+ +
+
+
+
+
+ +
+
+

Datos del cruce

+
+
+
+ +
+ + + + + +
+ +
+
+ +
+ Período calculado:{' '} + {periodRange.start} al {periodRange.end} +

{selectedPeriodDescription}

+
+
+
+ {periodRange.label} +
+
+
+ +
+
+
+
+
+ +

1. Carga de Nómina

+
+ + + + {uploadedPayroll ? ( +
+
+ +
+

{uploadedPayroll.name}

+

{uploadedPayroll.size} • Excel

+
+
+ +
+ ) : ( +
payrollInputRef.current?.click()} + className="border-2 border-dashed border-[#D0D0D0] bg-neutral-50 hover:bg-[#4F758B]/5 hover:border-[#4F758B]/40 transition-colors flex flex-col items-center justify-center py-10 px-4 text-center cursor-pointer min-h-[190px]" + > + +

Arrastre y suelte archivo Excel

+

Formato .xlsx, .xls

+ +
+ )} +
+
+ +
+
+
+
+ +

2. Carga de Planillas del Banco

+
+

+ Puede subir múltiples archivos separados o un archivo consolidado del período. +

+ + + +
bankInputRef.current?.click()} + className="border-2 border-dashed border-[#D0D0D0] bg-neutral-50 hover:bg-[#4F758B]/5 hover:border-[#4F758B]/40 transition-colors flex flex-col items-center justify-center py-8 px-4 text-center cursor-pointer min-h-[130px]" + > + +

Arrastre y suelte archivo CSV

+

Formato .csv

+ +
+ + {uploadedBankFiles.length > 0 && ( +
+ {uploadedBankFiles.map((file, index) => ( +
+
+ +
+

{file.name}

+

{file.size} • CSV

+
+
+ +
+ ))} +
+ )} +
+
+
+ +
+ +
+ + + {isCruceExecuted && response && ( + +
+
+
+ + Coincidencias +
+

{response.summary.matches}

+
+
+
+ + Discrepancias +
+

{response.summary.discrepancies}

+
+
+
+ + Banco sin nómina +
+

{response.summary.bankWithoutPayroll}

+
+
+
+ + Banco sin Bamboo +
+

{response.summary.bankWithoutBamboo}

+
+
+
+ + Diferencias nombre banco +
+

{response.summary.nameDifferences}

+
+
+
+ + Nómina sin cuenta +
+

{response.summary.payrollWithoutAccount}

+
+
+ +
+
+
+

Resultados del Cruce

+

{periodRange.label}

+
+
+ +
+
+ +
+
+ + { + setSearchTerm(event.target.value); + setCurrentPage(1); + }} + placeholder="Buscar empleado, Employee Number o cuenta..." + className="w-full pl-9 pr-3 py-2 border border-[#D0D0D0] text-xs font-medium focus:outline-none focus:border-[#4F758B]" + /> +
+ +
+ {[ + ['todos', 'Todos'], + ['discrepancias', 'Discrepancias'], + ['coincidencias', 'Coincidencias'], + ['banco_sin_nomina', 'Banco sin nómina'], + ['banco_sin_bamboo', 'Banco sin Bamboo'], + ['diferencia_nombre_banco', 'Diferencias nombre banco'], + ['nomina_sin_cuenta', 'Nómina sin cuenta'], + ].map(([value, label]) => ( + + ))} +
+
+ +
+ + + + + + + + + + + + + + + + {paginatedRows.length > 0 ? ( + paginatedRows.map((row) => ( + + + + + + + + + + + + )) + ) : ( + + + + )} + +
EmpleadoEmployee NumberCuentaMonto NóminaMonto BancoDiferenciaEstadoCategoríaObservación
{row.employee}{row.employeeNumber || '—'}{row.account ?? '—'}{formatCurrency(row.amountPayroll, country)}{formatCurrency(row.amountBank, country)}{formatCurrency(row.difference, country)} + + {row.status} + + {formatCategory(row.category ?? row.source)}{row.observation}
+ No hay resultados para el filtro seleccionado. +
+
+ +
+ + Mostrando {paginatedRows.length} de {filteredResults.length} resultado(s). + +
+ + Página {currentPage} de {totalPages} + +
+
+
+
+ )} +
+
+
+ ); +} diff --git a/src/components/History.tsx b/src/components/History.tsx new file mode 100644 index 0000000..b191d6c --- /dev/null +++ b/src/components/History.tsx @@ -0,0 +1,650 @@ +import React, { useEffect, useMemo, useState } from 'react'; +import { motion, AnimatePresence } from 'motion/react'; +import { + AlertTriangle, + Calendar, + CheckCircle2, + Eye, + FileSpreadsheet, + Filter, + Loader2, + Menu, + RefreshCw, + Search, + X, +} from 'lucide-react'; +import { CountryConfig, HistoricalReport } from '../types'; + +interface HistoryProps { + onShowToast: (msg: string, type: 'success' | 'error' | 'info') => void; + onOpenSidebar?: () => void; + operatorName: string; + operatorEmail: string; + country: CountryConfig; +} + +const REPORTS_PER_PAGE = 10; + +function getHistoryUrl(countryCode: string) { + if (countryCode === 'TT') { + return (import.meta.env.VITE_HISTORICOS_TT_URL as string | undefined) || ''; + } + + return ( + (import.meta.env.VITE_HISTORICOS_GT_URL as string | undefined) || + 'https://agenteit.digitalcompass.agency/webhook/cruce-cuentas-gt-historicos' + ); +} + +function getMarkResolvedUrl(countryCode: string) { + if (countryCode === 'TT') { + return (import.meta.env.VITE_MARCAR_RESUELTO_TT_URL as string | undefined) || ''; + } + + return ( + (import.meta.env.VITE_MARCAR_RESUELTO_GT_URL as string | undefined) || + 'https://agenteit.digitalcompass.agency/webhook/cruce-cuentas-gt-marcar-resuelto' + ); +} + +function toNumber(value: unknown) { + const parsed = Number(value); + return Number.isFinite(parsed) ? parsed : 0; +} + +function formatDate(value: unknown, locale: string) { + if (!value) return ''; + const date = new Date(String(value)); + if (Number.isNaN(date.getTime())) return String(value).slice(0, 10); + return date.toLocaleDateString(locale, { + year: 'numeric', + month: '2-digit', + day: '2-digit', + }); +} + +function formatDateTime(value: unknown, locale: string) { + if (!value) return ''; + const date = new Date(String(value)); + if (Number.isNaN(date.getTime())) return String(value); + return date.toLocaleString(locale, { + dateStyle: 'short', + timeStyle: 'short', + }); +} + +function normalizeStatus(value: unknown): HistoricalReport['status'] { + return String(value ?? '').toLowerCase().includes('resuelto') + ? 'Resuelto' + : 'Pendiente revisión'; +} + +function normalizeReports(input: unknown, country: CountryConfig): HistoricalReport[] { + const payload = input as Record | unknown[] | null | undefined; + const data = (!Array.isArray(payload) && payload ? payload : {}) as Record; + const rawReports = Array.isArray(payload) + ? payload + : Array.isArray(data.reports) + ? data.reports + : []; + + return rawReports + .map((raw, index) => { + const report = raw as Record; + const discrepancies = toNumber(report.discrepancias ?? report.discrepancies); + const bankWithoutPayroll = toNumber( + report.bancoSinNomina ?? + report.banco_sin_nomina ?? + report.bankWithoutPayroll + ); + const bankWithoutBamboo = toNumber( + report.bancoSinBamboo ?? + report.banco_sin_bamboo ?? + report.bankWithoutBamboo + ); + const payrollWithoutAccount = toNumber( + report.nominaSinCuenta ?? report.nomina_sin_cuenta ?? report.payrollWithoutAccount + ); + const nameDifferences = toNumber( + report.diferenciasNombreBanco ?? + report.diferencias_nombre_banco ?? + report.nameDifferences + ); + const totalPending = + discrepancies + + bankWithoutPayroll + + bankWithoutBamboo + + payrollWithoutAccount + + nameDifferences; + const rawCountry = String(report.country ?? report.pais ?? report.country_code ?? country.code).toUpperCase(); + const bankFiles = Array.isArray(report.archivosBanco) + ? report.archivosBanco.map(String) + : Array.isArray(report.bank_file_names) + ? report.bank_file_names.map(String) + : []; + const rawExecutionDate = report.fechaEjecucion ?? report.ejecutado_en ?? report.created_at; + + return { + id: String(report.id ?? `reporte-${index + 1}`), + country: (rawCountry === 'TT' ? 'TT' : 'GT') as HistoricalReport['country'], + date: formatDate(report.fecha ?? report.period_end ?? rawExecutionDate, country.locale), + executionDate: formatDateTime(rawExecutionDate, country.locale), + period: String(report.periodo ?? report.period_label ?? report.period ?? 'Período no especificado'), + payrollFile: String(report.archivoNomina ?? report.payroll_file_name ?? report.payrollFile ?? ''), + bankFiles, + matches: toNumber(report.coincidencias ?? report.matches), + discrepancies, + bankWithoutPayroll, + bankWithoutBamboo, + payrollWithoutAccount, + nameDifferences, + totalPending, + totalPayroll: toNumber(report.totalNomina ?? report.total_nomina), + totalBank: toNumber(report.totalBanco ?? report.total_banco), + totalDifference: toNumber(report.diferenciaTotal ?? report.diferencia_total), + status: normalizeStatus(report.estado ?? report.status ?? report.estadoLabel), + reportUrl: report.reportUrl || report.report_url ? String(report.reportUrl ?? report.report_url) : undefined, + spreadsheetId: report.spreadsheetId || report.spreadsheet_id + ? String(report.spreadsheetId ?? report.spreadsheet_id) + : undefined, + executedBy: report.ejecutadoPorNombre || report.ejecutado_por_nombre + ? String(report.ejecutadoPorNombre ?? report.ejecutado_por_nombre) + : undefined, + executedByEmail: report.ejecutadoPorEmail || report.ejecutado_por_email + ? String(report.ejecutadoPorEmail ?? report.ejecutado_por_email) + : undefined, + resolvedBy: report.resueltoPorNombre || report.resuelto_por_nombre + ? String(report.resueltoPorNombre ?? report.resuelto_por_nombre) + : undefined, + resolvedByEmail: report.resueltoPorEmail || report.resuelto_por_email + ? String(report.resueltoPorEmail ?? report.resuelto_por_email) + : undefined, + resolvedAt: formatDateTime(report.resueltoEn ?? report.resuelto_en, country.locale), + resolutionComment: report.comentarioResolucion || report.comentario_resolucion + ? String(report.comentarioResolucion ?? report.comentario_resolucion) + : undefined, + _sortTime: new Date(String(rawExecutionDate ?? report.period_end ?? '')).getTime() || 0, + } as HistoricalReport & { _sortTime: number }; + }) + .filter((report) => report.country === country.code) + .sort((a, b) => b._sortTime - a._sortTime) + .map(({ _sortTime: _ignored, ...report }) => report); +} + +function statusClass(status: HistoricalReport['status']) { + if (status === 'Resuelto') return 'bg-blue-50 text-blue-800 border-blue-200'; + return 'bg-amber-50 text-amber-800 border-amber-200'; +} + +function statusText(status: HistoricalReport['status']) { + return status === 'Resuelto' ? 'RESUELTO' : 'PENDIENTE REVISIÓN'; +} + +export default function History({ + onShowToast, + onOpenSidebar, + operatorName, + operatorEmail, + country, +}: HistoryProps) { + const [searchTerm, setSearchTerm] = useState(''); + const [statusFilter, setStatusFilter] = useState<'todos' | 'pendiente' | 'resuelto'>('todos'); + const [reports, setReports] = useState([]); + const [currentPage, setCurrentPage] = useState(1); + const [isLoading, setIsLoading] = useState(false); + const [isSavingResolution, setIsSavingResolution] = useState(false); + const [loadError, setLoadError] = useState(''); + const [selectedReport, setSelectedReport] = useState(null); + const [resolutionComment, setResolutionComment] = useState(''); + + const filteredReports = useMemo(() => { + const normalizedSearch = searchTerm.trim().toLowerCase(); + + return reports.filter((report) => { + const matchesStatus = + statusFilter === 'todos' || + (statusFilter === 'pendiente' && report.status === 'Pendiente revisión') || + (statusFilter === 'resuelto' && report.status === 'Resuelto'); + + const matchesSearch = + !normalizedSearch || + report.period.toLowerCase().includes(normalizedSearch) || + report.payrollFile.toLowerCase().includes(normalizedSearch) || + report.id.toLowerCase().includes(normalizedSearch) || + (report.resolvedBy ?? '').toLowerCase().includes(normalizedSearch) || + (report.executedBy ?? '').toLowerCase().includes(normalizedSearch); + + return matchesStatus && matchesSearch; + }); + }, [reports, searchTerm, statusFilter]); + + const totalPages = Math.max(1, Math.ceil(filteredReports.length / REPORTS_PER_PAGE)); + const paginatedReports = filteredReports.slice( + (currentPage - 1) * REPORTS_PER_PAGE, + currentPage * REPORTS_PER_PAGE + ); + + useEffect(() => { + setCurrentPage(1); + }, [searchTerm, statusFilter, country.code]); + + useEffect(() => { + if (currentPage > totalPages) setCurrentPage(totalPages); + }, [currentPage, totalPages]); + + const loadReports = async () => { + const historyUrl = getHistoryUrl(country.code); + if (!historyUrl) { + setReports([]); + setLoadError(`Los reportes de ${country.name} estarán disponibles próximamente.`); + return; + } + + setIsLoading(true); + setLoadError(''); + + try { + const url = new URL(historyUrl); + url.searchParams.set('country', country.code); + const response = await fetch(url.toString(), { method: 'GET' }); + const payload = await response.json().catch(() => null); + + if (!response.ok || payload?.ok === false) { + throw new Error('No se pudieron cargar los reportes históricos.'); + } + + setReports(normalizeReports(payload, country)); + setCurrentPage(1); + } catch { + setLoadError('No se pudieron cargar los reportes históricos. Intenta nuevamente.'); + onShowToast('No se pudieron cargar los reportes históricos.', 'error'); + } finally { + setIsLoading(false); + } + }; + + useEffect(() => { + loadReports(); + }, [country.code]); + + const handleViewReport = (report: HistoricalReport) => { + if (report.reportUrl) { + window.open(report.reportUrl, '_blank', 'noopener,noreferrer'); + return; + } + + onShowToast('Este reporte aún no tiene un Google Sheet disponible.', 'info'); + }; + + const handleResolveReport = (report: HistoricalReport) => { + if (report.status === 'Resuelto') { + onShowToast('Este reporte ya fue marcado como resuelto.', 'info'); + return; + } + + setSelectedReport(report); + setResolutionComment(''); + }; + + const handleConfirmResolve = async () => { + if (!selectedReport) return; + + const trimmedComment = resolutionComment.trim(); + if (trimmedComment.length < 10) { + onShowToast('Debes escribir un comentario de resolución más descriptivo.', 'error'); + return; + } + + const markResolvedUrl = getMarkResolvedUrl(country.code); + if (!markResolvedUrl) { + onShowToast(`La resolución de reportes para ${country.name} estará disponible próximamente.`, 'info'); + return; + } + + setIsSavingResolution(true); + + try { + const response = await fetch(markResolvedUrl, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + reportId: selectedReport.id, + comentarioResolucion: trimmedComment, + resueltoPorNombre: operatorName, + resueltoPorEmail: operatorEmail, + country: country.code, + countryName: country.name, + }), + }); + + const payload = await response.json().catch(() => null); + + if (!response.ok || payload?.ok === false) { + const message = Array.isArray(payload?.errors) + ? payload.errors.join('\n') + : payload?.message || 'No se pudo marcar el reporte como resuelto.'; + throw new Error(message); + } + + const updated = payload.report ?? {}; + const resolvedAt = formatDateTime(updated.resueltoEn ?? new Date().toISOString(), country.locale); + + setReports((currentReports) => + currentReports.map((item) => + item.id === selectedReport.id + ? { + ...item, + status: 'Resuelto', + resolvedBy: String(updated.resueltoPorNombre ?? operatorName), + resolvedByEmail: String(updated.resueltoPorEmail ?? operatorEmail), + resolvedAt, + resolutionComment: String(updated.comentarioResolucion ?? trimmedComment), + } + : item + ) + ); + + setSelectedReport(null); + setResolutionComment(''); + onShowToast('Reporte marcado como resuelto correctamente.', 'success'); + } catch (error) { + const message = error instanceof Error ? error.message : 'No se pudo marcar el reporte como resuelto.'; + onShowToast(message, 'error'); + } finally { + setIsSavingResolution(false); + } + }; + + return ( +
+
+
+ + +

+ Reportes Históricos - {country.name} +

+
+
+
+ {`Bandera +
+ +
+
+ +
+
+
+ + setSearchTerm(event.target.value)} + className="w-full pl-10 pr-4 py-2 border border-[#D0D0D0] text-xs font-medium placeholder-neutral-400 focus:outline-none focus:border-[#4F758B] transition-colors" + /> +
+
+
+ {[ + ['todos', 'Todos'], + ['pendiente', 'Pendiente revisión'], + ['resuelto', 'Resuelto'], + ].map(([value, label]) => ( + + ))} +
+
+ + Mostrando: {filteredReports.length} de {reports.length} reportes +
+
+
+ + {loadError && ( +
+ + {loadError} +
+ )} + +
+
+ + + + + + + + + + + + + + + + {isLoading ? ( + + + + ) : paginatedReports.length > 0 ? ( + paginatedReports.map((report) => ( + + + + + + + + + + + + )) + ) : ( + + + + )} + +
FechaPeríodoArchivo de NóminaCoincidenciasBanco sin BambooPendientesEstadoResuelto porAcciones
+
+ + Cargando reportes históricos... +
+
+
+ +
+ {report.date} + {report.executionDate &&

{report.executionDate}

} +
+
+
{report.period} +
+ + {report.payrollFile || 'No especificado'} +
+
{report.matches} + 0 + ? 'bg-orange-50 text-orange-800 border-orange-200' + : 'bg-neutral-50 text-neutral-400 border-neutral-200' + }`} + > + {report.bankWithoutBamboo} + + + 0 + ? 'bg-red-50 text-[#ba1a1a] border-red-200' + : 'bg-emerald-50 text-emerald-800 border-emerald-200' + }`} + > + {report.totalPending === 0 + ? 'Sin pendientes' + : `${report.totalPending} pendiente${report.totalPending > 1 ? 's' : ''}`} + + + + {statusText(report.status)} + + + {report.resolvedBy ? ( +
+

{report.resolvedBy}

+

{report.resolvedAt}

+
+ ) : ( + Pendiente + )} +
+
+ + +
+
+ No se encontraron reportes históricos. +
+
+ +
+ + Mostrando {paginatedReports.length} de {filteredReports.length} reporte(s). + +
+ + Página {currentPage} de {totalPages} + +
+
+
+
+ + + {selectedReport && ( + + +
+
+

Marcar reporte como resuelto

+

{selectedReport.period}

+
+ +
+ +
+
+ Antes de resolver, confirma que las diferencias fueron revisadas y explica cómo se cerró el caso. +
+ +