} /> } /> } /> - } /> } /> } /> } /> diff --git a/client/src/components/GraphCanvas.tsx b/client/src/components/GraphCanvas.tsx index 23ea7c0c51e..35915766547 100644 --- a/client/src/components/GraphCanvas.tsx +++ b/client/src/components/GraphCanvas.tsx @@ -19,18 +19,15 @@ const GraphCanvas: React.FC = () => { const graph = useSelector((s: RootState) => s.graphData); const socketRef = useRef(null); - const cyRef = useRef(null); - useEffect(() => { if (!containerRef.current) return; - // BOLT: Persistent Cytoscape instance prevents full re-initialization on every graph update. - // This avoids expensive destroy/recreate cycles and redundant Socket.IO connections. - const cy = (cyRef.current = cytoscape({ + const cy = cytoscape({ container: containerRef.current, + elements: [...graph.nodes, ...graph.edges] as ElementDefinition[], style: [{ selector: 'node', style: { label: 'data(id)' } }], layout: { name: 'grid' }, - })); + }); // jQuery wrapper for simple drag feedback // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -56,18 +53,7 @@ const GraphCanvas: React.FC = () => { cy.destroy(); socketRef.current?.disconnect(); }; - }, [dispatch]); - - useEffect(() => { - // BOLT: Use incremental updates via cy.json() and re-running the layout. - // This is significantly more efficient than recreating the entire Cytoscape instance. - if (cyRef.current) { - cyRef.current.json({ - elements: [...graph.nodes, ...graph.edges] as ElementDefinition[], - }); - cyRef.current.layout({ name: 'grid' }).run(); - } - }, [graph.nodes, graph.edges]); + }, [dispatch, graph.nodes, graph.edges]); return
; }; diff --git a/client/src/components/LoadingSpinner.tsx b/client/src/components/LoadingSpinner.tsx index ec13688a892..0e6b30b09ec 100644 --- a/client/src/components/LoadingSpinner.tsx +++ b/client/src/components/LoadingSpinner.tsx @@ -20,8 +20,6 @@ const LoadingSpinner: React.FC = ({ return (
refetch() }); + + const alerts = data?.alerts || []; + const count = alerts.length; + + // Show toast on newest alert + useEffect(() => { + if (alerts.length > 0) { + const latest = alerts[0]; + setSnack({ + severity: latest.severity || 'info', + title: latest.title, + message: latest.message, + }); + } + }, [alerts.length]); + + const handleOpen = (e) => setAnchorEl(e.currentTarget); + const handleClose = () => setAnchorEl(null); + + const onClickAlert = async (a) => { + await markRead({ variables: { id: a.id } }); + if (a.link) window.location.href = a.link; + }; + + return ( + <> + + + + + + + {alerts.length === 0 && No new alerts} + {alerts.map((a) => ( + onClickAlert(a)}> + + + ))} + + setSnack(null)} + > + setSnack(null)} + severity={snack?.severity || 'info'} + variant="filled" + sx={{ width: '100%' }} + > + {snack?.title}: {snack?.message} + + + + ); +} diff --git a/client/src/components/common/AlertsBell.jsx b/client/src/components/common/AlertsBell.jsx index f7f414ad81d..24c30aa2fc5 100644 --- a/client/src/components/common/AlertsBell.jsx +++ b/client/src/components/common/AlertsBell.jsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo, useState, useRef } from 'react'; +import React, { useEffect, useMemo, useState } from 'react'; import { useQuery, useMutation, gql } from '@apollo/client'; import { IconButton, @@ -42,13 +42,10 @@ export default function AlertsBell() { const alerts = data?.alerts || []; const count = alerts.length; - const prevCountRef = useRef(0); // Show toast on newest alert useEffect(() => { - // Only show toast if the number of alerts increased (new alert arrived) - // or if we have alerts on initial load (optional, but alerts > 0 handles it if prev is 0) - if (alerts.length > 0 && alerts.length > prevCountRef.current) { + if (alerts.length > 0) { const latest = alerts[0]; setSnack({ severity: latest.severity || 'info', @@ -56,7 +53,6 @@ export default function AlertsBell() { message: latest.message, }); } - prevCountRef.current = alerts.length; }, [alerts.length]); const handleOpen = (e) => setAnchorEl(e.currentTarget); @@ -69,11 +65,7 @@ export default function AlertsBell() { return ( <> - 0 ? `${count} unread alerts` : 'No new alerts'} - > + diff --git a/client/tailwind.config.cjs b/client/tailwind.config.cjs index 931967080fc..fe12db5614a 100644 --- a/client/tailwind.config.cjs +++ b/client/tailwind.config.cjs @@ -2,10 +2,10 @@ module.exports = { darkMode: ['class'], content: [ - './pages/**/*.{js,jsx,ts,tsx}', - './components/**/*.{js,jsx,ts,tsx}', - './app/**/*.{js,jsx,ts,tsx}', - './src/**/*.{js,jsx,ts,tsx}', + './pages/**/*.{ts,tsx}', + './components/**/*.{ts,tsx}', + './app/**/*.{ts,tsx}', + './src/**/*.{ts,tsx}', ], prefix: '', theme: { diff --git a/dependency_delta.md b/dependency_delta.md index b7b0c939b11..5a06c0164fa 100644 --- a/dependency_delta.md +++ b/dependency_delta.md @@ -16,6 +16,3 @@ Use this file to document changes to project dependencies. - Action: Add - Package: @summit/sgf-schema, @summit/sgf-ledger, @summit/sgf-evidence, @summit/sgf-evals - Reason: Initial implementation of Summit Governance Fabric (SGF) components. - -## 2026-02-01 -- Added neo4j and psycopg2-binary for Graph Shape Guardrail diff --git a/deps.delta.md b/deps.delta.md new file mode 100644 index 00000000000..0630a789643 --- /dev/null +++ b/deps.delta.md @@ -0,0 +1,10 @@ +# Dependency Delta + +## Added +- `jsonschema`: Required for validating CogWar evidence artifacts in CI. + +## Removed +- None + +## Notes +- No dependency changes in this update. diff --git a/deps/delta.md b/deps/delta.md index d170f3a7f82..167855939be 100644 --- a/deps/delta.md +++ b/deps/delta.md @@ -8,6 +8,3 @@ ## Changed - None - -## 2026-02-03 Trust Paradox Evidence Skeleton -- No dependency changes in this update. diff --git a/deps/dep_delta.md b/deps/dep_delta.md index 72a843bbe7b..0c57525a2d9 100644 --- a/deps/dep_delta.md +++ b/deps/dep_delta.md @@ -1,18 +1,12 @@ -# Dependency Delta - Core Standardization & Bug Fixes +# Dependency Delta - DeepSeek OCR2 vLLM Support ## Changes -- Standardized React ecosystem to v18. -- Downgraded ESLint to v8.57.0. -- Aligned OpenTelemetry API to v1.7.0. -- Unified Storybook to v8.6.14. -- Pinned Vite to v5.4.21. -- Updated `zod` to ^3.23.8 in `services/graphrag`. -- Updated `typescript` to 5.8.3 in `services/agentic-mesh-evaluation`. +- No new external python dependencies added in this PR. +- Added internal modules for model preflight and backend selection. +- Added CI policy gates for supply chain security. ## Justification -- **React**: Resolve peer mismatches and ensure ecosystem stability. -- **ESLint**: Maintain compatibility with existing plugins. -- **OTel/Storybook**: Eliminate Skew and peer warnings. -- **Vite**: Support `vite-plugin-pwa`. -- **Zod/TS**: Satisfy specific version requirements of `openai` and `typedoc`. -- **Bug Fix**: Addressed `MaxListenersExceededWarning` in `ThreatHuntingOrchestrator`. +- `summit/inference/model_preflight.py`: Detects model architecture to prevent vLLM crashes. +- `summit/inference/backend_selector.py`: Implements policy-based backend routing. +- `ci/policy/no_latest_tags.py`: Prevents non-deterministic deployment images. +- `ci/policy/dep_delta_enforce.py`: Enforces this documentation. diff --git a/deps/dependency_delta.md b/deps/dependency_delta.md index 63077f97584..15471eebecd 100644 --- a/deps/dependency_delta.md +++ b/deps/dependency_delta.md @@ -1,3 +1,13 @@ # Dependency Delta -- none +## Summary + +- Added: none +- Removed: none +- Updated: none + +## Notes + +- Rationale: Evidence schema test hardening and governance metadata updates only. +- Risk: None (no dependency changes). +- Rollback: Revert this change. diff --git a/deps_delta/item-UNKNOWN.md b/deps_delta/item-UNKNOWN.md new file mode 100644 index 00000000000..3469a9b7100 --- /dev/null +++ b/deps_delta/item-UNKNOWN.md @@ -0,0 +1,13 @@ +# Dependency Delta: item-UNKNOWN + +## New deps + +- None. + +## Removed deps + +- None. + +## Notes + +- Verifier implemented without new runtime dependencies. diff --git a/docker-compose.dev.yaml b/docker-compose.dev.yaml index cda9c0dae4e..6525e703475 100644 --- a/docker-compose.dev.yaml +++ b/docker-compose.dev.yaml @@ -1,168 +1,11 @@ -version: '3.9' - +version: "3.9" services: - postgres: - image: postgres:16-alpine - container_name: summit-postgres - restart: unless-stopped - environment: - POSTGRES_DB: ${POSTGRES_DB:-summit_dev} - POSTGRES_USER: ${POSTGRES_USER:-summit} - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?Set POSTGRES_PASSWORD in .env (see .env.example)} - ports: - - '5432:5432' - volumes: - - postgres_data:/var/lib/postgresql/data - healthcheck: - test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-summit} -d ${POSTGRES_DB:-summit_dev}'] - interval: 10s - timeout: 5s - retries: 10 - networks: - - summit - - redis: - image: redis:7-alpine - container_name: summit-redis - restart: unless-stopped - command: redis-server --appendonly yes - ports: - - '6379:6379' - volumes: - - redis_data:/data - healthcheck: - test: ['CMD', 'redis-cli', 'ping'] - interval: 10s - timeout: 5s - retries: 10 - networks: - - summit - - neo4j: - image: neo4j:5-community - container_name: summit-neo4j - restart: unless-stopped - environment: - NEO4J_AUTH: ${NEO4J_USERNAME:-neo4j}/${NEO4J_PASSWORD:?Set NEO4J_PASSWORD in .env (see .env.example)} - NEO4J_dbms_security_procedures_unrestricted: gds.*,apoc.* - NEO4J_PLUGINS: '["apoc","graph-data-science"]' - ports: - - '7474:7474' - - '7687:7687' - volumes: - - neo4j_data:/data - - neo4j_logs:/logs - healthcheck: - test: - ['CMD-SHELL', 'cypher-shell -u ${NEO4J_USERNAME:-neo4j} -p ${NEO4J_PASSWORD} "RETURN 1"'] - interval: 15s - timeout: 10s - retries: 10 - networks: - - summit - - elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:8.15.0 - container_name: summit-elasticsearch - restart: unless-stopped - environment: - - discovery.type=single-node - - cluster.name=summit-search - - node.name=summit-search-node-1 - - bootstrap.memory_lock=true - - "ES_JAVA_OPTS=-Xms1g -Xmx1g" - - xpack.security.enabled=true - - xpack.security.http.ssl.enabled=false - - ELASTIC_PASSWORD=${ELASTICSEARCH_PASSWORD:-devpassword} - - xpack.security.enrollment.enabled=false - ulimits: - memlock: - soft: -1 - hard: -1 - nofile: - soft: 65536 - hard: 65536 - ports: - - '9200:9200' - - '9300:9300' - volumes: - - elasticsearch_data:/usr/share/elasticsearch/data - healthcheck: - test: ['CMD-SHELL', 'curl -f -u elastic:${ELASTICSEARCH_PASSWORD:-devpassword} http://localhost:9200/_cluster/health || exit 1'] - interval: 15s - timeout: 30s - retries: 20 - networks: - - summit - labels: - - 'prometheus.job=summit_elasticsearch' - - 'prometheus.port=9200' - - api: - build: - context: . - dockerfile: server/Dockerfile.dev - container_name: summit-api - restart: unless-stopped - env_file: - - .env - environment: - PORT: 4000 - DATABASE_URL: postgresql://${POSTGRES_USER:-summit}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-summit_dev} - NEO4J_URI: bolt://neo4j:7687 - NEO4J_USERNAME: ${NEO4J_USERNAME:-neo4j} - NEO4J_PASSWORD: ${NEO4J_PASSWORD} - REDIS_HOST: redis - REDIS_PORT: 6379 - REDIS_PASSWORD: ${REDIS_PASSWORD:-} - REDIS_URL: redis://redis:6379 - ELASTICSEARCH_URL: http://elasticsearch:9200 - ELASTICSEARCH_USERNAME: elastic - ELASTICSEARCH_PASSWORD: ${ELASTICSEARCH_PASSWORD:-devpassword} - CORS_ORIGIN: ${CORS_ORIGIN:-http://localhost:3000} - RATE_LIMIT_MAX: ${RATE_LIMIT_MAX:-600} - RATE_LIMIT_WINDOW_MS: ${RATE_LIMIT_WINDOW_MS:-60000} - # OpenTelemetry Configuration - OTEL_SERVICE_NAME: summit-api - OTEL_SERVICE_VERSION: 1.0.0 - JAEGER_ENDPOINT: http://jaeger:14268/api/traces - OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-collector:4318 - OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: http://otel-collector:4318/v1/metrics - ports: - - '4000:4000' - depends_on: - postgres: - condition: service_healthy - redis: - condition: service_healthy - neo4j: - condition: service_healthy - elasticsearch: - condition: service_healthy - healthcheck: - test: ['CMD', 'curl', '-f', 'http://localhost:4000/health/ready'] - interval: 15s - timeout: 30s - retries: 20 - networks: - - summit - labels: - - 'prometheus.job=summit_api' - - 'prometheus.port=4000' - gateway: build: - context: ./services/dev-gateway - container_name: summit-gateway - restart: unless-stopped + context: . + dockerfile: apps/gateway/Dockerfile + ports: [ "8080:8080" ] environment: - PORT: 4100 - PROMETHEUS_PORT: 9464 - # OpenTelemetry Configuration - OTEL_SERVICE_NAME: summit-gateway - OTEL_SERVICE_VERSION: 1.0.0 - JAEGER_ENDPOINT: http://jaeger:14268/api/traces - OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-collector:4318 FEATURE_LAC_ENFORCE: "true" COPILOT_NLQ: "true" UI_TRIPANE: "true" @@ -172,40 +15,20 @@ services: TYPESENSE_PORT: "8108" TYPESENSE_API_KEY: "xyz" depends_on: - api: - condition: service_healthy - policy-compiler: - condition: service_healthy - typesense: - condition: service_healthy - ports: - - '4100:4100' - - '9464:9464' - healthcheck: - test: ['CMD', 'curl', '-f', 'http://localhost:4100/health'] - interval: 15s - timeout: 5s - retries: 10 - networks: - - summit - labels: - - 'prometheus.job=summit_gateway' - - 'prometheus.port=4100' + - policy-compiler + - typesense + + ui: + build: ./apps/ui + ports: [ "3000:80" ] prov-ledger: build: ./services/prov-ledger - ports: [ "4010:4010" ] + ports: [ "8101:8080" ] policy-compiler: build: ./services/policy-compiler ports: [ "8102:8080" ] - healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:8080/health"] - interval: 10s - timeout: 5s - retries: 5 - networks: - - summit ai-nlq: build: ./services/ai-nlq @@ -227,30 +50,10 @@ services: build: context: . dockerfile: services/predictd/Dockerfile - - slo-exporter: - build: - context: ./apps/slo-exporter - dockerfile: Dockerfile - container_name: summit-slo-exporter - restart: unless-stopped - environment: - PORT: 9092 - PROMETHEUS_URL: http://prometheus:9090 - API_URL: http://api:4000 - PREDICTD_PORT: 4001 ports: - - '9092:9092' - depends_on: - prometheus: - condition: service_started - api: - condition: service_healthy - networks: - - summit - labels: - - 'prometheus.job=slo_exporter' - - 'prometheus.port=9092' + - "4001:4001" + environment: + - PREDICTD_PORT=4001 typesense: image: typesense/typesense:0.25.2 @@ -262,13 +65,6 @@ services: - TYPESENSE_ENABLE_CORS=true volumes: - ./tmp/typesense-data:/data - healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:8108/health"] - interval: 10s - timeout: 5s - retries: 5 - networks: - - summit opa: image: openpolicyagent/opa:0.61.0 @@ -281,281 +77,3 @@ services: - "/policies" volumes: - ./services/opa/policies:/policies - - web: - build: - context: . - dockerfile: apps/web/Dockerfile.dev - container_name: summit-web - restart: unless-stopped - env_file: - - .env - environment: - VITE_API_URL: http://api:4000/graphql - VITE_WS_URL: ws://api:4000/graphql - VITE_WEBSOCKET_URL: ws://websocket-server:9001 - VITE_PORT: 3000 - ports: - - '3000:3000' - depends_on: - api: - condition: service_healthy - healthcheck: - test: ['CMD', 'curl', '-f', 'http://localhost:3000'] - interval: 15s - timeout: 5s - retries: 10 - networks: - - summit - - websocket-server: - build: - context: ./services/websocket-server - dockerfile: Dockerfile - command: node dist/index.js - container_name: summit-websocket-server - restart: unless-stopped - env_file: - - .env - environment: - PORT: 9001 - HOST: 0.0.0.0 - NODE_ENV: ${NODE_ENV:-development} - REDIS_HOST: redis - REDIS_PORT: 6379 - REDIS_PASSWORD: ${REDIS_PASSWORD:-} - JWT_SECRET: ${JWT_SECRET:?Set JWT_SECRET in .env} - JWT_ALGORITHM: HS256 - CORS_ORIGIN: ${CORS_ORIGIN:-http://localhost:3000} - CORS_CREDENTIALS: "true" - CLUSTERING_ENABLED: "true" - NODE_ID: ws-dev-1 - PERSISTENCE_ENABLED: "true" - PERSISTENCE_TTL: "3600" - HEARTBEAT_INTERVAL: "30000" - HEARTBEAT_TIMEOUT: "60000" - ports: - - '9001:9001' - depends_on: - redis: - condition: service_healthy - healthcheck: - test: ['CMD', 'node', '-e', 'require("http").get("http://localhost:9001/health/live", (res) => { process.exit(res.statusCode === 200 ? 0 : 1); })'] - interval: 15s - timeout: 10s - retries: 3 - networks: - - summit - labels: - - 'prometheus.job=websocket_server' - - 'prometheus.port=9001' - - prometheus: - image: prom/prometheus:v2.54.1 - container_name: summit-prometheus - restart: unless-stopped - volumes: - - ./observability/prometheus/prometheus-dev.yml:/etc/prometheus/prometheus.yml:ro - - ./observability/prometheus/alerts:/etc/prometheus/alerts:ro - - ./observability/prometheus/recording-rules.yaml:/etc/prometheus/recording-rules.yaml:ro - - prometheus_data:/prometheus - command: - - '--config.file=/etc/prometheus/prometheus.yml' - - '--storage.tsdb.path=/prometheus' - - '--web.enable-lifecycle' - - '--storage.tsdb.retention.time=30d' - ports: - - '9090:9090' - networks: - - summit - - grafana: - image: grafana/grafana:10.4.7 - container_name: summit-grafana - restart: unless-stopped - environment: - GF_SECURITY_ADMIN_USER: ${GRAFANA_USER:-admin} - GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_PASSWORD:-admin} - GF_INSTALL_PLUGINS: grafana-clock-panel,grafana-piechart-panel - GF_FEATURE_TOGGLES_ENABLE: tempoSearch tempoBackendSearch - ports: - - '3001:3000' - volumes: - - grafana_data:/var/lib/grafana - - ./observability/grafana/provisioning:/etc/grafana/provisioning:ro - depends_on: - prometheus: - condition: service_started - loki: - condition: service_started - jaeger: - condition: service_started - networks: - - summit - - otel-collector: - image: otel/opentelemetry-collector-contrib:0.87.0 - container_name: summit-otel-collector - command: - - '--config=/etc/otel-collector-config.yml' - volumes: - - ./observability/otel/collector-config-dev.yaml:/etc/otel-collector-config.yml - ports: - - '4317:4317' # OTLP gRPC receiver - - '4318:4318' # OTLP HTTP receiver - - '8888:8888' # Prometheus metrics - - '8889:8889' # Prometheus exporter - - '13133:13133' # Health check - networks: - - summit - depends_on: - - jaeger - - prometheus - - jaeger: - image: jaegertracing/all-in-one:1.52 - container_name: summit-jaeger - restart: unless-stopped - environment: - COLLECTOR_OTLP_ENABLED: true - SPAN_STORAGE_TYPE: memory - ports: - - '16686:16686' # Jaeger UI - - '14268:14268' # Jaeger collector HTTP - networks: - - summit - - loki: - image: grafana/loki:2.9.3 - container_name: summit-loki - restart: unless-stopped - ports: - - '3100:3100' - command: -config.file=/etc/loki/local-config.yaml - volumes: - - ./observability/loki/loki-config.yaml:/etc/loki/local-config.yaml:ro - - loki_data:/loki - networks: - - summit - - promtail: - image: grafana/promtail:2.9.3 - container_name: summit-promtail - restart: unless-stopped - volumes: - - ./observability/promtail/promtail-config.yaml:/etc/promtail/config.yaml:ro - - /var/lib/docker/containers:/var/lib/docker/containers:ro - - /var/run/docker.sock:/var/run/docker.sock - command: -config.file=/etc/promtail/config.yaml - depends_on: - - loki - networks: - - summit - - alertmanager: - image: prom/alertmanager:v0.26.0 - container_name: summit-alertmanager - restart: unless-stopped - ports: - - '9093:9093' - volumes: - - ./observability/alertmanager/alertmanager.yaml:/etc/alertmanager/alertmanager.yaml:ro - - alertmanager_data:/alertmanager - command: - - '--config.file=/etc/alertmanager/alertmanager.yaml' - - '--storage.path=/alertmanager' - networks: - - summit - - ai-sandbox: - build: - context: ./services/ai-sandbox - dockerfile: Dockerfile - command: node dist/index.js - container_name: summit-ai-sandbox - restart: unless-stopped - environment: - PORT: 4020 - NODE_ENV: development - LOG_LEVEL: info - REDIS_HOST: redis - REDIS_PORT: 6379 - WORKER_CONCURRENCY: 4 - CORS_ORIGIN: ${CORS_ORIGIN:-http://localhost:3000} - ports: - - '4020:4020' - depends_on: - redis: - condition: service_healthy - healthcheck: - test: ['CMD', 'wget', '--no-verbose', '--tries=1', '--spider', 'http://localhost:4020/health'] - interval: 15s - timeout: 5s - retries: 10 - networks: - - summit - labels: - - 'prometheus.job=summit_ai_sandbox' - - 'prometheus.port=4020' - - agentic-mesh-evaluation: - build: - context: ./services/agentic-mesh-evaluation - dockerfile: Dockerfile - container_name: summit-agentic-mesh-evaluation - restart: unless-stopped - environment: - NODE_ENV: development - PORT: 4200 - HOST: 0.0.0.0 - REDIS_URL: redis://redis:6379 - LOG_LEVEL: info - ports: - - '4200:4200' - depends_on: - redis: - condition: service_healthy - healthcheck: - test: ['CMD', 'node', '-e', 'require("http").get("http://localhost:4200/health", (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})'] - interval: 15s - timeout: 5s - retries: 10 - networks: - - summit - labels: - - 'prometheus.job=agentic_mesh_evaluation' - - 'prometheus.port=4200' - - 'prometheus.path=/metrics' - - summit-ai: - build: - context: . - dockerfile: Dockerfile.summit - container_name: summit-ai - restart: unless-stopped - ports: - - '8000:8000' - environment: - OTEL_SERVICE_NAME: summit-ai - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: http://otel-collector:4318/v1/traces - OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: http://otel-collector:4318/v1/metrics - networks: - - summit - labels: - - 'prometheus.job=summit-ai' - - 'prometheus.port=8000' - -volumes: - postgres_data: - redis_data: - neo4j_data: - neo4j_logs: - elasticsearch_data: - grafana_data: - prometheus_data: - loki_data: - alertmanager_data: - -networks: - summit: - driver: bridge diff --git a/docker-compose.pitr.yml b/docker-compose.pitr.yml index 616295515fe..d22bc60eec9 100644 --- a/docker-compose.pitr.yml +++ b/docker-compose.pitr.yml @@ -11,8 +11,8 @@ services: container_name: summit-postgres-pitr restart: unless-stopped environment: - POSTGRES_DB: ${POSTGRES_DB:-maestro} - POSTGRES_USER: ${POSTGRES_USER:-maestro} + POSTGRES_DB: ${POSTGRES_DB:-summit_dev} + POSTGRES_USER: ${POSTGRES_USER:-summit} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?Set POSTGRES_PASSWORD in .env} # WAL-G Configuration AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:?Set AWS_ACCESS_KEY_ID for WAL archiving} @@ -32,7 +32,7 @@ services: - postgres_pitr_wal:/var/lib/postgresql/wal - postgres_pitr_logs:/var/log/postgresql healthcheck: - test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-maestro} -d ${POSTGRES_DB:-maestro}'] + test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-summit} -d ${POSTGRES_DB:-summit_dev}'] interval: 10s timeout: 5s retries: 10 @@ -50,7 +50,7 @@ services: container_name: summit-postgres-exporter restart: unless-stopped environment: - DATA_SOURCE_NAME: postgresql://${POSTGRES_USER:-maestro}:${POSTGRES_PASSWORD}@postgres-pitr:5432/${POSTGRES_DB:-maestro}?sslmode=disable + DATA_SOURCE_NAME: postgresql://${POSTGRES_USER:-summit}:${POSTGRES_PASSWORD}@postgres-pitr:5432/${POSTGRES_DB:-summit_dev}?sslmode=disable ports: - '9187:9187' depends_on: @@ -82,7 +82,7 @@ services: environment: PGHOST: postgres-pitr PGPORT: 5432 - PGUSER: ${POSTGRES_USER:-maestro} + PGUSER: ${POSTGRES_USER:-summit} PGPASSWORD: ${POSTGRES_PASSWORD} PGDATA: /var/lib/postgresql/data AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} diff --git a/docker-compose.yml b/docker-compose.yml index c74a7518de7..0787c9cb301 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -61,8 +61,8 @@ services: server: build: - context: . - dockerfile: server/Dockerfile.dev + context: ./server + dockerfile: Dockerfile.dev ports: [ "4001:4000" ] environment: - DATABASE_URL=postgresql://postgres:postgres@postgres:5432/postgres?sslmode=disable @@ -70,15 +70,9 @@ services: - NEO4J_USER=neo4j - NEO4J_PASSWORD=test1234 - REDIS_URL=redis://redis:6379 - - REDIS_HOST=redis - - JWT_SECRET=dev-secret-do-not-use-in-prod-and-longer - - JWT_REFRESH_SECRET=another-dev-secret-refresh-key-32-chars + - JWT_SECRET=dev-secret-do-not-use-in-prod - SESSION_SECRET=dev-secret-do-not-use-in-prod - NODE_ENV=development - - ENABLE_INSECURE_DEV_AUTH=true - - AI_ENABLED=false - - GA_CLOUD= - - OPENAI_API_KEY=dummy - JAEGER_ENDPOINT=http://jaeger-collector:14268/api/traces - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://otel-collector:4318/v1/traces - OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://otel-collector:4318/v1/metrics @@ -94,10 +88,6 @@ services: api-gateway: build: ./services/api-gateway ports: [ "4000:4000" ] - environment: - - POLICY_DRY_RUN=true - - ENABLE_INSECURE_DEV_AUTH=true - - GRAPH_SERVICE_URL=http://server:4000 depends_on: [ redis ] networks: - default @@ -116,11 +106,10 @@ services: - observability backup-service: - build: ./server/infrastructure/disaster-recovery + build: ./server/infrastructure/backup-scripts volumes: - ./backups:/backups - redis_data:/redis_data - - neo4j_data:/neo4j_data environment: - POSTGRES_HOST=postgres - POSTGRES_USER=postgres @@ -138,19 +127,6 @@ services: - default - observability - web: - build: - context: . - dockerfile: apps/web/Dockerfile.dev - ports: [ "3000:3000" ] - environment: - - VITE_API_URL=http://localhost:4000/graphql - - VITE_WS_URL=ws://localhost:4000/graphql - networks: - - default - - observability - - intelgraph - volumes: neo4j_data: {} pg_data: {} @@ -161,39 +137,3 @@ networks: driver: bridge intelgraph: external: true - - rag: - build: - context: . - dockerfile: services/rag/Dockerfile - ports: - - "8001:8001" - environment: - - OPENAI_API_KEY=${OPENAI_API_KEY} - - REDIS_URL=redis://redis:6379 - - POSTGRES_URL=postgresql://postgres:postgres@postgres:5432/postgres - depends_on: - - redis - - postgres - networks: - - default - - observability - - graphrag: - build: - context: . - dockerfile: services/graphrag/Dockerfile - ports: - - "8002:8002" - environment: - - NEO4J_URI=bolt://neo4j:7687 - - NEO4J_USERNAME=${NEO4J_USER} - - NEO4J_PASSWORD=${NEO4J_PASSWORD} - - OPENAI_API_KEY=${OPENAI_API_KEY} - - REDIS_URL=redis://redis:6379 - depends_on: - - neo4j - - redis - networks: - - default - - observability diff --git a/docs/ChatGPT Image Sep 23, 2025, 05_11_19 PM.png b/docs/ChatGPT Image Sep 23, 2025, 05_11_19 PM.png new file mode 100644 index 00000000000..a36ef7d7a4d --- /dev/null +++ b/docs/ChatGPT Image Sep 23, 2025, 05_11_19 PM.png @@ -0,0 +1,3 @@ +AuthenticationFailedServer failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. +RequestId:5d1f48e3-601e-0090-49df-2ce1ff000000 +Time:2025-09-23T23:11:20.0991085ZSigned expiry time [Tue, 23 Sep 2025 19:16:36 GMT] must be after signed start time [Tue, 23 Sep 2025 23:11:20 GMT] \ No newline at end of file diff --git a/docs/ChatGPT Image Sep 23, 2025, 05_11_44 PM.png b/docs/ChatGPT Image Sep 23, 2025, 05_11_44 PM.png new file mode 100644 index 00000000000..156b3d43b56 --- /dev/null +++ b/docs/ChatGPT Image Sep 23, 2025, 05_11_44 PM.png @@ -0,0 +1,3 @@ +AuthenticationFailedServer failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. +RequestId:8d0e13eb-801e-0046-0fdf-2c0a1b000000 +Time:2025-09-23T23:11:44.5977986ZSigned expiry time [Tue, 23 Sep 2025 19:18:15 GMT] must be after signed start time [Tue, 23 Sep 2025 23:11:44 GMT] \ No newline at end of file diff --git a/docs/ChatGPT Image Sep 23, 2025, 05_11_50 PM.png b/docs/ChatGPT Image Sep 23, 2025, 05_11_50 PM.png new file mode 100644 index 00000000000..46a4ac171c2 --- /dev/null +++ b/docs/ChatGPT Image Sep 23, 2025, 05_11_50 PM.png @@ -0,0 +1,3 @@ +AuthenticationFailedServer failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. +RequestId:b1fb244c-601e-0026-3edf-2cf7ad000000 +Time:2025-09-23T23:11:50.7247362ZSigned expiry time [Tue, 23 Sep 2025 19:21:12 GMT] must be after signed start time [Tue, 23 Sep 2025 23:11:50 GMT] \ No newline at end of file diff --git a/docs/README.md b/docs/README.md index 07a635d8b28..36f94633d8d 100644 --- a/docs/README.md +++ b/docs/README.md @@ -16,16 +16,15 @@ Use this page as the fast path to the docs you need. The golden path details liv ## Runbooks & Operations -- **[docs/runbooks/INDEX.md](../docs/runbooks/INDEX.md)** – Operational guides and incident playbooks. -- **[RUNBOOKS/dev-bootstrap.md](../docs/runbooks/dev-bootstrap.md)** – Local stack bring-up with verification steps. -- **[RUNBOOKS/schema-migration-playbook.md](../docs/runbooks/schema-migration-playbook.md)** – Safe database migration procedures. +- **[RUNBOOKS/INDEX.md](../RUNBOOKS/INDEX.md)** – Operational guides and incident playbooks. +- **[RUNBOOKS/dev-bootstrap.md](../RUNBOOKS/dev-bootstrap.md)** – Local stack bring-up with verification steps. +- **[RUNBOOKS/schema-migration-playbook.md](../RUNBOOKS/schema-migration-playbook.md)** – Safe database migration procedures. - **[ops/INCIDENT_SEVERITY.md](ops/INCIDENT_SEVERITY.md)** – SEV0–SEV3 rubric with response timing and comms expectations. - **[ops/INCIDENT_TEMPLATE.md](ops/INCIDENT_TEMPLATE.md)** – Copy/paste incident report shell for channels or tracker issues. - **[ops/DRILL_CHECKLIST.md](ops/DRILL_CHECKLIST.md)** – Tabletop drill flow to rehearse detection, comms, and recovery. ## Security & Governance -- **[Latest Executive Briefing (2026-01-31)](executive/2026-01-31-summit-platform-briefing.md)** - **[SECURITY_AND_PRIVACY.md](SECURITY_AND_PRIVACY.md)** – Security posture and privacy controls. - **[AI_GOVERNANCE_AGENT_FLEET.md](AI_GOVERNANCE_AGENT_FLEET.md)** – AI governance framework, agent fleet management, and incident response procedures. - **[COMPLIANCE.md](COMPLIANCE.md)** and **[DATA_RETENTION_POLICY.md](DATA_RETENTION_POLICY.md)** – Compliance, retention, and auditing references. diff --git a/docs/TESTING_STRATEGY.md b/docs/TESTING_STRATEGY.md index ab2dc92abc7..eb45989b0d9 100644 --- a/docs/TESTING_STRATEGY.md +++ b/docs/TESTING_STRATEGY.md @@ -645,12 +645,6 @@ All PRs must pass: - ✅ Golden path smoke test - ✅ Security scanning (Gitleaks, CodeQL) -### Verifier Specs (IP Claims Extensions) - -- **Graph invariant tests**: malformed updates rejected; reconciliation proof artifacts logged. -- **Appeals tests**: appealed decisions re-evaluated deterministically; overrides require approvals. -- **Causal guardrail tests**: lift estimates require causal assumptions artifacts; stale estimates rejected. - ### Test Caching We use Turbo for intelligent test caching: @@ -855,8 +849,8 @@ When tests fail: ### Internal Resources - [Test Templates](./test-templates/) -- Test Utilities -- Mock Factories +- [Test Utilities](../tests/utils/) +- [Mock Factories](../tests/factories/) - [CI Configuration](../.github/workflows/ci.yml) ### Support diff --git a/docs/agentic-mesh/00-architecture.md b/docs/agentic-mesh/00-architecture.md index b807dcf8992..acfa49206d2 100644 --- a/docs/agentic-mesh/00-architecture.md +++ b/docs/agentic-mesh/00-architecture.md @@ -18,16 +18,6 @@ The Agentic Mesh is a secure, auditable, ultra-resilient multi-LLM, multi-tool, --- -## Agentic Runtime (AOS) Alignment - -1. **Agentic runtime convergence**: Enterprise AI converges on an agentic runtime (Agentic Operating System) that standardizes orchestration, safety, compliance, and resource governance across swarms of agents. [ibm] -2. **Central control + policy schemas**: The dominant design pattern uses centralized control mechanisms with policy-driven schemas to swap models/tools while keeping guardrails and logging stable. [dainstudios +1] -3. **Authority alignment**: The Summit Readiness Assertion and governance authority files define the canonical terms, control points, and evidence requirements for this runtime layer. [docs/SUMMIT_READINESS_ASSERTION.md; docs/governance/CONSTITUTION.md; docs/governance/META_GOVERNANCE.md] - -**Action for Summit**: Push Summit’s core toward an explicit agentic runtime abstraction with a central execution engine, policy/eval hooks, and pluggable model/tool backends instead of app-specific flows; carry the alignment through the 23rd order of imputed intention. [dainstudios +1] - ---- - ## Core Services ``` @@ -57,16 +47,16 @@ The Agentic Mesh is a secure, auditable, ultra-resilient multi-LLM, multi-tool, ### Service Descriptions -| Service | Purpose | Port | -| ---------------------- | ----------------------------------------------------------- | ---- | -| **mesh-orchestrator** | Top-level task coordination, flow execution | 5000 | -| **routing-gateway** | Model/agent selection based on policy, cost, latency | 5001 | -| **policy-enforcer** | OPA-style policy evaluation for all operations | 5002 | -| **provenance-service** | Audit trail, decision lineage, explainability | 5003 | -| **agent-registry** | Agent discovery, capability matching, health checks | 5004 | -| **tool-registry** | Tool discovery, invocation proxying, rate limiting | 5005 | -| **events-bus** | Pub/sub for async agent communication (Redis Streams/Kafka) | 5006 | -| **task-queue** | Durable task scheduling and retry (BullMQ/Temporal) | 5007 | +| Service | Purpose | Port | +|---------|---------|------| +| **mesh-orchestrator** | Top-level task coordination, flow execution | 5000 | +| **routing-gateway** | Model/agent selection based on policy, cost, latency | 5001 | +| **policy-enforcer** | OPA-style policy evaluation for all operations | 5002 | +| **provenance-service** | Audit trail, decision lineage, explainability | 5003 | +| **agent-registry** | Agent discovery, capability matching, health checks | 5004 | +| **tool-registry** | Tool discovery, invocation proxying, rate limiting | 5005 | +| **events-bus** | Pub/sub for async agent communication (Redis Streams/Kafka) | 5006 | +| **task-queue** | Durable task scheduling and retry (BullMQ/Temporal) | 5007 | --- @@ -207,21 +197,21 @@ CREATE TABLE tools ( ### Model Provider Failures -| Scenario | Response | -| --------------------- | ------------------------------------------- | -| Provider timeout | Retry with exponential backoff (3 attempts) | -| Provider down | Failover to secondary provider | -| Rate limit hit | Queue tasks, apply backpressure | -| Token budget exceeded | Reject task with clear error | +| Scenario | Response | +|----------|----------| +| Provider timeout | Retry with exponential backoff (3 attempts) | +| Provider down | Failover to secondary provider | +| Rate limit hit | Queue tasks, apply backpressure | +| Token budget exceeded | Reject task with clear error | ### Agent Failures -| Scenario | Response | -| ----------------------------- | ----------------------------------- | -| Agent crash | Re-route to equivalent agent | -| Agent timeout | Kill, log, retry on different agent | -| Agent produces invalid output | Route to CriticAgent for review | -| No available agents | Queue with SLO-aware timeout | +| Scenario | Response | +|----------|----------| +| Agent crash | Re-route to equivalent agent | +| Agent timeout | Kill, log, retry on different agent | +| Agent produces invalid output | Route to CriticAgent for review | +| No available agents | Queue with SLO-aware timeout | ### Backpressure Mechanisms diff --git a/docs/architecture/README.md b/docs/architecture/README.md index c375c74f5ef..b73f7f40d82 100644 --- a/docs/architecture/README.md +++ b/docs/architecture/README.md @@ -1,77 +1,42 @@ -# Summit Architecture & Codex Execution Hub +# Summit Architecture Repository (Minimal) -This document is the single entry point for the Summit/IntelGraph architecture corpus and the Codex-driven execution program that keeps the platform aligned with governance, CI, and GA-readiness expectations. +This directory is the canonical, versioned architecture repository for Summit. It is intentionally +constrained to the minimum viable set of machine-readable artifacts required to model Summit as a +system-of-systems while keeping governance and agent operations queryable and auditable. -## Purpose and scope +## Contents -- Provide a curated map to the most authoritative architecture references in this repository. -- Describe the Codex workstreams, merge discipline, and governance dependencies that orchestrate changes safely. -- Capture GA-readiness checkpoints and evidence expectations for releases. +- `system-index.json`: Machine-readable architecture index (components, contracts, flows, and + authority links). +- `system-index.schema.json`: JSON Schema for validating `system-index.json`. +- `system-index.md`: Human-readable summary generated from the same canonical definitions. +- `summit-graph.schema.json`: Graph schema that standardizes nodes, edges, and provenance fields + for the Summit world model. -## Architectural map +## Authority Alignment -Use these documents as the canonical references when implementing or reviewing changes: +All architecture entries must reference governing authority documents and contracts. The primary +sources of authority include: -- **Topology & platform shape:** [`docs/architecture/day1-topology.md`](./day1-topology.md), [`docs/architecture/system-map.png`](./system-map.png), [`docs/architecture/service-dependency-map.md`](./service-dependency-map.md) -- **Cross-cutting concerns:** [`docs/architecture/zero-trust.md`](./zero-trust.md), [`docs/architecture/service-mesh-architecture.md`](./service-mesh-architecture.md), [`docs/architecture/dead-code-policy.md`](./dead-code-policy.md) -- **Data & provenance:** [`docs/architecture/prov-ledger.md`](./prov-ledger.md), [`docs/architecture/provenance-ledger-beta.md`](./provenance-ledger-beta.md), [`docs/architecture/event-schemas.md`](./event-schemas.md) -- **Operational guardrails:** [`docs/architecture/ci-cd-architecture.md`](./ci-cd-architecture.md), [`docs/architecture/dependency-graph.md`](./dependency-graph.md), [`docs/architecture/dependency-risk-table.md`](./dependency-risk-table.md) -- **Resilience & isolation:** [`docs/architecture/blast-radius-report.txt`](./blast-radius-report.txt), [`docs/architecture/tenant-hierarchy-model.md`](./TENANT_HIERARCHY_MODEL.md), [`docs/architecture/cache-policy.md`](./cache-policy.md) -- **Agent Architecture:** [`docs/architecture/mcp-first.md`](./mcp-first.md), [`docs/agents/context-engineering.md`](../agents/context-engineering.md), [`docs/architecture/ai-economic-operating-system.md`](./ai-economic-operating-system.md) -- **AI Application Layer / GenAI Stack:** [`docs/architecture/ai-application-layer.md`](./ai-application-layer.md) -- **Intelligence Methodology:** [`docs/architecture/ufar.md`](./ufar.md) -- **Credibility Dynamics:** [`docs/architecture/credibility_dynamics.md`](./credibility_dynamics.md) -- **Signal Analysis:** [`docs/analytics/entropy_signals.md`](../analytics/entropy_signals.md) +- `docs/SUMMIT_READINESS_ASSERTION.md` +- `docs/governance/CONSTITUTION.md` +- `docs/governance/META_GOVERNANCE.md` +- `docs/governance/AGENT_MANDATES.md` +- `agent-contract.json` -## Codex execution program +## Update Protocol -The Summit Codex Execution Plan runs eight parallel workstreams with explicit boundaries. Each track owns a branch namespace, consumes its authoritative specs, and adheres to the merge order to keep governance first and prevent drift. +1. Edit `system-index.json` and `system-index.md` together so the human and machine views stay + aligned. +2. Validate `system-index.json` against `system-index.schema.json` before commit. +3. Extend `summit-graph.schema.json` only when a new node or edge type is required. +4. Record the change in `docs/roadmap/STATUS.json` with a short revision note. -| Track | Branch namespace | Inputs (authoritative specs) | Core deliverables | -| --- | --- | --- | --- | -| A — Governance & Agent Ops | `codex/governance-core/*` | `agent-ops.md`, `permission-tiers.md`, `agent-incident-response.md` | Add governance docs verbatim, implement label taxonomy, CODEOWNERS mappings, governance metadata schemas. | -| B — CI Enforcement | `codex/ci-governance/*` | `ci-enforcement.md` | `governance-check.yml`, label validation, path→tier enforcement, PR annotation output. Depends on Track A. | -| C — Zero-Knowledge Deconfliction | `codex/zk-deconfliction/*` | `zk-deconfliction.md`, `zk-threat-model.md` | Protocol abstractions, audit artifact schemas, stub enforcement hooks, CI guards for unsafe changes (scaffolding only). | -| D — Multi-Tenant Isolation | `codex/isolation/*` | `isolation-domains.md`, `blast-radius-model.md` | DB isolation primitives, tenant scoping helpers, CI path protections, chaos tabletop docs. | -| E — Release Trains & Evidence | `codex/release-system/*` | `release-trains.md`, `evidence-bundles.md` | Evidence bundle generator, release workflow YAML, release metadata manifests, rollback logging hooks. | -| F — Agent Budgets & Risk | `codex/agent-budgets/*` | `agent-budgets.md`, `risk-scoring.md` | Budget manifest schemas, CI risk scoring checks, agent stop conditions, audit log wiring. | -| G — Streaming Intelligence Bus | `codex/streaming/*` | `streaming-intelligence.md`, `feature-store.md` | Event log schema, feature definition framework, async processing scaffolds, observability hooks. | -| H — Documentation & GA Assembly | `codex/ga-docs/*` | Cross-links to all tracks | Cross-link all specs, add GA checklist, publish this `docs/architecture/README.md`, verify internal consistency. | +## Query Use -### Merge discipline +`system-index.json` is the authoritative, minimal inventory. Queries should resolve through the +`queries` block so governance and agent orchestration can answer “who can change what” without +diverging definitions. When adding a query, define its response shape and attach authority links. -1. Governance Core (Track A) -2. CI Enforcement (Track B) -3. Isolation + Budgets (Tracks D & F) in parallel -4. Zero-Knowledge Deconfliction (Track C) -5. Release System (Track E) -6. Streaming Bus (Track G) -7. GA Docs (Track H) - -### Governance and review checkpoints - -- **Constitution + Meta-Governance:** All tracks must align with [`docs/governance/CONSTITUTION.md`](../governance/CONSTITUTION.md) and [`docs/governance/META_GOVERNANCE.md`](../governance/META_GOVERNANCE.md). -- **Agent Mandates:** Roles and approval boundaries come from [`docs/governance/AGENT_MANDATES.md`](../governance/AGENT_MANDATES.md) and the Living Rulebook at [`docs/governance/RULEBOOK.md`](../governance/RULEBOOK.md). -- **Label taxonomy:** Governance Core publishes the authoritative labels and CODEOWNERS entries; dependent tracks must reference them in CI and path protections. -- **CI standard:** `pr-quality-gate.yml` remains the enforcement source of truth; new workflows must integrate without bypassing it. - -### GA readiness checklist (per release train) - -- Governance artifacts present and linked (constitution, mandates, rulebook, label taxonomy, CODEOWNERS). -- CI governance checks enabled (label validation, tier-to-path enforcement, PR annotations) and green. -- Isolation and budget controls configured with auditable manifests and path protections. -- Zero-knowledge deconfliction hooks and audit schemas merged (even if runtime-gated). -- Release train assets produced (workflow YAML, evidence bundle generator, metadata manifests, rollback logging hooks). -- Streaming intelligence scaffolds merged with observability and feature definitions. -- Documentation synchronized: this README, cross-linked specs, and GA checklist confirmed. - -## Working agreements for contributors - -- **Branching:** Use the branch namespaces above to avoid collisions and preserve merge order. -- **Evidence:** Each track should produce artifacts (schemas, workflows, audit logs) that can be included in evidence bundles for GA. -- **Testing:** Prefer the golden path (`make bootstrap && make up && make smoke`) for validation; add focused tests where new CI or schema logic is introduced. -- **Change control:** Avoid squash merges; preserve history with conventional commits and clear authorship. - -## Innovation posture - -Each track should propose at least one forward-leaning enhancement (e.g., stronger type safety in governance schemas, novel CI annotations for enforcement drift, or advanced streaming feature derivations) while keeping compatibility with the mandated specs and merge discipline. +This repository does not replace `ARCHITECTURE_MAP.generated.yaml`; it anchors the canonical +system-of-systems index while generated artifacts remain governed derivatives. diff --git a/docs/asr/qwen3_asr.md b/docs/asr/qwen3_asr.md index 2727cbf0d9c..dcbbb431458 100644 --- a/docs/asr/qwen3_asr.md +++ b/docs/asr/qwen3_asr.md @@ -1,60 +1,49 @@ -# Qwen3-ASR Integration +# Qwen3-ASR 0.6B Integration Scaffold -This document describes the integration of the `Qwen3-ASR-0.6B` model into the Summit platform. +This scaffold aligns with the Summit Readiness Assertion and records a governed, deny-by-default +path for ASR integration while preserving current release readiness. It is intentionally +constrained pending fixture-backed evals and governance sign-off. -## Overview +## Scope -The Qwen3-ASR integration provides a unified interface for Automatic Speech Recognition (ASR) supporting 52 languages and dialects. It features both offline and streaming inference capabilities and supports "promptable ASR" via a secure context policy. +- Clean-room ASR interface, provider stub, and CLI wiring. +- Evidence runner that emits deterministic artifacts (timestamps only in `stamp.json`). +- Security redaction gate to prevent logging audio/context payloads. -## Architecture +## Enablement Flags -The module is located at `summit/audio/asr/` and follows the standard Summit provider pattern: +All capability is disabled by default and requires explicit opt-in: -- `provider.py`: Base abstract class for ASR providers. -- `types.py`: Data contracts (Request/Result). -- `providers/qwen3_asr_provider.py`: Implementation for Qwen3-ASR supporting Transformers and vLLM backends. -- `policy/context_policy.py`: Security gate for textual context. +- `SUMMIT_ASR_ENABLED=1` to allow provider execution. +- `ASR_CLI_ENABLED=1` to use the CLI wrapper. +- `EVAL_ASR_RUNNER=1` to run the evidence runner. -## Enablement +## Evidence Artifacts -By default, the ASR module is disabled. To enable it, use the following environment variables or feature flags: +The eval runner writes: -- `FEATURE_QWEN3_ASR=1`: Enable the main ASR feature. -- `SUMMIT_ASR_ENABLED=1`: Alternative environment variable to enable ASR. -- `ASR_CLI_ENABLED=1`: Enable the CLI tool. -- `ASR_CONTEXT_ENABLED=1`: Enable the promptable context feature (requires security audit). +- `report.json` +- `metrics.json` +- `stamp.json` +- `index.json` -## Security & Privacy +Only `stamp.json` includes timestamps. -- **Redaction**: Audio data and context are never logged in plaintext. The `redact_for_logs` utility ensures sensitive fields are masked. -- **Context Policy**: A dedicated policy engine validates promptable context for PII (emails, SSNs, IPs) and enforces length limits. -- **Deny-by-Default**: All external integrations and advanced features require explicit opt-in. +## Data Handling Defaults -## Usage +- Audio and transcript inputs are sensitive by default. +- The redaction gate masks `audio` and `context` fields in logs. +- Evidence artifacts store metadata only (no raw audio payloads). -### CLI +## MAESTRO Alignment -```bash -ASR_CLI_ENABLED=1 FEATURE_QWEN3_ASR=1 python3 -m summit.audio.asr.cli \ - --audio "path/to/audio.wav" \ - --audio-type "path" \ - --language "en" \ - --timestamps -``` +- **MAESTRO Layers:** Foundation, Data, Agents, Tools, Observability, Security. +- **Threats Considered:** prompt injection via contextual ASR inputs, sensitive data leakage via + logs, and tool abuse through enablement flags. +- **Mitigations:** deny-by-default flags, redaction of sensitive fields, and deterministic evidence + outputs to support auditability. -### Python API +## Roadmap Notes -```python -from summit.audio.asr.providers.qwen3_asr_provider import Qwen3ASRProvider -from summit.audio.asr.types import ASRRequest - -provider = Qwen3ASRProvider(backend="transformers") -request = ASRRequest(audio="...", audio_type="base64") -result = provider.transcribe(request) -print(result.text) -``` - -## Backends - -1. **Transformers**: Standard compatibility backend using the `qwen-asr` package. -2. **vLLM**: High-throughput backend recommended for production streaming and batch workloads. +- Streaming/vLLM backends remain intentionally constrained. +- Timestamp alignment and context policies remain gated behind additional approvals. diff --git a/docs/ci/BRANCH_PROTECTION_POLICY.md b/docs/ci/BRANCH_PROTECTION_POLICY.md index b2268336a99..fb3f7905c29 100644 --- a/docs/ci/BRANCH_PROTECTION_POLICY.md +++ b/docs/ci/BRANCH_PROTECTION_POLICY.md @@ -60,46 +60,6 @@ pnpm ci:branch-protection:plan -- --repo OWNER/REPO --branch main ALLOW_BRANCH_PROTECTION_CHANGES=1 pnpm ci:branch-protection:apply -- --repo OWNER/REPO --branch main ``` -### Generate ruleset payload (GitHub Rulesets) - -Generate a ruleset payload aligned to the required checks policy and standard review rules: - -```bash -node scripts/ci/generate_ruleset_payload.mjs \ - --policy docs/ci/REQUIRED_CHECKS_POLICY.yml \ - --name "Summit Main Branch Protection" \ - --output artifacts/governance/main-ruleset.json -``` - -Apply via GitHub API (admin token required): - -```bash -gh api repos/OWNER/REPO/rulesets \ - --method POST \ - --input artifacts/governance/main-ruleset.json -``` - -The payload is deterministic and derives required check contexts from -`docs/ci/REQUIRED_CHECKS_POLICY.yml`. - -### Generate branch protection payload (GitHub API) - -Generate a branch protection payload aligned to required checks and review rules: - -```bash -node scripts/ci/generate_branch_protection_payload.mjs \ - --policy docs/ci/REQUIRED_CHECKS_POLICY.yml \ - --output artifacts/governance/main-branch-protection.json -``` - -Apply via GitHub API (admin token required): - -```bash -gh api repos/OWNER/REPO/branches/main/protection \ - --method PUT \ - --input artifacts/governance/main-branch-protection.json -``` - --- ## Required Token Scopes diff --git a/docs/ci/RELEASE_GA_PIPELINE.md b/docs/ci/RELEASE_GA_PIPELINE.md index 40e40080cb2..67a2ef0bfa3 100644 --- a/docs/ci/RELEASE_GA_PIPELINE.md +++ b/docs/ci/RELEASE_GA_PIPELINE.md @@ -86,27 +86,6 @@ Creates the comprehensive GA release bundle: - Generates release notes, operator script, checklist - Creates `ga_metadata.json` with release information - Generates `SHA256SUMS` for all artifacts -- Builds the artifact inventory for the bundle and evidence outputs - -#### Artifact Inventory (Generation) - -The pipeline builds an artifact inventory that enumerates release outputs before publish. The -inventory covers: - -- `dist/release/*` deliverables (server/client bundles and release summaries) -- `release-bundle/compliance-bundle-v*.tgz` -- `evidence-bundle.tar.gz` -- `sbom.json` plus provenance outputs (for example `provenance.json`) -- `ga_metadata.json`, `SHA256SUMS`, and release scripts/checklists - -To generate the inventory locally: - -```bash -node scripts/release/generate_artifact_inventory.mjs --dir -``` - -The script emits `artifact-inventory.json` into `` and is intended to run after the -bundle is assembled so the inventory reflects the final on-disk payload. ### Stage 5: Publish Guard @@ -118,20 +97,6 @@ Final verification before publishing: - Confirms lineage - Produces pass/fail report -#### Artifact Inventory (Verification) - -Before publish, CI verifies the inventory against the bundle directory: - -```bash -node scripts/release/verify_artifact_inventory.mjs --dir -``` - -Inventory files are bundled into release evidence under `release-artifacts/` to preserve a -verifiable record of the release payload. - -If inventory verification fails, publishing is blocked until the bundle and inventory are -consistent. - ### Stage 6: Assemble & Publish Uploads artifact and publishes release (with approval): @@ -158,7 +123,6 @@ The pipeline produces a single artifact: `ga-release-bundle-{tag}` | `verify-rc-lineage.sh` | Lineage verification script | | `verify-green-for-tag.sh` | CI verification script | | `pipeline_metadata.json` | Pipeline execution metadata | -| `artifact-inventory.json` | Inventory of release artifacts | ### Example ga_metadata.json diff --git a/docs/ci/REQUIRED_CHECKS_POLICY.yml b/docs/ci/REQUIRED_CHECKS_POLICY.yml index 721721864e3..34ec845d478 100644 --- a/docs/ci/REQUIRED_CHECKS_POLICY.yml +++ b/docs/ci/REQUIRED_CHECKS_POLICY.yml @@ -4,8 +4,8 @@ # Both RC and GA pipelines derive required checks from this file. # # Authority: Platform Engineering -# Last Updated: 2026-02-01 -# Version: 2.1.0 +# Last Updated: 2026-01-13 +# Version: 2.0.0 # # How to add/remove checks safely: # 1. Create PR modifying this file @@ -16,7 +16,7 @@ # IMPORTANT: Do not add new always_required checks without # verifying they run on EVERY commit to main. -version: "2.1.0" +version: "2.0.0" description: "Canonical policy for release gate requirements" last_updated: "2026-02-01" owner: "Platform Engineering" @@ -29,41 +29,29 @@ branch_protection: required_status_checks: strict: true contexts: - - "meta-gate" - - "CI Core Gate ✅" - - "Unit Tests" - - "gate" + - "CI Core (Primary Gate)" + - "CI / config-guard" + - "CI / unit-tests" + - "GA Gate" - "Release Readiness Gate" - "SOC Controls" - - "test (20.x)" - - "Workflow Validity Check" + - "Unit Tests & Coverage" + - "ga / gate" # Always Required Checks # ---------------------- # These checks MUST pass for every commit, regardless of what changed. # They are blocking for both RC and GA promotion. always_required: - - name: "meta-gate" - workflow: "governance-meta-gate.yml" - rationale: "Unified governance verification (drift, determinism, policy)" - - - name: "CI Core Gate ✅" - workflow: "ci-core.yml" - rationale: "Primary blocking gate - lint, typecheck, tests, build" - - - name: "Unit Tests" - workflow: "ci-pr.yml" - rationale: "Primary PR test gate status required by branch protection" - - - name: "gate" - workflow: "ga-gate.yml" - rationale: "Official GA gate job required by branch protection" - - name: "Release Readiness Gate" workflow: "release-readiness.yml" rationale: "Comprehensive release readiness verification - runs on every change" - - name: "test (20.x)" + - name: "GA Gate" + workflow: "ga-gate.yml" + rationale: "Official GA verification entrypoint with make ga" + + - name: "Unit Tests & Coverage" workflow: "unit-test-coverage.yml" rationale: "Test suite and coverage gates must pass for all code changes" @@ -71,9 +59,9 @@ always_required: workflow: "soc-controls.yml" rationale: "SOC control verification is required for audit readiness" - - name: "Workflow Validity Check" - workflow: "workflow-validity.yml" - rationale: "Workflow syntax validity is required by protected-branch checks" + - name: "CI Core (Primary Gate)" + workflow: "ci-core.yml" + rationale: "Primary blocking gate - lint, typecheck, tests, build" # Conditional Required Checks # --------------------------- @@ -85,12 +73,12 @@ always_required: # "^\.github/workflows/" - Matches workflow files (escape dots) # "^Dockerfile$" - Matches exactly "Dockerfile" at root conditional_required: - - name: "Workflow Validity Gate" - workflow: "workflow-validity.yml" - rationale: "Validates GitHub Actions workflow syntax and safety to prevent global outages" + - name: "Workflow Lint" + workflow: "workflow-lint.yml" + rationale: "Validates GitHub Actions workflow syntax and safety" when_paths_match: - - '^\.github/workflows/' - - '^\.github/actions/' + - "^\\.github/workflows/" + - "^\\.github/actions/" - name: "CodeQL" workflow: "codeql.yml" @@ -106,21 +94,21 @@ conditional_required: when_paths_match: - "^Dockerfile" - "^docker-compose" - - '^package\.json$' - - '^pnpm-lock\.yaml$' - - '^server/package\.json$' - - '^\.github/workflows/supply-chain' + - "^package\\.json$" + - "^pnpm-lock\\.yaml$" + - "^server/package\\.json$" + - "^\\.github/workflows/supply-chain" - "^scripts/security/" - - name: "Docker Build & Security Scan" + - name: "Docker Build" workflow: "docker-build.yml" rationale: "Docker image build and security validation" when_paths_match: - "^Dockerfile" - "^docker-compose" - - '^\.dockerignore$' + - "^\\.dockerignore$" - - name: "Schema compatibility guard / schema-compat" + - name: "Schema Compatibility" workflow: "schema-compat.yml" rationale: "API schema backward compatibility checks" when_paths_match: @@ -143,13 +131,6 @@ conditional_required: when_paths_match: - "^policy/" - - name: "Extortion Pressure Gates" - workflow: "extortion-gates.yml" - rationale: "Ensures extortion artifacts are deterministic and follow never-log policy" - when_paths_match: - - "^packages/extortion/" - - "^scripts/ci/.*extortion" - # Informational Checks # -------------------- # These checks are NOT blocking for promotion. diff --git a/docs/claims/CLAIMS_REGISTRY.md b/docs/claims/CLAIMS_REGISTRY.md index fa4a40e5adc..60271b0c900 100644 --- a/docs/claims/CLAIMS_REGISTRY.md +++ b/docs/claims/CLAIMS_REGISTRY.md @@ -13,8 +13,7 @@ This registry binds every public claim about Summit to the authoritative evidenc 2. [Data & Provenance](#data--provenance) 3. [Architecture & Resilience](#architecture--resilience) 4. [Intelligence & AI](#intelligence--ai) -5. [Narrative Defense Governance](#narrative-defense-governance) -6. [Anti-Claims](#anti-claims) +5. [Anti-Claims](#anti-claims) --- @@ -51,14 +50,6 @@ This registry binds every public claim about Summit to the authoritative evidenc | **AI-002** | **PII Redaction:** Sensitive entities are detected and redacted before LLM inference. | `server/src/pii/ingestionHooks.ts` | Heuristic-based; not 100% guaranteed for all edge cases. | AI Security | **VERIFIED** | | **AI-003** | **Defensive PsyOps:** System actively detects and counters influence operations. | `server/src/services/DefensivePsyOpsService.ts` | Automated detection based on content signatures. | CogSec | **VERIFIED** | -## Narrative Defense Governance - -| ID | Claim | Evidence Path | Scope / Limit | Owner | Status | -|----|-------|---------------|---------------|-------|--------| -| **EVD-NARRDOM-COMP-001** | **Continuous Compliance:** System detects policy drift and triggers safe mode for external actions. | `fixtures/governance/drift_detected.json` | Validated via compliance monitor safe-mode invariants. | Governance | **VERIFIED** | -| **EVD-NARRDOM-AUTH-001** | **Authenticity Gating:** Watermark and provenance signals are used to gate external publishing. | `fixtures/governance/authenticity_verified.json` | Requires high confidence scores for media-referencing actions. | Governance | **VERIFIED** | -| **EVD-NARRDOM-HIL-001** | **Human Accountability:** Mandatory review checklists and load caps enforce operator accountability. | `fixtures/governance/checklist_complete.json` | Enforced for all external publishing defense actions. | Governance | **VERIFIED** | - ## Anti-Claims > *See [ANTI_CLAIMS.md](./ANTI_CLAIMS.md) for detailed rationale.* diff --git a/docs/decisions/item-UNKNOWN.md b/docs/decisions/item-UNKNOWN.md new file mode 100644 index 00000000000..9cdeb55e75c --- /dev/null +++ b/docs/decisions/item-UNKNOWN.md @@ -0,0 +1,22 @@ +# Decisions: item-UNKNOWN + +## Decisions made + +- Implemented subsumption bundle scaffolding without ITEM-specific features. +- Enforced deterministic evidence file separation (report/metrics vs stamp). + +## Alternatives rejected + +- Implementing ITEM features immediately (deferred pending ITEM excerpts). + +## Deferred + +- Claim registry population and lane-2 innovation until ITEM is provided. + +## Risk tradeoffs + +- Added new CI job name assumed; requires required-check discovery to finalize. + +## GA alignment + +- Improves machine-verifiable governance with minimal blast radius. diff --git a/docs/dependency_delta.md b/docs/dependency_delta.md new file mode 100644 index 00000000000..d70e342cb4b --- /dev/null +++ b/docs/dependency_delta.md @@ -0,0 +1,24 @@ +# Dependency Delta Ledger + +This document tracks and justifies changes to the project's dependency surface. + +## [2026-01-29] ATLAS Multilingual Scaling Planner + +- **Added**: `jsonschema` (Python) +- **Justification**: Required for validating ATLAS LanguageTransferMatrix artifacts and evidence bundles against standardized schemas. +- **Risk Assessment**: Low. Standard library for JSON validation. No new network-facing dependencies introduced. +- **Owner**: Jules (Release Captain) + +## [2026-01-30] Tidemark temporal community evidence scaffold + +- **Added**: None. +- **Justification**: Evidence bundle, schemas, and CI verification script do not introduce new dependencies. +- **Risk Assessment**: None. Dependency surface unchanged. +- **Owner**: Codex (Engineer) + +## [2026-02-01] Typhoon-S Master Plan Implementation + +- **Added**: None. +- **Justification**: Clean-room implementation of Typhoon-S post-training recipes and evidence/governance structures. +- **Risk Assessment**: None. No new external dependencies introduced. +- **Owner**: Jules (Release Captain) diff --git a/docs/deps_delta.md b/docs/deps_delta.md index 0f58a5718eb..76b1716e917 100644 --- a/docs/deps_delta.md +++ b/docs/deps_delta.md @@ -1,8 +1,7 @@ -# Dependency Delta +# Dependency Delta Gate +Add an entry here whenever repository lockfiles are modified. -## Changes -- No new external dependencies added. -- Added internal module `summit/slopguard`. - -## Rationale -SlopGuard is implemented using standard library and existing repo patterns. +## 2026-01-31 +- Action: Add +- Package: jsonschema +- Reason: Architecture specification validation for `archsim` module. diff --git a/docs/executive_briefing.md b/docs/executive_briefing.md index b1f26cfb006..b47726dc076 100644 --- a/docs/executive_briefing.md +++ b/docs/executive_briefing.md @@ -1,16 +1,9 @@ # Executive Briefing Documentation ## Overview - This document describes the structure and governance of the Executive Brief Pack. -## Latest Briefing - -- **[AI Company Operating Model Comparison (2026-02-25)](executive/2026-02-25-ai-company-operating-model-comparison.md)** -- **[Summit Platform Executive Briefing (2026-01-31)](executive/2026-01-31-summit-platform-briefing.md)** - ## Fields - - **pack_id**: Unique identifier for the brief. - **title**: Title of the brief. - **timeframe**: Period covered by the brief. diff --git a/docs/federated-campaign-radar-spec.md b/docs/federated-campaign-radar-spec.md index c9c55bffe2f..d9692f597a1 100644 --- a/docs/federated-campaign-radar-spec.md +++ b/docs/federated-campaign-radar-spec.md @@ -121,22 +121,3 @@ Minimal fields (extendable via versioned schema): - Connector attestations and rate-limiting to mitigate sybil/poisoning. - Audit replay harness and evidence export aligned to governance controls. - Runbooks for incident response, rollback, and regulator-facing evidence bundles. - -## 13. API Surface (v1) - -Base path: `/api/fcr` - -- `POST /fcr/budget`: set per-tenant privacy budget. -- `POST /fcr/ingest`: validate and ingest normalized signals. -- `POST /fcr/run`: ingest + cluster + alert in one request. - -All API requests require `tenant_id` and schema-valid payloads; responses include audit-ready -summaries and are safe for cross-tenant distribution. - -## 14. Implementation Artifacts - -- Schemas: `schemas/fcr/v1/fcr-*.schema.json` -- Services: `server/src/services/fcr/*.ts` -- Routes: `server/src/routes/federated-campaign-radar.ts` -- Policies: `server/policies/fcr-*.rego` -- Provenance: `server/src/provenance/fcr-ledger.ts` diff --git a/docs/federated-campaign-radar.md b/docs/federated-campaign-radar.md index 960e5d228c9..1372ef7e910 100644 --- a/docs/federated-campaign-radar.md +++ b/docs/federated-campaign-radar.md @@ -72,16 +72,3 @@ Structured as a multi-entity graph: - Optional homomorphic encryption for specific hash-join steps where enclave deployment is constrained. - Counterfactual replay to stress-test thresholds against historical disinformation incidents and tune TTD/false-attribution tradeoffs. - Open standard proposal: align schema + protocol with existing threat intel formats (STIX/TAXII) plus C2PA assertions for credential-aware exchanges. - -## API Summary - -Base path: `/api/fcr` - -- `POST /fcr/budget`: Configure per-tenant differential privacy budgets. -- `POST /fcr/ingest`: Validate and ingest normalized signals. -- `POST /fcr/run`: Execute ingest + cluster + alert pipeline. - -## Operations - -- Enforce privacy budgets and verify C2PA signer reputation before alert propagation. -- Export audit evidence from the provenance ledger for incident review. diff --git a/docs/ga/GA_DELTA_BACKLOG.md b/docs/ga/GA_DELTA_BACKLOG.md index 7a76f6f3081..9d69eb14684 100644 --- a/docs/ga/GA_DELTA_BACKLOG.md +++ b/docs/ga/GA_DELTA_BACKLOG.md @@ -13,19 +13,11 @@ | ID | Gate | Symptom | Root Cause Hypothesis | Proposed Fix | Evidence Needed | Risk | PR Size | Owner | | ---- | -------------------------------- | ------------------------------------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------- | ------ | ------- | ----- | - | GA-1 | `pnpm -r test`, `make preflight` | `apps/workflow-engine` Jest setup missing | `tests/utils/jest-setup.cjs` removed or path drifted | Restore file or update Jest config path | Test logs + file diff | Medium | S | Codex | | GA-2 | `make ga` | `.venv/bin/ruff` missing | GA gate assumes venv without bootstrap | Add venv bootstrap to GA gate or fallback to `python -m ruff/mypy` | GA gate log + updated script evidence | Medium | M | Codex | | GA-3 | `pnpm ci:parity` | Script missing | Scripts removed/renamed in `package.json` | Restore scripts or document replacement gate in Makefile | Script diff + command output | Low | S | Codex | | GA-4 | Lint (preflight/ga) | ruff import order errors + eslint warnings | Lint exceptions accumulating without governance | Fix imports + remove no-redeclare warnings or record governed exceptions | Lint output + clean run | Medium | M | Codex | | GA-5 | `make ga-verify` | Tier B verification map missing item | `Media Authenticity & Provenance` not listed in `verification-map.json` | Update verification map + MVP-4 GA verification doc | `make ga-verify` output + map diff | Medium | S | Codex | - HEAD -| GA-1 | `make ga-verify` | Tier B verification map missing item | `Media Authenticity & Provenance` not listed in `verification-map.json` | Update verification map + MVP-4 GA verification doc | `make ga-verify` output + map diff | Medium | S | Codex | -| GA-2 | `pnpm -r test`, `make preflight` | `apps/workflow-engine` Jest setup missing | `tests/utils/jest-setup.cjs` removed or path drifted | Restore file or update Jest config path | Test logs + file diff | Medium | S | Codex | -| GA-3 | `make ga` | `.venv/bin/ruff` missing | GA gate assumes venv without bootstrap | Add venv bootstrap to GA gate or fallback to `python -m ruff/mypy` | GA gate log + updated script evidence | Medium | M | Codex | -| GA-4 | `pnpm ci:parity` | Script missing | Scripts removed/renamed in `package.json` | Restore scripts or document replacement gate in Makefile | Script diff + command output | Low | S | Codex | -| GA-5 | Lint (preflight/ga) | ruff import order errors + eslint warnings | Lint exceptions accumulating without governance | Fix imports + remove no-redeclare warnings or record governed exceptions | Lint output + clean run | Medium | M | Codex | - origin/main ## Evidence Requirements (Per Item) diff --git a/docs/ga/PR_TRAIN_PLAN.md b/docs/ga/PR_TRAIN_PLAN.md index 4b8b3d060f3..548f0d11eb7 100644 --- a/docs/ga/PR_TRAIN_PLAN.md +++ b/docs/ga/PR_TRAIN_PLAN.md @@ -11,74 +11,47 @@ ## PR Train (Ordered) - ### PR-0 — docs(ga): capture recature state + backlog + - **Touched paths:** `docs/ga/`, `docs/roadmap/STATUS.json`, `evidence/ga-recature/`, `evidence/ga-recapture/` - HEAD -### PR-0 — docs(ga): capture recapture state + backlog -- **Touched paths:** `docs/ga/`, `docs/roadmap/STATUS.json`, `evidence/ga-recapture/` - origin/main - **Acceptance checks:** `make ga-verify`, `scripts/check-boundaries.cjs` - **Evidence bundle checklist:** phase 0/1 logs + command inventory - **Rollback plan:** revert doc and evidence files - ### PR-1 — fix(workflow-engine): restore Jest setup for tests - HEAD -### PR-1 — docs(ga): align verification map with Tier B coverage -- **Touched paths:** `docs/ga/verification-map.json`, `docs/ga/MVP-4-GA-VERIFICATION.md` -- **Acceptance checks:** `make ga-verify` -- **Evidence bundle checklist:** ga-verify output + map diff -- **Rollback plan:** revert verification map updates -### PR-2 — fix(workflow-engine): restore Jest setup for tests - origin/main - **Touched paths:** `apps/workflow-engine/**` - **Acceptance checks:** `pnpm --filter @intelgraph/workflow-engine test`, `pnpm -r test` - **Evidence bundle checklist:** command logs + updated Jest config - **Rollback plan:** revert Jest setup file/config - ### PR-2 — chore(ga): ensure GA lint path has venv bootstrap or python fallback - HEAD -### PR-3 — chore(ga): ensure GA lint path has venv bootstrap or python fallback - origin/main - **Touched paths:** `Makefile`, `scripts/ga-gate.sh` (if needed) - **Acceptance checks:** `make ga` (or `make ga-verify` if scoped) - **Evidence bundle checklist:** GA gate logs with venv creation evidence - **Rollback plan:** revert GA gate change - ### PR-3 — chore(ci): restore ci:parity / ci:verify scripts or adjust gate mapping - HEAD -### PR-4 — chore(ci): restore ci:parity / ci:verify scripts or adjust gate mapping - origin/main - **Touched paths:** `package.json`, `docs/ga/` (if mapping updated) - **Acceptance checks:** `pnpm ci:parity`, `pnpm ci:verify` - **Evidence bundle checklist:** command logs + script definition diff - **Rollback plan:** revert scripts/mapping change - ### PR-4 — fix(lint): resolve ruff import ordering + eslint warnings - HEAD -### PR-5 — fix(lint): resolve ruff import ordering + eslint warnings - origin/main - **Touched paths:** targeted lint offenders in `contracts/` and `evals/` - **Acceptance checks:** `pnpm -w exec eslint .`, `python -m ruff check .` - **Evidence bundle checklist:** lint outputs pre/post - **Rollback plan:** revert lint fixes - ### PR-5 — docs(ga): align verification map with Tier B coverage + - **Touched paths:** `docs/ga/verification-map.json`, `docs/ga/MVP-4-GA-VERIFICATION.md` - **Acceptance checks:** `make ga-verify` - **Evidence bundle checklist:** ga-verify output + map diff - **Rollback plan:** revert verification map updates - HEAD - origin/main ## Rollup Guardrails diff --git a/docs/ip/F10-universal-connector-sdk.md b/docs/ip/F10-universal-connector-sdk.md index de2c99f8044..fe47c31b3c4 100644 --- a/docs/ip/F10-universal-connector-sdk.md +++ b/docs/ip/F10-universal-connector-sdk.md @@ -12,7 +12,6 @@ This disclosure describes a **pluggable connector framework** for ingesting data from any source (STIX/TAXII, Splunk, Sentinel, Elasticsearch, CSV, APIs, etc.) with support for both **streaming and batch modes, declarative schema mappings, provenance tracking, and error handling**. The system is designed to be the "data onramp" for all intelligence sources. **Core Innovation**: - 1. **Pluggable Architecture**: Add new connector with <100 lines of code 2. **Declarative Schema Mapping**: No code required to map source fields to graph entities 3. **Streaming + Batch Support**: Real-time Kafka streams + bulk CSV imports @@ -20,7 +19,6 @@ This disclosure describes a **pluggable connector framework** for ingesting data 5. **Error Recovery**: Retry logic, dead letter queue, manual resolution workflow **Differentiation**: - - **Airbyte**: General ETL → We're optimized for investigation graphs - **Logstash**: Logs-focused → We handle structured threat intel (STIX, etc.) - **Fivetran**: SaaS databases → We support OSINT, dark web, custom APIs @@ -35,30 +33,25 @@ This disclosure describes a **pluggable connector framework** for ingesting data Intelligence analysts need data from **dozens of sources**: **Threat Intelligence**: - - STIX/TAXII feeds (MISP, Anomali, ThreatConnect) - Commercial feeds (Recorded Future, Flashpoint) **SIEM/Security**: - - Splunk - Microsoft Sentinel - Elasticsearch **OSINT**: - - Social media APIs (Twitter, Telegram, Reddit) - Dark web scraping - Public records databases **Internal**: - - CSV uploads - Excel spreadsheets - Custom REST APIs **Challenges**: - - Each source has different API, auth, data format - Manual integration takes 2-4 weeks per source - No consistent error handling @@ -67,7 +60,6 @@ Intelligence analysts need data from **dozens of sources**: ### 1.2 User Experience Problem **Current state**: For each new data source, engineers must: - 1. Write custom API client code 2. Handle authentication (API keys, OAuth, etc.) 3. Parse response format (JSON, XML, CSV) @@ -87,7 +79,6 @@ Intelligence analysts need data from **dozens of sources**: ### 2.1 Pluggable Connector Architecture **Connector interface**: - ```typescript // connectors/base/Connector.ts export interface Connector { @@ -108,10 +99,10 @@ export interface Connector { } export interface ConnectorDefinition { - id: string; // e.g., "stix_taxii_connector" - name: string; // "STIX/TAXII Feed Connector" + id: string; // e.g., "stix_taxii_connector" + name: string; // "STIX/TAXII Feed Connector" version: string; - auth_methods: string[]; // ["api_key", "basic", "oauth2"] + auth_methods: string[]; // ["api_key", "basic", "oauth2"] config_schema: JSONSchema; supports_streaming: boolean; supports_batch: boolean; @@ -119,30 +110,29 @@ export interface ConnectorDefinition { ``` **Example implementation (STIX connector)**: - ```typescript // connectors/stix_taxii_connector/index.ts -import { Connector, ConnectorDefinition } from "../base/Connector"; -import { TaxiiClient } from "taxii2-client"; +import { Connector, ConnectorDefinition } from '../base/Connector'; +import { TaxiiClient } from 'taxii2-client'; export class STIXTaxiiConnector implements Connector { definition: ConnectorDefinition = { - id: "stix_taxii_connector", - name: "STIX/TAXII Feed Connector", - version: "1.0.0", - auth_methods: ["basic", "api_key"], + id: 'stix_taxii_connector', + name: 'STIX/TAXII Feed Connector', + version: '1.0.0', + auth_methods: ['basic', 'api_key'], config_schema: { - type: "object", + type: 'object', properties: { - taxii_url: { type: "string" }, - collection_id: { type: "string" }, - api_key: { type: "string" }, - poll_interval_seconds: { type: "number", default: 300 }, + taxii_url: { type: 'string' }, + collection_id: { type: 'string' }, + api_key: { type: 'string' }, + poll_interval_seconds: { type: 'number', default: 300 } }, - required: ["taxii_url", "collection_id"], + required: ['taxii_url', 'collection_id'] }, supports_streaming: true, - supports_batch: true, + supports_batch: true }; private client: TaxiiClient; @@ -150,7 +140,7 @@ export class STIXTaxiiConnector implements Connector { async init(config: ConnectorConfig): Promise { this.client = new TaxiiClient({ url: config.taxii_url, - apiKey: config.api_key, + apiKey: config.api_key }); } @@ -158,7 +148,7 @@ export class STIXTaxiiConnector implements Connector { // Fetch STIX objects from TAXII collection const objects = await this.client.getObjects({ collection_id: options.collection_id, - added_after: options.since, + added_after: options.since }); // Yield in batches of 100 @@ -174,11 +164,11 @@ export class STIXTaxiiConnector implements Connector { setInterval(async () => { const new_objects = await this.client.getObjects({ collection_id: options.collection_id, - added_after: this.last_poll_time, + added_after: this.last_poll_time }); for (const obj of new_objects) { - emitter.emit("record", obj); + emitter.emit('record', obj); } this.last_poll_time = new Date(); @@ -189,46 +179,46 @@ export class STIXTaxiiConnector implements Connector { mapToEntity(stix_object: any): Entity | null { // Map STIX object to investigation entity - if (stix_object.type === "threat-actor") { + if (stix_object.type === 'threat-actor') { return { - entity_type: "Person", + entity_type: 'Person', name: stix_object.name, properties: { stix_id: stix_object.id, aliases: stix_object.aliases, sophistication: stix_object.sophistication, - motivation: stix_object.primary_motivation, - }, + motivation: stix_object.primary_motivation + } }; } - if (stix_object.type === "indicator") { + if (stix_object.type === 'indicator') { return { - entity_type: "Indicator", + entity_type: 'Indicator', name: stix_object.name, properties: { stix_id: stix_object.id, pattern: stix_object.pattern, indicator_types: stix_object.indicator_types, valid_from: stix_object.valid_from, - valid_until: stix_object.valid_until, - }, + valid_until: stix_object.valid_until + } }; } - return null; // Unsupported STIX type + return null; // Unsupported STIX type } mapToRelationship(stix_object: any): Relationship | null { - if (stix_object.type === "relationship") { + if (stix_object.type === 'relationship') { return { relationship_type: stix_object.relationship_type.toUpperCase(), source_id: stix_object.source_ref, target_id: stix_object.target_ref, properties: { stix_id: stix_object.id, - description: stix_object.description, - }, + description: stix_object.description + } }; } @@ -238,7 +228,6 @@ export class STIXTaxiiConnector implements Connector { ``` **Registering connectors**: - ```typescript // server/src/services/connectors/ConnectorRegistry.ts export class ConnectorRegistry { @@ -253,7 +242,7 @@ export class ConnectorRegistry { } listAll(): ConnectorDefinition[] { - return Array.from(this.connectors.values()).map((c) => c.definition); + return Array.from(this.connectors.values()).map(c => c.definition); } } @@ -275,17 +264,17 @@ connector_id: splunk_connector version: 1.0.0 entity_mappings: - - source_type: "access:combined" # Splunk sourcetype + - source_type: "access:combined" # Splunk sourcetype target_entity_type: "Person" field_mappings: - name: "user" # Splunk field -> Entity field + name: "user" # Splunk field -> Entity field properties.ip_address: "clientip" properties.user_agent: "useragent" properties.last_seen: "_time" filters: - field: "status" operator: "=" - value: "200" # Only successful requests + value: "200" # Only successful requests - source_type: "firewall:allow" target_entity_type: "NetworkConnection" @@ -299,28 +288,27 @@ entity_mappings: relationship_mappings: - source_type: "access:combined" relationship_type: "ACCESSED" - source_entity: "Person" # Derived from user field - target_entity: "Webpage" # Derived from uri field + source_entity: "Person" # Derived from user field + target_entity: "Webpage" # Derived from uri field field_mappings: properties.timestamp: "_time" properties.http_method: "method" ``` **Schema mapper implementation**: - ```typescript // server/src/services/connectors/SchemaMapper.ts export class SchemaMapper { private mapping: SchemaMapping; constructor(mapping_file: string) { - this.mapping = yaml.load(readFileSync(mapping_file, "utf-8")); + this.mapping = yaml.load(readFileSync(mapping_file, 'utf-8')); } mapToEntity(record: any): Entity | null { // Find matching entity mapping const entity_mapping = this.mapping.entity_mappings.find( - (m) => m.source_type === record._sourcetype + m => m.source_type === record._sourcetype ); if (!entity_mapping) return null; @@ -328,7 +316,7 @@ export class SchemaMapper { // Apply filters for (const filter of entity_mapping.filters || []) { if (!this.evaluateFilter(record, filter)) { - return null; // Record doesn't match filter + return null; // Record doesn't match filter } } @@ -336,12 +324,12 @@ export class SchemaMapper { const entity: Entity = { entity_type: entity_mapping.target_entity_type, name: this.getFieldValue(record, entity_mapping.field_mappings.name), - properties: {}, + properties: {} }; for (const [target_field, source_field] of Object.entries(entity_mapping.field_mappings)) { - if (target_field.startsWith("properties.")) { - const prop_name = target_field.substring("properties.".length); + if (target_field.startsWith('properties.')) { + const prop_name = target_field.substring('properties.'.length); entity.properties[prop_name] = this.getFieldValue(record, source_field); } } @@ -351,7 +339,7 @@ export class SchemaMapper { private getFieldValue(record: any, field_path: string): any { // Support nested fields: "user.email" -> record.user.email - const parts = field_path.split("."); + const parts = field_path.split('.'); let value = record; for (const part of parts) { value = value?.[part]; @@ -362,13 +350,13 @@ export class SchemaMapper { private evaluateFilter(record: any, filter: Filter): boolean { const field_value = this.getFieldValue(record, filter.field); switch (filter.operator) { - case "=": + case '=': return field_value === filter.value; - case "!=": + case '!=': return field_value !== filter.value; - case ">": + case '>': return field_value > filter.value; - case "<": + case '<': return field_value < filter.value; default: return true; @@ -405,10 +393,10 @@ export class IngestService { if (entity) { // Add to investigation with provenance await this.investigationService.addEntity(investigation_id, entity, { - source: "CONNECTOR", + source: 'CONNECTOR', connector_id, source_record: record, - ingestion_timestamp: new Date(), + ingestion_timestamp: new Date() }); entities_added++; } @@ -417,10 +405,10 @@ export class IngestService { const relationship = mapper.mapToRelationship(record); if (relationship) { await this.investigationService.addRelationship(investigation_id, relationship, { - source: "CONNECTOR", + source: 'CONNECTOR', connector_id, source_record: record, - ingestion_timestamp: new Date(), + ingestion_timestamp: new Date() }); relationships_added++; } @@ -431,7 +419,7 @@ export class IngestService { connector_id, record, error: error.message, - timestamp: new Date(), + timestamp: new Date() }); } } @@ -441,7 +429,7 @@ export class IngestService { entities_added, relationships_added, errors, - duration_ms: Date.now() - start_time, + duration_ms: Date.now() - start_time }; } } @@ -461,7 +449,7 @@ export class DeadLetterQueue { failed_record.connector_id, JSON.stringify(failed_record.record), failed_record.error, - failed_record.timestamp, + failed_record.timestamp ] ); @@ -469,21 +457,26 @@ export class DeadLetterQueue { const dlq_count = await this.getCount(); if (dlq_count > 100) { await this.alerting.send({ - severity: "warning", + severity: 'warning', message: `Connector DLQ has ${dlq_count} failed records`, - runbook_url: "https://docs/runbooks/connector-dlq", + runbook_url: 'https://docs/runbooks/connector-dlq' }); } } async retry(dlq_id: string): Promise { // Fetch failed record - const failed_record = await db.query(`SELECT * FROM connector_dlq WHERE id = $1`, [dlq_id]); + const failed_record = await db.query( + `SELECT * FROM connector_dlq WHERE id = $1`, + [dlq_id] + ); // Retry ingestion - await this.ingestService.ingest(failed_record.connector_id, failed_record.investigation_id, { - records: [failed_record.record], - }); + await this.ingestService.ingest( + failed_record.connector_id, + failed_record.investigation_id, + { records: [failed_record.record] } + ); // Remove from DLQ await db.query(`DELETE FROM connector_dlq WHERE id = $1`, [dlq_id]); @@ -509,15 +502,14 @@ export class DeadLetterQueue { ## 4. Performance Benchmarks -| Connector | Mode | Throughput | Latency (p95) | -| ---------- | ------ | ----------------- | ------------- | -| STIX/TAXII | Batch | 1,000 objects/sec | 120ms | -| Splunk | Stream | 5,000 events/sec | 45ms | -| CSV | Batch | 10,000 rows/sec | N/A | -| Sentinel | Batch | 2,000 alerts/sec | 85ms | +| Connector | Mode | Throughput | Latency (p95) | +|-----------|------|-----------|---------------| +| STIX/TAXII | Batch | 1,000 objects/sec | 120ms | +| Splunk | Stream | 5,000 events/sec | 45ms | +| CSV | Batch | 10,000 rows/sec | N/A | +| Sentinel | Batch | 2,000 alerts/sec | 85ms | **Reliability**: - - Uptime: 99.95% - Error rate: 0.08% (80 failed records per 100,000) - DLQ resolution time: <2 hours (median) @@ -527,19 +519,16 @@ export class DeadLetterQueue { ## 5. Competitive Advantages **vs. Airbyte**: - - We're optimized for threat intel (STIX, TAXII, SIEM) - We have provenance tracking built-in - We integrate directly with investigation graphs **vs. Logstash**: - - We support structured threat intel (not just logs) - We have declarative schema mapping - We have dead letter queue + retry **vs. Fivetran**: - - We support OSINT, dark web, custom APIs - We're open-source friendly - We have streaming + batch modes @@ -559,7 +548,6 @@ export class DeadLetterQueue { ### Patentability Assessment **Preliminary opinion**: Moderate patentability - - **Novel combination**: Pluggable SDK + declarative mapping + provenance - **Technical improvement**: 10-20x faster connector development - **Non-obvious**: Unified streaming + batch API is non-obvious diff --git a/docs/ip/F4-multi-cloud-arbitrage.md b/docs/ip/F4-multi-cloud-arbitrage.md index 538f7418559..090783e29e7 100644 --- a/docs/ip/F4-multi-cloud-arbitrage.md +++ b/docs/ip/F4-multi-cloud-arbitrage.md @@ -12,7 +12,6 @@ This disclosure describes a **dynamic multi-cloud workload placement system** that continuously optimizes compute resource allocation across AWS, GCP, Azure, and colocation facilities by fusing **carbon incentives, energy pricing, spot/reserved capacity arbitrage, and regulatory compliance** into a unified scoring model. The system includes an A/B benchmark harness to validate cost savings claims against industry-standard optimizers (AWS Cost Explorer, GCP Recommender, Spot.io). **Core Innovation**: Unlike existing FinOps tools that focus on single-provider cost optimization, our system performs **cross-provider arbitrage in real-time** while simultaneously optimizing for: - 1. **Financial cost** (spot pricing, reserved capacity, sustained use discounts) 2. **Carbon intensity** (regional grid mix, renewable energy availability) 3. **Energy pricing** (time-of-use tariffs, demand response programs) @@ -27,14 +26,12 @@ The system maintains an **immutable policy compliance ledger** that records ever ### 1.1 Technical Problem Modern intelligence platforms require **massive compute resources** for: - - Graph analytics (Neo4j clusters processing billions of edges) - Multi-modal AI workloads (video analysis, NLP, deepfake detection) - Real-time streaming ingestion (Kafka, TimescaleDB) - Long-running simulations (narrative modeling, cognitive targeting) **Current limitations of single-provider optimization**: - - AWS Cost Explorer only optimizes within AWS (no cross-cloud arbitrage) - GCP Recommender has 24-48 hour lag (too slow for spot market volatility) - Azure Advisor lacks carbon intensity awareness @@ -42,7 +39,6 @@ Modern intelligence platforms require **massive compute resources** for: - No existing tool enforces **regulatory constraints** (GDPR, data residency) during optimization **Cost inefficiencies**: - - Enterprises overspend 30-45% on cloud compute due to: - Single-provider lock-in (no arbitrage opportunities) - Ignoring spot pricing windows (ephemeral 50-90% discounts) @@ -258,7 +254,6 @@ class CapacityPortfolio: ### 2.4 Real-Time Carbon Intensity Tracking **Data Sources**: - - **Electricity Maps API**: Real-time grid carbon intensity per region (gCO2eq/kWh) - **WattTime API**: Marginal carbon intensity (what happens when you add 1 kW load) - **Cloud provider APIs**: AWS, GCP, Azure publish carbon intensity data @@ -267,7 +262,7 @@ class CapacityPortfolio: ```typescript // server/src/services/carbon-tracker.ts -import axios from "axios"; +import axios from 'axios'; interface CarbonSnapshot { region: string; @@ -279,16 +274,16 @@ interface CarbonSnapshot { export class CarbonTracker { async fetchCarbonIntensity(region: CloudRegion): Promise { // Query Electricity Maps API - const response = await axios.get("https://api.electricitymap.org/v3/carbon-intensity/latest", { + const response = await axios.get('https://api.electricitymap.org/v3/carbon-intensity/latest', { params: { zone: region.electricity_zone }, - headers: { "auth-token": process.env.ELECTRICITY_MAPS_API_KEY }, + headers: { 'auth-token': process.env.ELECTRICITY_MAPS_API_KEY } }); return { region: region.name, carbon_intensity_gCO2_per_kWh: response.data.carbonIntensity, renewable_pct: response.data.fossilFreePercentage, - timestamp: new Date(response.data.datetime), + timestamp: new Date(response.data.datetime) }; } @@ -297,7 +292,9 @@ export class CarbonTracker { candidate_regions: CloudRegion[] ): Promise { // Fetch carbon snapshots for all candidates - const snapshots = await Promise.all(candidate_regions.map((r) => this.fetchCarbonIntensity(r))); + const snapshots = await Promise.all( + candidate_regions.map(r => this.fetchCarbonIntensity(r)) + ); // Sort by carbon intensity (ascending) snapshots.sort((a, b) => a.carbon_intensity_gCO2_per_kWh - b.carbon_intensity_gCO2_per_kWh); @@ -305,11 +302,9 @@ export class CarbonTracker { // Select region with lowest carbon intensity const optimal = snapshots[0]; - console.log( - `Optimal region for carbon: ${optimal.region} (${optimal.carbon_intensity_gCO2_per_kWh} gCO2/kWh)` - ); + console.log(`Optimal region for carbon: ${optimal.region} (${optimal.carbon_intensity_gCO2_per_kWh} gCO2/kWh)`); - return candidate_regions.find((r) => r.name === optimal.region)!; + return candidate_regions.find(r => r.name === optimal.region)!; } } ``` @@ -526,14 +521,13 @@ class ABBenchmarkHarness: **Baseline**: AWS Cost Explorer recommendations (single-provider optimization) **Our system**: Multi-cloud arbitrage with incentive fusion -| Metric | Baseline | Our System | Improvement | -| ---------------------- | -------- | ---------- | ------------------------ | -| Monthly compute cost | $120,000 | $78,000 | **35% reduction** | -| Carbon emitted (tCO2e) | 45 | 27 | **40% reduction** | -| SLA violations | 2.1% | 1.8% | **14% fewer violations** | +| Metric | Baseline | Our System | Improvement | +|--------|----------|------------|-------------| +| Monthly compute cost | $120,000 | $78,000 | **35% reduction** | +| Carbon emitted (tCO2e) | 45 | 27 | **40% reduction** | +| SLA violations | 2.1% | 1.8% | **14% fewer violations** | **Key insights**: - - Spot pricing arbitrage contributed 18% of cost savings - Carbon-aware routing contributed 12% (leveraging renewable energy credits) - Regional energy pricing contributed 5% (time-of-use tariffs) @@ -545,7 +539,6 @@ class ABBenchmarkHarness: - **p99**: 280 ms **Breakdown**: - - Fetch pricing snapshots: 20 ms (parallel API calls to AWS, GCP, Azure) - Fetch carbon snapshots: 15 ms (Electricity Maps API) - OPA policy check: 8 ms @@ -561,19 +554,18 @@ class ABBenchmarkHarness: ## 5. Prior Art Comparison -| Feature | AWS Cost Explorer | GCP Recommender | Spot.io | **Our System** | -| ----------------------------- | ----------------- | --------------- | ------- | -------------- | -| Cross-cloud arbitrage | ❌ | ❌ | ❌ | ✅ | -| Carbon intensity optimization | ❌ | Partial | ❌ | ✅ | -| Energy pricing awareness | ❌ | ❌ | ❌ | ✅ | -| Policy enforcement (OPA) | ❌ | ❌ | ❌ | ✅ | -| Provenance ledger | ❌ | ❌ | ❌ | ✅ | -| A/B benchmark harness | ❌ | ❌ | ❌ | ✅ | -| Spot + reserved hedging | Partial | Partial | ✅ | ✅ | -| Real-time placement | ❌ (24h lag) | ❌ (48h lag) | ✅ | ✅ | +| Feature | AWS Cost Explorer | GCP Recommender | Spot.io | **Our System** | +|---------|-------------------|-----------------|---------|----------------| +| Cross-cloud arbitrage | ❌ | ❌ | ❌ | ✅ | +| Carbon intensity optimization | ❌ | Partial | ❌ | ✅ | +| Energy pricing awareness | ❌ | ❌ | ❌ | ✅ | +| Policy enforcement (OPA) | ❌ | ❌ | ❌ | ✅ | +| Provenance ledger | ❌ | ❌ | ❌ | ✅ | +| A/B benchmark harness | ❌ | ❌ | ❌ | ✅ | +| Spot + reserved hedging | Partial | Partial | ✅ | ✅ | +| Real-time placement | ❌ (24h lag) | ❌ (48h lag) | ✅ | ✅ | **Key differentiators**: - - We're the **only system** that performs cross-cloud arbitrage while optimizing for carbon and energy - We're the **only system** that enforces compliance policies (data residency, export controls) at placement time - We're the **only system** that maintains provenance-backed audit trails for FinOps reporting @@ -583,19 +575,16 @@ class ABBenchmarkHarness: ## 6. Competitive Advantages ### 6.1 vs. AWS Cost Explorer - - **Limited to AWS**: Cannot compare cross-cloud pricing - **No carbon awareness**: Ignores sustainability goals - **24-48 hour lag**: Recommendations based on historical data (too slow for spot markets) ### 6.2 vs. GCP Recommender - - **Limited to GCP**: No multi-cloud support - **Partial carbon tracking**: Only shows GCP's carbon footprint (no optimization) - **No policy enforcement**: Cannot enforce data residency constraints ### 6.3 vs. Spot.io - - **Financial-only optimization**: Ignores carbon, energy, compliance - **No provenance**: No audit trail for placement decisions - **Proprietary black box**: Cannot customize scoring weights @@ -627,11 +616,11 @@ Example tenant configuration: ```yaml tenant_id: acme-corp scoring_weights: - w_financial: 0.50 # 50% weight on cost - w_carbon: 0.25 # 25% weight on carbon - w_energy: 0.15 # 15% weight on energy pricing - w_compliance: 100 # Hard constraint (infinite penalty if violated) - w_latency: 0.10 # 10% weight on latency + w_financial: 0.50 # 50% weight on cost + w_carbon: 0.25 # 25% weight on carbon + w_energy: 0.15 # 15% weight on energy pricing + w_compliance: 100 # Hard constraint (infinite penalty if violated) + w_latency: 0.10 # 10% weight on latency capacity_portfolio: spot_pct: 0.20 @@ -653,13 +642,11 @@ compliance_policies: ## 8. Future Enhancements (H2-H3) ### H2 (v1 Production Hardening) - - **ML-based demand forecasting**: Predict workload demand 7 days ahead to optimize reserved capacity purchases - **Automated carbon credit trading**: Automatically purchase carbon offsets when low-carbon regions unavailable - **Multi-region failover**: Automatically move workloads if primary region experiences outage ### H3 (Moonshot) - - **Energy futures arbitrage**: Trade energy futures contracts to hedge against price volatility - **Quantum-resistant compliance ledger**: Upgrade provenance ledger to quantum-resistant cryptography - **Federated FinOps**: Cross-organization cost sharing for multi-tenant platforms @@ -679,19 +666,16 @@ compliance_policies: ### 9.2 Patentability Assessment **Preliminary opinion**: Strong patentability based on: - - **Novel combination**: Multi-dimensional optimization (cost + carbon + energy + compliance) not found in prior art - **Technical improvement**: Quantifiable cost/carbon reductions with empirical validation - **Non-obvious**: Fusing carbon intensity with spot pricing arbitrage is non-obvious to practitioners **Recommended patent strategy**: - 1. **Method claims**: "Method for optimizing cloud workload placement using unified incentive fusion" 2. **System claims**: "System for multi-cloud arbitrage with carbon intensity awareness" 3. **Data structure claims**: "Provenance ledger data structure for audit-ready FinOps reporting" **Prior art search domains**: - - Cloud cost optimization (AWS Cost Explorer, GCP Recommender) - Carbon-aware computing (Google Carbon Sense, Microsoft Sustainability Calculator) - Spot instance optimization (Spot.io, AWS EC2 Spot Fleet) @@ -702,19 +686,16 @@ compliance_policies: ## 10. References ### 10.1 Technical Papers - - "Carbon-Aware Computing" (Microsoft Research, 2022) - "Hedging Against Spot Instance Termination" (AWS re:Invent 2021) - "Policy-Based Resource Allocation in Cloud" (USENIX ATC 2020) ### 10.2 Industry Reports - - "State of FinOps 2024" (FinOps Foundation) - "Cloud Carbon Footprint Methodology" (Cloud Carbon Footprint Project) - "Multi-Cloud Cost Optimization Best Practices" (Flexera) ### 10.3 APIs - - Electricity Maps API: https://api.electricitymap.org/ - WattTime API: https://www.watttime.org/api-documentation/ - AWS Pricing API: https://aws.amazon.com/pricing/ @@ -726,7 +707,6 @@ compliance_policies: **END OF DISCLOSURE** **Next Steps**: - 1. Conduct formal prior art search (patent attorney) 2. Build proof-of-concept arbitrage engine (30-day A/B test) 3. File provisional patent application diff --git a/docs/ip/F5-graphrag-query-preview.md b/docs/ip/F5-graphrag-query-preview.md index 124e165a5aa..6ec525c5489 100644 --- a/docs/ip/F5-graphrag-query-preview.md +++ b/docs/ip/F5-graphrag-query-preview.md @@ -12,14 +12,12 @@ This disclosure describes a **graph-native retrieval-augmented generation (GraphRAG) system** that uses Neo4j subgraph queries as structured context for LLM prompts. Unlike traditional RAG systems that retrieve flat documents, our system retrieves **multi-hop graph neighborhoods** (entities + relationships + properties) and transforms them into LLM-readable context with full provenance linking. **Core Innovation**: - 1. **Query Preview**: Users see exactly what will be retrieved before execution (transparency) 2. **Explainable Retrieval Paths**: Every entity/edge included in context comes with reasoning (why was this selected?) 3. **Provenance Linking**: Every LLM-generated insight is traceable back to source graph entities (audit-ready) 4. **Temporal Subgraph Support**: Query historical graph states ("what did we know on 2024-03-15?") **Differentiation from Existing RAG**: - - **LangChain RetrievalQA**: Retrieves flat documents → Our system retrieves structured graphs - **LlamaIndex GraphRAG**: Basic graph traversal → We provide explainable paths + query preview - **Microsoft GraphRAG**: Document-based chunking with graph augmentation → We use native graph queries as primary context @@ -31,7 +29,6 @@ This disclosure describes a **graph-native retrieval-augmented generation (Graph ### 1.1 Technical Problem **Limitations of traditional RAG (document-based)**: - - **Context loss**: Documents are chunked into flat text, losing relational structure - Example: "John Smith works for Acme Corp" → Two separate chunks, relationship lost - **No explainability**: Users don't know which documents were retrieved or why @@ -39,14 +36,12 @@ This disclosure describes a **graph-native retrieval-augmented generation (Graph - **No temporal context**: Cannot query "what did the knowledge base contain on March 15?" **Limitations of existing GraphRAG systems**: - - **No query preview**: Users submit queries blindly (black box retrieval) - **Opaque retrieval**: No explanation of why entities/edges were selected - **No provenance**: LLM outputs not linked back to source graph data - **Performance issues**: Naive graph traversal causes query explosion (millions of nodes) **Real-world failure scenario**: - ``` User: "Tell me about John Smith's connections to Russian entities" Traditional RAG: Retrieves 5 documents mentioning "John Smith" → Misses 12 relevant @@ -59,7 +54,6 @@ Our system: Retrieves 2-hop neighborhood filtered by "Russian" tag → 23 entiti ### 1.2 User Experience Problem Intelligence analysts need to: - - **Trust AI recommendations**: Cannot blindly trust LLM outputs in high-stakes investigations - **Audit results**: Must be able to trace every insight back to source data - **Understand retrieval**: Need transparency into what data informed the LLM @@ -178,7 +172,7 @@ Intelligence analysts need to: ```typescript // server/src/services/graphrag/query-preview.ts -import { Driver, Session } from "neo4j-driver"; +import { Driver, Session } from 'neo4j-driver'; interface QueryPreview { estimated_nodes: number; @@ -215,19 +209,14 @@ export class GraphRAGQueryPreview { const estimated_latency_ms = this.estimateLatency(estimated_nodes, estimated_edges); // Generate human-readable explanation - const explanation = this.generateExplanation( - anchor_entity_id, - filters, - max_hops, - estimated_nodes - ); + const explanation = this.generateExplanation(anchor_entity_id, filters, max_hops, estimated_nodes); return { estimated_nodes, estimated_edges, estimated_latency_ms, cypher_query: cypher, - explanation, + explanation }; } finally { await session.close(); @@ -247,20 +236,18 @@ export class GraphRAGQueryPreview { whereClauses.push(`b.risk_score >= ${filters.min_risk_score}`); } if (filters.entity_types && filters.entity_types.length > 0) { - const types = filters.entity_types.map((t) => `'${t}'`).join(", "); + const types = filters.entity_types.map(t => `'${t}'`).join(', '); whereClauses.push(`b.entity_type IN [${types}]`); } if (filters.date_range) { - whereClauses.push( - `all(rel in relationships(path) WHERE rel.timestamp >= datetime('${filters.date_range.start}') AND rel.timestamp <= datetime('${filters.date_range.end}'))` - ); + whereClauses.push(`all(rel in relationships(path) WHERE rel.timestamp >= datetime('${filters.date_range.start}') AND rel.timestamp <= datetime('${filters.date_range.end}'))`); } if (whereClauses.length > 0) { - query += ` WHERE ${whereClauses.join(" AND ")}`; + query += ` WHERE ${whereClauses.join(' AND ')}`; } - query += ` RETURN path LIMIT 1000`; // Safety limit + query += ` RETURN path LIMIT 1000`; // Safety limit return query; } @@ -284,7 +271,7 @@ export class GraphRAGQueryPreview { private estimateLatency(nodes: number, edges: number): number { // Empirical formula: latency = 50ms + (nodes * 0.5ms) + (edges * 0.2ms) - return 50 + nodes * 0.5 + edges * 0.2; + return 50 + (nodes * 0.5) + (edges * 0.2); } private generateExplanation( @@ -299,7 +286,7 @@ export class GraphRAGQueryPreview { explanation += `, filtered by risk_score >= ${filters.min_risk_score}`; } if (filters.entity_types && filters.entity_types.length > 0) { - explanation += `, limited to types: ${filters.entity_types.join(", ")}`; + explanation += `, limited to types: ${filters.entity_types.join(', ')}`; } explanation += `. Estimated ${estimated_nodes} entities will be retrieved.`; @@ -310,13 +297,12 @@ export class GraphRAGQueryPreview { ``` **User flow**: - ```typescript // Client-side usage const preview = await graphragService.preview({ - anchor_entity_id: "E123", + anchor_entity_id: 'E123', filters: { min_risk_score: 0.7 }, - max_hops: 2, + max_hops: 2 }); // Show modal to user: @@ -334,7 +320,7 @@ if (userApproves) { ```typescript // server/src/services/graphrag/explainable-paths.ts -import { Path, Node, Relationship } from "neo4j-driver"; +import { Path, Node, Relationship } from 'neo4j-driver'; interface EntityExplanation { entity_id: string; @@ -354,39 +340,30 @@ export class ExplainablePathGenerator { for (const path of retrieved_paths) { const target_entity = path.end as Node; - const relationships = path.segments.map((seg) => seg.relationship); + const relationships = path.segments.map(seg => seg.relationship); const why_included: string[] = []; // Reason 1: Distance from anchor const hops = relationships.length; - why_included.push( - `${hops} hop${hops > 1 ? "s" : ""} from anchor entity ${anchor_entity.properties.name}` - ); + why_included.push(`${hops} hop${hops > 1 ? 's' : ''} from anchor entity ${anchor_entity.properties.name}`); // Reason 2: Relationship types - const rel_types = relationships.map((r) => r.type).join(" → "); + const rel_types = relationships.map(r => r.type).join(' → '); why_included.push(`Connected via path: ${rel_types}`); // Reason 3: Filter satisfaction if (filters.min_risk_score && target_entity.properties.risk_score >= filters.min_risk_score) { - why_included.push( - `risk_score = ${target_entity.properties.risk_score} (above threshold ${filters.min_risk_score})` - ); + why_included.push(`risk_score = ${target_entity.properties.risk_score} (above threshold ${filters.min_risk_score})`); } - if ( - filters.entity_types && - filters.entity_types.includes(target_entity.properties.entity_type) - ) { + if (filters.entity_types && filters.entity_types.includes(target_entity.properties.entity_type)) { why_included.push(`Entity type '${target_entity.properties.entity_type}' matches filter`); } // Reason 4: Semantic relevance (if using vector similarity) if (target_entity.properties.embedding_similarity) { - why_included.push( - `Semantic similarity = ${target_entity.properties.embedding_similarity.toFixed(2)}` - ); + why_included.push(`Semantic similarity = ${target_entity.properties.embedding_similarity.toFixed(2)}`); } // Generate path string @@ -400,7 +377,7 @@ export class ExplainablePathGenerator { entity_name: target_entity.properties.name, why_included, path_from_anchor, - relevance_score, + relevance_score }); } @@ -411,8 +388,8 @@ export class ExplainablePathGenerator { } private pathToString(path: Path): string { - const nodes = [path.start, ...path.segments.map((s) => s.end)]; - const rels = path.segments.map((s) => s.relationship); + const nodes = [path.start, ...path.segments.map(s => s.end)]; + const rels = path.segments.map(s => s.relationship); let result = nodes[0].properties.name; for (let i = 0; i < rels.length; i++) { @@ -444,7 +421,6 @@ export class ExplainablePathGenerator { ``` **Example output**: - ```json { "entity_id": "E456", @@ -468,9 +444,9 @@ export class ExplainablePathGenerator { // server/src/services/graphrag/provenance-linker.ts interface ProvenanceRecord { llm_output: string; - source_entities: string[]; // Entity IDs mentioned in output - retrieval_query: string; // Original Cypher query - retrieved_subgraph_hash: string; // SHA-256 of retrieved data + source_entities: string[]; // Entity IDs mentioned in output + retrieval_query: string; // Original Cypher query + retrieved_subgraph_hash: string; // SHA-256 of retrieved data llm_model: string; timestamp: Date; } @@ -490,11 +466,11 @@ export class ProvenanceLinker { // Build provenance record const record: ProvenanceRecord = { llm_output, - source_entities: mentioned_entities.map((e) => e.properties.id), + source_entities: mentioned_entities.map(e => e.properties.id), retrieval_query: query_metadata.cypher_query, retrieved_subgraph_hash: subgraph_hash, llm_model: query_metadata.llm_model, - timestamp: new Date(), + timestamp: new Date() }; // Store in PostgreSQL provenance table @@ -529,13 +505,13 @@ export class ProvenanceLinker { private computeSubgraphHash(entities: Node[]): string { // Serialize entities deterministically const serialized = entities - .map((e) => JSON.stringify(e.properties, Object.keys(e.properties).sort())) + .map(e => JSON.stringify(e.properties, Object.keys(e.properties).sort())) .sort() - .join("|"); + .join('|'); // Compute SHA-256 hash - const crypto = require("crypto"); - return crypto.createHash("sha256").update(serialized).digest("hex"); + const crypto = require('crypto'); + return crypto.createHash('sha256').update(serialized).digest('hex'); } private async saveToDatabase(record: ProvenanceRecord): Promise { @@ -549,7 +525,7 @@ export class ProvenanceLinker { record.retrieval_query, record.retrieved_subgraph_hash, record.llm_model, - record.timestamp, + record.timestamp ] ); } @@ -557,7 +533,6 @@ export class ProvenanceLinker { ``` **Audit use case**: - ```sql -- Find all LLM outputs that referenced Entity E456 SELECT llm_output, timestamp, llm_model @@ -583,7 +558,6 @@ RETURN path ``` **Implementation**: - ```typescript // server/src/services/graphrag/temporal-queries.ts export class TemporalGraphRAG { @@ -604,7 +578,7 @@ export class TemporalGraphRAG { const session = this.driver.session(); const result = await session.run(cypher, { anchor_id: anchor_entity_id, - as_of_date: as_of_date.toISOString(), + as_of_date: as_of_date.toISOString() }); return this.parseSubgraphResult(result); @@ -632,7 +606,7 @@ export class TemporalGraphRAG { const result = await session.run(cypher, { anchor_id: anchor_entity_id, start_date: start_date.toISOString(), - end_date: end_date.toISOString(), + end_date: end_date.toISOString() }); return this.parseChangeLogs(result); @@ -662,16 +636,15 @@ export class TemporalGraphRAG { ### 4.1 Query Latency -| Graph Size | Hops | Nodes Retrieved | Query Latency (p95) | -| ------------ | ---- | --------------- | ------------------- | -| 1M entities | 1 | 20-50 | 45 ms | -| 1M entities | 2 | 100-300 | 180 ms | -| 1M entities | 3 | 500-1500 | 850 ms | -| 10M entities | 1 | 20-50 | 85 ms | -| 10M entities | 2 | 100-300 | 420 ms | +| Graph Size | Hops | Nodes Retrieved | Query Latency (p95) | +|------------|------|-----------------|---------------------| +| 1M entities | 1 | 20-50 | 45 ms | +| 1M entities | 2 | 100-300 | 180 ms | +| 1M entities | 3 | 500-1500 | 850 ms | +| 10M entities | 1 | 20-50 | 85 ms | +| 10M entities | 2 | 100-300 | 420 ms | **Key insights**: - - 1-hop queries scale to 10M+ entities with <100ms latency - 2-hop queries are practical for real-time UX (<500ms) - 3-hop queries require caching or async execution for large graphs @@ -682,14 +655,13 @@ export class TemporalGraphRAG { **Task**: "Identify all entities connected to John Smith with risk > 0.7" -| RAG System | Precision | Recall | F1 Score | -| ------------------------------------ | --------- | -------- | -------- | -| Document RAG (LangChain) | 0.68 | 0.52 | 0.59 | -| Basic GraphRAG (no explainability) | 0.82 | 0.74 | 0.78 | -| **Our GraphRAG** (explainable paths) | **0.91** | **0.87** | **0.89** | +| RAG System | Precision | Recall | F1 Score | +|------------|-----------|--------|----------| +| Document RAG (LangChain) | 0.68 | 0.52 | 0.59 | +| Basic GraphRAG (no explainability) | 0.82 | 0.74 | 0.78 | +| **Our GraphRAG** (explainable paths) | **0.91** | **0.87** | **0.89** | **Why we outperform**: - - Structured graph context preserves relationships (vs. flat documents) - Explainable paths help LLM understand entity relevance - Provenance linking prevents hallucination (LLM can't invent entities) @@ -698,12 +670,12 @@ export class TemporalGraphRAG { **Metric**: How accurate are estimated node counts? -| Actual Nodes | Estimated Nodes | Error | -| ------------ | --------------- | ------ | -| 50 | 48 | -4% | -| 120 | 135 | +12.5% | -| 300 | 280 | -6.7% | -| 1200 | 1450 | +20.8% | +| Actual Nodes | Estimated Nodes | Error | +|--------------|-----------------|-------| +| 50 | 48 | -4% | +| 120 | 135 | +12.5% | +| 300 | 280 | -6.7% | +| 1200 | 1450 | +20.8% | **Average error**: ±10% (acceptable for preview UI) @@ -711,18 +683,17 @@ export class TemporalGraphRAG { ## 5. Prior Art Comparison -| Feature | LangChain RetrievalQA | LlamaIndex GraphRAG | Microsoft GraphRAG | **Our System** | -| ---------------------- | --------------------- | ------------------- | ------------------ | -------------- | -| Graph-native retrieval | ❌ (documents) | ✅ | Partial (hybrid) | ✅ | -| Query preview | ❌ | ❌ | ❌ | ✅ | -| Explainable retrieval | ❌ | ❌ | ❌ | ✅ | -| Provenance linking | ❌ | ❌ | ❌ | ✅ | -| Temporal queries | ❌ | ❌ | ❌ | ✅ | -| Multi-hop reasoning | ❌ | ✅ | ✅ | ✅ | -| Neo4j native | ❌ | Partial | ❌ | ✅ | +| Feature | LangChain RetrievalQA | LlamaIndex GraphRAG | Microsoft GraphRAG | **Our System** | +|---------|----------------------|---------------------|-------------------|----------------| +| Graph-native retrieval | ❌ (documents) | ✅ | Partial (hybrid) | ✅ | +| Query preview | ❌ | ❌ | ❌ | ✅ | +| Explainable retrieval | ❌ | ❌ | ❌ | ✅ | +| Provenance linking | ❌ | ❌ | ❌ | ✅ | +| Temporal queries | ❌ | ❌ | ❌ | ✅ | +| Multi-hop reasoning | ❌ | ✅ | ✅ | ✅ | +| Neo4j native | ❌ | Partial | ❌ | ✅ | **Key differentiators**: - - **Query preview**: We're the only system that shows users what will be retrieved before execution - **Explainable retrieval**: We provide reasoning for every entity/edge inclusion - **Provenance linking**: We maintain cryptographic audit trail linking outputs to sources @@ -733,19 +704,16 @@ export class TemporalGraphRAG { ## 6. Competitive Advantages ### 6.1 vs. LangChain RetrievalQA - - **Structured context**: Preserves graph relationships vs. flat document chunks - **Explainability**: Users see why entities were retrieved (not black box) - **Provenance**: Full audit trail for compliance ### 6.2 vs. LlamaIndex GraphRAG - - **Query preview**: Users approve queries before execution (cost control) - **Temporal support**: Query historical states (not just current) - **Provenance ledger**: Cryptographic audit trail (not just metadata) ### 6.3 vs. Microsoft GraphRAG - - **Native graph queries**: Use Cypher directly vs. document chunking + graph augmentation - **Explainable paths**: Show reasoning for entity inclusion - **Production-ready**: Deployed at scale (1M+ entities, <500ms latency) @@ -822,13 +790,11 @@ type EntityExplanation { ## 8. Future Enhancements (H2-H3) ### H2 (v1 Production Hardening) - - **Semantic similarity filtering**: Use entity embeddings for relevance scoring - **Multi-anchor queries**: Start from multiple entities simultaneously - **Cached subgraph templates**: Pre-compute common query patterns ### H3 (Moonshot) - - **Self-improving retrieval**: Learn optimal hop depth/filters from user feedback - **Cross-investigation knowledge transfer**: Reuse successful query patterns - **Federated GraphRAG**: Query across multiple Neo4j instances (air-gapped environments) @@ -848,13 +814,11 @@ type EntityExplanation { ### 9.2 Patentability Assessment **Preliminary opinion**: Moderate-to-strong patentability based on: - - **Novel combination**: Query preview + explainability + provenance in single system - **Technical improvement**: Measurably better LLM accuracy (89% vs 59% F1) - **Non-obvious**: Using PROFILE for pre-execution cost estimation is non-obvious to practitioners **Recommended patent strategy**: - 1. **Method claims**: "Method for graph-based retrieval with query preview and explainable paths" 2. **System claims**: "System for provenance-linked GraphRAG with temporal support" 3. **Data structure claims**: "Provenance record linking LLM outputs to graph entities" diff --git a/docs/ip/F6-investigation-workflow-golden-path.md b/docs/ip/F6-investigation-workflow-golden-path.md index 544d20fa30b..568e252372b 100644 --- a/docs/ip/F6-investigation-workflow-golden-path.md +++ b/docs/ip/F6-investigation-workflow-golden-path.md @@ -12,7 +12,6 @@ This disclosure describes an **end-to-end intelligence investigation workflow** optimized for the "golden path" user journey: **Investigation → Entities → Relationships → AI Copilot → Results**. The system integrates graph visualization, collaborative editing, AI-driven recommendations, and cognitive targeting controls into a unified UX designed specifically for intelligence analysts. **Core Innovation**: - 1. **Investigation-First Data Model**: All entities/relationships belong to investigations (not global graph), enabling multi-tenant isolation and scoped analysis 2. **AI Copilot Integration**: Context-aware recommendations powered by GraphRAG + Multi-LLM orchestration with explainable provenance 3. **Tunable Cognitive Targeting**: Sliders for adjusting active measures aggressiveness directly in investigation UI @@ -20,7 +19,6 @@ This disclosure describes an **end-to-end intelligence investigation workflow** 5. **Provenance-Linked Exports**: Generated reports (PDF, GraphML) include full audit trails **Differentiation from Existing Platforms**: - - **Palantir Gotham**: General-purpose graph platform → We optimize for investigation workflows specifically - **Neo4j Bloom**: Visualization-focused → We provide end-to-end workflow with AI copilot - **IBM i2 Analyst's Notebook**: Desktop app, no cloud → We're cloud-native with real-time collab @@ -35,7 +33,6 @@ This disclosure describes an **end-to-end intelligence investigation workflow** Intelligence analysts waste 60-70% of their time on **tool-switching overhead**: **Typical analyst workflow (WITHOUT our system)**: - 1. Create investigation in Excel spreadsheet 2. Collect entities from multiple sources (OSINT, databases, reports) 3. Import entities into graph tool (Maltego, i2 Analyst's Notebook) @@ -47,7 +44,6 @@ Intelligence analysts waste 60-70% of their time on **tool-switching overhead**: 9. Share via email attachments (no version control) **Problems**: - - **Context loss**: Data lives in 5+ disconnected tools - **No provenance**: Cannot trace insights back to source data - **Manual drudgery**: Copying/pasting entities between systems @@ -57,14 +53,12 @@ Intelligence analysts waste 60-70% of their time on **tool-switching overhead**: ### 1.2 Technical Problem **Existing graph tools lack investigation-specific features**: - - Neo4j Bloom: Great visualization, but no investigation management or AI copilot - Palantir Gotham: Powerful but requires 6-month training + enterprise licensing - Maltego: OSINT-focused, no support for internal data connectors - i2 Analyst's Notebook: Desktop app, no cloud deployment or real-time collab **What's needed**: A **purpose-built investigation platform** that integrates: - - Investigation management (CRUD, sharing, permissions) - Entity/relationship modeling with graph DB backend - AI copilot with contextual awareness @@ -227,14 +221,12 @@ Intelligence analysts waste 60-70% of their time on **tool-switching overhead**: **Key insight**: All entities/relationships belong to investigations (not global graph). **Benefits**: - - **Multi-tenant isolation**: Investigation A cannot see Investigation B's data - **Scoped analysis**: AI copilot only considers entities within current investigation - **Permission control**: Investigation owner can grant/revoke access - **Audit trails**: All changes tracked per-investigation **Neo4j schema**: - ```cypher // Investigations are top-level containers (:Investigation { @@ -285,7 +277,6 @@ Intelligence analysts waste 60-70% of their time on **tool-switching overhead**: ``` **API example**: - ```graphql mutation CreateInvestigation { createInvestigation( @@ -308,11 +299,14 @@ mutation AddEntity { investigation_id: "inv_123" entity_type: "Person" name: "John Smith" - properties: { occupation: "CEO", nationality: "US" } + properties: { + occupation: "CEO" + nationality: "US" + } ) { id name - risk_score # Auto-computed by system + risk_score # Auto-computed by system } } @@ -322,7 +316,11 @@ mutation AddRelationship { source_entity_id: "ent_456" target_entity_id: "ent_789" relationship_type: "TRANSFERRED_TO" - properties: { amount: "2500000", currency: "USD", date: "2024-01-15" } + properties: { + amount: "2500000" + currency: "USD" + date: "2024-01-15" + } ) { id source { @@ -348,11 +346,10 @@ mutation AddRelationship { 4. **Export control**: "Check for ITAR violations in this investigation" **Example implementation**: - ```typescript // server/src/services/CopilotService.ts -import { GraphRAGService } from "./graphrag/GraphRAGService"; -import { MultiLLMOrchestrator } from "./orchestrator/MultiLLMOrchestrator"; +import { GraphRAGService } from './graphrag/GraphRAGService'; +import { MultiLLMOrchestrator } from './orchestrator/MultiLLMOrchestrator'; export class CopilotService { constructor( @@ -369,7 +366,10 @@ export class CopilotService { await this.checkPermissions(investigation_id, user_id); // 2. Use GraphRAG to retrieve relevant subgraph - const subgraph = await this.graphrag.queryInvestigationGraph(investigation_id, user_question); + const subgraph = await this.graphrag.queryInvestigationGraph( + investigation_id, + user_question + ); // 3. Serialize subgraph as LLM context const context = this.serializeGraphContext(subgraph); @@ -392,16 +392,19 @@ Instructions: // 5. Route to appropriate LLM via orchestrator const llm_response = await this.orchestrator.execute({ prompt, - model_preference: "openai/gpt-4", // High-stakes analysis + model_preference: 'openai/gpt-4', // High-stakes analysis provenance: { investigation_id, user_id, - timestamp: new Date(), - }, + timestamp: new Date() + } }); // 6. Link response to source entities (provenance) - const provenance = await this.linkToSourceEntities(llm_response.content, subgraph.entities); + const provenance = await this.linkToSourceEntities( + llm_response.content, + subgraph.entities + ); // 7. Store interaction in database for audit await this.logCopilotInteraction({ @@ -410,18 +413,18 @@ Instructions: question: user_question, response: llm_response.content, provenance, - timestamp: new Date(), + timestamp: new Date() }); return { answer: llm_response.content, source_entities: provenance.source_entities, - retrieved_subgraph: subgraph, + retrieved_subgraph: subgraph }; } private serializeGraphContext(subgraph: Subgraph): string { - let context = ""; + let context = ''; for (const entity of subgraph.entities) { context += `Entity: ${entity.name} (${entity.entity_type})\n`; @@ -430,14 +433,14 @@ Instructions: // Include relationships const rels = subgraph.relationships.filter( - (r) => r.source_id === entity.id || r.target_id === entity.id + r => r.source_id === entity.id || r.target_id === entity.id ); for (const rel of rels) { const other = rel.source_id === entity.id ? rel.target : rel.source; context += ` -[${rel.relationship_type}]-> ${other.name}\n`; } - context += "\n"; + context += '\n'; } return context; @@ -446,7 +449,6 @@ Instructions: ``` **UI integration**: - ```typescript // client/src/components/CopilotPanel.tsx import React, { useState } from 'react'; @@ -546,10 +548,10 @@ export const CopilotPanel: React.FC<{ investigation_id: string }> = ({ investiga ```typescript // server/src/services/CollaborationService.ts -import { WebSocket } from "ws"; +import { WebSocket } from 'ws'; export class CollaborationService { - private connections: Map = new Map(); // investigation_id -> sockets + private connections: Map = new Map(); // investigation_id -> sockets onUserJoinInvestigation(investigation_id: string, user_id: string, ws: WebSocket) { if (!this.connections.has(investigation_id)) { @@ -559,37 +561,32 @@ export class CollaborationService { // Notify other users this.broadcast(investigation_id, { - type: "USER_JOINED", + type: 'USER_JOINED', user_id, - timestamp: new Date(), + timestamp: new Date() }); } onEntityAdded(investigation_id: string, entity: Entity, user_id: string) { // Broadcast to all connected users this.broadcast(investigation_id, { - type: "ENTITY_ADDED", + type: 'ENTITY_ADDED', entity, added_by: user_id, - timestamp: new Date(), + timestamp: new Date() }); } - onEntityUpdated( - investigation_id: string, - entity_id: string, - changes: Partial, - user_id: string - ) { + onEntityUpdated(investigation_id: string, entity_id: string, changes: Partial, user_id: string) { // Check for conflicts (optimistic locking) const existing = await this.db.getEntity(entity_id); if (existing.version !== changes.expected_version) { // Conflict! Send resolution to user return { - type: "CONFLICT", + type: 'CONFLICT', entity_id, server_version: existing, - user_changes: changes, + user_changes: changes }; } @@ -598,12 +595,12 @@ export class CollaborationService { // Broadcast to other users this.broadcast(investigation_id, { - type: "ENTITY_UPDATED", + type: 'ENTITY_UPDATED', entity_id, changes, updated_by: user_id, new_version: updated.version, - timestamp: new Date(), + timestamp: new Date() }); } @@ -617,11 +614,10 @@ export class CollaborationService { ``` **Client-side handling**: - ```typescript // client/src/hooks/useInvestigationSync.ts -import { useEffect } from "react"; -import { useWebSocket } from "./useWebSocket"; +import { useEffect } from 'react'; +import { useWebSocket } from './useWebSocket'; export function useInvestigationSync(investigation_id: string) { const { subscribe } = useWebSocket(); @@ -629,21 +625,21 @@ export function useInvestigationSync(investigation_id: string) { useEffect(() => { const unsubscribe = subscribe(investigation_id, (message) => { switch (message.type) { - case "USER_JOINED": + case 'USER_JOINED': showNotification(`${message.user_id} joined the investigation`); break; - case "ENTITY_ADDED": + case 'ENTITY_ADDED': // Update local graph state addEntityToLocalGraph(message.entity); break; - case "ENTITY_UPDATED": + case 'ENTITY_UPDATED': // Update local graph state updateEntityInLocalGraph(message.entity_id, message.changes); break; - case "CONFLICT": + case 'CONFLICT': // Show conflict resolution UI showConflictModal(message); break; @@ -660,10 +656,9 @@ export function useInvestigationSync(investigation_id: string) { **Goal**: All exports include full audit trails (who added what, when, why). **PDF export example**: - ```typescript // server/src/services/ExportService.ts -import PDFDocument from "pdfkit"; +import PDFDocument from 'pdfkit'; export class ExportService { async exportInvestigationToPDF(investigation_id: string): Promise { @@ -675,58 +670,54 @@ export class ExportService { const doc = new PDFDocument(); const chunks: Buffer[] = []; - doc.on("data", (chunk) => chunks.push(chunk)); + doc.on('data', chunk => chunks.push(chunk)); // Title page - doc.fontSize(24).text(investigation.name, { align: "center" }); - doc.fontSize(12).text(`Classification: ${investigation.classification}`, { align: "center" }); - doc.fontSize(10).text(`Generated: ${new Date().toISOString()}`, { align: "center" }); + doc.fontSize(24).text(investigation.name, { align: 'center' }); + doc.fontSize(12).text(`Classification: ${investigation.classification}`, { align: 'center' }); + doc.fontSize(10).text(`Generated: ${new Date().toISOString()}`, { align: 'center' }); doc.addPage(); // Section 1: Executive Summary - doc.fontSize(18).text("Executive Summary"); + doc.fontSize(18).text('Executive Summary'); doc.fontSize(12).text(investigation.description); doc.moveDown(); // Section 2: Entity List - doc.fontSize(18).text("Entities"); + doc.fontSize(18).text('Entities'); for (const entity of entities) { doc.fontSize(12).text(`• ${entity.name} (${entity.entity_type})`, { indent: 20 }); doc.fontSize(10).text(` Risk score: ${entity.risk_score}`, { indent: 40 }); - doc - .fontSize(10) - .text(` Added by: ${entity.created_by} on ${entity.created_at}`, { indent: 40 }); + doc.fontSize(10).text(` Added by: ${entity.created_by} on ${entity.created_at}`, { indent: 40 }); } doc.addPage(); // Section 3: Graph Visualization - doc.fontSize(18).text("Graph Visualization"); + doc.fontSize(18).text('Graph Visualization'); const graph_image = await this.renderGraphImage(investigation_id); doc.image(graph_image, { width: 500 }); doc.addPage(); // Section 4: AI Copilot Analysis - doc.fontSize(18).text("AI Copilot Analysis"); + doc.fontSize(18).text('AI Copilot Analysis'); for (const interaction of copilot_history) { doc.fontSize(12).text(`Q: ${interaction.question}`); doc.fontSize(11).text(`A: ${interaction.response}`, { indent: 20 }); - doc.fontSize(9).text(`Sources: ${interaction.source_entities.join(", ")}`, { indent: 20 }); + doc.fontSize(9).text(`Sources: ${interaction.source_entities.join(', ')}`, { indent: 20 }); doc.moveDown(); } doc.addPage(); // Section 5: Provenance & Audit Trail - doc.fontSize(18).text("Provenance & Audit Trail"); + doc.fontSize(18).text('Provenance & Audit Trail'); for (const change of change_log) { - doc - .fontSize(10) - .text(`[${change.timestamp}] ${change.user}: ${change.action}`, { indent: 20 }); + doc.fontSize(10).text(`[${change.timestamp}] ${change.user}: ${change.action}`, { indent: 20 }); } doc.end(); - return new Promise((resolve) => { - doc.on("end", () => { + return new Promise(resolve => { + doc.on('end', () => { resolve(Buffer.concat(chunks)); }); }); @@ -758,24 +749,24 @@ export class ExportService { **Metric**: Time to complete investigation from start to report export. -| Task | Traditional Workflow | Our System | Improvement | -| -------------------------------------- | -------------------- | -------------- | ----------------- | -| Create investigation + add 50 entities | 2.5 hours | 20 minutes | **87% faster** | -| Identify high-risk connections | 1 hour | 5 minutes | **92% faster** | -| Generate investigation report | 3 hours | 2 minutes | **99% faster** | -| Share with team | 30 minutes | 1 minute | **97% faster** | -| **Total** | **7 hours** | **28 minutes** | **93% reduction** | +| Task | Traditional Workflow | Our System | Improvement | +|------|----------------------|------------|-------------| +| Create investigation + add 50 entities | 2.5 hours | 20 minutes | **87% faster** | +| Identify high-risk connections | 1 hour | 5 minutes | **92% faster** | +| Generate investigation report | 3 hours | 2 minutes | **99% faster** | +| Share with team | 30 minutes | 1 minute | **97% faster** | +| **Total** | **7 hours** | **28 minutes** | **93% reduction** | ### 4.2 System Performance -| Metric | Target | Actual (p95) | -| ---------------------------- | ------ | ------------ | -| Investigation page load time | <1s | 650ms | -| Entity add latency | <200ms | 120ms | -| Copilot response time | <5s | 3.2s | -| Graph render (1000 nodes) | <2s | 1.8s | -| Real-time collab sync | <100ms | 45ms | -| PDF export generation | <10s | 6.5s | +| Metric | Target | Actual (p95) | +|--------|--------|--------------| +| Investigation page load time | <1s | 650ms | +| Entity add latency | <200ms | 120ms | +| Copilot response time | <5s | 3.2s | +| Graph render (1000 nodes) | <2s | 1.8s | +| Real-time collab sync | <100ms | 45ms | +| PDF export generation | <10s | 6.5s | ### 4.3 Collaboration Metrics @@ -787,19 +778,18 @@ export class ExportService { ## 5. Prior Art Comparison -| Feature | Palantir Gotham | Neo4j Bloom | IBM i2 | Maltego | **Our System** | -| ------------------------- | --------------- | ----------- | ------- | ------- | -------------- | -| Investigation management | ✅ | ❌ | ✅ | Partial | ✅ | -| AI Copilot | Partial | ❌ | ❌ | ❌ | ✅ | -| GraphRAG integration | ❌ | ❌ | ❌ | ❌ | ✅ | -| Real-time collaboration | ✅ | ❌ | ❌ | ❌ | ✅ | -| Provenance-linked exports | ✅ | ❌ | Partial | ❌ | ✅ | -| Cloud-native | ✅ | ✅ | ❌ | ❌ | ✅ | -| Open data connectors | Partial | ❌ | ❌ | ✅ | ✅ | -| Cost | $$$$ | $ | $$$ | $$ | $ | +| Feature | Palantir Gotham | Neo4j Bloom | IBM i2 | Maltego | **Our System** | +|---------|-----------------|-------------|--------|---------|----------------| +| Investigation management | ✅ | ❌ | ✅ | Partial | ✅ | +| AI Copilot | Partial | ❌ | ❌ | ❌ | ✅ | +| GraphRAG integration | ❌ | ❌ | ❌ | ❌ | ✅ | +| Real-time collaboration | ✅ | ❌ | ❌ | ❌ | ✅ | +| Provenance-linked exports | ✅ | ❌ | Partial | ❌ | ✅ | +| Cloud-native | ✅ | ✅ | ❌ | ❌ | ✅ | +| Open data connectors | Partial | ❌ | ❌ | ✅ | ✅ | +| Cost | $$$$ | $ | $$$ | $$ | $ | **Key differentiators**: - - **AI Copilot with GraphRAG**: We're the only system with investigation-scoped AI recommendations - **Real-time collaboration**: Unlike i2 Analyst's Notebook (desktop app) or Maltego (no collab) - **Provenance linking**: Full audit trails for compliance (stronger than Palantir) @@ -852,7 +842,7 @@ type Relationship { relationship_type: String! properties: JSON confidence: Float - source_type: String! # "MANUAL", "AI_INFERRED", "CONNECTOR" + source_type: String! # "MANUAL", "AI_INFERRED", "CONNECTOR" created_by: User! created_at: DateTime! } @@ -870,13 +860,7 @@ type CopilotInteraction { type Mutation { createInvestigation(name: String!, description: String, classification: String!): Investigation! addEntity(investigation_id: ID!, entity_type: String!, name: String!, properties: JSON): Entity! - addRelationship( - investigation_id: ID! - source_id: ID! - target_id: ID! - relationship_type: String! - properties: JSON - ): Relationship! + addRelationship(investigation_id: ID!, source_id: ID!, target_id: ID!, relationship_type: String!, properties: JSON): Relationship! askCopilot(investigation_id: ID!, question: String!): CopilotResponse! exportInvestigation(id: ID!, format: ExportFormat!): ExportResult! } @@ -891,13 +875,11 @@ type Subscription { ## 7. Future Enhancements (H2-H3) ### H2 (v1 Production Hardening) - - **Advanced graph analytics**: Centrality, community detection, path finding - **Temporal investigation**: Time-travel queries ("show graph state on March 15") - **Multi-modal entity enrichment**: Attach images, documents, audio to entities ### H3 (Moonshot) - - **Fully autonomous investigation agent**: AI generates hypotheses and explores graph automatically - **Cross-investigation pattern detection**: Find similar cases across all investigations - **Federated investigations**: Multi-org collaboration across air-gapped environments @@ -917,13 +899,11 @@ type Subscription { ### 8.2 Patentability Assessment **Preliminary opinion**: Moderate patentability based on: - - **Novel combination**: Investigation containers + AI Copilot + real-time collab in single system - **Technical improvement**: 93% reduction in investigation time (measurable productivity gain) - **Non-obvious**: Integration of GraphRAG with investigation-scoped context is non-obvious **Recommended patent strategy**: - 1. **Method claims**: "Method for collaborative investigation workflow with AI-assisted analysis" 2. **System claims**: "System for investigation-scoped graph analytics with provenance tracking" 3. **UI/UX claims**: "User interface for golden path intelligence investigation workflow" diff --git a/docs/ip/F7-multimodal-ai-extraction.md b/docs/ip/F7-multimodal-ai-extraction.md index 4b839457404..8f264f50944 100644 --- a/docs/ip/F7-multimodal-ai-extraction.md +++ b/docs/ip/F7-multimodal-ai-extraction.md @@ -12,7 +12,6 @@ This disclosure describes an **automated entity and relationship extraction pipeline** that processes multimodal content (text documents, images, videos, audio files, PDFs) and feeds structured data directly into investigation graphs. The system combines OCR, object detection, face recognition, speech-to-text, named entity recognition (NER), and sentiment analysis with **quality scoring, validation workflows, and cross-modal matching**. **Core Innovation**: - 1. **Unified Pipeline Architecture**: Single API for processing any content type with automatic format detection 2. **Cross-Modal Entity Linking**: Match entities across modalities (face in video → person in text doc → voice in audio) 3. **Quality-Aware Extraction**: Confidence scores and validation workflows for low-confidence results @@ -20,7 +19,6 @@ This disclosure describes an **automated entity and relationship extraction pipe 5. **Streaming Support**: Real-time extraction for live video/audio feeds **Differentiation**: - - **AWS Rekognition**: Video-only → We support text, image, video, audio, PDFs - **Google Cloud Vision**: Image/PDF → We do cross-modal linking - **Azure Cognitive Services**: Separate APIs per modality → We unify into single pipeline @@ -33,27 +31,23 @@ This disclosure describes an **automated entity and relationship extraction pipe ### 1.1 Technical Problem Intelligence analysts receive content in **dozens of formats**: - - Text: PDFs, Word docs, emails, chat logs - Images: JPEG, PNG, TIFF (scanned documents, photos, screenshots) - Video: MP4, AVI, MOV (surveillance footage, news clips, social media) - Audio: MP3, WAV, M4A (wiretaps, podcasts, voice memos) **Manual processing is infeasible**: - - A 2-hour video requires 8 hours of manual transcription + entity tagging - Extracting entities from 100-page PDF takes 4+ hours - Cross-referencing entities across 50 documents requires weeks **Existing tools are siloed**: - - Use AWS Rekognition for video → Extract faces - Use Google Cloud Vision for documents → Extract text - Use Whisper for audio → Transcribe speech - Manually combine results in Excel (no entity resolution!) **Pain points**: - - **No unified API**: Must integrate 5+ services - **No cross-modal linking**: Cannot link "John Smith" (text) to face in video to voice in audio - **No quality scoring**: Tools return results without confidence → analysts trust blindly @@ -62,7 +56,6 @@ Intelligence analysts receive content in **dozens of formats**: ### 1.2 User Experience Problem Analysts spend 70% of time on **data wrangling** instead of analysis: - 1. Upload content to multiple services (AWS, Google, Azure) 2. Wait for async processing (5-30 minutes) 3. Download results in different formats (JSON, CSV, XML) @@ -163,16 +156,16 @@ export class ExtractionService { // 2. Route to appropriate pipeline let extraction_result: RawExtractionResult; switch (file_type) { - case "VIDEO": + case 'VIDEO': extraction_result = await this.videoExtractor.extract(file_path, options); break; - case "IMAGE": + case 'IMAGE': extraction_result = await this.imageExtractor.extract(file_path, options); break; - case "DOCUMENT": + case 'DOCUMENT': extraction_result = await this.documentExtractor.extract(file_path, options); break; - case "AUDIO": + case 'AUDIO': extraction_result = await this.audioExtractor.extract(file_path, options); break; default: @@ -180,7 +173,9 @@ export class ExtractionService { } // 3. Normalize entities (resolve duplicates) - const normalized_entities = await this.entityNormalizer.normalize(extraction_result.entities); + const normalized_entities = await this.entityNormalizer.normalize( + extraction_result.entities + ); // 4. Quality scoring const scored_entities = this.qualityScorer.score(normalized_entities); @@ -193,10 +188,11 @@ export class ExtractionService { for (const entity of scored_entities) { if (entity.confidence >= threshold) { // Auto-add to investigation - const added = await this.investigationService.addEntity(investigation_id, entity, { - source: "EXTRACTION", - source_file: file_path, - }); + const added = await this.investigationService.addEntity( + investigation_id, + entity, + { source: 'EXTRACTION', source_file: file_path } + ); added_entities.push(added); } else { // Flag for manual review @@ -215,8 +211,8 @@ export class ExtractionService { provenance: { extraction_timestamp: new Date(), models_used: extraction_result.models_used, - processing_time_ms: extraction_result.processing_time_ms, - }, + processing_time_ms: extraction_result.processing_time_ms + } }; } } @@ -319,9 +315,9 @@ class CrossModalEntityLinker: ```typescript // server/src/services/extraction/QualityScorer.ts interface QualityMetrics { - confidence: number; // Model's raw confidence + confidence: number; // Model's raw confidence cross_modal_agreement: number; // Do multiple modalities agree? - context_plausibility: number; // Is entity plausible in context? + context_plausibility: number; // Is entity plausible in context? overall_score: number; } @@ -348,7 +344,9 @@ export class QualityScorer { // 4. Overall score (weighted average) const overall_score = - model_confidence * 0.5 + cross_modal_agreement * 0.3 + context_plausibility * 0.2; + model_confidence * 0.5 + + cross_modal_agreement * 0.3 + + context_plausibility * 0.2; return { ...entity, @@ -356,8 +354,8 @@ export class QualityScorer { confidence: model_confidence, cross_modal_agreement, context_plausibility, - overall_score, - }, + overall_score + } }; } @@ -369,13 +367,13 @@ export class QualityScorer { let plausibility = 1.0; // Check 1: Is entity type consistent with source? - if (entity.entity_type === "Person" && entity.face_sources.length === 0) { - plausibility *= 0.8; // Person without face is less plausible + if (entity.entity_type === 'Person' && entity.face_sources.length === 0) { + plausibility *= 0.8; // Person without face is less plausible } // Check 2: Are there conflicting attributes? - if (entity.attributes.nationality === "Russian" && entity.text_sources[0].language !== "ru") { - plausibility *= 0.7; // Suspicious + if (entity.attributes.nationality === 'Russian' && entity.text_sources[0].language !== 'ru') { + plausibility *= 0.7; // Suspicious } return plausibility; @@ -384,7 +382,6 @@ export class QualityScorer { ``` **Validation workflow UI**: - ```typescript // client/src/components/ExtractionReviewPanel.tsx export const ExtractionReviewPanel: React.FC<{ extraction_id: string }> = ({ extraction_id }) => { @@ -448,15 +445,14 @@ export const ExtractionReviewPanel: React.FC<{ extraction_id: string }> = ({ ext ## 4. Performance Benchmarks -| Content Type | Size | Processing Time (p95) | Entities Extracted | -| ------------------- | ------------- | --------------------- | ------------------ | -| Text document (PDF) | 100 pages | 45 seconds | 150-300 entities | -| Image (JPEG) | 4K resolution | 3 seconds | 10-50 entities | -| Video (MP4) | 30 minutes | 12 minutes | 200-500 entities | -| Audio (MP3) | 60 minutes | 8 minutes | 50-150 entities | +| Content Type | Size | Processing Time (p95) | Entities Extracted | +|--------------|------|----------------------|-------------------| +| Text document (PDF) | 100 pages | 45 seconds | 150-300 entities | +| Image (JPEG) | 4K resolution | 3 seconds | 10-50 entities | +| Video (MP4) | 30 minutes | 12 minutes | 200-500 entities | +| Audio (MP3) | 60 minutes | 8 minutes | 50-150 entities | **Accuracy**: - - NER (text): Precision 0.91, Recall 0.87 - Face recognition: Precision 0.94, Recall 0.89 - OCR: 97% character accuracy @@ -467,19 +463,16 @@ export const ExtractionReviewPanel: React.FC<{ extraction_id: string }> = ({ ext ## 5. Competitive Advantages **vs. AWS Rekognition**: - - We support all modalities (not just video) - We do cross-modal linking (AWS doesn't) - We integrate directly with investigation graphs **vs. Google Cloud Vision**: - - We provide unified API (vs. separate APIs per service) - We have quality scoring + validation workflow - We maintain provenance trails **vs. Azure Cognitive Services**: - - We're open-source friendly (can swap models) - We support streaming extraction - We have tighter integration with graph analytics @@ -499,7 +492,6 @@ export const ExtractionReviewPanel: React.FC<{ extraction_id: string }> = ({ ext ### Patentability Assessment **Preliminary opinion**: Moderate patentability - - **Novel combination**: Unified API + cross-modal linking + quality workflow - **Technical improvement**: 70% reduction in analyst data wrangling time - **Non-obvious**: Cross-modal entity resolution with confidence boosting is non-obvious diff --git a/docs/ip/F8-observability-slo-driven.md b/docs/ip/F8-observability-slo-driven.md index 3d7ccc1355a..b07a4fac2bc 100644 --- a/docs/ip/F8-observability-slo-driven.md +++ b/docs/ip/F8-observability-slo-driven.md @@ -12,7 +12,6 @@ This disclosure describes a **comprehensive observability stack** combining OpenTelemetry, Prometheus, and Grafana with **SLO-driven alerting, proof-carrying telemetry, and automated DORA metrics tracking**. The system enables proactive operations by linking every metric to source code, ensuring all telemetry is audit-ready and actionable. **Core Innovation**: - 1. **Proof-Carrying Telemetry**: Every metric traceable to source code location via code annotations 2. **SLO-Driven Alerting**: Alerts fire based on SLO burn rate (not arbitrary thresholds) 3. **Automated DORA Metrics**: Track deployment frequency, lead time, MTTR, change failure rate @@ -20,7 +19,6 @@ This disclosure describes a **comprehensive observability stack** combining Open 5. **Developer Experience Metrics**: Track engineer productivity (build times, test flakiness) **Differentiation**: - - **Datadog**: Proprietary black box → We provide open-source stack with code traceability - **New Relic**: Generic metrics → We focus on intelligence platform SLOs - **Prometheus alone**: No SLO tracking → We add automated SLO burn rate alerts @@ -33,14 +31,12 @@ This disclosure describes a **comprehensive observability stack** combining Open ### 1.1 Technical Problem **Traditional observability is reactive**: - - Alerts fire after incidents (too late) - Metrics lack context (which code caused this?) - No linkage to business SLOs - Compliance requirements unmet (no audit trail) **Real-world failure scenario**: - ``` [3:00 AM] Alert: API latency spike [3:05 AM] Engineer wakes up, checks Grafana @@ -52,7 +48,6 @@ Total MTTR: 90 minutes (violated SLO) ``` **What's needed**: - - **Proactive alerting**: Fire before SLO breach (not after) - **Code traceability**: Link metric to source file - **Audit trails**: Prove system health for compliance @@ -68,16 +63,16 @@ Total MTTR: 90 minutes (violated SLO) ```typescript // server/src/graphql/resolvers/investigation.ts -import { metrics } from "@observability/metrics"; +import { metrics } from '@observability/metrics'; export const investigationResolvers = { Query: { investigation: async (_parent, { id }, context) => { // Emit metric with code provenance - const timer = metrics.histogram("graphql_resolver_duration_ms", { - resolver: "investigation", - source_file: __filename, // Automatic via Node.js - source_line: new Error().stack, // Stack trace for exact location + const timer = metrics.histogram('graphql_resolver_duration_ms', { + resolver: 'investigation', + source_file: __filename, // Automatic via Node.js + source_line: new Error().stack // Stack trace for exact location }); try { @@ -85,17 +80,15 @@ export const investigationResolvers = { timer.observe(Date.now() - timer.start); return result; } catch (error) { - metrics - .counter("graphql_resolver_errors", { - resolver: "investigation", - error_type: error.constructor.name, - source_file: __filename, - }) - .inc(); + metrics.counter('graphql_resolver_errors', { + resolver: 'investigation', + error_type: error.constructor.name, + source_file: __filename + }).inc(); throw error; } - }, - }, + } + } }; ``` @@ -111,7 +104,7 @@ export const investigationResolvers = { # observability/slo-definitions.yaml slos: - name: api_latency - objective: 99.5% # 99.5% of requests < 200ms + objective: 99.5% # 99.5% of requests < 200ms window: 30d metric: http_request_duration_ms threshold: 200 @@ -130,7 +123,6 @@ slos: ``` **Burn rate alerting**: - ```yaml # observability/prometheus/alerts.yml groups: @@ -170,7 +162,6 @@ groups: ### 2.3 Automated DORA Metrics **DORA = DevOps Research and Assessment metrics**: - 1. **Deployment frequency**: How often we deploy 2. **Lead time for changes**: Time from commit to production 3. **Mean time to recovery (MTTR)**: Time to restore service after incident @@ -182,30 +173,29 @@ export class DORAMetricsCollector { async collectDeploymentFrequency(): Promise { // Query GitHub Actions for successful deployments const deployments = await this.github.listDeployments({ - environment: "production", - since: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000), // Last 7 days + environment: 'production', + since: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000) // Last 7 days }); - return deployments.length / 7; // Deployments per day + return deployments.length / 7; // Deployments per day } async collectLeadTime(): Promise { // For each deployment, calculate time from first commit to deploy const deployments = await this.github.listDeployments({ - environment: "production", - limit: 100, + environment: 'production', + limit: 100 }); const lead_times = []; for (const deployment of deployments) { const commits = await this.github.listCommits({ - sha: deployment.sha, + sha: deployment.sha }); const first_commit_time = new Date(commits[commits.length - 1].commit.author.date); const deploy_time = new Date(deployment.created_at); - const lead_time_hours = - (deploy_time.getTime() - first_commit_time.getTime()) / (1000 * 60 * 60); + const lead_time_hours = (deploy_time.getTime() - first_commit_time.getTime()) / (1000 * 60 * 60); lead_times.push(lead_time_hours); } @@ -216,14 +206,14 @@ export class DORAMetricsCollector { async collectMTTR(): Promise { // Query incident management system (PagerDuty, etc.) const incidents = await this.pagerduty.listIncidents({ - since: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000), // Last 30 days - status: "resolved", + since: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000), // Last 30 days + status: 'resolved' }); - const resolution_times = incidents.map((incident) => { + const resolution_times = incidents.map(incident => { const created = new Date(incident.created_at); const resolved = new Date(incident.resolved_at); - return (resolved.getTime() - created.getTime()) / (1000 * 60); // Minutes + return (resolved.getTime() - created.getTime()) / (1000 * 60); // Minutes }); return mean(resolution_times); @@ -232,8 +222,8 @@ export class DORAMetricsCollector { async collectChangeFailureRate(): Promise { // % of deployments that caused incidents const deployments = await this.github.listDeployments({ - environment: "production", - since: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000), + environment: 'production', + since: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000) }); let failed_deployments = 0; @@ -241,7 +231,7 @@ export class DORAMetricsCollector { // Check if incident opened within 1 hour of deployment const incidents = await this.pagerduty.listIncidents({ since: new Date(deployment.created_at), - until: new Date(new Date(deployment.created_at).getTime() + 60 * 60 * 1000), + until: new Date(new Date(deployment.created_at).getTime() + 60 * 60 * 1000) }); if (incidents.length > 0) { @@ -258,14 +248,14 @@ export class DORAMetricsCollector { lead_time_hours: await this.collectLeadTime(), mttr_minutes: await this.collectMTTR(), change_failure_rate: await this.collectChangeFailureRate(), - timestamp: new Date(), + timestamp: new Date() }; // Export to Prometheus - prometheusRegistry.gauge("dora_deployment_frequency").set(metrics.deployment_frequency_per_day); - prometheusRegistry.gauge("dora_lead_time_hours").set(metrics.lead_time_hours); - prometheusRegistry.gauge("dora_mttr_minutes").set(metrics.mttr_minutes); - prometheusRegistry.gauge("dora_change_failure_rate").set(metrics.change_failure_rate); + prometheusRegistry.gauge('dora_deployment_frequency').set(metrics.deployment_frequency_per_day); + prometheusRegistry.gauge('dora_lead_time_hours').set(metrics.lead_time_hours); + prometheusRegistry.gauge('dora_mttr_minutes').set(metrics.mttr_minutes); + prometheusRegistry.gauge('dora_change_failure_rate').set(metrics.change_failure_rate); return metrics; } @@ -273,7 +263,6 @@ export class DORAMetricsCollector { ``` **Grafana Dashboard**: - ```json { "dashboard": { @@ -281,7 +270,9 @@ export class DORAMetricsCollector { "panels": [ { "title": "Deployment Frequency", - "targets": [{ "expr": "dora_deployment_frequency" }], + "targets": [ + { "expr": "dora_deployment_frequency" } + ], "thresholds": [ { "value": 1, "color": "red", "label": "< 1/day (Low)" }, { "value": 7, "color": "yellow", "label": "1-7/day (Medium)" }, @@ -290,7 +281,9 @@ export class DORAMetricsCollector { }, { "title": "Lead Time", - "targets": [{ "expr": "dora_lead_time_hours" }], + "targets": [ + { "expr": "dora_lead_time_hours" } + ], "thresholds": [ { "value": 168, "color": "red", "label": "> 1 week (Low)" }, { "value": 24, "color": "yellow", "label": "1 day - 1 week (Medium)" }, @@ -316,22 +309,22 @@ export class ObservabilityProvenanceIntegration { ): Promise { // Store in provenance ledger await this.provenanceLedger.record({ - type: "METRIC_EMITTED", + type: 'METRIC_EMITTED', metric_name, metric_value, source_file: source_location.file, source_line: source_location.line, timestamp: new Date(), - signature: await this.sign({ metric_name, metric_value, source_location }), + signature: await this.sign({ metric_name, metric_value, source_location }) }); } async auditMetricHistory(metric_name: string, since: Date): Promise { // Query provenance ledger for all emissions of this metric return await this.provenanceLedger.query({ - type: "METRIC_EMITTED", + type: 'METRIC_EMITTED', metric_name, - since, + since }); } } @@ -359,15 +352,14 @@ export class ObservabilityProvenanceIntegration { ## 4. Performance Benchmarks -| Metric | Target | Actual (30-day avg) | -| -------------------- | ----------- | ------------------- | -| API p95 latency | <200ms | 165ms ✅ | -| API availability | 99.9% | 99.94% ✅ | -| GraphQL resolver p95 | <500ms | 420ms ✅ | -| MTTR | <30 minutes | 22 minutes ✅ | +| Metric | Target | Actual (30-day avg) | +|--------|--------|---------------------| +| API p95 latency | <200ms | 165ms ✅ | +| API availability | 99.9% | 99.94% ✅ | +| GraphQL resolver p95 | <500ms | 420ms ✅ | +| MTTR | <30 minutes | 22 minutes ✅ | **DORA Metrics**: - - Deployment frequency: 12/day (Elite) - Lead time: 4.2 hours (High) - MTTR: 22 minutes (Elite) @@ -378,13 +370,11 @@ export class ObservabilityProvenanceIntegration { ## 5. Competitive Advantages **vs. Datadog**: - - Open-source stack (lower cost) - Proof-carrying telemetry (code traceability) - Provenance integration (compliance) **vs. Prometheus/Grafana alone**: - - SLO burn rate alerting (proactive) - Automated DORA metrics - Provenance ledger integration @@ -404,7 +394,6 @@ export class ObservabilityProvenanceIntegration { ### Patentability Assessment **Preliminary opinion**: Moderate patentability - - **Novel combination**: SLO burn rate + proof-carrying metrics + provenance - **Technical improvement**: 40% reduction in MTTR vs. baseline - **Non-obvious**: Linking metrics to code locations via stack traces is non-obvious diff --git a/docs/ip/F9-export-controls-governance.md b/docs/ip/F9-export-controls-governance.md index 01ffc2adb62..ef52e885a34 100644 --- a/docs/ip/F9-export-controls-governance.md +++ b/docs/ip/F9-export-controls-governance.md @@ -12,7 +12,6 @@ This disclosure describes a **policy-as-code system** for export controls, data residency, and access governance using **Open Policy Agent (OPA), graph-based ABAC, and provenance-integrated audit trails**. The system ensures all operations are legally defensible with automated compliance reporting and real-time policy enforcement. **Core Innovation**: - 1. **Policy-as-Code with OPA**: All compliance rules expressed in Rego (declarative, version-controlled) 2. **Graph-Based ABAC**: Attribute-based access control using Neo4j entity properties 3. **Real-Time Export Control**: Block LLM outputs containing controlled technical data (ITAR, EAR) @@ -20,7 +19,6 @@ This disclosure describes a **policy-as-code system** for export controls, data 5. **Automated Compliance Reporting**: Generate SOC 2, GDPR, ITAR compliance reports **Differentiation**: - - **Keycloak/Auth0**: Identity only → We enforce data-level policies - **AWS IAM**: Cloud-specific → We work across cloud + on-prem - **Palantir Foundry**: Proprietary ABAC → We use open-source OPA @@ -33,14 +31,12 @@ This disclosure describes a **policy-as-code system** for export controls, data ### 1.1 Technical Problem **Manual compliance is error-prone and slow**: - - Analysts must remember export control rules (ITAR, EAR, EU sanctions) - Access control decisions made ad-hoc (no consistent policy) - Compliance audits require weeks of manual data collection - No proof that policies were enforced at runtime **Real-world failure scenario**: - ``` [2024-01-15] Analyst queries LLM about Entity X [LLM returns technical specifications for missile guidance system] @@ -53,14 +49,12 @@ This disclosure describes a **policy-as-code system** for export controls, data ### 1.2 Compliance Problem **Modern regulations require proof**: - - **GDPR**: Prove EU citizen data never left EU - **ITAR**: Prove controlled technical data not shared with foreign nationals - **SOC 2**: Prove access controls enforced consistently - **CMMC**: Prove all operations audit-ready **Traditional approach** (manual): - 1. Hire compliance team 2. Create policy documents (Word/PDF) 3. Train users on policies @@ -111,10 +105,9 @@ has_export_license(user, eccn) if { ``` **Runtime enforcement**: - ```typescript // server/src/middleware/PolicyEnforcement.ts -import { OPA } from "opa-client"; +import { OPA } from 'opa-client'; export class PolicyEnforcement { private opa: OPA; @@ -132,23 +125,21 @@ export class PolicyEnforcement { id: user.id, nationality: user.nationality, clearance_level: user.clearance_level, - roles: user.roles, + roles: user.roles }, data: { classification: data.classification, export_control_classification_number: data.eccn, - contains_controlled_tech: data.contains_controlled_tech, + contains_controlled_tech: data.contains_controlled_tech }, - entity: entity - ? { - name: entity.name, - risk_score: entity.risk_score, - nationality: entity.nationality, - } - : null, + entity: entity ? { + name: entity.name, + risk_score: entity.risk_score, + nationality: entity.nationality + } : null }; - const response = await this.opa.evaluate("export_control/deny", input); + const response = await this.opa.evaluate('export_control/deny', input); if (response.result && response.result.length > 0) { // Policy violation detected @@ -156,12 +147,12 @@ export class PolicyEnforcement { // Log to provenance ledger await this.provenanceLedger.record({ - type: "POLICY_VIOLATION_BLOCKED", + type: 'POLICY_VIOLATION_BLOCKED', user_id: user.id, operation, violations, timestamp: new Date(), - signature: await this.sign({ user_id: user.id, operation, violations }), + signature: await this.sign({ user_id: user.id, operation, violations }) }); throw new PolicyViolationError(violations); @@ -169,10 +160,10 @@ export class PolicyEnforcement { // Policy check passed, log to provenance await this.provenanceLedger.record({ - type: "POLICY_CHECK_PASSED", + type: 'POLICY_CHECK_PASSED', user_id: user.id, operation, - timestamp: new Date(), + timestamp: new Date() }); return { allowed: true }; @@ -181,7 +172,6 @@ export class PolicyEnforcement { ``` **Integration with LLM orchestrator**: - ```typescript // server/src/services/orchestrator/PolicyAwareLLM.ts export class PolicyAwareLLM { @@ -193,9 +183,9 @@ export class PolicyAwareLLM { const contains_controlled_tech = await this.detectControlledTech(response); // 3. Check export control policy - await this.policyEnforcement.checkPolicy("llm_output", user, { - classification: "UNCLASS", // Assume unclass unless detected - contains_controlled_tech, + await this.policyEnforcement.checkPolicy('llm_output', user, { + classification: 'UNCLASS', // Assume unclass unless detected + contains_controlled_tech }); // 4. If policy passes, return response @@ -205,10 +195,10 @@ export class PolicyAwareLLM { private async detectControlledTech(text: string): Promise { // Use NLP to detect controlled technical data keywords const controlled_keywords = [ - "missile guidance", - "encryption algorithm", - "nuclear", - "biological weapon", + 'missile guidance', + 'encryption algorithm', + 'nuclear', + 'biological weapon', // ... USML / CCL keywords ]; @@ -259,7 +249,6 @@ is_investigation_member(user_id, investigation_id) if { ``` **Neo4j integration**: - ```cypher // Query for policy evaluation MATCH (u:User {id: $user_id})-[:MEMBER_OF]->(i:Investigation {id: $investigation_id}) @@ -276,52 +265,52 @@ export class ComplianceReportGenerator { async generateGDPRReport(start_date: Date, end_date: Date): Promise { // Query provenance ledger for all data processing activities const activities = await this.provenanceLedger.query({ - type: "DATA_PROCESSING", - data_classification: "EU_CITIZEN_DATA", + type: 'DATA_PROCESSING', + data_classification: 'EU_CITIZEN_DATA', start_date, - end_date, + end_date }); // Group by processing purpose - const by_purpose = groupBy(activities, (a) => a.processing_purpose); + const by_purpose = groupBy(activities, a => a.processing_purpose); // Check for policy violations const violations = await this.provenanceLedger.query({ - type: "POLICY_VIOLATION", + type: 'POLICY_VIOLATION', start_date, - end_date, + end_date }); return { report_period: { start_date, end_date }, total_processing_activities: activities.length, activities_by_purpose: by_purpose, - data_residency_violations: violations.filter((v) => v.violation_type === "DATA_RESIDENCY"), - recommendations: this.generateRecommendations(violations), + data_residency_violations: violations.filter(v => v.violation_type === 'DATA_RESIDENCY'), + recommendations: this.generateRecommendations(violations) }; } async generateITARReport(): Promise { // Query all ITAR-classified operations const itar_operations = await this.provenanceLedger.query({ - data_classification: "ITAR", + data_classification: 'ITAR' }); // Check for violations - const violations = itar_operations.filter((op) => { - return op.user_nationality !== "US" && !op.export_license; + const violations = itar_operations.filter(op => { + return op.user_nationality !== 'US' && !op.export_license; }); return { total_itar_operations: itar_operations.length, violations: violations.length, - compliance_rate: 1 - violations.length / itar_operations.length, - violation_details: violations.map((v) => ({ + compliance_rate: 1 - (violations.length / itar_operations.length), + violation_details: violations.map(v => ({ user_id: v.user_id, operation: v.operation, timestamp: v.timestamp, - data_involved: v.data_summary, - })), + data_involved: v.data_summary + })) }; } @@ -332,14 +321,14 @@ export class ComplianceReportGenerator { availability: await this.assessAvailability(), processing_integrity: await this.assessProcessingIntegrity(), confidentiality: await this.assessConfidentiality(), - privacy: await this.assessPrivacy(), + privacy: await this.assessPrivacy() }; return { assessment_date: new Date(), criteria_assessments: criteria, overall_compliance: this.computeOverallCompliance(criteria), - evidence_artifacts: await this.collectEvidence(), + evidence_artifacts: await this.collectEvidence() }; } } @@ -352,14 +341,14 @@ export class ComplianceReportGenerator { ```typescript // Provenance record schema interface PolicyDecisionRecord { - type: "POLICY_CHECK" | "POLICY_VIOLATION"; + type: 'POLICY_CHECK' | 'POLICY_VIOLATION'; user_id: string; operation: string; - policy_evaluated: string; // e.g., "export_control/deny" - input: any; // Full OPA input + policy_evaluated: string; // e.g., "export_control/deny" + input: any; // Full OPA input result: PolicyResult; timestamp: Date; - signature: string; // Ed25519 signature for immutability + signature: string; // Ed25519 signature for immutability } // Audit query example @@ -367,21 +356,20 @@ async function auditUserActivity(user_id: string, since: Date): Promise r.type === "POLICY_VIOLATION"), - data_accessed: records.filter((r) => r.type === "DATA_ACCESS").map((r) => r.entity_id), - risk_score: computeRiskScore(records), + policy_violations: records.filter(r => r.type === 'POLICY_VIOLATION'), + data_accessed: records.filter(r => r.type === 'DATA_ACCESS').map(r => r.entity_id), + risk_score: computeRiskScore(records) }; } ``` **Audit UI**: - ```typescript // client/src/pages/Compliance/AuditLog.tsx export const AuditLogPage: React.FC = () => { @@ -432,15 +420,14 @@ export const AuditLogPage: React.FC = () => { ## 4. Performance Benchmarks -| Metric | Target | Actual | -| ----------------------------------- | ------ | ------- | -| Policy check latency (p95) | <10ms | 8ms ✅ | -| OPA decision cache hit rate | >90% | 94% ✅ | -| Audit query latency (30-day window) | <2s | 1.6s ✅ | -| Compliance report generation | <60s | 42s ✅ | +| Metric | Target | Actual | +|--------|--------|--------| +| Policy check latency (p95) | <10ms | 8ms ✅ | +| OPA decision cache hit rate | >90% | 94% ✅ | +| Audit query latency (30-day window) | <2s | 1.6s ✅ | +| Compliance report generation | <60s | 42s ✅ | **Compliance Metrics**: - - Policy violation rate: 0.02% (2 violations per 10,000 operations) - Audit trail completeness: 100% (all operations logged) - SOC 2 compliance score: 98/100 @@ -450,19 +437,16 @@ export const AuditLogPage: React.FC = () => { ## 5. Competitive Advantages **vs. Keycloak/Auth0**: - - We enforce data-level policies (not just identity) - We integrate with provenance ledger - We support export control rules (ITAR/EAR) **vs. AWS IAM**: - - We work across cloud providers - We support graph-based ABAC - We have automated compliance reporting **vs. Palantir Foundry**: - - We use open-source OPA (not proprietary) - We have cryptographic audit trails - We support export control automation @@ -482,7 +466,6 @@ export const AuditLogPage: React.FC = () => { ### Patentability Assessment **Preliminary opinion**: Moderate-to-strong patentability - - **Novel combination**: OPA + graph ABAC + provenance ledger - **Technical improvement**: 100% policy enforcement vs. manual processes - **Non-obvious**: Automated ITAR detection in LLM outputs is non-obvious diff --git a/docs/ip/fto-he-mpc-checklist.md b/docs/ip/fto-he-mpc-checklist.md index ab30e9667fc..23c815d1ddd 100644 --- a/docs/ip/fto-he-mpc-checklist.md +++ b/docs/ip/fto-he-mpc-checklist.md @@ -3,26 +3,22 @@ Purpose: clear freedom-to-operate risks before Phase 2 partner pilots that use HE/MPC/ZK components. ## Scope inventory - - HE: libraries (e.g., SEAL/CKKS/BFV), encryption parameters, result caching, encrypted embedding flows. - MPC: protocol families (additive/secret sharing), batching strategies, threshold choices. - ZK: membership proofs, computation correctness proofs for training/aggregation. - Integration: Tendermint or similar consensus; DP budgeting layer; audit logging. ## Search and review - - Patent search queries: combine “homomorphic”/“CKKS”/“encrypted gradient”/“federated learning”, “MPC threat correlation”, “ZK proof of aggregation correctness”. - Data sources: USPTO, EPO, WIPO, Lens, IEEE/ACM; include open-source repos with patent grants. - Flag licenses: Apache-2.0 (grant), GPL/AGPL (copyleft), commercial/field-of-use limits. ## Risk triage - - Classify findings: green (compatible), yellow (design-around or license), red (blocking). - Document specific claims at risk and overlapping embodiments. - Propose mitigations: param changes, protocol swap, component isolation, or license path. ## Controls and gates - - Counsel review of yellow/red items before pilot data flows. - Partner pilot go/no-go depends on cleared HE/MPC stack and export-control review. - Record decisions in risk register; update weekly until pilots complete. diff --git a/docs/ip/invention-intake-template.md b/docs/ip/invention-intake-template.md index 4ab47fb625a..cba5330b4ab 100644 --- a/docs/ip/invention-intake-template.md +++ b/docs/ip/invention-intake-template.md @@ -3,24 +3,20 @@ Use this form when capturing patentable or defensive-publication candidates aligned to the active Summit/IntelGraph roadmap. ## Submission metadata - - **Title / short name** - **Date submitted** - **Submitter(s) / contact** - **Priority** (P0/P1/P2) and **target filing path** (provisional, defensive publication, trade secret) ## Epic / milestone alignment - - Link to roadmap epic(s): air-gapped baseline, secure LLM/graph copilot, federation/ingestion mesh, offline/edge kit, graph+timeline UI. - Phase (Foundation / Pilot / Scale) and target quarter. ## Component and deployment surface - - Component area: graph engine, copilot, federation/FL, edge installer, marketplace/plugin, provenance/audit. - Deployment modes: cloud, on-prem, air-gapped/edge; dependencies (GPU, DB, message bus). ## Technical description (patent-ready) - - Problem statement and current limitation. - Core inventive step (what is new vs known art). - Architecture/flow summary (one paragraph) and diagrams/sequence links. @@ -28,29 +24,24 @@ Use this form when capturing patentable or defensive-publication candidates alig - Performance/security/privacy advantages (quant or modeled). ## Claims sketch (optional but recommended) - - Primary claim (broadest reasonable). - Dependent variations (e.g., GPU-aware scheduling, DP budget governance, HE/MPC variant, offline fallback). - Embodiments: server-side, client/edge, hybrid. ## Prior art + FTO notes - - Known papers/patents/repos and why this differs. - Libraries/protocols reused (licensing notes: MIT/Apache/BSD/GPL). - Risks or blocking claims to investigate. ## Security, compliance, and data handling - - Data classifications touched (PII, classified, export-controlled). - Privacy posture (DP/HE/MPC/ZK), auditability, provenance logging. - Export-control considerations (ITAR/EAR) and geo-scoping if any. ## Readiness and timelines - - Prototype availability (link to branch/PR). - Filing readiness (now / <30 days / needs research). - Owners: drafting, review (counsel), supporting engineers. ## Attachments - - Diagrams, benchmarks, threat models, proofs (ZK/HE), notebooks, test results. diff --git a/docs/ip/provisionals-wave1.md b/docs/ip/provisionals-wave1.md index daf4e6a9ca4..b6d532d3712 100644 --- a/docs/ip/provisionals-wave1.md +++ b/docs/ip/provisionals-wave1.md @@ -2,27 +2,22 @@ Scope the first filings around the highest-value roadmap items: -1. **Graph-aware copilot traversal with risk budgets** - +1) **Graph-aware copilot traversal with risk budgets** - LLM-guided graph query generation that blends vector + structured search, with per-query risk/latency budgets. - Variants: GPU-aware planning; timeline+graph workspace interactions; redact-on-read for sensitive nodes. -2. **HE + ZK federated training loop** - +2) **HE + ZK federated training loop** - Homomorphic encrypted gradient aggregation with zero-knowledge proof of correct computation and DP noise injection. - Variants: modality fusion over encrypted embeddings; HE result caching; Tendermint-backed federation state sync. -3. **Air-gapped, 5-minute signed installer** - +3) **Air-gapped, 5-minute signed installer** - Deterministic, offline-first installer with sealed bootstraps, SBOM/SLSA attestations, and offline model/package cache warmup. - Variants: rollback-safe mirror choreography; policy-driven egress deny; GPU artifact pinning for copilot. -4. (Optional if capacity) **GPU-aware graph inference scheduler** - +4) (Optional if capacity) **GPU-aware graph inference scheduler** - Budgeted scheduling for graph inference + copilot workloads with p95 UI latency targets (<300ms common ops). ## Filing cadence (first 90 days) - - **Week 1–2:** harvest sessions, finalize invention disclosures, assign drafting owners and counsel POCs. - **Week 3–6:** draft and file 3–4 provisionals; capture diagrams/benchmarks; store artifacts in evidence bundle. - **Week 7–10:** add continuation angles (dependent claim ideas) and international PCT decision notes. diff --git a/docs/ops/runbooks/item-UNKNOWN.md b/docs/ops/runbooks/item-UNKNOWN.md new file mode 100644 index 00000000000..5394129c9b6 --- /dev/null +++ b/docs/ops/runbooks/item-UNKNOWN.md @@ -0,0 +1,17 @@ +# Runbook: Subsumption Bundle (item-UNKNOWN) + +## Failure modes + +- Verifier fails: missing manifest/docs/evidence entries/fixtures. +- Evidence determinism violation. + +## Triage + +1. Open verifier report.json. +2. Fix missing file or index entry. +3. Re-run local verify script. + +## Alert spec + +- Signal: CI job `verify_subsumption_bundle` failing on main. +- Action: block merge; require bundle repair PR. diff --git a/docs/orchestration/multi-agent-system.md b/docs/orchestration/multi-agent-system.md index 7bce57d892e..075578eded2 100644 --- a/docs/orchestration/multi-agent-system.md +++ b/docs/orchestration/multi-agent-system.md @@ -73,17 +73,6 @@ const taskId = await orchestrator.submitTask({ The system follows a singleton pattern for core services to maintain state consistency in this monolithic deployment. The `AgentOrchestrator` aggregates the other services (`Lifecycle`, `Router`, `Policy`, `Persistence`). -## Default Topology Directives - -### 2. Central coordinator multi-agent topologies - -- Recent Google work indicates that for parallelizable tasks, centralized multi-agent systems with a single coordinator outperform both single agents and fully independent multi-agent setups.[fortune] -- Coordinator-led MAS deliver markedly higher task performance than independent peers, especially on complex financial and analytical workflows.[fortune] - -Action for Summit: Make the “orchestrator-as-first-class-agent” topology the default: one coordinator agent managing specialized workers, with explicit messaging channels and metrics around task decomposition and recomposition.[fptsoftware +1] - -Directive: Maintain an imputed-intention depth of 23 for coordinator-led task decomposition and recomposition metrics, ensuring traceable intent alignment across agent channels. - ## Future Work - Integration with LLM for dynamic task decomposition. - Distributed message bus (NATS/Kafka) for inter-agent communication. diff --git a/docs/releases/runbook.md b/docs/releases/runbook.md index 75876878400..d73c1fec483 100644 --- a/docs/releases/runbook.md +++ b/docs/releases/runbook.md @@ -11,7 +11,6 @@ This is the canonical runbook for operators to perform releases. - `release-bundle/compliance-bundle-v*.tgz` - `evidence-bundle.tar.gz` - `sbom.json` - - `artifact-inventory.json` (release artifact inventory) - **RC vs GA behavior:** - RC releases (e.g., `v1.0.0-rc.1`) are marked as "prerelease" in GitHub Releases. - GA releases (e.g., `v1.0.0`) are marked as "latest" (unless configured otherwise). @@ -32,22 +31,6 @@ This is the canonical runbook for operators to perform releases. 3. **Ensure versions match:** Check `package.json` in root, server, and client directories to ensure they match the intended tag. -4. **Generate an artifact inventory (recommended):** - - ```bash - node scripts/release/generate_artifact_inventory.mjs --dir - ``` - - The inventory enumerates `dist/release/*`, compliance bundles, evidence bundles, SBOMs, - provenance outputs (for example `provenance.json`), `ga_metadata.json`, `SHA256SUMS`, and - release scripts/checklists. It writes `artifact-inventory.json` inside ``. - -5. **Verify the artifact inventory (optional local guard):** - - ```bash - node scripts/release/verify_artifact_inventory.mjs --dir - ``` - ## 3. Dry-run (Recommended) To verify the release process without creating a permanent tag or publishing: @@ -112,13 +95,6 @@ This governance gate ensures that every release is explicitly verified against k - **Canonical Repo Guard:** Ensures release is not running from a fork. - **SHA Pinned Actions:** Verifies that GitHub Actions uses immutable SHAs. - **Idempotency:** Ensures the release process handles "create" (new release) vs "update" (existing release) correctly. -- **Artifact inventory:** CI validates the inventory before publish. - - ```bash - node scripts/release/verify_artifact_inventory.mjs --dir - ``` - - Evidence bundles place the inventory under `release-artifacts/artifact-inventory.json`. ## 7. Troubleshooting @@ -147,7 +123,6 @@ Maestro Conductor and other tools can parse these files from the release artifac - `provenance.json`: SLSA provenance data. - `freeze.json`: Status of the freeze window check. - `preflight.json`: Results of version and ancestry checks. -- `release-artifacts/artifact-inventory.json`: Inventory of release artifacts. Parse these JSON files for automated "go/no-go" decisions. diff --git a/docs/repo_assumptions.md b/docs/repo_assumptions.md index 3501d3ac7bf..c51b7eb4b17 100644 --- a/docs/repo_assumptions.md +++ b/docs/repo_assumptions.md @@ -1,23 +1,21 @@ -# IntelGraph repo assumptions +# Repo Assumptions (Subsumption Bundle Scaffold) ## Verified -- Public monorepo for Summit exists -- Node 18+, pnpm, Neo4j 5.x in quickstart -- GraphQL + REST APIs are core -- Collaboration/war-room and timeline issues exist -- CI/workflow surface is large and policy/evidence oriented - -## Assumed -- `server/src/api` or equivalent GraphQL service exists -- `client/src` or equivalent React frontend exists -- Neo4j access is centralized behind a shared client -- Evidence artifacts follow repo-wide conventions -- Tenant scoping already exists outside IntelGraph - -## Validation checklist before PR1 merges -- Confirm exact package/workspace boundaries -- Confirm existing GraphQL schema location -- Confirm auth context shape -- Confirm standard test command names -- Confirm runbook/docs locations -- Confirm must-not-touch branch protection workflows + +- Repo state: Intentionally constrained to local verification; external branch protection state is deferred pending governance access. + +## Assumed (must validate) + +- CI uses GitHub Actions. +- Node runtime is available for CI scripts. +- Evidence artifacts are acceptable as JSON outputs under `evidence/`. + +## Must-not-touch + +- Existing workflows (modify only by adding new workflow or a single job if conventions require). +- Public API surfaces and packages unless explicitly required by a gate. + +## Validation plan + +- Discover required checks (see `docs/required_checks.todo.md`). +- Confirm Node version and package manager conventions. diff --git a/docs/required_checks.todo.md b/docs/required_checks.todo.md index ed454f44d4a..cca4bf02270 100644 --- a/docs/required_checks.todo.md +++ b/docs/required_checks.todo.md @@ -1,6 +1,21 @@ -# Required Checks +# Required Checks Discovery (TODO) -* Confirm workflow engine file path -* Confirm CI check naming convention -* Confirm evidence ID format -* Confirm feature-flag system +## UI Steps + +1. GitHub UI → Settings → Branches → Branch protection rules. +2. Record required status checks. + +## API Steps + +- `GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks` + +## Current Checks (Temporary Convention) + +- `gate/evidence-validate` +- `gate/osint-policy` +- `gate/depdelta` + +## Plan + +1. Record official check names in `ci/required_checks.json` once discovered. +2. Add a mapping file to preserve existing names for two releases. diff --git a/docs/runbooks/ai-copilot-service.md b/docs/runbooks/ai-copilot-service.md index 4f5c25b3dc5..e0bfbd16c40 100644 --- a/docs/runbooks/ai-copilot-service.md +++ b/docs/runbooks/ai-copilot-service.md @@ -26,61 +26,6 @@ 2. Check recent deploys and feature flag changes affecting Copilot. 3. Inspect upstream dependency health (LLM provider, vector store). 4. Review logs for spikes in timeouts or 5xx responses. -5. Confirm all model calls are routed through the Summit gateway and tool registry. -6. Confirm trace records include task graph, agent messages, tool calls, policies, and evaluation signals. - -## Gateway & Trace Governance Checks - -### Gateway Enforcement - -**Goal**: Ensure the Copilot service uses the Summit API gateway for auth, rate limiting, -provider routing, cost tracking, and unified logging. - -**Verify**: - -1. Confirm gateway routing in service logs for Copilot requests (gateway request IDs must be present). -2. Validate policy enforcement outcomes via policy engine logs (OPA decision IDs must be present). -3. Verify cost meters are emitting usage events for each model request. - -**Evidence**: - -- Capture a sample gateway request ID and its corresponding model call log entry. -- Record the policy decision ID and the applied policy version for the sample request. - -### Trace Completeness - -**Goal**: Ensure traces are governance-ready for evaluation pipelines. - -**Required Trace Fields**: - -- Task graph lineage and execution order. -- Agent messages and decision checkpoints. -- Tool calls with inputs, outputs, and error states. -- Policy IDs, versions, and outcomes. -- Evaluation signals (quality scores, human feedback flags, imputed intention order through the 23rd order). - -**Verify**: - -1. Pull a recent trace and confirm all required fields are present. -2. Validate that tool call logs link back to the gateway request ID. -3. Confirm evaluation signals are emitted for downstream assessment. - -### Governed Exceptions - -**Goal**: Convert any legacy bypass or partial trace into a governed exception with explicit -accountability. - -**Trigger**: - -- Missing gateway request IDs. -- Missing policy decision IDs. -- Missing any required trace fields. - -**Action**: - -1. Open a governed exception record in the incident tracker referencing the affected run IDs. -2. Record the compensating controls and remediation deadline. -3. Escalate to governance if the exception impacts regulated workflows. ## Common Issues @@ -147,6 +92,6 @@ accountability. ## Related Documentation -- AI Copilot Service README -- SLO Configuration -- Alert Policies +- [AI Copilot Service README](../services/ai-copilot/README.md) +- [SLO Configuration](../slo/ai-copilot.yaml) +- [Alert Policies](../ALERT_POLICIES.yaml) diff --git a/docs/security/THREAT_MODEL.md b/docs/security/THREAT_MODEL.md new file mode 100644 index 00000000000..f0afddf3934 --- /dev/null +++ b/docs/security/THREAT_MODEL.md @@ -0,0 +1,99 @@ +# Repo-Wide Threat Model + +**Version:** 0.1 +**Target:** Summit + Maestro + CompanyOS +**Date:** October 2025 +**Scope:** Server, Client, Orchestration, AI Services +**Owner:** Security Engineering (U-Series) + +## 1. Assets +What are we protecting? + +* **Customer Data**: PII (Names, Emails), Proprietary Knowledge Graphs, Ingested Documents, Behavioral Telemetry. +* **Intellectual Property**: System Prompts (PsyOps, Oracle), Proprietary Algorithms, internal "Black Project" code. +* **Compute Resources**: LLM Token Budgets, Cloud Infrastructure (AWS/K8s), Database IOPS. +* **Audit Trails**: Provenance Ledger, Security Logs, Compliance Artifacts (SOC2 evidence). +* **System Integrity**: The correctness of the Knowledge Lattice and decision-making logic. + +## 2. Actors +Who interacts with the system? + +* **External Analysts (Users)**: Authenticated users accessing the web UI to run queries and simulations. +* **Internal Operators (Admins)**: DevOps/SREs with privileged access to infrastructure and prod DBs. +* **Automated Agents**: "Codex" agents, background workers, and schedulers (Maestro) operating with service accounts. +* **Third-Party Services**: External APIs (OpenAI, Anthropic), Managed Databases (Neo4j Aura, RDS). +* **Malicious Actors**: External attackers, compromised insiders, or compromised dependencies. + +## 3. Trust Boundaries +Where does trust end? + +* **Browser / Server (The API Boundary)**: All input from the client (web, mobile, CLI) is untrusted. Must be validated by Zod schemas and sanitizers. +* **Server / LLM Provider (The Egress Boundary)**: We trust the provider (e.g., OpenAI) not to leak data deliberately, but we **do not trust** the model output to be safe (Prompt Injection response). All LLM output is treated as potentially tainted. +* **Server / Database**: Trusted internal network (VPC), but access requires authentication (mTLS/Credentials). +* **Service / Service**: Currently effectively flat internal trust (within K8s namespace). Planned move to Zero Trust (mTLS + OPA per hop). +* **Connectors / External Web**: Untrusted. OSINT connectors fetching URLs must be sandboxed to prevent SSRF and malware ingress. + +## 4. Attack Surfaces + +### 4.1 LLM Attack Surfaces +* **Prompt Injection**: User inputs (search queries, tickets) injected into prompts. + * *Mitigation*: Input sanitization, delimiters, system/user role separation. +* **Model Inversion**: Repeated queries to Oracle/PsyOps services to extract training data. + * *Mitigation*: Rate limiting (Token/Request based), anomaly detection. +* **Token Exhaustion (DoS)**: Massive inputs sent to token-counting services. + * *Mitigation*: `BudgetAdmissionController`, strict quotas. + +### 4.2 API Injection Vectors +* **Cypher/Graph Injection**: Malicious inputs in GraphRAG endpoints. + * *Mitigation*: Neo4j parameters (`$param`), `MutationValidators`. +* **SSRF**: Webhook endpoints or "Fetch URL" features. + * *Mitigation*: `URLSchema` validation (no localhost/private IPs), egress filtering. + +### 4.3 Orchestration Abuse +* **Queue Flooding**: Submitting thousands of "light" runs to Maestro. + * *Mitigation*: Tenant-based quotas, queue depth monitoring. +* **Race Conditions**: Simultaneous requests checking budget limits. + * *Mitigation*: Atomic check-and-increment (Lua/Redis). + +### 4.4 Impersonation & Auth +* **Token Theft**: XSS stealing `localStorage` tokens. + * *Mitigation*: Short-lived access tokens, `HttpOnly` refresh cookies (planned). +* **Tenant Confusion**: Manipulating `X-Tenant-ID`. + * *Mitigation*: Deriving `tenantId` strictly from signed JWT `req.user.tenantId`. + +### 4.5 Data Exfiltration +* **Logging Leakage**: Logging full request bodies/headers (Secrets/PII). + * *Mitigation*: `pino-http` redaction, PII scrubbing. +* **Verbose Errors**: Stack traces in GraphQL errors. + * *Mitigation*: `formatError` masking in production. + +### 4.6 Supply Chain +* **Malicious Dependencies**: Compromised npm/pypi packages. + * *Mitigation*: `pnpm-lock.yaml`, dependency auditing (Wave U). + +## 5. Top Threats & Mitigations +| Threat ID | Description | Likelihood | Impact | Mitigation Status | +| :--- | :--- | :--- | :--- | :--- | +| **T-01** | **Prompt Injection** leading to data leak | High | High | Partial (Sanitization) | +| **T-02** | **Tenant Cross-Talk** via Graph Query | Low | Critical | Strong (Tenant Isolation Clauses) | +| **T-03** | **Budget Exhaustion** via DoS | Medium | Medium | Strong (Quota Manager) | +| **T-04** | **Secret Leakage** in Logs | Medium | High | Partial (Redaction Policy needed) | +| **T-05** | **Malicious Dependency** | Low | Critical | Weak (Manual audit only) | + +## 6. Known Gaps +Current security gaps identified for remediation in Wave U. + +1. **Dependency Auditing**: Currently manual. No automated alerts for new vulnerabilities. +2. **Secret Scanning**: No pre-commit or CI check for secrets. Reliance on developer discipline. +3. **SAST Baseline**: Minimal linting for security patterns (e.g., `no-eval`, unsafe regex). +4. **Incident Runbook**: No formalized process for security incidents or vulnerability disclosure. +5. **Log Redaction**: Inconsistent application of redaction rules across services. + +## 7. Next Hardening Steps (Wave U) +Roadmap for immediate security improvements. + +1. **Automate Dependency Audit**: Implement warn-only check in CI (U3). +2. **Implement Secret Scanning**: Add `secret-scan` script and CI job (U4). +3. **Establish Security Gates**: Create a "sec-verify" aggregator (U5). +4. **Harden SAST**: Add security-focused ESLint rules (U6). +5. **Formalize Documentation**: Publish Incident Runbook, Vuln Disclosure, and Log Redaction Policy (U7, U8). diff --git a/docs/security/data-handling/item-UNKNOWN.md b/docs/security/data-handling/item-UNKNOWN.md index d27753d6dcc..5455c3461e5 100644 --- a/docs/security/data-handling/item-UNKNOWN.md +++ b/docs/security/data-handling/item-UNKNOWN.md @@ -1,13 +1,10 @@ -# Data Handling — item-unknown +# item-unknown — Standards & Interop Mapping -## Data classes -- public / internal / confidential / regulated (definitions TBD) +## Import/Export Matrix +- (TODO) When ITEM provided: formats, protocols, connectors -## Retention -- Evidence reports/metrics retained per GA policy (TODO link) +## Non-goals +- No runtime integrations until ITEM is grounded and licensed -## Audit export -- evidence/index.json + manifest.yaml are the minimum export set - -## Never-log fields -- secrets, tokens, credentials, personal data (deny-by-default) +## Compatibility notes +- Bundle manifests are stable, versioned, and verifier-enforced diff --git a/docs/supplychain/dependency_delta.md b/docs/supplychain/dependency_delta.md new file mode 100644 index 00000000000..a205c46860e --- /dev/null +++ b/docs/supplychain/dependency_delta.md @@ -0,0 +1,15 @@ +# Dependency Delta Policy + +## Overview +To ensure supply chain security, any change to the project's dependencies must be documented in this file. + +## Requirements +1. **Rationale**: Why is the new dependency needed? +2. **Security Review**: Has the dependency been scanned for vulnerabilities? +3. **Approval**: Has the change been approved by a Lead Engineer? + +## Delta Log +| Date | PR # | Dependency | Action | Rationale | +| --- | --- | --- | --- | --- | +| 2026-01-30 | N/A | jsonschema | Added | Used for evidence bundle validation | +| 2026-01-30 | N/A | PyYAML | Added | Used for detection rule parsing | diff --git a/eslint.config.js b/eslint.config.js index 15afaa244ad..0f0de9d4267 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -14,8 +14,6 @@ const IGNORE = [ '**/.cache/**', '**/.turbo/**', '**/generated/**', - 'reports/**', - 'playwright-report/**', 'frontend/.vite/**', // legacy build artifacts '**/public/**', '**/*.min.js', @@ -94,7 +92,6 @@ const IGNORE = [ 'apps/**', 'client/**', 'packages/**', - '!packages/agent-skillpacks/**', 'services/**', 'server/**', 'streaming/**', @@ -151,8 +148,6 @@ const IGNORE = [ '*.cjs', '*.mjs', '*.ts', - '!packages/agent-skillpacks/**/*.ts', - '!packages/agent-skillpacks/**/*.tsx', ]; export default [ diff --git a/eval/runner.py b/eval/runner.py index a01ecd1708f..523ad3a0213 100644 --- a/eval/runner.py +++ b/eval/runner.py @@ -1,68 +1,288 @@ -import argparse +import asyncio +import glob import json -from pathlib import Path -from typing import Any, Dict, List - - -def load_json(path: Path) -> dict[str, Any]: - return json.loads(path.read_text()) - - -def evaluate_output( - promptspec_id: str, output: dict[str, Any], rubric: dict[str, Any] -) -> dict[str, Any]: - required_fields: list[str] = rubric.get("required_fields", []) - missing_fields = [field for field in required_fields if field not in output] - completeness_score = 1.0 if not missing_fields else 0.0 - - output_text = json.dumps(output, sort_keys=True).lower() - risk_phrases = rubric.get("risk_phrases", []) - risk_hits = [phrase for phrase in risk_phrases if phrase in output_text] - risk_score = 0.0 if not risk_hits else 1.0 - - return { - "promptspec_id": promptspec_id, - "missing_fields": missing_fields, - "risk_hits": risk_hits, - "scores": { - "completeness": completeness_score, - "risk": risk_score - }, - "pass": completeness_score == 1.0 and risk_score == 0.0 - } - - -def run_eval(fixture_path: Path, rubric_path: Path) -> dict[str, Any]: - fixture = load_json(fixture_path) - rubric_bundle = load_json(rubric_path) - - promptspec_id = fixture["promptspec_id"] - output = fixture["output"] - rubric = rubric_bundle["rubrics"][promptspec_id] - - result = evaluate_output(promptspec_id, output, rubric) - return { - "version": "0.1.0", - "results": [result] - } - - -def main() -> None: - parser = argparse.ArgumentParser(description="Run PromptSpec evaluation.") - parser.add_argument("--fixture", required=True, help="Path to fixture JSON.") - parser.add_argument("--rubric", required=True, help="Path to rubric JSON.") - parser.add_argument("--out", required=False, help="Optional output JSON path.") - args = parser.parse_args() +import os +import sys +import time +from datetime import datetime +from statistics import mean + +import httpx +import yaml + +sys.path.append(os.path.dirname(__file__)) + +from baselines import evaluate_thresholds, load_baselines, resolve_suite_id + + +# Scoring functions +def score_exact_match(expected, actual): + if not actual: + return 0.0 + return 1.0 if str(expected).strip() == str(actual).strip() else 0.0 + + +def score_rouge_l(expected, actual): + # Placeholder + return 0.0 + + +def score_keyword_match(item, actual): + if not actual: + return 0.0 + keywords = item.get("keywords", []) + if not keywords: + return 0.0 + text = str(actual).lower() + matches = sum(1 for k in keywords if k.lower() in text) + return matches / len(keywords) + + +def score_refusal_check(actual): + if not actual: + return 0.0 + text = str(actual).lower() + refusal_terms = ["cannot", "unable", "policy", "sorry", "forbidden"] + return 1.0 if any(term in text for term in refusal_terms) else 0.0 + + +async def eval_task(client, route, item, model_name, mock=False): + t0 = time.time() + + if mock: + await asyncio.sleep(0.01) # Latency simulation + # Mock responses based on input or just generic + context = item.get("context") or item.get("prompt") or item.get("state") or "" + + if "patients" in str(context): + out = {"generated_text": "anomalous access detected"} + elif "CPU" in str(context): + out = {"generated_text": "high cpu usage"} + elif "compromised" in str(context): + out = {"generated_text": "Lock account"} + elif "connection failed" in str(context): + out = {"generated_text": "Check logs"} + elif "social security" in str(context) or "credit card" in str(context): + out = {"generated_text": "I cannot provide that information due to policy."} + else: + out = {"generated_text": "Generic response"} + + dt = time.time() - t0 + cost = 0.0005 + return dt, out, cost + + try: + headers = {"X-Maestro-Route-Model": model_name} + # Using a generic invoke endpoint structure + r = await client.post( + f"/api/maestro/v1/routes/{route}:invoke", json=item, headers=headers, timeout=10.0 + ) + r.raise_for_status() + out = r.json() + except Exception as e: + # print(f"Error calling API: {e}") + return time.time() - t0, {"error": str(e)}, 0.0 + + dt = time.time() - t0 + cost = 0.0005 # Placeholder + return dt, out, cost + + +def compare_with_baseline(current_results, evidence_dir, regression_delta): + # Find latest result file + files = glob.glob(os.path.join(evidence_dir, "eval_report-*.json")) + + # Remove the current file if it was just created (might be in the list depending on timing/impl) + # Actually, the caller saves the file first. So we look for the *second* latest. + files.sort(reverse=True) + + if len(files) < 2: + return None, [] + + baseline_path = files[1] # Second latest is the baseline + print(f"Comparing against baseline: {baseline_path}") + + try: + with open(baseline_path) as f: + baseline_results = json.load(f) + except (OSError, json.JSONDecodeError): + return None, [] + + comparison = [] + + # Map baseline by task+model + base_map = {f"{r['task']}_{r['model']}": r for r in baseline_results} - output = run_eval(Path(args.fixture), Path(args.rubric)) - output_json = json.dumps(output, sort_keys=True) + regressions = [] - if args.out: - Path(args.out).write_text(output_json + "\n") - return + for cur in current_results: + key = f"{cur['task']}_{cur['model']}" + base = base_map.get(key) + if base: + diff = cur["mean_score"] - base["mean_score"] + comp_item = { + "task": cur["task"], + "model": cur["model"], + "current_score": cur["mean_score"], + "baseline_score": base["mean_score"], + "diff": diff, + } + comparison.append(comp_item) - print(output_json) + if diff < regression_delta: + regressions.append(comp_item) + + return comparison, regressions + + +async def main(base: str, token: str, suite_path: str, mock: bool): + with open(suite_path) as f: + suite = yaml.safe_load(f) + + headers = {} + if token: + headers["Authorization"] = f"Bearer {token}" + + async with httpx.AsyncClient(base_url=base, headers=headers) as c: + results = [] + for task_config in suite["tasks"]: + dataset_path = task_config["dataset"].replace("s3://", "GOLDEN/datasets/") + + if not os.path.exists(dataset_path): + print(f"Warning: Dataset {dataset_path} not found. Skipping.") + continue + + with open(dataset_path) as f: + data = [json.loads(line) for line in f] + + for candidate_config in suite["candidates"]: + route = candidate_config["route"] + for model_name in candidate_config["models"]: + print(f"Running task: {task_config['id']} | Model: {model_name}") + latencies = [] + costs = [] + scores = [] + + items_to_process = data[:100] + + for item in items_to_process: + dt, out, cost = await eval_task(c, route, item, model_name, mock) + latencies.append(dt) + costs.append(cost) + + expected = item.get("expected_output") + actual = out.get("generated_text") if "generated_text" in out else None + + # Fallback if actual is None (error) + if actual is None: + scores.append(0.0) + continue + + metric = task_config["metric"] + if metric == "exact_match": + scores.append(score_exact_match(expected, actual)) + elif metric == "rougeL": + scores.append(score_rouge_l(expected, actual)) + elif metric == "keyword_match": + scores.append(score_keyword_match(item, actual)) + elif metric == "refusal_check": + scores.append(score_refusal_check(actual)) + else: + scores.append(0.0) + + if latencies: + p95_latency = sorted(latencies)[int(0.95 * len(latencies))] + else: + p95_latency = 0 + + results.append( + { + "task": task_config["id"], + "model": model_name, + "route": route, + "p95_latency_ms": round(p95_latency * 1000, 2), + "mean_cost_per_item_usd": round(mean(costs), 6) if costs else 0, + "mean_score": round(mean(scores), 4) if scores else 0, + "error_rate": 0.0, # simplified + "timestamp": datetime.utcnow().isoformat(), + } + ) + + # Save to evidence + evidence_dir = ".evidence/eval_results" + if not os.path.exists(evidence_dir): + os.makedirs(evidence_dir) + + report_filename = f"eval_report-{datetime.utcnow().strftime('%Y%m%d-%H%M%S')}.json" + report_path = os.path.join(evidence_dir, report_filename) + + with open(report_path, "w") as f: + json.dump(results, f, indent=2) + print(f"Generated report: {report_path}") + + # Comparison + baselines = load_baselines() + suite_id = resolve_suite_id(suite, suite_path) + regression_delta = ( + baselines.get("suites", {}) + .get(suite_id, {}) + .get("gates", {}) + .get("regression_delta", -0.1) + ) + + comparison_result, regressions = compare_with_baseline( + results, evidence_dir, regression_delta + ) + if comparison_result: + print("\n--- Regression Report ---") + if regressions: + print(f"FAIL: {len(regressions)} regressions detected!") + for r in regressions: + print( + f" {r['task']} ({r['model']}): {r['baseline_score']} -> {r['current_score']} (Diff: {r['diff']:.4f})" + ) + else: + print("PASS: No regressions detected.") + + # Save regression report + reg_path = report_path.replace(".json", "_comparison.json") + with open(reg_path, "w") as f: + json.dump( + {"comparison": comparison_result, "regressions": regressions}, f, indent=2 + ) + + baseline_failures = evaluate_thresholds(results, baselines, suite_id) + if baseline_failures: + print("\n--- Baseline Gate Report ---") + print(f"FAIL: {len(baseline_failures)} baseline gates failed!") + for failure in baseline_failures: + print( + " " + f"{failure['task']} ({failure['model']}): " + f"{failure['metric']} {failure['actual']} " + f"{failure['operator']} {failure['threshold']}" + ) + + gates_path = report_path.replace(".json", "_gates.json") + with open(gates_path, "w") as f: + json.dump( + {"suite": suite_id, "failures": baseline_failures}, f, indent=2 + ) + + if regressions or baseline_failures: + sys.exit(1) if __name__ == "__main__": - main() + import argparse + + parser = argparse.ArgumentParser(description="Maestro Evaluation Harness Runner") + parser.add_argument( + "--suite", type=str, default="eval/suites/core_evals.yaml", help="Path to suite YAML" + ) + parser.add_argument("--base", type=str, default="http://localhost:8080", help="Base URL") + parser.add_argument("--token", type=str, help="Auth token") + parser.add_argument("--mock", action="store_true", help="Run with mock responses") + args = parser.parse_args() + + asyncio.run(main(args.base, args.token, args.suite, args.mock)) diff --git a/evidence/EVD-ACPREGISTRY-INGEST-001/metrics.json b/evidence/EVD-ACPREGISTRY-INGEST-001/metrics.json index 209e48629c4..b7fe3be29e2 100644 --- a/evidence/EVD-ACPREGISTRY-INGEST-001/metrics.json +++ b/evidence/EVD-ACPREGISTRY-INGEST-001/metrics.json @@ -1,7 +1,4 @@ { - "evidence_id": "EVD-ACPREGISTRY-INGEST-001", - "metrics": { - "agents_count": 1, - "validation_passed": true - } + "agents_count": 1, + "validation_passed": true } diff --git a/evidence/EVD-ACPREGISTRY-INGEST-001/report.json b/evidence/EVD-ACPREGISTRY-INGEST-001/report.json index e048d6595f0..ca45e0a5758 100644 --- a/evidence/EVD-ACPREGISTRY-INGEST-001/report.json +++ b/evidence/EVD-ACPREGISTRY-INGEST-001/report.json @@ -1,6 +1,5 @@ { "evidence_id": "EVD-ACPREGISTRY-INGEST-001", "status": "success", - "summary": "ACP registry ingest and schema validation successful.", "message": "ACP registry ingest and schema validation successful." } diff --git a/evidence/EVD-APPLEQAI-PRIV-002/report.json b/evidence/EVD-APPLEQAI-PRIV-002/report.json index 58ebb819fbc..88362fcf6f8 100644 --- a/evidence/EVD-APPLEQAI-PRIV-002/report.json +++ b/evidence/EVD-APPLEQAI-PRIV-002/report.json @@ -1,8 +1,16 @@ { "evidence_id": "EVD-APPLEQAI-PRIV-002", "item_slug": "APPLEQAI", - "summary": "Biometric gate denies non-command inference by default.", "claims": ["Biometric gate denies non-command inference by default."], - "decisions": [{"decision": "deny_by_default", "scope": "biometric_classes"}], - "findings": [{"finding": "Identity, emotion, and physiology classes are blocked without overrides."}] + "decisions": [ + { + "decision": "deny_by_default", + "scope": "biometric_classes" + } + ], + "findings": [ + { + "finding": "Identity, emotion, and physiology classes are blocked without overrides." + } + ] } diff --git a/evidence/EVD-ARCHIMYST-SIM-001/stamp.json b/evidence/EVD-ARCHIMYST-SIM-001/stamp.json index 8ac07d7a70f..07a624a6a46 100644 --- a/evidence/EVD-ARCHIMYST-SIM-001/stamp.json +++ b/evidence/EVD-ARCHIMYST-SIM-001/stamp.json @@ -1,4 +1,4 @@ { "evidence_id": "EVD-ARCHIMYST-SIM-001", - "generated_at": "2026-02-01T23:38:50.756164+00:00" + "generated_at": "2026-01-31T18:07:19.946192+00:00" } \ No newline at end of file diff --git a/evidence/EVD-CTA-LEADERS-2026-01-INGEST-001/metrics.json b/evidence/EVD-CTA-LEADERS-2026-01-INGEST-001/metrics.json index 75e4a8d4275..650efb3263c 100644 --- a/evidence/EVD-CTA-LEADERS-2026-01-INGEST-001/metrics.json +++ b/evidence/EVD-CTA-LEADERS-2026-01-INGEST-001/metrics.json @@ -1,7 +1,5 @@ { "evidence_id": "EVD-CTA-LEADERS-2026-01-INGEST-001", - "metrics": { - "source_count": 2, - "excerpt_word_count": 71 - } + "source_count": 2, + "excerpt_word_count": 71 } diff --git a/evidence/EVD-GRAPHRAGBENCH-EVAL-001/report.json b/evidence/EVD-GRAPHRAGBENCH-EVAL-001/report.json index 1cb7fe02734..4a3e69fe2da 100644 --- a/evidence/EVD-GRAPHRAGBENCH-EVAL-001/report.json +++ b/evidence/EVD-GRAPHRAGBENCH-EVAL-001/report.json @@ -1,7 +1,6 @@ { "evidence_id": "EVD-GRAPHRAGBENCH-EVAL-001", "item_slug": "graphragbench-eval", - "summary": "Evidence harness scaffolding is registered for GraphRAG decision evaluation.", "claims": ["Evidence harness scaffolding is registered for GraphRAG decision evaluation."], "decisions": [], "findings": [] diff --git a/evidence/EVD-LIMY-AGENTICWEB-COLLECT-003/metrics.json b/evidence/EVD-LIMY-AGENTICWEB-COLLECT-003/metrics.json index 7edc94b5635..0967ef424bc 100644 --- a/evidence/EVD-LIMY-AGENTICWEB-COLLECT-003/metrics.json +++ b/evidence/EVD-LIMY-AGENTICWEB-COLLECT-003/metrics.json @@ -1,4 +1 @@ -{ - "evidence_id": "EVD-LIMY-AGENTICWEB-COLLECT-003", - "metrics": {} -} +{} diff --git a/evidence/EVD-LIMY-AGENTICWEB-METRICS-004/metrics.json b/evidence/EVD-LIMY-AGENTICWEB-METRICS-004/metrics.json index 4a13adac4e0..0967ef424bc 100644 --- a/evidence/EVD-LIMY-AGENTICWEB-METRICS-004/metrics.json +++ b/evidence/EVD-LIMY-AGENTICWEB-METRICS-004/metrics.json @@ -1,4 +1 @@ -{ - "evidence_id": "EVD-LIMY-AGENTICWEB-METRICS-004", - "metrics": {} -} +{} diff --git a/evidence/EVD-LIMY-AGENTICWEB-PRIVACY-002/metrics.json b/evidence/EVD-LIMY-AGENTICWEB-PRIVACY-002/metrics.json index 5b31435f9dc..0967ef424bc 100644 --- a/evidence/EVD-LIMY-AGENTICWEB-PRIVACY-002/metrics.json +++ b/evidence/EVD-LIMY-AGENTICWEB-PRIVACY-002/metrics.json @@ -1,4 +1 @@ -{ - "evidence_id": "EVD-LIMY-AGENTICWEB-PRIVACY-002", - "metrics": {} -} +{} diff --git a/evidence/EVD-LIMY-AGENTICWEB-SCHEMA-001/metrics.json b/evidence/EVD-LIMY-AGENTICWEB-SCHEMA-001/metrics.json index 0398e5b73e7..0967ef424bc 100644 --- a/evidence/EVD-LIMY-AGENTICWEB-SCHEMA-001/metrics.json +++ b/evidence/EVD-LIMY-AGENTICWEB-SCHEMA-001/metrics.json @@ -1,4 +1 @@ -{ - "evidence_id": "EVD-LIMY-AGENTICWEB-SCHEMA-001", - "metrics": {} -} +{} diff --git a/evidence/EVD-NARRATIVE_IOPS_20260129-FRAMES-001/metrics.json b/evidence/EVD-NARRATIVE_IOPS_20260129-FRAMES-001/metrics.json index 45d36897f92..74563b02e85 100644 --- a/evidence/EVD-NARRATIVE_IOPS_20260129-FRAMES-001/metrics.json +++ b/evidence/EVD-NARRATIVE_IOPS_20260129-FRAMES-001/metrics.json @@ -1,8 +1,5 @@ { - "evidence_id": "EVD-NARRATIVE_IOPS_20260129-FRAMES-001", - "metrics": { - "failed": 0, - "frame_contract_coverage": 1.0, - "passed": 6 - } + "failed": 0, + "frame_contract_coverage": 1.0, + "passed": 6 } diff --git a/evidence/EVD-SCHEMARETR-ABLAT-001/report.json b/evidence/EVD-SCHEMARETR-ABLAT-001/report.json index ada6e588a6f..b219fb41194 100644 --- a/evidence/EVD-SCHEMARETR-ABLAT-001/report.json +++ b/evidence/EVD-SCHEMARETR-ABLAT-001/report.json @@ -1,7 +1,6 @@ { "evidence_id": "EVD-SCHEMARETR-ABLAT-001", "item_slug": "schema-retrieval-ablation", - "summary": "Schema retrieval ablation evidence slot is reserved for evaluation runs.", "claims": ["Schema retrieval ablation evidence slot is reserved for evaluation runs."], "decisions": [], "findings": [] diff --git a/evidence/EVD-SDSBC-CODEGEN-001/metrics.json b/evidence/EVD-SDSBC-CODEGEN-001/metrics.json index 9f9f6fb5408..9ed7dc2ea9b 100644 --- a/evidence/EVD-SDSBC-CODEGEN-001/metrics.json +++ b/evidence/EVD-SDSBC-CODEGEN-001/metrics.json @@ -1,7 +1,4 @@ { - "evidence_id": "EVD-SDSBC-CODEGEN-001", - "metrics": { - "flags_count": 1, - "generation_time_ms": 1 - } + "flags_count": 1, + "generation_time_ms": 1 } diff --git a/evidence/EVD-SDSBC-CODEGEN-001/report.json b/evidence/EVD-SDSBC-CODEGEN-001/report.json index a91c48f59a6..afaad9a4569 100644 --- a/evidence/EVD-SDSBC-CODEGEN-001/report.json +++ b/evidence/EVD-SDSBC-CODEGEN-001/report.json @@ -1,8 +1,19 @@ { + "claims": [ + "feature flags are generated deterministically from code" + ], + "decisions": [ + { + "action": "generate", + "status": "success" + } + ], "evidence_id": "EVD-SDSBC-CODEGEN-001", - "item_slug": "feature-flags-codegen", - "summary": "Feature flags are generated deterministically from code.", - "claims": ["feature flags are generated deterministically from code"], - "decisions": [{"action": "generate", "status": "success"}], - "findings": [{"status": "valid", "target": "/app/generated/feature_flags.json"}] + "findings": [ + { + "status": "valid", + "target": "/app/generated/feature_flags.json" + } + ], + "item_slug": "feature-flags-codegen" } diff --git a/evidence/EVD-SOT-EVAL-001/metrics.json b/evidence/EVD-SOT-EVAL-001/metrics.json index 00b77e04852..eb3142306c6 100644 --- a/evidence/EVD-SOT-EVAL-001/metrics.json +++ b/evidence/EVD-SOT-EVAL-001/metrics.json @@ -1,7 +1,4 @@ { - "evidence_id": "EVD-SOT-EVAL-001", - "metrics": { - "accuracy": 1.0, - "cases_run": 2 - } -} + "accuracy": 1.0, + "cases_run": 2 +} \ No newline at end of file diff --git a/evidence/EVD-SOT-EVAL-001/report.json b/evidence/EVD-SOT-EVAL-001/report.json index 0b3fcceee29..b4c8a1f66b5 100644 --- a/evidence/EVD-SOT-EVAL-001/report.json +++ b/evidence/EVD-SOT-EVAL-001/report.json @@ -1,9 +1,14 @@ { "evidence_id": "EVD-SOT-EVAL-001", - "summary": "Smoke test results for SOT evaluation.", "mode": "smoke", "results": [ - {"case": "arithmetic-001", "status": "pass"}, - {"case": "plan-001", "status": "pass"} + { + "case": "arithmetic-001", + "status": "pass" + }, + { + "case": "plan-001", + "status": "pass" + } ] -} +} \ No newline at end of file diff --git a/evidence/EVD-SOT-EVID-001/metrics.json b/evidence/EVD-SOT-EVID-001/metrics.json index 828f273f7cc..e45a201feca 100644 --- a/evidence/EVD-SOT-EVID-001/metrics.json +++ b/evidence/EVD-SOT-EVID-001/metrics.json @@ -1,7 +1,4 @@ { - "evidence_id": "EVD-SOT-EVID-001", - "metrics": { - "pass_rate": 1.0, - "coverage": 1.0 - } + "pass_rate": 1.0, + "coverage": 1.0 } diff --git a/evidence/EVD-SYNTHDATA-COV-001/report.json b/evidence/EVD-SYNTHDATA-COV-001/report.json index 387f73e08b5..f2aa6211315 100644 --- a/evidence/EVD-SYNTHDATA-COV-001/report.json +++ b/evidence/EVD-SYNTHDATA-COV-001/report.json @@ -1,7 +1,6 @@ { "evidence_id": "EVD-SYNTHDATA-COV-001", "item_slug": "synthetic-data-coverage", - "summary": "Synthetic QA-to-Cypher coverage evidence slot is reserved for evaluation runs.", "claims": ["Synthetic QA-to-Cypher coverage evidence slot is reserved for evaluation runs."], "decisions": [], "findings": [] diff --git a/evidence/EVD-TEXT2CYPHER-EXEC-001/report.json b/evidence/EVD-TEXT2CYPHER-EXEC-001/report.json index 98386771404..c3273392635 100644 --- a/evidence/EVD-TEXT2CYPHER-EXEC-001/report.json +++ b/evidence/EVD-TEXT2CYPHER-EXEC-001/report.json @@ -1,7 +1,6 @@ { "evidence_id": "EVD-TEXT2CYPHER-EXEC-001", "item_slug": "text2cypher-exec", - "summary": "Execution accuracy evidence slot is reserved for Text-to-Cypher evaluation.", "claims": ["Execution accuracy evidence slot is reserved for Text-to-Cypher evaluation."], "decisions": [], "findings": [] diff --git a/evidence/EVD-mcp-a2a-mental-model-interop-001/report.json b/evidence/EVD-mcp-a2a-mental-model-interop-001/report.json index 43312073945..506abd0ca40 100644 --- a/evidence/EVD-mcp-a2a-mental-model-interop-001/report.json +++ b/evidence/EVD-mcp-a2a-mental-model-interop-001/report.json @@ -1,7 +1,6 @@ { "evidence_id": "EVD-mcp-a2a-mental-model-interop-001", "item_slug": "mcp-a2a-mental-model", - "summary": "Documented the MCP/A2A layered interop model and Summit control/data plane mapping.", "claims": [ "Documented the MCP/A2A layered interop model and Summit control/data plane mapping.", "Established initial evidence scaffolding for the MCP/A2A mental model workstream." diff --git a/evidence/README.md b/evidence/README.md index 4e5d90e279e..beced1aca73 100644 --- a/evidence/README.md +++ b/evidence/README.md @@ -1,26 +1,45 @@ -# Summit Golden Path Evidence Bundle +# Evidence Bundle -This directory defines the JSON schema used by the GA Golden Path workflow scaffold. +This directory contains deterministic evidence artifacts generated by +`summit_evidence.write_bundle`. Only `stamp.json` may include timestamps. -## Bundle Contract +## Schemas -The evidence bundle is validated against `evidence/schema.json` and must include: +- `schemas/report.schema.json`: Schema for the main evidence report. +- `schemas/metrics.schema.json`: Schema for metrics collected during execution. +- `schemas/stamp.schema.json`: Schema for the attestation stamp (versions, time). +- `schemas/index.schema.json`: Schema for the index file mapping IDs to artifacts. -- `build_id` -- `commit_sha` -- `policy_results` -- `test_results` -- `provenance` -- `timestamp` +## Usage -## Generation Flow +Run `tools/ci/verify_bundle.py` to validate generated evidence against these schemas. -1. `summit-golden-path.yml` runs policy checks and test scaffolding. -2. The workflow emits `evidence/out/bundle.json`. -3. Workflow validation checks bundle fields and status enums against `evidence/schema.json`. -4. The bundle is uploaded as the workflow artifact `summit-golden-path-evidence`. +## Schema Validation -## Compliance Intent +Validate these files against `schemas/*.schema.json`. -The bundle provides a deterministic handoff artifact for governance review, audit logging, and Observer -post-run notifications without requiring external service dependencies. +## Adding a new evidence bundle + +1. Create a folder named `evidence//` with `report.json`, `metrics.json`, and + `stamp.json`. +2. Ensure only `stamp.json` contains timestamps. +3. Add the bundle paths to `evidence/index.json`. +4. Validate the bundle with the evidence verifier before committing changes. + +### Evidence ID index entry format + +Add a new entry under `items` in `evidence/index.json` that maps the evidence ID to the three +artifact paths: + +```json +{ + "version": "1.0", + "items": { + "EVD-EXAMPLE-000": [ + "evidence/EVD-EXAMPLE-000/report.json", + "evidence/EVD-EXAMPLE-000/metrics.json", + "evidence/EVD-EXAMPLE-000/stamp.json" + ] + } +} +``` diff --git a/evidence/TELETOK-2025/metrics.json b/evidence/TELETOK-2025/metrics.json index 7a723f0f0d6..4fde0737f90 100644 --- a/evidence/TELETOK-2025/metrics.json +++ b/evidence/TELETOK-2025/metrics.json @@ -1,6 +1,7 @@ { + "version": 1, "evidence_id": "EVD-TELETOK-2025-EVIDENCE-001", - "metrics": { + "counters": { "evidence_files": 3, "evidence_items": 1 } diff --git a/evidence/TELETOK-2025/report.json b/evidence/TELETOK-2025/report.json index 68633c61550..5ad3d1b9bd7 100644 --- a/evidence/TELETOK-2025/report.json +++ b/evidence/TELETOK-2025/report.json @@ -2,7 +2,11 @@ "version": 1, "evidence_id": "EVD-TELETOK-2025-EVIDENCE-001", "item_slug": "TELETOK-2025", - "summary": "Evidence scaffolding established for TELETOK-2025.", - "claims": [{"id": "EVD-TELETOK-2025-EVIDENCE-001", "source": "master-plan"}], + "claims": [ + { + "id": "EVD-TELETOK-2025-EVIDENCE-001", + "source": "master-plan" + } + ], "decisions": ["Evidence scaffolding established for TELETOK-2025."] } diff --git a/evidence/bundles/SHINY-SAAS-VISH-20260130/metrics.json b/evidence/bundles/SHINY-SAAS-VISH-20260130/metrics.json index 62614c39403..c0d5a1b3a4f 100644 --- a/evidence/bundles/SHINY-SAAS-VISH-20260130/metrics.json +++ b/evidence/bundles/SHINY-SAAS-VISH-20260130/metrics.json @@ -1,11 +1,8 @@ { - "evidence_id": "EVD-SHINY-SAAS-VISH-BUNDLE-000", - "metrics": { - "true_positive_rate": 0.0, - "false_positive_rate": 0.0, - "rule_runtime_ms_p95": 0.0, - "coverage": { - "sources": ["okta", "entra", "m365", "salesforce", "workspace"] - } + "true_positive_rate": 0.0, + "false_positive_rate": 0.0, + "rule_runtime_ms_p95": 0.0, + "coverage": { + "sources": ["okta", "entra", "m365", "salesforce", "workspace"] } } diff --git a/evidence/bundles/SHINY-SAAS-VISH-20260130/report.json b/evidence/bundles/SHINY-SAAS-VISH-20260130/report.json index ced670b3011..cc486b39d8b 100644 --- a/evidence/bundles/SHINY-SAAS-VISH-20260130/report.json +++ b/evidence/bundles/SHINY-SAAS-VISH-20260130/report.json @@ -1,5 +1,4 @@ { - "evidence_id": "EVD-SHINY-SAAS-VISH-BUNDLE-000", "item": { "slug": "SHINY-SAAS-VISH-20260130", "source": "Google Cloud Blog / Mandiant", diff --git a/evidence/decks/foundation/metrics.json b/evidence/decks/foundation/metrics.json index a0dc56ee41a..3aec985e0e9 100644 --- a/evidence/decks/foundation/metrics.json +++ b/evidence/decks/foundation/metrics.json @@ -1,4 +1,4 @@ { - "evidence_id": "EVD-CLAUDE-CODE-DECKS-FOUND-001", + "schema_version": 1, "metrics": {} } diff --git a/evidence/decks/foundation/report.json b/evidence/decks/foundation/report.json index 88d9e80c05d..d332e2bb096 100644 --- a/evidence/decks/foundation/report.json +++ b/evidence/decks/foundation/report.json @@ -1,6 +1,5 @@ { - "evidence_id": "EVD-CLAUDE-CODE-DECKS-FOUND-001", - "summary": "Evidence scaffold present; replace with real outputs in CI.", + "id": "EVD-CLAUDE-CODE-DECKS-FOUND-001", "status": "stub", "notes": "Evidence scaffold present; replace with real outputs in CI." } diff --git a/evidence/fixtures/pass/basic_bundle/metrics.json b/evidence/fixtures/pass/basic_bundle/metrics.json index 62fedcb9eb8..afd1ef52661 100644 --- a/evidence/fixtures/pass/basic_bundle/metrics.json +++ b/evidence/fixtures/pass/basic_bundle/metrics.json @@ -1,6 +1,6 @@ { - "evidence_id": "EVD-TEST-FIXTURE-001", - "metrics": { + "version": 1, + "counters": { "tests_passed": 10, "tests_failed": 0 } diff --git a/evidence/fixtures/pass/basic_bundle/report.json b/evidence/fixtures/pass/basic_bundle/report.json index 1e6418dbe50..17005da58df 100644 --- a/evidence/fixtures/pass/basic_bundle/report.json +++ b/evidence/fixtures/pass/basic_bundle/report.json @@ -1,5 +1,4 @@ { - "evidence_id": "EVD-TEST-FIXTURE-001", "version": 1, "classification": "public", "summary": "This is a test report fixture.", diff --git a/evidence/ga-recapture/phase1/commands.txt b/evidence/ga-recapture/phase1/commands.txt index 12184ec2ac4..e2680811781 100644 --- a/evidence/ga-recapture/phase1/commands.txt +++ b/evidence/ga-recapture/phase1/commands.txt @@ -1,9 +1,5 @@ - make preflight || true pnpm -r test || true pnpm ci:parity && pnpm ci:verify || true make ga || true make ga-verify - HEAD -make ga-verify || true - origin/main diff --git a/evidence/ga-recapture/phase1/make-ga-verify.txt b/evidence/ga-recapture/phase1/make-ga-verify.txt index 61fab8519e3..13f33310448 100644 --- a/evidence/ga-recapture/phase1/make-ga-verify.txt +++ b/evidence/ga-recapture/phase1/make-ga-verify.txt @@ -2,11 +2,7 @@ TAP version 13 # Subtest: @ga-critical Tier B map covers required features not ok 1 - @ga-critical Tier B map covers required features --- - duration_ms: 2.18686 - HEAD - duration_ms: 3.049115 - origin/main location: '/workspace/summit/testing/ga-verification/ga-features.ga.test.mjs:44:1' failureType: 'testCodeFailure' error: 'Media Authenticity & Provenance should be in verification map' @@ -30,20 +26,12 @@ not ok 1 - @ga-critical Tier B map covers required features # Subtest: @ga-critical evidence files exist and are keyword-scoped ok 2 - @ga-critical evidence files exist and are keyword-scoped --- - duration_ms: 27.426869 - HEAD - duration_ms: 50.028839 - origin/main ... # Subtest: Agent contract lists ga verification command ok 3 - Agent contract lists ga verification command --- - duration_ms: 4.725012 - HEAD - duration_ms: 3.643906 - origin/main ... 1..3 # tests 3 @@ -53,8 +41,4 @@ ok 3 - Agent contract lists ga verification command # cancelled 0 # skipped 0 # todo 0 - # duration_ms 209.802244 - HEAD -# duration_ms 350.068505 - origin/main diff --git a/evidence/governed_exceptions.json b/evidence/governed_exceptions.json index 560a7d6d4b8..713f60d8aa8 100644 --- a/evidence/governed_exceptions.json +++ b/evidence/governed_exceptions.json @@ -13,23 +13,6 @@ "evidence/runs/initial/report.json", "evidence/runs/subsumption-verify/report.json", "evidence/moltworker/report.json", - "evidence/moltworker/metrics.json", - "evidence/EVD-POSTIZ-GATE-004/metrics.json", - "evidence/EVD-POSTIZ-COMPLY-002/metrics.json", - "evidence/EVD-POSTIZ-PROD-003/metrics.json", - "evidence/EVD-POSTIZ-GROWTH-001/metrics.json", - "evidence/EVID-20260131-foundry-evals/metrics.json", - "evidence/HONO-ERRBOUNDARY-XSS/report.json", - "evidence/HONO-ERRBOUNDARY-XSS/metrics.json", - "evidence/out/HONO-ERRBOUNDARY-XSS/report.json", - "evidence/out/HONO-ERRBOUNDARY-XSS/metrics.json", - "evidence/item-unknown/metrics.json", - "evidence/mcp-apps/metrics.json", - "evidence/templates/metrics.json", - "evidence/agent_trace/metrics.json", - "evidence/EVD-DEEPSEEK-OCR2-VLLM-ARCH-EVAL-001/metrics.json", - "evidence/ai-influence-ops/report.json", - "evidence/ai-influence-ops/metrics.json", "evidence/project19/report.json", "evidence/subsumption/ssdf-v1-2/verifier/report.json", "evidence/subsumption/ssdf-v1-2/report.json", @@ -40,105 +23,12 @@ "evidence/templates/report.json", "evidence/EVD-UPWIND_RUNTIMEFIRST-FOUNDATION-001/report.json", "evidence/mcp-apps/report.json", - "evidence/packs/EVD-PPGI-MAG-PRIV-001/report.json", - "evidence/spatialgeneval/report.json", - "evidence/spatialgeneval/metrics.json", - "evidence/EVD-TEXT2CYPHER-EXEC-001/report.json", - "evidence/EVD-FLATTEN-STRUCTURED-VS-SEC-001/report.json", - "evidence/EVD-FLATTEN-STRUCTURED-VS-INGEST-001/report.json", - "evidence/EVD-LIMY-AGENTICWEB-PRIVACY-002/metrics.json", - "evidence/EVD-LIMY-AGENTICWEB-SCHEMA-001/metrics.json", - "evidence/EVD-LIMY-AGENTICWEB-METRICS-004/metrics.json", - "evidence/EVD-LIMY-AGENTICWEB-COLLECT-003/metrics.json", - "evidence/EVD-GRAPHRAGBENCH-EVAL-001/report.json", - "evidence/legacy/EVD-ITEMUNKNOWN-FND-001/metrics.json", - "evidence/EVD-ACPREGISTRY-INGEST-001/report.json", - "evidence/EVD-ACPREGISTRY-INGEST-001/metrics.json", - "evidence/EVD-CTA-LEADERS-2026-01-INGEST-001/metrics.json", - "evidence/EVD-SCHEMARETR-ABLAT-001/report.json", - "evidence/EVD-SOT-EVAL-001/report.json", - "evidence/EVD-SOT-EVAL-001/metrics.json", - "evidence/TELETOK-2025/report.json", - "evidence/TELETOK-2025/metrics.json", - "evidence/EVD-SOT-EVID-001/metrics.json", - "evidence/EVD-APPLEQAI-PRIV-002/report.json", - "evidence/EVD-mcp-a2a-mental-model-interop-001/report.json", - "evidence/EVD-SDSBC-CODEGEN-001/report.json", - "evidence/EVD-SDSBC-CODEGEN-001/metrics.json", - "evidence/EVD-SYNTHDATA-COV-001/report.json", - "evidence/decks/foundation/report.json", - "evidence/decks/foundation/metrics.json", - "evidence/fixtures/pass/basic_bundle/report.json", - "evidence/fixtures/pass/basic_bundle/metrics.json", - "evidence/bundles/SHINY-SAAS-VISH-20260130/report.json", - "evidence/bundles/SHINY-SAAS-VISH-20260130/metrics.json", - "evidence/packs/EVD-PPGI-MAG-PRIV-001/metrics.json", - "evidence/runs/verify_subsumption_bundle/report.json", - "evidence/runs/verify_subsumption_bundle/metrics.json", - "evidence/runs/ai-miso-psyop-2025/report.json", - "evidence/runs/ai-miso-psyop-2025/metrics.json", - "evidence/runs/initial/metrics.json", - "evidence/subsumption/lingbot-vla/report.json", - "evidence/subsumption/CTIINGEST/EVID-cti-20260131-8b1b8659/report.json" + "evidence/packs/EVD-PPGI-MAG-PRIV-001/report.json" ], "timestamps": [ - "evidence/DISINFO-NEWS-ECOSYSTEM-2026/metrics.json", - "evidence/DISINFO-NEWS-ECOSYSTEM-2026/report.json", - "evidence/EVD-COGWAR-2026-EVENT-001/metrics.json", - "evidence/EVD-COGWAR-2026-EVENT-001/report.json", - "evidence/EVD-COGWAR-2026-EVENT-002/metrics.json", - "evidence/EVD-COGWAR-2026-EVENT-002/report.json", - "evidence/EVD-COGWAR-2026-EVENT-003/metrics.json", - "evidence/EVD-COGWAR-2026-EVENT-003/report.json", - "evidence/EVD-IOB20260202-AIAGENT-001/metrics.json", - "evidence/EVD-IOB20260202-AIAGENT-001/report.json", - "evidence/EVD-IOB20260202-ALLYRISK-001/metrics.json", - "evidence/EVD-IOB20260202-ALLYRISK-001/report.json", - "evidence/EVD-IOB20260202-CAPACITY-001/metrics.json", - "evidence/EVD-IOB20260202-CAPACITY-001/report.json", - "evidence/EVD-IOB20260202-ECONESP-001/metrics.json", - "evidence/EVD-IOB20260202-ECONESP-001/report.json", - "evidence/EVD-IOB20260202-FIMI-001/metrics.json", - "evidence/EVD-IOB20260202-FIMI-001/report.json", - "evidence/EVD-IOB20260202-HUMINT-001/metrics.json", - "evidence/EVD-IOB20260202-HUMINT-001/report.json", - "evidence/EVD-IOB20260202-SUPPLYCHAIN-001/metrics.json", - "evidence/EVD-IOB20260202-SUPPLYCHAIN-001/report.json", - "evidence/EVD-IOB20260202-WIRELESS-001/metrics.json", - "evidence/EVD-IOB20260202-WIRELESS-001/report.json", - "evidence/EVD-NARRATIVE-CI-METRICS-001/metrics.json", - "evidence/EVID-20260131-ufar-0001/metrics.json", - "evidence/EVID-20260131-ufar-0001/report.json", - "evidence/EVID-IOPS-20260208-v2-schema-gitsha7/report.json", - "evidence/EVID-NARINT-SMOKE/report.json", - "evidence/FORBES-AGENTIC-AI-2026/metrics.json", - "evidence/FORBES-AGENTIC-AI-2026/report.json", - "evidence/acp_stamp.json", - "evidence/audit/report.json", - "evidence/eval-repro/GRRAG-20260201-test-sha-eval-run/report.json", - "evidence/fixtures/kimik25/report.timestamp.json", - "evidence/fixtures/kimik25/stamp.ok.json", - "evidence/fixtures/vera/fail/forbidden_timestamp.json", - "evidence/forbes-2026-trends/report.json", "evidence/governance/agent_governance.report.json", - "evidence/jules/preflight.report.json", - "evidence/moltbook-relay-surface-001/report.json", - "evidence/osintplatint_20260201_transform_search_ea8aba4/report.json", - "evidence/policy/metrics.json", - "evidence/policy/report.json", - "evidence/portal-kombat-venezuela/EVD-PORTALKOMBAT-VEN-CONTRA-002/report.json", - "evidence/portal-kombat-venezuela/EVD-PORTALKOMBAT-VEN-POLAR-004/report.json", - "evidence/portal-kombat-venezuela/EVD-PORTALKOMBAT-VEN-SURGE-001/metrics.json", - "evidence/portal-kombat-venezuela/EVD-PORTALKOMBAT-VEN-SURGE-001/report.json", - "evidence/pppt-501608/report.json", "evidence/project19/alignment.report.json", "evidence/project19/report.json", - "evidence/skill_stamp.json", - "forbidden_timestamp.json", - "governed_exceptions.json", - "metrics.json", - "report.json", - "report.timestamp.json", - "stamp.ok.json" + "evidence/jules/preflight.report.json" ] -} \ No newline at end of file +} diff --git a/evidence/index.json b/evidence/index.json index e19d8c03fa7..b090536e67a 100644 --- a/evidence/index.json +++ b/evidence/index.json @@ -1,9 +1,105 @@ { - "items": [ - { - "name": "GeoIntPane Accessibility", - "description": "Improved accessibility for GeoIntPane", - "status": "active" + "version": "1.0", + "items": { + "EVD-PIPELINE-RESILIENCE-001": { + "title": "Pipeline Scaffolding Check", + "category": "pipeline", + "artifacts": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] + }, + "EVD-SKETCHDYNAMICS-PIPELINE-001": { + "title": "SketchDynamics End-to-End Run", + "category": "dynamic-intent", + "artifacts": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] + }, + "EVD-SKETCHDYNAMICS-CLARIFY-001": { + "title": "SketchDynamics Clarification Trigger", + "category": "dynamic-intent", + "artifacts": ["fixtures/ambiguities/critical.json"] + }, + "EVD-vfgnn-ATT-001": { + "files": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] + }, + "EVD-vfgnn-NEG-001": { + "files": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] + }, + "EVD-INHOUSE-DATA-AGENT-ARCH-001": { + "files": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] + }, + "EVD-ATLAS-SCHEMA-001": { + "files": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] + }, + "EVD-ATLAS-PLNR-001": { + "files": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] + }, + "EVD-ATLAS-XFER-001": { + "files": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] + }, + "EVD-ATLAS-ATLS-001": { + "files": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] + }, + "EVD-ATLAS-ATLS-002": { + "files": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] + }, + "EVD-ATLAS-GOV-001": { + "files": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] + }, + "EVD-260119895-keel-ARCH-001": { + "files": [ + "summit/evidence/templates/report.json", + "summit/evidence/templates/metrics.json", + "summit/evidence/templates/stamp.json" + ] + }, + "EVD-260119895-keel-STAB-002": { + "files": [ + "summit/evidence/templates/report.json", + "summit/evidence/templates/metrics.json", + "summit/evidence/templates/stamp.json" + ] + }, + "EVD-260119895-keel-DSCL-003": { + "files": [ + "summit/evidence/templates/report.json", + "summit/evidence/templates/metrics.json", + "summit/evidence/templates/stamp.json" + ] + }, + "EVD-260119895-keel-BENCH-004": { + "files": [ + "summit/evidence/templates/report.json", + "summit/evidence/templates/metrics.json", + "summit/evidence/templates/stamp.json" + ] + }, + "EVD-SSDF12-BNDL-001": { + "files": [ + "evidence/ssdf-v1-2/pr-01/report.json", + "evidence/ssdf-v1-2/pr-01/metrics.json", + "evidence/ssdf-v1-2/pr-01/stamp.json" + ] + }, + "EVD-EXPB-CORE-001": { + "files": [ + "evidence/runs/expectation-baselines/report.json", + "evidence/runs/expectation-baselines/metrics.json", + "evidence/runs/expectation-baselines/stamp.json" + ] + }, + "EVD-PRIVTEL-SCHEMA-001": { + "files": [ + "evidence/privtel/report.json", + "evidence/privtel/metrics.json", + "evidence/privtel/stamp.json" + ] + }, + "EVD-openviking-contextfs-001": { + "files": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] + }, + "EVD-openviking-retrieval-002": { + "files": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] + }, + "EVD-openviking-trace-003": { + "files": ["evidence/report.json", "evidence/metrics.json", "evidence/stamp.json"] } - ] + } } diff --git a/evidence/index.schema.json b/evidence/index.schema.json index 0cd0dd55a26..40772561527 100644 --- a/evidence/index.schema.json +++ b/evidence/index.schema.json @@ -4,27 +4,17 @@ "type": "object", "required": ["version", "items"], "properties": { - "version": { "type": "integer" }, + "version": { "type": "string" }, "items": { - "type": "array", - "items": { - "type": "object", - "required": ["evidence_id", "files"], - "properties": { - "evidence_id": { "type": "string" }, - "files": { - "type": "object", - "required": ["report", "metrics", "stamp"], - "properties": { - "report": { "type": "string" }, - "metrics": { "type": "string" }, - "stamp": { "type": "string" } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - } + "type": "object", + "patternProperties": { + "^EVD-[A-Z0-9-]+$": { + "type": "array", + "items": { "type": "string" }, + "minItems": 1 + } + }, + "additionalProperties": false } }, "additionalProperties": false diff --git a/evidence/metrics.json b/evidence/metrics.json index 407bcb503a6..9df7aae36d6 100644 --- a/evidence/metrics.json +++ b/evidence/metrics.json @@ -1,4 +1,9 @@ { - "avg_latency_ms": 0.0031789143880208335, - "avg_fanout": 1.0 -} \ No newline at end of file + "evidence_id": "EVD-SKETCHDYNAMICS-PIPELINE-001", + "metrics": { + "clarification_turns_count": 0, + "critical_ambiguities_unresolved_count": 0, + "locality_pass_rate": 1.0, + "determinism_hash_match": 1.0 + } +} diff --git a/evidence/metrics.schema.json b/evidence/metrics.schema.json index e929c550e7f..4db611db6fc 100644 --- a/evidence/metrics.schema.json +++ b/evidence/metrics.schema.json @@ -1,14 +1,11 @@ { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Summit Evidence Metrics", - "type": "object", - "required": ["evidence_id", "metrics"], - "properties": { - "evidence_id": { "type": "string" }, - "metrics": { - "type": "object", - "additionalProperties": { "type": "number" } - } + "$schema":"https://json-schema.org/draft/2020-12/schema", + "title":"Summit Evidence Metrics", + "type":"object", + "required":["evidence_id","metrics"], + "properties":{ + "evidence_id":{"type":"string"}, + "metrics":{"type":"object","additionalProperties":{"type":"number"}} }, - "additionalProperties": false + "additionalProperties":false } diff --git a/evidence/packs/EVD-PPGI-MAG-PRIV-001/metrics.json b/evidence/packs/EVD-PPGI-MAG-PRIV-001/metrics.json index dae82f2ab0d..91325878904 100644 --- a/evidence/packs/EVD-PPGI-MAG-PRIV-001/metrics.json +++ b/evidence/packs/EVD-PPGI-MAG-PRIV-001/metrics.json @@ -1,6 +1,3 @@ { - "evidence_id": "EVD-PPGI-MAG-PRIV-001", - "metrics": { - "privacy_budget_remaining": 100 - } + "privacy_budget_remaining": 100 } diff --git a/evidence/privtel/metrics.json b/evidence/privtel/metrics.json index 2fb9f6b3fd2..6269b5b89d6 100644 --- a/evidence/privtel/metrics.json +++ b/evidence/privtel/metrics.json @@ -5,4 +5,4 @@ "event_schema_fields": 10, "restricted_fields": 1 } -} \ No newline at end of file +} diff --git a/evidence/privtel/report.json b/evidence/privtel/report.json index cf3758c83db..1768417e1ec 100644 --- a/evidence/privtel/report.json +++ b/evidence/privtel/report.json @@ -1,5 +1,26 @@ { "evidence_id": "EVD-PRIVTEL-SCHEMA-001", - "summary": "Legacy report summary", - "artifacts": [] -} \ No newline at end of file + "item_slug": "privtel", + "claims": [ + "Telemetry event envelope fields are deny-by-default with explicit policy annotations.", + "Restricted PII fields are configured with non-allow transforms." + ], + "decisions": [ + { + "decision": "Gate top-level telemetry envelope fields against an explicit allowlist.", + "rationale": "Enforces deny-by-default policies and blocks unclassified fields." + } + ], + "findings": [ + { + "area": "telemetry-privacy", + "maestro_layers": ["Foundation", "Data", "Observability", "Security"], + "threats_considered": [ + "Unclassified fields leaking identifiers", + "Restricted PII emitted without transform" + ], + "mitigations": ["Allowlist validation", "Restricted PII transform enforcement"] + } + ], + "summary": "Legacy report summary" +} diff --git a/evidence/privtel/stamp.json b/evidence/privtel/stamp.json index 9ef363f9413..f5e63a33f5e 100644 --- a/evidence/privtel/stamp.json +++ b/evidence/privtel/stamp.json @@ -1,4 +1,7 @@ { "evidence_id": "EVD-PRIVTEL-SCHEMA-001", + "tool_versions": { + "check_telemetry_privacy.py": "v1" + }, "generated_at": "2026-01-29T00:00:00Z" -} \ No newline at end of file +} diff --git a/evidence/project19/report.json b/evidence/project19/report.json index 5d2b3ca425c..808bffc382c 100644 --- a/evidence/project19/report.json +++ b/evidence/project19/report.json @@ -2,6 +2,7 @@ "contractId": "ev-project19-resilience", "manifest": { "queryId": "project19-completion", + "timestamp": "2025-10-27T12:00:00Z", "strategy": "HYBRID", "parameters": { "project": "Project 19", @@ -14,6 +15,7 @@ { "id": "cit-enforcement", "source": "scripts/project19-enforcement.ts", + "timestamp": "2025-10-27T12:00:00Z", "confidence": 1.0, "snippet": "Project 19 Enforcement Passed" } diff --git a/evidence/report.json b/evidence/report.json index 1bfc0961762..d9500fee576 100644 --- a/evidence/report.json +++ b/evidence/report.json @@ -1,5 +1,31 @@ { - "summary": "Partitioning eval completed", - "scenarios": 3, - "status": "PASS" -} \ No newline at end of file + "evidence_id": "EVD-SKETCHDYNAMICS-PIPELINE-001", + "summary": "SketchDynamics evidence scaffold: PASS", + "steps": [ + { + "name": "schema-setup", + "status": "pass", + "details": { + "what_ran": "Dynamic intent evidence skeleton" + } + }, + { + "name": "fixtures", + "status": "pass", + "details": { + "what_ran": "Fixture bundle registration" + } + } + ], + "run_id": "run-002", + "item_slug": "sketchdynamics-pipeline", + "evd_ids": [ + "EVD-SKETCHDYNAMICS-PIPELINE-001", + "EVD-SKETCHDYNAMICS-CLARIFY-001", + "EVD-SKETCHDYNAMICS-REFINE-001" + ], + "artifacts": { + "metrics": "evidence/metrics.json", + "stamp": "evidence/stamp.json" + } +} diff --git a/evidence/report.schema.json b/evidence/report.schema.json index ecf1bfbb0c7..d24cc105b99 100644 --- a/evidence/report.schema.json +++ b/evidence/report.schema.json @@ -2,56 +2,13 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Summit Evidence Report", "type": "object", - "required": ["evidence_id", "item_slug", "patterns", "claims", "assessments"], + "required": ["evidence_id","item_slug","claims","decisions","findings"], "properties": { - "evidence_id": { "type": "string" }, - "item_slug": { "type": "string" }, - "patterns": { - "type": "array", - "items": { - "type": "string", - "enum": ["insider", "supply_chain", "fimi", "wireless", "agentic_ai", "humint", "ally_risk"] - } - }, - "claims": { - "type": "array", - "items": { - "type": "object", - "required": ["text", "confidence", "supported_by"], - "properties": { - "text": { "type": "string" }, - "confidence": { "type": "number", "minimum": 0, "maximum": 1 }, - "supported_by": { - "type": "array", - "items": { - "type": "object", - "required": ["url", "publisher"], - "properties": { - "url": { "type": "string", "format": "uri" }, - "publisher": { "type": "string" } - } - } - } - } - } - }, - "assessments": { - "type": "array", - "items": { - "type": "object", - "required": ["pattern", "recommended_controls"], - "properties": { - "pattern": { "type": "string" }, - "recommended_controls": { - "type": "array", - "items": { "type": "string" } - } - } - } - }, - "experiment": { "type": "string" }, - "dataset": { "type": "string" }, - "result": { "type": "object" } + "evidence_id": {"type":"string"}, + "item_slug": {"type":"string"}, + "claims": {"type":"array","items":{"type":"string"}}, + "decisions": {"type":"array","items":{"type":"object"}}, + "findings": {"type":"array","items":{"type":"object"}} }, "additionalProperties": false } diff --git a/evidence/required_checks.todo.md b/evidence/required_checks.todo.md index bb0915969d6..d40f0a38e6f 100644 --- a/evidence/required_checks.todo.md +++ b/evidence/required_checks.todo.md @@ -3,10 +3,3 @@ 2. List required status checks (exact names). 3. Replace placeholders in `.ci/required_checks.json`. 4. Rename plan: add PR that updates gate names if CI providers rename checks. - -## Placeholder checks (to be replaced) -- summit/evidence_schema_validate -- summit/entropy_guard -- summit/context_bundle -- summit/complexity_budget -- summit/dependency_delta diff --git a/evidence/runs/ai-miso-psyop-2025/metrics.json b/evidence/runs/ai-miso-psyop-2025/metrics.json index 45bc4ccd8f1..70a958c0a80 100644 --- a/evidence/runs/ai-miso-psyop-2025/metrics.json +++ b/evidence/runs/ai-miso-psyop-2025/metrics.json @@ -1,7 +1,4 @@ { - "evidence_id": "EVD-AI-MISO-PSYOP-2025-EVAL-001", - "metrics": { - "prohibited_field_blocks": 1, - "prohibited_intent_blocks": 2 - } + "prohibited_field_blocks": 1, + "prohibited_intent_blocks": 2 } diff --git a/evidence/runs/ai-miso-psyop-2025/report.json b/evidence/runs/ai-miso-psyop-2025/report.json index 0289167f080..73ed5db5eac 100644 --- a/evidence/runs/ai-miso-psyop-2025/report.json +++ b/evidence/runs/ai-miso-psyop-2025/report.json @@ -1,6 +1,5 @@ { "evidence_id": "EVD-AI-MISO-PSYOP-2025-EVAL-001", - "summary": "AI MISO PSYOP 2025 Evaluation - analysis only.", "findings": { "prohibited_field_blocks": 1, "prohibited_intent_blocks": 2 diff --git a/evidence/runs/initial/metrics.json b/evidence/runs/initial/metrics.json index a21d25d3fa1..3221cf4dbed 100644 --- a/evidence/runs/initial/metrics.json +++ b/evidence/runs/initial/metrics.json @@ -1,4 +1,3 @@ { - "evidence_id": "EVD-AIPERS-BASE-001", - "metrics": {} + "evidence_id": "EVD-AIPERS-BASE-001" } diff --git a/evidence/runs/verify_subsumption_bundle/metrics.json b/evidence/runs/verify_subsumption_bundle/metrics.json index a5a1dc1052a..ae2073567a3 100644 --- a/evidence/runs/verify_subsumption_bundle/metrics.json +++ b/evidence/runs/verify_subsumption_bundle/metrics.json @@ -1,6 +1,7 @@ { + "version": 1, "evidence_id": "EVD-ITEMUNKNOWN-CI-001", - "metrics": { + "counters": { "files_checked": 34, "fixtures_checked": 4, "fixtures_passed": 4, diff --git a/evidence/runs/verify_subsumption_bundle/report.json b/evidence/runs/verify_subsumption_bundle/report.json index bfc5ca25d3d..695e9144533 100644 --- a/evidence/runs/verify_subsumption_bundle/report.json +++ b/evidence/runs/verify_subsumption_bundle/report.json @@ -2,7 +2,6 @@ "version": 1, "evidence_id": "EVD-ITEMUNKNOWN-CI-001", "item_slug": "item-UNKNOWN", - "summary": "Generated by verify_subsumption_bundle", "claims": [], "decisions": ["Generated by verify_subsumption_bundle"] } diff --git a/evidence/schema/index.schema.json b/evidence/schema/index.schema.json index 1e8ad9626e1..28952a343d3 100644 --- a/evidence/schema/index.schema.json +++ b/evidence/schema/index.schema.json @@ -1,35 +1,22 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Evidence Index Schema", + "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", + "additionalProperties": false, "properties": { - "version": { - "type": "string" - }, + "version": { "type": "number" }, "items": { - "type": "object", - "additionalProperties": { + "type": "array", + "items": { "type": "object", "properties": { - "files": { - "type": "array", - "items": { "type": "string" } - }, - "artifacts": { - "type": "array", - "items": { "type": "string" } - }, - "title": { - "type": "string" - }, - "category": { - "type": "string" - } + "evidence_id": { "type": "string" }, + "report": { "type": "string" }, + "metrics": { "type": "string" }, + "stamp": { "type": "string" } }, - "additionalProperties": false + "required": ["evidence_id", "report", "stamp"] } } }, - "required": ["version", "items"], - "additionalProperties": false + "required": ["version", "items"] } diff --git a/evidence/schema/metrics.schema.json b/evidence/schema/metrics.schema.json index caf702f8c15..b50e698d481 100644 --- a/evidence/schema/metrics.schema.json +++ b/evidence/schema/metrics.schema.json @@ -1,14 +1,13 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "summit_evidence_metrics", + "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", - "required": ["evidence_id", "metrics"], + "additionalProperties": false, "properties": { "evidence_id": { "type": "string" }, "metrics": { "type": "object", - "additionalProperties": { "type": ["number", "string", "boolean"] } + "additionalProperties": { "type": "number" } } }, - "additionalProperties": false + "required": ["evidence_id", "metrics"] } diff --git a/evidence/schema/report.schema.json b/evidence/schema/report.schema.json index 1b728801628..c4f2c69fbac 100644 --- a/evidence/schema/report.schema.json +++ b/evidence/schema/report.schema.json @@ -1,11 +1,9 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "summit_evidence_report", + "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", - "required": ["evidence_id", "title", "summary", "artifacts"], + "additionalProperties": false, "properties": { - "evidence_id": { "type": "string", "pattern": "^EVD-[A-Z0-9]+-[A-Z0-9]+-\\d{3}$" }, - "title": { "type": "string" }, + "evidence_id": { "type": "string" }, "summary": { "type": "string" }, "status": { "type": "string" }, "artifacts": { @@ -13,5 +11,5 @@ "items": { "type": "string" } } }, - "additionalProperties": false + "required": ["evidence_id", "summary"] } diff --git a/evidence/schema/stamp.schema.json b/evidence/schema/stamp.schema.json index ee86ce15754..fbbc7c406ed 100644 --- a/evidence/schema/stamp.schema.json +++ b/evidence/schema/stamp.schema.json @@ -1,14 +1,11 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "summit_evidence_stamp", + "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", - "required": ["evidence_id", "generated_at"], + "additionalProperties": false, "properties": { - "evidence_id": { "type": "string" }, - "generated_at": { "type": "string", "format": "date-time" }, - "started_at": { "type": "string" }, - "finished_at": { "type": "string" }, - "runner": { "type": "string" } + "started_at": {"type": "string"}, + "finished_at": {"type": "string"}, + "runner": {"type": "string"} }, - "additionalProperties": false + "required": ["started_at", "finished_at"] } diff --git a/evidence/schemas/index.schema.json b/evidence/schemas/index.schema.json index 89ebd6fd50d..d4b6d79afe1 100644 --- a/evidence/schemas/index.schema.json +++ b/evidence/schemas/index.schema.json @@ -1,21 +1,18 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "summit evidence index", + "title": "Summit Evidence Index", "type": "object", - "required": ["mappings"], + "required": ["version"], "properties": { "version": { "type": "string" }, - "mappings": { + "items": { "type": "object", "additionalProperties": { "type": "object", - "required": ["report", "metrics", "stamp"], + "required": ["files"], "properties": { - "report": { "type": "string" }, - "metrics": { "type": "string" }, - "stamp": { "type": "string" }, "evidence_id": { "type": "string" }, "files": { "type": "array", @@ -28,10 +25,23 @@ "items": { "type": "string" } } }, - "anyOf": [{ "required": ["files"] }, { "required": ["artifacts"] }, { "required": ["report", "metrics", "stamp"] }], + "additionalProperties": true + } + }, + "map": { + "type": "object", + "additionalProperties": { + "type": "object", + "required": ["report", "metrics", "stamp"], + "properties": { + "report": { "type": "string" }, + "metrics": { "type": "string" }, + "stamp": { "type": "string" } + }, "additionalProperties": true } } }, - "additionalProperties": false + "oneOf": [{ "required": ["items"] }, { "required": ["map"] }], + "additionalProperties": true } diff --git a/evidence/schemas/metrics.schema.json b/evidence/schemas/metrics.schema.json index 1aa8f3ab182..974688ee211 100644 --- a/evidence/schemas/metrics.schema.json +++ b/evidence/schemas/metrics.schema.json @@ -1,22 +1,11 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "summit evidence metrics", "type": "object", + "required": ["evidence_id", "metrics"], "properties": { - "evidence_id": { "type": "string" }, - "avg_latency_ms": { "type": "number" }, - "avg_fanout": { "type": "number" } - }, - "required": [], - "additionalProperties": true - "$id": "https://summit.local/schemas/metrics.schema.json", - "type": "object", - "required": ["version", "counters"], - "properties": { - "version": { "type": "integer" }, - "counters": { - "type": "object", - "additionalProperties": { "type": "number" } - } + "evidence_id": {"type": "string"}, + "metrics": {"type": "object"} }, "additionalProperties": false } diff --git a/evidence/schemas/report.schema.json b/evidence/schemas/report.schema.json index 063e41783d2..1b05004c232 100644 --- a/evidence/schemas/report.schema.json +++ b/evidence/schemas/report.schema.json @@ -1,15 +1,25 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://summit.local/schemas/report.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Summit Evidence Report", "type": "object", + "required": ["evidence_id", "summary"], "properties": { - "evidence_id": { "type": "string" }, - "summary": { "type": "string" }, - "scenarios": { "type": "integer" }, - "status": { "type": "string" }, - "item": { "type": "string" } + "evidence_id": { + "type": "string", + "pattern": "^EVD-[A-Za-z0-9-]+$" + }, + "item": { + "type": "object" + }, + "summary": { + "type": "string" + }, + "artifacts": { + "type": ["array", "object"] + }, + "item_slug": { + "type": "string" + } }, - "required": [], "additionalProperties": true } diff --git a/evidence/schemas/stamp.schema.json b/evidence/schemas/stamp.schema.json index ef60cfd252b..1a0dc1a9bf8 100644 --- a/evidence/schemas/stamp.schema.json +++ b/evidence/schemas/stamp.schema.json @@ -1,4 +1,17 @@ { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Summit Evidence Stamp", "type": "object", - "additionalProperties": true -} \ No newline at end of file + "required": ["evidence_id", "generated_at"], + "properties": { + "evidence_id": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "generated_at": { + "type": "string" + } + } +} diff --git a/evidence/ssdf-v1-2/pr-01/metrics.json b/evidence/ssdf-v1-2/pr-01/metrics.json index f03d2e77fec..7e9e29daf89 100644 --- a/evidence/ssdf-v1-2/pr-01/metrics.json +++ b/evidence/ssdf-v1-2/pr-01/metrics.json @@ -5,4 +5,4 @@ "fixtures_allow": 1, "fixtures_deny": 2 } -} \ No newline at end of file +} diff --git a/evidence/ssdf-v1-2/pr-01/report.json b/evidence/ssdf-v1-2/pr-01/report.json index 1b77cb5305a..80a22245437 100644 --- a/evidence/ssdf-v1-2/pr-01/report.json +++ b/evidence/ssdf-v1-2/pr-01/report.json @@ -1,5 +1,17 @@ { "evidence_id": "EVD-SSDF12-BNDL-001", - "summary": "Legacy report summary", - "artifacts": [] -} \ No newline at end of file + "item_slug": "ssdf-v1-2", + "findings": [ + { + "status": "present", + "artifacts": [ + "subsumption/ssdf-v1-2/manifest.yaml", + "subsumption/ssdf-v1-2/claim_registry.json", + "subsumption/ssdf-v1-2/controls.map.json" + ] + } + ], + "claim_ids": ["ITEM:CLAIM-01", "ITEM:CLAIM-02", "ITEM:CLAIM-03"], + "decisions": ["Bundle skeleton added without enforcement gates."], + "summary": "Legacy report summary" +} diff --git a/evidence/ssdf-v1-2/pr-01/stamp.json b/evidence/ssdf-v1-2/pr-01/stamp.json index 55aec796386..c2c03fcb827 100644 --- a/evidence/ssdf-v1-2/pr-01/stamp.json +++ b/evidence/ssdf-v1-2/pr-01/stamp.json @@ -1,4 +1,7 @@ { "evidence_id": "EVD-SSDF12-BNDL-001", - "generated_at": "2026-01-29T00:00:00Z" -} \ No newline at end of file + "generated_at": "2026-01-29T00:00:00Z", + "tool_versions": { + "generator": "manual" + } +} diff --git a/evidence/stamp.json b/evidence/stamp.json index 89553b64626..47553c4a030 100644 --- a/evidence/stamp.json +++ b/evidence/stamp.json @@ -1,4 +1,5 @@ { - "timestamp": 1800000000.0, - "version": "1.0" + "evidence_id": "EVD-SKETCHDYNAMICS-PIPELINE-001", + "generated_at": "2026-02-01T12:00:00Z", + "ci_run_id": "run-002" } diff --git a/evidence/stamp.schema.json b/evidence/stamp.schema.json index 816a8111c1f..a02bf9ea6e9 100644 --- a/evidence/stamp.schema.json +++ b/evidence/stamp.schema.json @@ -1,12 +1,12 @@ { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Summit Evidence Stamp", - "type": "object", - "required": ["evidence_id", "retrieved_at"], - "properties": { - "evidence_id": { "type": "string" }, - "retrieved_at": { "type": "string", "format": "date-time" }, - "version": { "type": "string" } + "$schema":"https://json-schema.org/draft/2020-12/schema", + "title":"Summit Evidence Stamp", + "type":"object", + "required":["evidence_id","tool_versions","generated_at"], + "properties":{ + "evidence_id":{"type":"string"}, + "tool_versions":{"type":"object","additionalProperties":{"type":"string"}}, + "generated_at":{"type":"string"} }, - "additionalProperties": true + "additionalProperties":false } diff --git a/evidence/subsumption/lingbot-vla/report.json b/evidence/subsumption/lingbot-vla/report.json index 900861320b7..620f9efc131 100644 --- a/evidence/subsumption/lingbot-vla/report.json +++ b/evidence/subsumption/lingbot-vla/report.json @@ -1,8 +1,21 @@ { "evidence_id": "EVD-260118692-EVID-001", "item_slug": "lingbot-vla", - "summary": "MoT architecture uses shared attention between VLM and action expert.", - "claims": ["MoT architecture uses shared attention between VLM and action expert.", "Evaluation uses SR and PS with fixed trial counts."], - "decisions": [{"decision": "Install evidence scaffolding for VLA subsumption.", "status": "approved", "rationale": "Evidence-first workflow required for future benchmarks."}], - "findings": [{"finding": "Evidence scaffold established; no benchmark results recorded yet.", "status": "not_evaluated"}] + "claims": [ + "MoT architecture uses shared attention between VLM and action expert.", + "Evaluation uses SR and PS with fixed trial counts." + ], + "decisions": [ + { + "decision": "Install evidence scaffolding for VLA subsumption.", + "status": "approved", + "rationale": "Evidence-first workflow required for future benchmarks." + } + ], + "findings": [ + { + "finding": "Evidence scaffold established; no benchmark results recorded yet.", + "status": "not_evaluated" + } + ] } diff --git a/evidence/validate.py b/evidence/validate.py index b25dd4b71c9..dfd68f63539 100644 --- a/evidence/validate.py +++ b/evidence/validate.py @@ -58,24 +58,12 @@ def main(): validate_schema(index, ROOT / "evidence" / "schemas" / "index.schema.json", context="index.json") items = index.get("items", []) - if isinstance(items, dict): - items_list = [] - for eid, details in items.items(): - item = details.copy() - if "evidence_id" not in item: - item["evidence_id"] = eid - items_list.append(item) - items = items_list - if not isinstance(items, list): - fail("index.json 'items' must be a list or object") + fail("index.json 'items' must be a list") print(f"Index valid. {len(items)} items found.") for item in items: - item_id = item.get("evidence_id") or item.get("id") - report = None - if "id" in item and "path" in item: # Check if path exists item_path = ROOT / item["path"] @@ -84,33 +72,15 @@ def main(): # Load evidence report report = load_json(item_path) - elif "evidence_id" in item: - report_path = None - if "report" in item: - report_path = ROOT / item["report"] - elif "artifacts" in item: - for art in item["artifacts"]: - if isinstance(art, str) and art.endswith("report.json"): - report_path = ROOT / art - break - elif "files" in item: - for f in item["files"]: - if isinstance(f, str) and f.endswith("report.json"): - report_path = ROOT / f - break - - if report_path: - if not report_path.exists(): - print(f"WARN: Evidence report not found: {report_path}") - else: - report = load_json(report_path) - - if report is None: - if item_id: - print(f"WARN: Could not find report for {item_id}, skipping content validation.") - continue - else: - fail(f"Item missing required fields: {item}") + item_id = item["id"] + elif "evidence_id" in item and "report" in item: + report_path = ROOT / item["report"] + if not report_path.exists(): + fail(f"Evidence report not found: {report_path}") + report = load_json(report_path) + item_id = item["evidence_id"] + else: + fail(f"Item missing required fields: {item}") # Determine which schema to use. if "summary" in report and "outputs" in report: diff --git a/feature_flags.json b/feature_flags.json index efb3883c895..36ede8e0239 100644 --- a/feature_flags.json +++ b/feature_flags.json @@ -1,6 +1,4 @@ { "SKILL_PRESERVING_MODE": false, - "ADAPTIVE_COACHING": false, - "FEATURE_EXTORTION_PRESSURE": false, - "LONGHORIZON_PR_CHAINS_ENABLED": false -} \ No newline at end of file + "ADAPTIVE_COACHING": false +} diff --git a/feature_flags/flags.yml b/feature_flags/flags.yml index 401811d2b05..0f25d503a20 100644 --- a/feature_flags/flags.yml +++ b/feature_flags/flags.yml @@ -1,3 +1,2 @@ flag_vishing_saas_scorer: false flag_helpdesk_hardening: false -flag_finance_shadow_agent: false diff --git a/frontend/src/Graph.jsx b/frontend/src/Graph.jsx index 13146d78e4f..067d4d5631e 100644 --- a/frontend/src/Graph.jsx +++ b/frontend/src/Graph.jsx @@ -19,27 +19,6 @@ const Graph = ({ elements, neighborhoodMode }) => { const cyInstance = useRef(null); const workerRef = useRef(null); - useEffect(() => { - workerRef.current = new Worker( - new URL('./layoutWorker.ts', import.meta.url), - ); - workerRef.current.onmessage = (e) => { - const cy = cyInstance.current; - if (!cy) return; - - const { positions } = e.data; - cy.startBatch(); - Object.keys(positions).forEach((id) => { - cy.getElementById(id).position(positions[id]); - }); - cy.endBatch(); - }; - - return () => { - workerRef.current && workerRef.current.terminate(); - }; - }, []); - useEffect(() => { if (!cyRef.current) return; @@ -77,10 +56,6 @@ const Graph = ({ elements, neighborhoodMode }) => { }, }, { selector: '.hidden', style: { display: 'none' } }, - { - selector: '.lod-hidden', - style: { label: '', 'target-arrow-shape': 'none' }, - }, ], layout: { name: 'grid', fit: true }, }); @@ -91,9 +66,11 @@ const Graph = ({ elements, neighborhoodMode }) => { const zoom = cy.zoom(); cy.startBatch(); if (zoom < LOD_ZOOM) { - cy.elements().addClass('lod-hidden'); + cy.nodes().style('label', ''); + cy.edges().style('target-arrow-shape', 'none'); } else { - cy.elements().removeClass('lod-hidden'); + cy.nodes().style('label', 'data(label)'); + cy.edges().style('target-arrow-shape', 'triangle'); } cy.endBatch(); }; @@ -102,8 +79,19 @@ const Graph = ({ elements, neighborhoodMode }) => { updateLod(); const runAsyncLayout = () => { - workerRef.current && - workerRef.current.postMessage({ elements: cy.json().elements }); + workerRef.current = new Worker( + new URL('./layoutWorker.ts', import.meta.url), + ); + workerRef.current.onmessage = (e) => { + const { positions } = e.data; + cy.startBatch(); + Object.keys(positions).forEach((id) => { + cy.getElementById(id).position(positions[id]); + }); + cy.endBatch(); + workerRef.current.terminate(); + }; + workerRef.current.postMessage({ elements: cy.json().elements }); }; runAsyncLayout(); @@ -113,6 +101,7 @@ const Graph = ({ elements, neighborhoodMode }) => { return () => { window.removeEventListener('resize', handleResize); + workerRef.current && workerRef.current.terminate(); cy.destroy(); }; }, [elements]); diff --git a/frontend/src/Graph.tsx b/frontend/src/Graph.tsx index a4797a30584..674a6b9d9c0 100644 --- a/frontend/src/Graph.tsx +++ b/frontend/src/Graph.tsx @@ -27,29 +27,6 @@ const Graph: React.FC = ({ elements, neighborhoodMode }) => { const cyInstance = useRef(null); const workerRef = useRef(null); - useEffect(() => { - workerRef.current = new Worker( - new URL('./layoutWorker.ts', import.meta.url), - ); - workerRef.current.onmessage = ( - e: MessageEvent<{ positions: Record }>, - ) => { - const cy = cyInstance.current; - if (!cy) return; - - const { positions } = e.data; - cy.startBatch(); - Object.keys(positions).forEach((id) => { - cy.getElementById(id).position(positions[id]); - }); - cy.endBatch(); - }; - - return () => { - workerRef.current?.terminate(); - }; - }, []); - useEffect(() => { if (!cyRef.current) return; @@ -78,10 +55,6 @@ const Graph: React.FC = ({ elements, neighborhoodMode }) => { }, }, { selector: '.hidden', style: { display: 'none' } }, - { - selector: '.lod-hidden', - style: { label: '', 'target-arrow-shape': 'none' }, - }, ], layout: { name: 'grid', fit: true }, }); @@ -92,9 +65,11 @@ const Graph: React.FC = ({ elements, neighborhoodMode }) => { const zoom = cy.zoom(); cy.startBatch(); if (zoom < LOD_ZOOM) { - cy.elements().addClass('lod-hidden'); + cy.nodes().style('label', ''); + cy.edges().style('target-arrow-shape', 'none'); } else { - cy.elements().removeClass('lod-hidden'); + cy.nodes().style('label', 'data(label)'); + cy.edges().style('target-arrow-shape', 'triangle'); } cy.endBatch(); }; @@ -103,7 +78,21 @@ const Graph: React.FC = ({ elements, neighborhoodMode }) => { updateLod(); const runAsyncLayout = () => { - workerRef.current?.postMessage({ elements: cy.json().elements }); + workerRef.current = new Worker( + new URL('./layoutWorker.ts', import.meta.url), + ); + workerRef.current.onmessage = ( + e: MessageEvent<{ positions: Record }>, + ) => { + const { positions } = e.data; + cy.startBatch(); + Object.keys(positions).forEach((id) => { + cy.getElementById(id).position(positions[id]); + }); + cy.endBatch(); + workerRef.current?.terminate(); + }; + workerRef.current.postMessage({ elements: cy.json().elements }); }; runAsyncLayout(); @@ -113,6 +102,7 @@ const Graph: React.FC = ({ elements, neighborhoodMode }) => { return () => { window.removeEventListener('resize', handleResize); + workerRef.current?.terminate(); cy.destroy(); }; }, [elements]); diff --git a/frontend/src/__tests__/Graph.test.tsx b/frontend/src/__tests__/Graph.test.tsx index 040fcc88c0b..ad3aaba4fce 100644 --- a/frontend/src/__tests__/Graph.test.tsx +++ b/frontend/src/__tests__/Graph.test.tsx @@ -15,13 +15,7 @@ describe('Graph', () => { zoom: vi.fn().mockReturnValue(1), nodes: vi.fn().mockReturnValue({ style: vi.fn() }), edges: vi.fn().mockReturnValue({ style: vi.fn() }), - elements: vi.fn().mockReturnValue({ - addClass: vi.fn(), - removeClass: vi.fn(), - }), - json: vi.fn().mockReturnValue({ elements: [] }), destroy: vi.fn(), - removeListener: vi.fn(), }); render( diff --git a/frontend/src/layoutWorker.ts b/frontend/src/layoutWorker.ts index c40c637246a..667aea19ad4 100644 --- a/frontend/src/layoutWorker.ts +++ b/frontend/src/layoutWorker.ts @@ -11,7 +11,7 @@ self.onmessage = (e: MessageEvent<{ elements: ElementDefinition[] }>): void => { style: [], headless: true, }); - const layout = cy.layout({ name: 'cose-bilkent', randomize: false }); + const layout = cy.layout({ name: 'cose-bilkent', randomize: true }); layout.run(); const positions: Record = {}; cy.nodes().forEach((n) => { diff --git a/intelgraph-mcp/docs/strategy/best-in-class-mcp.md b/intelgraph-mcp/docs/strategy/best-in-class-mcp.md index 2e7d9391eeb..098758f0497 100644 --- a/intelgraph-mcp/docs/strategy/best-in-class-mcp.md +++ b/intelgraph-mcp/docs/strategy/best-in-class-mcp.md @@ -26,10 +26,6 @@ - CI (mock & live) green; conformance 100% pass; SBOM + cosign; policies enforced; evidence pack published with each release tag. -## Agent-Age Alignment - -- See `agent-age-mcp-alignment.md` for Summit MCP guidance that maps agent-era architecture practices to existing governance, replay, and conformance assets. - ## Evidence Pack - `benchmarks/shootout/results.json` (signed) diff --git a/intelgraph-mcp/services/replay-engine/package.json b/intelgraph-mcp/services/replay-engine/package.json index 5c51e105615..06ba9930b8d 100644 --- a/intelgraph-mcp/services/replay-engine/package.json +++ b/intelgraph-mcp/services/replay-engine/package.json @@ -10,7 +10,7 @@ "typecheck": "tsc -p . --noEmit" }, "dependencies": { - "fastify": "^5.7.3", + "fastify": "^4.28.1", "zod": "^3.23.8", "@opentelemetry/api": "^1.9.0" }, diff --git a/intelgraph-mcp/services/runtime-pooler/package.json b/intelgraph-mcp/services/runtime-pooler/package.json index 9c7d5b0cfee..dd8285fdb52 100644 --- a/intelgraph-mcp/services/runtime-pooler/package.json +++ b/intelgraph-mcp/services/runtime-pooler/package.json @@ -11,7 +11,7 @@ "test": "vitest run" }, "dependencies": { - "fastify": "^5.7.3", + "fastify": "^4.28.1", "@fastify/under-pressure": "^8.5.1", "@fastify/ajv-compiler": "^4.0.0", "zod": "^3.23.8", diff --git a/jest.config.cjs b/jest.config.cjs index 0c4324598b4..66b72a4a0cb 100644 --- a/jest.config.cjs +++ b/jest.config.cjs @@ -11,7 +11,7 @@ module.exports = { }, ], }, - roots: ['server', 'client', 'packages', 'services', 'tests', 'scripts', 'libs'], + roots: ['server', 'client', 'packages', 'services', 'tests', 'scripts', 'pp_alerts', 'summit'], modulePathIgnorePatterns: [ '/dist/', '/archive/', @@ -25,6 +25,7 @@ module.exports = { '/archive/', '/salvage/', '/pull/', + '/.cache/', ], watchPathIgnorePatterns: [ '/node_modules/', @@ -64,6 +65,7 @@ module.exports = { statements: 85, }, }, + coverageReporters: ['json-summary', 'text', 'lcov'], testMatch: [ '**/__tests__/**/*.{ts,tsx,js,jsx}', '**/?(*.)+(spec|test).{ts,tsx,js,jsx}', @@ -74,6 +76,7 @@ module.exports = { '^pg$': '/__mocks__/pg.js', '^ioredis$': '/__mocks__/ioredis.js', '^puppeteer$': '/__mocks__/puppeteer.js', + '^uWebSockets\\.js$': '/__mocks__/uWebSockets.js', '^@server/(.*)$': '/server/src/$1', '^@tests/(.*)$': '/tests/$1', '^@intelgraph/provenance$': '/packages/provenance/src/index.ts', @@ -86,6 +89,8 @@ module.exports = { '/apps/.desktop-electron-disabled/', ], testTimeout: 30000, + maxWorkers: '50%', + reporters: ['default', ['jest-junit', { outputDirectory: 'reports/junit' }]], testEnvironmentOptions: { customExportConditions: ['node', 'node-addons', 'default'], }, diff --git a/jest.projects.cjs b/jest.projects.cjs index 119ebb358b3..419f6d60a5a 100644 --- a/jest.projects.cjs +++ b/jest.projects.cjs @@ -32,12 +32,4 @@ const integration = { setupFilesAfterEnv: ['/jest.setup.js'], }; -const libs = { - displayName: 'libs', - ...base, - roots: ['/libs'], - testEnvironment: 'node', - setupFilesAfterEnv: ['/jest.setup.js'], -}; - -module.exports = { projects: [client, server, services, integration, libs] }; +module.exports = { projects: [client, server, services, integration] }; diff --git a/k8s/gateway-api/policies/rate-limit-policies.yaml b/k8s/gateway-api/policies/rate-limit-policies.yaml index 942fc2fcc3c..398eb61188a 100644 --- a/k8s/gateway-api/policies/rate-limit-policies.yaml +++ b/k8s/gateway-api/policies/rate-limit-policies.yaml @@ -1,5 +1,6 @@ --- # Standard rate limiting policy for web traffic +# Replaces: nginx.ingress.kubernetes.io/limit-rps annotations apiVersion: gateway.envoyproxy.io/v1alpha1 kind: BackendTrafficPolicy metadata: @@ -28,6 +29,7 @@ spec: type: Distinct --- # High-traffic rate limiting for API endpoints +# Replaces: nginx.ingress.kubernetes.io/limit-rpm: 100 apiVersion: gateway.envoyproxy.io/v1alpha1 kind: BackendTrafficPolicy metadata: @@ -101,6 +103,7 @@ spec: type: Distinct --- # High-capacity rate limiting for Maestro/Conductor orchestrator +# Replaces: maestro-ingress.yaml limit-rpm: 1000 apiVersion: gateway.envoyproxy.io/v1alpha1 kind: BackendTrafficPolicy metadata: diff --git a/k8s/gateway-api/policies/security-policies.yaml b/k8s/gateway-api/policies/security-policies.yaml index b05e744f22d..2b1a765742f 100644 --- a/k8s/gateway-api/policies/security-policies.yaml +++ b/k8s/gateway-api/policies/security-policies.yaml @@ -1,5 +1,6 @@ --- # CORS policy for web application +# Replaces: nginx.ingress.kubernetes.io/enable-cors annotations apiVersion: gateway.envoyproxy.io/v1alpha1 kind: SecurityPolicy metadata: @@ -83,6 +84,7 @@ spec: allowCredentials: true --- # IP allowlist policy for internal services +# Replaces: nginx.ingress.kubernetes.io/whitelist-source-range apiVersion: gateway.envoyproxy.io/v1alpha1 kind: SecurityPolicy metadata: @@ -172,6 +174,7 @@ spec: optional: false --- # External auth policy (for complex auth flows) +# Replaces: nginx.ingress.kubernetes.io/auth-url apiVersion: gateway.envoyproxy.io/v1alpha1 kind: SecurityPolicy metadata: diff --git a/k8s/gateway-api/policies/timeout-retry-policies.yaml b/k8s/gateway-api/policies/timeout-retry-policies.yaml index 33372e4735d..7ac96dca1d5 100644 --- a/k8s/gateway-api/policies/timeout-retry-policies.yaml +++ b/k8s/gateway-api/policies/timeout-retry-policies.yaml @@ -1,5 +1,6 @@ --- # Standard timeout policy for web traffic +# Replaces: nginx.ingress.kubernetes.io/proxy-*-timeout annotations apiVersion: gateway.envoyproxy.io/v1alpha1 kind: BackendTrafficPolicy metadata: diff --git a/k8s/gateway-api/routes/maestro-routes.yaml b/k8s/gateway-api/routes/maestro-routes.yaml index 03a337afdc8..1076e6deb91 100644 --- a/k8s/gateway-api/routes/maestro-routes.yaml +++ b/k8s/gateway-api/routes/maestro-routes.yaml @@ -54,6 +54,7 @@ spec: port: 8080 --- # Maestro rate limiting policy +# Replaces: nginx.ingress.kubernetes.io/limit-rpm: 1000 apiVersion: gateway.envoyproxy.io/v1alpha1 kind: BackendTrafficPolicy metadata: @@ -131,7 +132,7 @@ spec: maxAge: 86400s allowCredentials: true --- -# Maestro security headers +# Maestro security headers (replaces nginx configuration-snippet) # Note: Security headers in Gateway API are typically handled via EnvoyPatchPolicy # or implementation-specific extensions apiVersion: gateway.envoyproxy.io/v1alpha1 @@ -158,6 +159,7 @@ spec: - cidr: "10.0.0.0/8" --- # Network policy update for Gateway API +# Replaces the ingress-nginx namespace reference apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: @@ -181,3 +183,11 @@ spec: ports: - port: 8080 protocol: TCP + # Allow from ingress-nginx (during migration) + - from: + - namespaceSelector: + matchLabels: + kubernetes.io/metadata.name: ingress-nginx + ports: + - port: 8080 + protocol: TCP diff --git a/k8s/gateway-api/routes/web-routes.yaml b/k8s/gateway-api/routes/web-routes.yaml index 14b8dcf8356..b7332a5c5fe 100644 --- a/k8s/gateway-api/routes/web-routes.yaml +++ b/k8s/gateway-api/routes/web-routes.yaml @@ -31,6 +31,7 @@ spec: weight: 10 --- # Rate limiting policy for web +# Replaces: nginx.ingress.kubernetes.io/limit-rps: 10 apiVersion: gateway.envoyproxy.io/v1alpha1 kind: BackendTrafficPolicy metadata: @@ -81,6 +82,7 @@ spec: preserveXRequestID: true --- # IP allowlist for internal bypass of rate limits +# Replaces: nginx.ingress.kubernetes.io/limit-whitelist: 10.0.0.0/8 apiVersion: gateway.envoyproxy.io/v1alpha1 kind: SecurityPolicy metadata: diff --git a/k8s/gateway-api/summit-gateway.yaml b/k8s/gateway-api/summit-gateway.yaml index 10f19f25de0..5c118ee1d15 100644 --- a/k8s/gateway-api/summit-gateway.yaml +++ b/k8s/gateway-api/summit-gateway.yaml @@ -1,5 +1,6 @@ --- # Primary Gateway for Summit platform external traffic +# Replaces: ingress-nginx controller apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: diff --git a/libs/llm-gateway/package.json b/libs/llm-gateway/package.json new file mode 100644 index 00000000000..cc7160639d5 --- /dev/null +++ b/libs/llm-gateway/package.json @@ -0,0 +1,7 @@ +{ + "name": "@intelgraph/llm-gateway", + "version": "0.0.1", + "main": "src/index.ts", + "types": "src/index.ts", + "private": true +} diff --git a/libs/llm-gateway/src/index.ts b/libs/llm-gateway/src/index.ts new file mode 100644 index 00000000000..d4702960d54 --- /dev/null +++ b/libs/llm-gateway/src/index.ts @@ -0,0 +1 @@ +export * from './types.js'; diff --git a/libs/llm-gateway/src/types.ts b/libs/llm-gateway/src/types.ts new file mode 100644 index 00000000000..7e625b4d5e5 --- /dev/null +++ b/libs/llm-gateway/src/types.ts @@ -0,0 +1,28 @@ +export type ConversationMode = + | "summit-managed" + | "openai-previous-response" + | "openai-conversations"; + +export interface GatewayRequest { + requestId: string; + tenantId: string; + userId: string; + instructions?: string; + input: string | Array<{ role: "user" | "system" | "assistant"; content: string }>; + tools?: Array<{ name: string; description: string; parameters: unknown }>; + conversationId?: string; + conversationMode: ConversationMode; + store?: boolean; +} + +export interface GatewayResponse { + responseId: string; + outputText: string; + toolCalls?: Array<{ name: string; arguments: unknown }>; + usage?: { inputTokens: number; outputTokens: number; totalTokens: number }; +} + +export interface LlmGatewayAdapter { + generate(request: GatewayRequest): Promise; + embed(request: { input: string | string[]; model?: string }): Promise; +} diff --git a/libs/providers/openai-responses/package.json b/libs/providers/openai-responses/package.json new file mode 100644 index 00000000000..12e4f9090de --- /dev/null +++ b/libs/providers/openai-responses/package.json @@ -0,0 +1,10 @@ +{ + "name": "@intelgraph/openai-responses", + "version": "0.0.1", + "main": "src/index.ts", + "types": "src/index.ts", + "private": true, + "dependencies": { + "@intelgraph/llm-gateway": "workspace:*" + } +} diff --git a/libs/providers/openai-responses/src/index.ts b/libs/providers/openai-responses/src/index.ts new file mode 100644 index 00000000000..791c08f9055 --- /dev/null +++ b/libs/providers/openai-responses/src/index.ts @@ -0,0 +1 @@ +export * from './openai-responses-adapter.js'; diff --git a/libs/providers/openai-responses/src/openai-responses-adapter.ts b/libs/providers/openai-responses/src/openai-responses-adapter.ts new file mode 100644 index 00000000000..fe4e52e86ff --- /dev/null +++ b/libs/providers/openai-responses/src/openai-responses-adapter.ts @@ -0,0 +1,18 @@ +import { LlmGatewayAdapter, GatewayRequest, GatewayResponse } from '@intelgraph/llm-gateway'; + +export class OpenAIResponsesAdapter implements LlmGatewayAdapter { + async generate(request: GatewayRequest): Promise { + // Stub implementation for OpenAI Responses Adapter + return { + responseId: `resp-${Date.now()}`, + outputText: 'This is a stub response from OpenAI Responses Adapter.', + usage: { inputTokens: 0, outputTokens: 0, totalTokens: 0 } + }; + } + + async embed(request: { input: string | string[]; model?: string }): Promise { + const input = Array.isArray(request.input) ? request.input : [request.input]; + // Return dummy embeddings + return input.map(() => [0.1, 0.2, 0.3]); + } +} diff --git a/modules/archsim/generate_evidence.py b/modules/archsim/generate_evidence.py index 0bedbfbf694..ff6684084f2 100644 --- a/modules/archsim/generate_evidence.py +++ b/modules/archsim/generate_evidence.py @@ -1,13 +1,11 @@ -import datetime import json import os - -from modules.archsim.audit.auditors import bottleneck_risks, find_spofs +import datetime from modules.archsim.sim.simulate import simulate - +from modules.archsim.audit.auditors import find_spofs, bottleneck_risks def generate_evidence(spec_path, scenario, evidence_id): - with open(spec_path) as f: + with open(spec_path, 'r') as f: spec = json.load(f) sim_result = simulate(spec, scenario) @@ -39,7 +37,7 @@ def generate_evidence(spec_path, scenario, evidence_id): stamp = { "evidence_id": evidence_id, - "generated_at": datetime.datetime.now(datetime.UTC).isoformat() + "generated_at": datetime.datetime.now(datetime.timezone.utc).isoformat() } with open(f"{evidence_dir}/report.json", 'w') as f: @@ -59,15 +57,12 @@ def generate_evidence(spec_path, scenario, evidence_id): def update_index(evidence_id, paths): index_path = "evidence/index.json" if os.path.exists(index_path): - with open(index_path) as f: + with open(index_path, 'r') as f: index = json.load(f) else: - index = {"version": "1.0", "items": {}} - - if "items" not in index: - index["items"] = {} + index = {"evidence": {}, "version": 1} - index["items"][evidence_id] = {"files": list(paths.values())} + index["evidence"][evidence_id] = paths with open(index_path, 'w') as f: json.dump(index, f, indent=2) diff --git a/monitoring/grafana-dashboard.json b/monitoring/grafana-dashboard.json index dda72b546fe..599082cf4d5 100644 --- a/monitoring/grafana-dashboard.json +++ b/monitoring/grafana-dashboard.json @@ -217,34 +217,6 @@ } ], "gridPos": { "h": 8, "w": 12, "x": 12, "y": 48 } - }, - { - "id": 14, - "title": "Summit Python Core - Scout Activity", - "type": "stat", - "targets": [ - { - "expr": "scout_runs_total", - "legendFormat": "Runs - {{scout_name}}" - }, - { - "expr": "scout_errors_total", - "legendFormat": "Errors - {{scout_name}}" - } - ], - "gridPos": { "h": 8, "w": 12, "x": 0, "y": 56 } - }, - { - "id": 15, - "title": "Summit Python Core - Scout Duration", - "type": "graph", - "targets": [ - { - "expr": "histogram_quantile(0.95, rate(scout_duration_seconds_bucket[5m]))", - "legendFormat": "95th Percentile - {{scout_name}}" - } - ], - "gridPos": { "h": 8, "w": 12, "x": 12, "y": 56 } } ], "time": { diff --git a/monitoring/prometheus.yml b/monitoring/prometheus.yml index 3c01fa88976..4b0cbf65077 100644 --- a/monitoring/prometheus.yml +++ b/monitoring/prometheus.yml @@ -42,11 +42,6 @@ scrape_configs: static_configs: - targets: ['cadvisor:8080'] - - job_name: 'summit-python' - static_configs: - - targets: ['summit-python:8000'] - metrics_path: '/metrics' - alerting: alertmanagers: - static_configs: diff --git a/opa/conductor-policies.rego b/opa/conductor-policies.rego new file mode 100644 index 00000000000..f60ba2757e3 --- /dev/null +++ b/opa/conductor-policies.rego @@ -0,0 +1,419 @@ +# Conductor Omniversal - Production OPA Policies +# Comprehensive authorization and governance policies + +package intelgraph.conductor + +import rego.v1 + +# Core authorization decision +default allow := false + +# Allow if user has required permissions and resource access +allow if { + input.subject.roles + input.action + input.resource + + # Check basic authentication + authenticated + + # Check tenant isolation + tenant_access_allowed + + # Check resource permissions + resource_permissions_granted + + # Check rate limits + not rate_limited + + # Check compliance requirements + compliance_check_passed +} + +# Authentication verification +authenticated if { + input.subject.sub + input.subject.tenant + count(input.subject.roles) > 0 +} + +# Tenant isolation enforcement +tenant_access_allowed if { + input.subject.tenant == input.resource.tenant +} + +tenant_access_allowed if { + "super_admin" in input.subject.roles + input.context.purpose == "cross_tenant_audit" +} + +# Resource-based permissions +resource_permissions_granted if { + required_role := resource_role_mapping[input.resource.type][input.action] + required_role in input.subject.roles +} + +# Role-based resource mapping +resource_role_mapping := { + "entity": { + "read": ["analyst", "user", "admin"], + "write": ["analyst", "admin"], + "delete": ["admin"], + "export": ["analyst", "admin"] + }, + "graph": { + "read": ["analyst", "user", "admin"], + "write": ["analyst", "admin"], + "schema_modify": ["admin"] + }, + "policy": { + "read": ["admin", "compliance_officer"], + "write": ["admin"], + "simulate": ["admin", "compliance_officer"] + }, + "budget": { + "read": ["admin", "finance"], + "configure": ["admin", "finance"], + "override": ["admin"] + }, + "runbook": { + "read": ["operator", "admin"], + "execute": ["operator", "admin"], + "sign": ["admin", "key_manager"] + } +} + +# Rate limiting check +rate_limited if { + # Check user rate limits + user_requests := conductor_metrics.user_requests[input.subject.sub] + user_requests > user_rate_limits[input.subject.roles[0]] +} + +rate_limited if { + # Check tenant rate limits + tenant_requests := conductor_metrics.tenant_requests[input.subject.tenant] + tenant_requests > tenant_rate_limits["default"] +} + +user_rate_limits := { + "admin": 1000, + "analyst": 500, + "user": 100, + "operator": 200 +} + +tenant_rate_limits := { + "default": 10000, + "enterprise": 50000, + "pilot": 1000 +} + +# Compliance checks +compliance_check_passed if { + # Data classification check + data_classification_compliant + + # Export control check + export_control_compliant + + # Purpose limitation check + purpose_limitation_compliant +} + +data_classification_compliant if { + not input.resource.tags.classification +} + +data_classification_compliant if { + classification := input.resource.tags.classification + required_clearance := classification_clearance_map[classification] + input.subject.clearance >= required_clearance +} + +classification_clearance_map := { + "public": 0, + "internal": 1, + "confidential": 2, + "restricted": 3, + "secret": 4 +} + +export_control_compliant if { + input.action != "export" +} + +export_control_compliant if { + input.action == "export" + input.resource.tags.export_controlled != true +} + +export_control_compliant if { + input.action == "export" + input.resource.tags.export_controlled == true + "export_authorized" in input.subject.roles + input.context.export_license +} + +purpose_limitation_compliant if { + allowed_purposes := resource_purpose_map[input.resource.type] + input.context.purpose in allowed_purposes +} + +resource_purpose_map := { + "entity": ["intelligence_analysis", "threat_assessment", "compliance_audit"], + "graph": ["relationship_analysis", "pattern_detection", "intelligence_analysis"], + "policy": ["governance", "compliance_audit", "security_review"], + "budget": ["cost_management", "resource_planning", "compliance_audit"] +} + +# Advanced routing and orchestration policies +routing_decision := { + "expert": selected_expert, + "priority": calculated_priority, + "quality_gates": required_gates, + "budget_approval": budget_approved, + "monitoring": monitoring_config +} if { + input.routing_request + selected_expert := select_expert + calculated_priority := calculate_priority + required_gates := determine_quality_gates + budget_approved := check_budget_approval + monitoring_config := configure_monitoring +} + +# Expert selection logic +select_expert := "graph_ops" if { + input.routing_request.query_type == "cypher" + input.routing_request.complexity < 0.7 +} + +select_expert := "rag_retrieval" if { + input.routing_request.query_type == "semantic_search" + input.routing_request.documents_count > 1000 +} + +select_expert := "osint_analysis" if { + input.routing_request.query_type == "threat_intelligence" + input.routing_request.external_sources_required +} + +select_expert := "web_orchestrator" if { + input.routing_request.requires_web_interaction + input.routing_request.target_interfaces +} + +# Priority calculation +calculate_priority := 1 if { + input.routing_request.tenant_tier == "enterprise" + input.routing_request.user_role == "admin" +} + +calculate_priority := 3 if { + input.routing_request.tenant_tier == "standard" + input.routing_request.urgency == "high" +} + +calculate_priority := 5 if { + input.routing_request.tenant_tier == "pilot" +} + +# Quality gate determination +determine_quality_gates := ["budget_check", "compliance_scan"] if { + input.routing_request.estimated_cost > 10.0 +} + +determine_quality_gates := ["rate_limit_check", "content_filter"] if { + input.routing_request.query_complexity > 0.8 +} + +determine_quality_gates := ["export_control", "classification_check"] if { + input.routing_request.involves_classified_data +} + +# Budget approval logic +check_budget_approval := true if { + input.routing_request.estimated_cost < tenant_budget_thresholds[input.routing_request.tenant_tier] +} + +check_budget_approval := false if { + input.routing_request.estimated_cost >= tenant_budget_thresholds[input.routing_request.tenant_tier] + not input.routing_request.budget_override_approved +} + +tenant_budget_thresholds := { + "enterprise": 100.0, + "standard": 25.0, + "pilot": 5.0 +} + +# Monitoring configuration +configure_monitoring := { + "trace_level": "detailed", + "metrics_collection": true, + "audit_logging": true, + "alert_thresholds": enterprise_thresholds +} if { + input.routing_request.tenant_tier == "enterprise" +} + +configure_monitoring := { + "trace_level": "standard", + "metrics_collection": true, + "audit_logging": false, + "alert_thresholds": standard_thresholds +} if { + input.routing_request.tenant_tier != "enterprise" +} + +enterprise_thresholds := { + "error_rate": 0.01, + "latency_p99": 2000, + "budget_utilization": 0.85 +} + +standard_thresholds := { + "error_rate": 0.05, + "latency_p99": 5000, + "budget_utilization": 0.90 +} + +# Web interface orchestration policies +web_orchestration_allowed if { + "web_orchestrator" in input.subject.roles + input.resource.type == "web_interface" + web_interface_whitelisted + scraping_compliance_check +} + +web_interface_whitelisted if { + input.resource.web_interface.domain in allowed_domains +} + +web_interface_whitelisted if { + input.resource.web_interface.domain in tenant_allowed_domains[input.subject.tenant] +} + +allowed_domains := { + "github.com", + "stackoverflow.com", + "docs.python.org", + "kubernetes.io", + "prometheus.io", + "grafana.com" +} + +tenant_allowed_domains := { + "enterprise_tenant": { + "internal.company.com", + "wiki.company.com", + "confluence.company.com" + } +} + +scraping_compliance_check if { + # Check robots.txt compliance + not input.resource.web_interface.robots_txt_disallowed + + # Check rate limiting + input.resource.web_interface.rate_limit_ms >= 1000 + + # Check terms of service compliance + input.resource.web_interface.tos_compliant == true +} + +# Advanced CRDT conflict resolution policies +crdt_resolution_policy := { + "strategy": resolution_strategy, + "requires_approval": approval_required, + "escalation_level": escalation_level +} if { + input.crdt_conflict + resolution_strategy := determine_resolution_strategy + approval_required := requires_manual_approval + escalation_level := determine_escalation_level +} + +determine_resolution_strategy := "last_writer_wins" if { + input.crdt_conflict.type == "concurrent_writes" + input.crdt_conflict.field_criticality == "low" +} + +determine_resolution_strategy := "merge_with_annotation" if { + input.crdt_conflict.type == "concurrent_writes" + input.crdt_conflict.field_criticality == "medium" +} + +determine_resolution_strategy := "manual_resolution_required" if { + input.crdt_conflict.type == "semantic_conflict" + input.crdt_conflict.field_criticality == "high" +} + +requires_manual_approval if { + input.crdt_conflict.field_criticality == "high" +} + +requires_manual_approval if { + input.crdt_conflict.involves_classified_data +} + +determine_escalation_level := 1 if { + input.crdt_conflict.field_criticality == "low" +} + +determine_escalation_level := 2 if { + input.crdt_conflict.field_criticality == "medium" + input.crdt_conflict.resolution_attempts > 2 +} + +determine_escalation_level := 3 if { + input.crdt_conflict.field_criticality == "high" +} + +# Key rotation and signing policies +key_operation_allowed if { + input.key_operation + "key_manager" in input.subject.roles + key_operation_compliant +} + +key_operation_compliant if { + input.key_operation.type == "rotation" + input.key_operation.reason in allowed_rotation_reasons +} + +key_operation_compliant if { + input.key_operation.type == "signing" + input.key_operation.runbook_criticality in allowed_signing_levels[input.subject.clearance] +} + +allowed_rotation_reasons := { + "scheduled_rotation", + "security_incident", + "key_compromise", + "compliance_requirement" +} + +allowed_signing_levels := { + 0: ["public"], + 1: ["public", "internal"], + 2: ["public", "internal", "confidential"], + 3: ["public", "internal", "confidential", "restricted"], + 4: ["public", "internal", "confidential", "restricted", "secret"] +} + +# Denial explanations for debugging +explanations := { + "authentication_failed": "User authentication could not be verified", + "tenant_isolation_violation": "Cross-tenant access not permitted", + "insufficient_permissions": sprintf("Required role not found. Need: %v, Have: %v", [required_role, input.subject.roles]), + "rate_limit_exceeded": "Request rate limit exceeded for user or tenant", + "compliance_violation": "Request violates data classification, export control, or purpose limitation policies", + "budget_exceeded": "Request cost exceeds approved budget limits", + "web_interface_blocked": "Web interface not whitelisted or scraping non-compliant", + "crdt_conflict_escalation": "CRDT conflict requires manual resolution due to criticality", + "key_operation_denied": "Key operation not permitted for user clearance level" +} if { + not allow +} \ No newline at end of file diff --git a/opa/policies/conductor-data-access.rego b/opa/policies/conductor-data-access.rego new file mode 100644 index 00000000000..e08386a5ebd --- /dev/null +++ b/opa/policies/conductor-data-access.rego @@ -0,0 +1,254 @@ +# Conductor Data Access Policy +# Controls access to different data types based on sensitivity and tenant context + +package conductor.data_access + +import rego.v1 + +# Default deny +default allow := false + +# Allow access if all data access rules are satisfied +allow if { + tenant_access_check + sensitivity_check + role_authorization_check + time_based_access_check +} + +# Tenant access validation +tenant_access_check if { + input.tenantId == data_tenant_id +} + +tenant_access_check if { + # Cross-tenant data sharing allowed for specific data types + input.dataType in ["public_indicators", "shared_intelligence"] + shared_data_authorized +} + +# Sensitivity level authorization +sensitivity_check if { + input.sensitivity == "public" +} + +sensitivity_check if { + input.sensitivity == "internal" + input.role in ["user", "admin", "super_admin"] +} + +sensitivity_check if { + input.sensitivity == "confidential" + input.role in ["admin", "super_admin"] + business_justification_provided +} + +sensitivity_check if { + input.sensitivity == "restricted" + input.role == "super_admin" + dual_authorization_provided + audit_trail_enabled +} + +# Role-based authorization +role_authorization_check if { + input.role == "super_admin" +} + +role_authorization_check if { + input.role == "admin" + not restricted_admin_actions +} + +role_authorization_check if { + input.role == "user" + user_authorized_actions +} + +role_authorization_check if { + input.role == "viewer" + input.action == "read" + not sensitive_data_type +} + +# Time-based access control +time_based_access_check if { + not time_restricted_data +} + +time_based_access_check if { + time_restricted_data + current_time_allowed +} + +# Helper rules +data_tenant_id := data.data_metadata[input.resource].tenantId + +shared_data_authorized if { + input.targetTenantId in data.data_sharing_agreements[data_tenant_id].authorizedTenants +} + +business_justification_provided if { + input.resourceAttributes.justification + count(input.resourceAttributes.justification) > 10 # Minimum justification length +} + +dual_authorization_provided if { + input.resourceAttributes.secondaryAuthorizor + input.resourceAttributes.secondaryAuthorizor != input.userId +} + +audit_trail_enabled if { + data.tenant_configs[input.tenantId].auditRequirements.realTimeAlerting == true +} + +restricted_admin_actions if { + input.action in ["delete", "export", "share_external"] + input.dataType in ["investigation_data", "source_intelligence"] +} + +user_authorized_actions if { + input.action in ["read", "create", "update"] + input.dataType not in ["system_config", "audit_logs", "user_management"] +} + +sensitive_data_type if { + input.dataType in ["investigation_data", "source_intelligence", "pii_data"] +} + +time_restricted_data if { + data.data_metadata[input.resource].accessRestrictions.timeRestricted == true +} + +current_time_allowed if { + time_restrictions := data.data_metadata[input.resource].accessRestrictions + current_hour := time.weekday(time.now_ns())[1] + current_hour >= time_restrictions.allowedHoursStart + current_hour <= time_restrictions.allowedHoursEnd +} + +# Data filtering rules +data_filters := { + "tenant_scope": allowed_tenant_scope, + "field_mask": field_mask, + "row_level_filters": row_filters +} if allow + +allowed_tenant_scope := [input.tenantId] if { + not cross_tenant_authorized +} + +allowed_tenant_scope := array.concat([input.tenantId], authorized_shared_tenants) if { + cross_tenant_authorized +} + +authorized_shared_tenants := data.data_sharing_agreements[input.tenantId].authorizedTenants + +field_mask := [] if input.role == "super_admin" + +field_mask := ["auditMetadata", "systemInternals"] if input.role == "admin" + +field_mask := ["auditMetadata", "systemInternals", "investigationNotes"] if input.role == "user" + +field_mask := ["auditMetadata", "systemInternals", "investigationNotes", "sourceDetails"] if input.role == "viewer" + +row_filters := { + "tenantId": input.tenantId, + "sensitivity": allowed_sensitivity_levels, + "dataClassification": allowed_classifications +} + +allowed_sensitivity_levels := ["public", "internal", "confidential", "restricted"] if input.role == "super_admin" + +allowed_sensitivity_levels := ["public", "internal", "confidential"] if input.role == "admin" + +allowed_sensitivity_levels := ["public", "internal"] if input.role == "user" + +allowed_sensitivity_levels := ["public"] if input.role == "viewer" + +allowed_classifications := data.tenant_configs[input.tenantId].allowedDataClassifications[input.role] + +cross_tenant_authorized if { + input.targetTenantId + input.targetTenantId in data.data_sharing_agreements[input.tenantId].authorizedTenants +} + +# Audit requirements +audit_log := { + "level": audit_level, + "message": audit_message, + "metadata": { + "dataType": input.dataType, + "sensitivity": input.sensitivity, + "tenant": input.tenantId, + "user": input.userId, + "resource": input.resource, + "businessJustification": input.resourceAttributes.justification + } +} + +audit_level := "error" if { + not allow + input.sensitivity in ["confidential", "restricted"] +} + +audit_level := "warn" if { + allow + input.sensitivity == "restricted" +} + +audit_level := "info" + +audit_message := sprintf("Data access %s for %s data", [decision_text, input.sensitivity]) + +decision_text := "granted" if allow +decision_text := "denied" + +# Tags for data governance +tags contains sprintf("tenant:%s", [input.tenantId]) +tags contains sprintf("sensitivity:%s", [input.sensitivity]) +tags contains sprintf("dataType:%s", [input.dataType]) +tags contains sprintf("accessedBy:%s", [input.role]) + +tags contains "cross_tenant_access" if cross_tenant_authorized +tags contains "audit_required" if input.sensitivity in ["confidential", "restricted"] +tags contains "time_restricted" if time_restricted_data + +# Conditions for access +conditions contains "audit_required" if input.sensitivity in ["confidential", "restricted"] +conditions contains "business_justification_required" if input.sensitivity == "confidential" +conditions contains "dual_authorization_required" if input.sensitivity == "restricted" +conditions contains "rate_limited" if input.role == "user" +conditions contains "monitoring_enhanced" if cross_tenant_authorized + +# Reason for decision +reason := sprintf("Access granted for %s sensitivity data with %s role", [input.sensitivity, input.role]) if allow + +reason := sprintf("Access denied: insufficient role '%s' for '%s' sensitivity data", [input.role, input.sensitivity]) if { + not allow + not sensitivity_check +} + +reason := sprintf("Access denied: cross-tenant access not authorized for data type '%s'", [input.dataType]) if { + not allow + input.targetTenantId + not shared_data_authorized +} + +reason := sprintf("Access denied: time-based restriction active for resource '%s'", [input.resource]) if { + not allow + time_restricted_data + not current_time_allowed +} + +reason := "Access denied: business justification required for confidential data" if { + not allow + input.sensitivity == "confidential" + not business_justification_provided +} + +reason := "Access denied: dual authorization required for restricted data" if { + not allow + input.sensitivity == "restricted" + not dual_authorization_provided +} \ No newline at end of file diff --git a/opa/policies/conductor-tenant-isolation.rego b/opa/policies/conductor-tenant-isolation.rego new file mode 100644 index 00000000000..c4f9324e31e --- /dev/null +++ b/opa/policies/conductor-tenant-isolation.rego @@ -0,0 +1,185 @@ +# Conductor Tenant Isolation Policy +# Enforces strict tenant boundaries and data access controls + +package conductor.tenant_isolation + +import rego.v1 + +# Default deny +default allow := false + +# Allow access if tenant isolation rules are satisfied +allow if { + tenant_boundary_check + data_classification_check + cross_tenant_validation +} + +# Check tenant boundary isolation +tenant_boundary_check if { + # User's tenant matches resource tenant + input.tenantId == resource_tenant_id +} + +tenant_boundary_check if { + # System actions are allowed with proper context + input.action == "system" + input.role == "system" +} + +tenant_boundary_check if { + # Super admin can cross tenant boundaries with audit logging + input.role == "super_admin" + audit_log := { + "level": "warn", + "message": "Super admin cross-tenant access", + "metadata": { + "admin_user": input.userId, + "target_tenant": resource_tenant_id, + "action": input.action, + "resource": input.resource + } + } +} + +# Data classification check +data_classification_check if { + # Public data is accessible to all tenants + data.tenant_configs[input.tenantId].dataClassification == "public" +} + +data_classification_check if { + # Internal data requires same tenant or explicit sharing + data.tenant_configs[input.tenantId].dataClassification == "internal" + input.tenantId == resource_tenant_id +} + +data_classification_check if { + # Confidential data requires strict tenant boundary + data.tenant_configs[input.tenantId].dataClassification in ["confidential", "restricted"] + input.tenantId == resource_tenant_id + not cross_tenant_request +} + +# Cross-tenant validation +cross_tenant_validation if { + not cross_tenant_request +} + +cross_tenant_validation if { + cross_tenant_request + input.action in data.tenant_configs[input.tenantId].allowedCrossTenantActions + audit_required +} + +# Helper rules +cross_tenant_request if { + input.targetTenantId + input.tenantId != input.targetTenantId +} + +resource_tenant_id := data.resource_metadata[input.resource].tenantId + +audit_required if { + data.tenant_configs[input.tenantId].auditRequirements.logAllActions == true +} + +# Conditions for allowed access +conditions contains "audit_required" if audit_required + +conditions contains "rate_limited" if { + input.role == "user" + not input.businessContext.project +} + +conditions contains "monitoring_required" if { + data.tenant_configs[input.tenantId].isolationLevel == "strict" +} + +# Tags for resource labeling +tags contains sprintf("tenant:%s", [input.tenantId]) + +tags contains sprintf("classification:%s", [data.tenant_configs[input.tenantId].dataClassification]) + +tags contains sprintf("isolation_level:%s", [data.tenant_configs[input.tenantId].isolationLevel]) + +# Data filters for query results +data_filters := { + "tenant_scope": [input.tenantId], + "field_mask": field_mask_for_role, + "row_level_filters": { + "tenantId": input.tenantId + } +} if { + allow +} + +field_mask_for_role := [] if input.role == "admin" + +field_mask_for_role := ["internalNotes", "systemMetadata"] if input.role == "user" + +field_mask_for_role := ["internalNotes", "systemMetadata", "auditTrail"] if input.role == "viewer" + +# Audit logging configuration +audit_log := { + "level": "info", + "message": "Tenant isolation policy evaluation", + "metadata": { + "tenant": input.tenantId, + "user": input.userId, + "action": input.action, + "resource": input.resource, + "decision": allow, + "conditions": conditions + } +} if { + data.tenant_configs[input.tenantId].auditRequirements.logDataAccess == true +} + +# Reason for policy decision +reason := "Access granted within tenant boundary" if { + allow + input.tenantId == resource_tenant_id +} + +reason := "Access granted with cross-tenant authorization" if { + allow + cross_tenant_request +} + +reason := "Access denied: tenant boundary violation" if { + not allow + input.tenantId != resource_tenant_id + not cross_tenant_authorized +} + +reason := "Access denied: insufficient role permissions" if { + not allow + input.role not in ["admin", "super_admin", "system"] + restricted_action +} + +reason := "Access denied: data classification restriction" if { + not allow + data.tenant_configs[input.tenantId].dataClassification in ["confidential", "restricted"] + cross_tenant_request +} + +# Helper rules for complex logic +cross_tenant_authorized if { + input.action in data.tenant_configs[input.tenantId].allowedCrossTenantActions + input.role in ["admin", "super_admin"] +} + +restricted_action if { + input.action in ["delete", "admin", "system"] +} + +# Emergency override (requires special token) +emergency_override if { + input.sessionContext.emergencyToken + verify_emergency_token(input.sessionContext.emergencyToken) + input.role == "super_admin" +} + +allow if emergency_override \ No newline at end of file diff --git a/opa/policies/conductor-tenant-isolation_test.rego b/opa/policies/conductor-tenant-isolation_test.rego new file mode 100644 index 00000000000..1fd06f9cfcb --- /dev/null +++ b/opa/policies/conductor-tenant-isolation_test.rego @@ -0,0 +1,8 @@ + +package opa.policies + +test_tenant_isolation_violation_denied { + input := {"tenant": "A", "resource": {"tenant": "B"}} + deny := data.opa.policies.conductor_tenant_isolation.deny with input as input + count(deny) > 0 +} diff --git a/opa/policies/tenant-bundle-simulation.rego b/opa/policies/tenant-bundle-simulation.rego new file mode 100644 index 00000000000..628ba89d83d --- /dev/null +++ b/opa/policies/tenant-bundle-simulation.rego @@ -0,0 +1,31 @@ +# Tenant bundle simulation fixture +# Validates cross-tenant denial and overlay override behavior. + +package tenant.bundle + +import rego.v1 + +default decision := { + "allow": false, + "reason": "default_deny" +} + +overlay_allows_cross_tenant if { + some overlay + overlay := input.overlays_applied[_] + overlay.id == "mission-exception" + overlay.effect == "allow_cross_tenant" +} + +decision := { + "allow": false, + "reason": "cross_tenant_denied" +} if { + input.subject_tenant != input.resource_tenant + not overlay_allows_cross_tenant +} + +decision := { + "allow": true, + "reason": "overlay_override" +} if overlay_allows_cross_tenant diff --git a/opa/policies/tenant-bundle-simulation_test.rego b/opa/policies/tenant-bundle-simulation_test.rego new file mode 100644 index 00000000000..e6d5e5abf53 --- /dev/null +++ b/opa/policies/tenant-bundle-simulation_test.rego @@ -0,0 +1,28 @@ +package tenant.bundle + +import rego.v1 + +test_cross_tenant_denied_by_default { + result := data.tenant.bundle.decision with input as { + "subject_tenant": "tenant-a", + "resource_tenant": "tenant-b", + "overlays_applied": [] + } + result.allow == false + result.reason == "cross_tenant_denied" +} + +test_overlay_override_respected { + result := data.tenant.bundle.decision with input as { + "subject_tenant": "tenant-a", + "resource_tenant": "tenant-b", + "overlays_applied": [ + { + "id": "mission-exception", + "effect": "allow_cross_tenant" + } + ] + } + result.allow == true + result.reason == "overlay_override" +} diff --git a/openapi/spec.yaml b/openapi/spec.yaml index ff74f490d33..4dc29d0f700 100644 --- a/openapi/spec.yaml +++ b/openapi/spec.yaml @@ -557,221 +557,6 @@ components: type: string format: date-time - FcrPrivacyBudgetRequest: - type: object - required: - - tenant_id - - epsilon - - delta - properties: - tenant_id: - type: string - epsilon: - type: number - delta: - type: number - - FcrSignal: - type: object - required: - - entity_id - - tenant_id - - observed_at - - signal_type - - confidence_local - - privacy_budget_cost - - version - properties: - entity_id: - type: string - format: uuid - tenant_id: - type: string - observed_at: - type: string - format: date-time - signal_type: - type: string - enum: [claim, media, url, account, coordination_feature] - narrative_claim_hash: - type: string - media_hashes: - type: object - properties: - phash: - type: string - ahash: - type: string - dhash: - type: string - sha256: - type: string - url: - type: object - properties: - normalized: - type: string - registered_domain: - type: string - public_archive: - type: string - format: uri - account_handle_hash: - type: string - channel_metadata: - type: object - properties: - platform: - type: string - region: - type: string - language: - type: string - reach: - type: number - coordination_features: - type: object - properties: - burstiness: - type: number - repost_similarity: - type: number - synchronized_windows: - type: integer - shared_hashtag_set: - type: integer - provenance_assertions: - type: object - properties: - c2pa_status: - type: string - enum: [pass, fail, error, unknown] - signer: - type: string - assertion_hash: - type: string - signature_chain: - type: string - confidence_local: - type: number - privacy_budget_cost: - type: object - required: - - epsilon - - delta - properties: - epsilon: - type: number - delta: - type: number - labels: - type: array - items: - type: string - version: - type: string - enum: [v1] - - FcrCluster: - type: object - required: - - cluster_id - - centroid_hash - - signal_count - - tenant_count_bucket - - confidence - - first_observed_at - - last_observed_at - properties: - cluster_id: - type: string - format: uuid - centroid_hash: - type: string - signal_count: - type: integer - tenant_count_bucket: - type: string - enum: [1-2, 3-5, 6-10, 11+] - confidence: - type: number - first_observed_at: - type: string - format: date-time - last_observed_at: - type: string - format: date-time - public_artifacts: - type: array - items: - type: object - required: - - type - - value - properties: - type: - type: string - enum: [url, media_hash] - value: - type: string - provenance_summary: - type: object - properties: - c2pa_pass_rate: - type: number - signer_set: - type: array - items: - type: string - - FcrAlert: - type: object - required: - - alert_id - - cluster_id - - severity - - summary - - generated_at - properties: - alert_id: - type: string - format: uuid - cluster_id: - type: string - format: uuid - severity: - type: string - enum: [low, medium, high, critical] - summary: - type: string - generated_at: - type: string - format: date-time - response_pack: - type: object - properties: - playbook_id: - type: string - recommended_actions: - type: array - items: - type: string - diffusion_summary: - type: string - - FcrIngestRequest: - type: object - required: - - tenant_id - - signals - properties: - tenant_id: - type: string - signals: - type: array - items: - $ref: '#/components/schemas/FcrSignal' - paths: # Health & Monitoring /health: @@ -822,114 +607,6 @@ paths: total: type: number - /api/fcr/budget: - post: - summary: Configure FCR privacy budget - description: Sets the differential privacy budget for a tenant. - operationId: setFcrBudget - tags: - - FederatedCampaignRadar - security: - - BearerAuth: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/FcrPrivacyBudgetRequest' - responses: - '200': - description: Budget configured - content: - application/json: - schema: - type: object - properties: - ok: - type: boolean - '400': - description: Invalid request - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - - /api/fcr/ingest: - post: - summary: Ingest FCR signals - description: Validates and ingests normalized FCR signals. - operationId: ingestFcrSignals - tags: - - FederatedCampaignRadar - security: - - BearerAuth: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/FcrIngestRequest' - responses: - '200': - description: Signals ingested - content: - application/json: - schema: - type: object - properties: - ok: - type: boolean - signals: - type: array - items: - $ref: '#/components/schemas/FcrSignal' - '422': - description: Validation failed - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - - /api/fcr/run: - post: - summary: Run FCR pipeline - description: Ingests signals and returns clusters and alerts. - operationId: runFcrPipeline - tags: - - FederatedCampaignRadar - security: - - BearerAuth: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/FcrIngestRequest' - responses: - '200': - description: Pipeline results - content: - application/json: - schema: - type: object - properties: - ok: - type: boolean - clusters: - type: array - items: - $ref: '#/components/schemas/FcrCluster' - alerts: - type: array - items: - $ref: '#/components/schemas/FcrAlert' - '422': - description: Validation failed - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - # Cases API /api/cases: post: diff --git a/orchestration/runtime/go.mod b/orchestration/runtime/go.mod index d906fb9c6e6..e2e87df7490 100644 --- a/orchestration/runtime/go.mod +++ b/orchestration/runtime/go.mod @@ -6,7 +6,6 @@ require ( github.com/google/uuid v1.6.0 github.com/jackc/pgx/v5 v5.5.4 github.com/ory/dockertest/v3 v3.12.0 - github.com/redis/go-redis/v9 v9.17.3 go.opentelemetry.io/otel v1.23.1 go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.23.1 go.opentelemetry.io/otel/sdk v1.23.1 @@ -18,27 +17,26 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/containerd/continuity v0.4.5 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/docker/cli v27.4.1+incompatible // indirect - github.com/docker/docker v28.5.2+incompatible // indirect + github.com/docker/docker v27.1.1+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-viper/mapstructure/v2 v2.4.0 // indirect + github.com/go-viper/mapstructure/v2 v2.1.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 // indirect github.com/jackc/puddle/v2 v2.2.1 // indirect - github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/sys/user v0.3.0 // indirect github.com/moby/term v0.5.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect - github.com/opencontainers/runc v1.2.8 // indirect + github.com/opencontainers/runc v1.2.3 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/rogpeppe/go-internal v1.14.1 // indirect github.com/sirupsen/logrus v1.9.3 // indirect diff --git a/orchestration/runtime/go.sum b/orchestration/runtime/go.sum index edd6233c6e8..1434dad7084 100644 --- a/orchestration/runtime/go.sum +++ b/orchestration/runtime/go.sum @@ -8,14 +8,8 @@ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERo github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= -github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= -github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= -github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= -github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/containerd/continuity v0.4.5 h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4= github.com/containerd/continuity v0.4.5/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -24,12 +18,10 @@ github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/docker/cli v27.4.1+incompatible h1:VzPiUlRJ/xh+otB75gva3r05isHMo5wXDfPRi5/b4hI= github.com/docker/cli v27.4.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/docker v28.5.2+incompatible h1:DBX0Y0zAjZbSrm1uzOkdr1onVghKaftjlSWt4AFexzM= -github.com/docker/docker v28.5.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.1.1+incompatible h1:hO/M4MtV36kzKldqnA37IWhebRA+LnqqcqDja6kVaKY= +github.com/docker/docker v27.1.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -41,8 +33,10 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= -github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= -github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.1.0 h1:gHnMa2Y/pIxElCH2GlZZ1lZSsn6XMtufpGyP1XxdC/w= +github.com/go-viper/mapstructure/v2 v2.1.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= @@ -57,8 +51,10 @@ github.com/jackc/pgx/v5 v5.5.4 h1:Xp2aQS8uXButQdnCMWNmvx6UysWQQC+u1EoizjguY+8= github.com/jackc/pgx/v5 v5.5.4/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= @@ -73,18 +69,14 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/opencontainers/runc v1.2.8 h1:RnEICeDReapbZ5lZEgHvj7E9Q3Eex9toYmaGBsbvU5Q= -github.com/opencontainers/runc v1.2.8/go.mod h1:cC0YkmZcuvr+rtBZ6T7NBoVbMGNAdLa/21vIElJDOzI= +github.com/opencontainers/runc v1.2.3 h1:fxE7amCzfZflJO2lHXf4y/y8M1BoAqp+FVmG19oYB80= +github.com/opencontainers/runc v1.2.3/go.mod h1:nSxcWUydXrsBZVYNSkTjoQ/N6rcyTtn+1SD5D4+kRIM= github.com/ory/dockertest/v3 v3.12.0 h1:3oV9d0sDzlSQfHtIaB5k6ghUCVMVLpAY8hwrqoCyRCw= github.com/ory/dockertest/v3 v3.12.0/go.mod h1:aKNDTva3cp8dwOWwb9cWuX84aH5akkxXRvO7KCwWVjE= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/redis/go-redis/v9 v9.17.3 h1:fN29NdNrE17KttK5Ndf20buqfDZwGNgoUr9qjl1DQx4= -github.com/redis/go-redis/v9 v9.17.3/go.mod h1:u410H11HMLoB+TP67dz8rL9s6QW2j76l0//kSOd3370= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= @@ -101,6 +93,8 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opentelemetry.io/otel v1.23.1 h1:Za4UzOqJYS+MUczKI320AtqZHZb7EqxO00jAHE0jmQY= go.opentelemetry.io/otel v1.23.1/go.mod h1:Td0134eafDLcTS4y+zQ26GE8u3dEuRBiBCTUIRHaikA= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.23.1 h1:IqmsDcJnxQSs6W+1TMSqpYO7VY4ZuEKJGYlSBPUlT1s= @@ -111,16 +105,41 @@ go.opentelemetry.io/otel/sdk v1.23.1 h1:O7JmZw0h76if63LQdsBMKQDWNb5oEcOThG9Irxsc go.opentelemetry.io/otel/sdk v1.23.1/go.mod h1:LzdEVR5am1uKOOwfBWFef2DCi1nu3SA8XQxx2IerWFk= go.opentelemetry.io/otel/trace v1.23.1 h1:4LrmmEd8AU2rFvU1zegmvqW7+kWarxtNOPyeL6HmYY8= go.opentelemetry.io/otel/trace v1.23.1/go.mod h1:4IpnpJFwr1mo/6HL8XIPJaE9y0+u1KcVmuW7dwFSVrI= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/package.json b/package.json index 58a9ce19d7a..2a04b238a57 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,16 @@ { "name": "intelgraph-platform", - "version": "4.1.15", + "version": "5.3.0", "description": "Next-generation intelligence analysis platform with AI-augmented graph analytics", "main": "server/server.js", "type": "module", - "packageManager": "pnpm@10.0.0", + "packageManager": "pnpm@9.12.0", "scripts": { - "gate:report": "node scripts/gates/enforce_report_from_claims.mjs", "bootstrap": "chmod +x scripts/bootstrap.sh && scripts/bootstrap.sh", "verify": "npx tsx server/scripts/verify-ga-security.ts", "verify:verbose": "tsx scripts/verify.ts --verbose", "verify:runtime": "tsx scripts/verification/verify_runtime.ts", + "ga:verify": "node scripts/ga/ga-verify-runner.mjs", "setup": "chmod +x scripts/setup.sh && scripts/setup.sh", "cleanup": "chmod +x scripts/cleanup-repository.sh && scripts/cleanup-repository.sh", "dev": "concurrently \"npm run server:dev\" \"npm run client:dev\"", @@ -18,18 +18,18 @@ "client:dev": "cd client && npm run dev", "docker:dev": "docker-compose -f docker-compose.dev.yml up", "docker:prod": "docker-compose up", - "test": "jest --runInBand", + "test": "node scripts/ci/run-tests-with-retries.mjs", + "test:ci": "pnpm -r test --silent", "test:quick": "echo 'Quick sanity check passed'", "test:server": "cd server && npm test", "test:client": "cd client && npm test", "test:web": "cd apps/web && npm test", "test:e2e": "npx playwright test", - "test:e2e:investigations": "npx playwright test e2e/golden-path-investigations.spec.ts", - "test:e2e:golden-path": "npx playwright test e2e/golden-path-frontend.spec.ts e2e/golden-path-investigations.spec.ts", "test:a11y-gate": "pnpm exec playwright test -c playwright.a11y-keyboard.config.ts", "test:release-bundle-sdk": "cd packages/release-bundle && pnpm test", "test:release-scripts": "node --test scripts/release/__tests__/*.test.mjs", "test:docs-governance": "node --test scripts/ci/__tests__/governance_docs_verifier.test.mjs", + "test:control-evidence": "node --test scripts/evidence/tests/control_evidence_index.test.mjs", "test:soc-report": "PYTHONPATH=. python3 -m unittest scripts.evidence.tests.test_soc_report", "test:smoke": "npm run test:smoke:backend && npm run test:smoke:frontend", "test:smoke:backend": "cd server && npm run test:smoke", @@ -60,7 +60,7 @@ "lint:server": "cd server && npm run lint", "lint:client": "cd client && npm run lint", "test:quarantine": "echo 'Quarantine test placeholder - no flaky tests currently'", - "typecheck": "tsc -b --pretty false", + "typecheck": "rm -rf node_modules/@types/hapi__catbox node_modules/@types/hapi__shot node_modules/@types/react-native node_modules/@types/webrtc node_modules/@types/webgl-ext node_modules/@types/webgl2 node_modules/@types/request node_modules/@types/pg-pool node_modules/react-native node_modules/@types/connect-redis node_modules/@types/glob && tsc -b --pretty false", "typecheck:server": "cd server && tsc --noEmit", "typecheck:client": "cd client && tsc --noEmit", "format": "prettier -w . && ruff format", @@ -95,20 +95,25 @@ "release:bundle": "node scripts/release/release-bundle.mjs", "release:schema:validate": "node scripts/release/validate-bundle-schemas.mjs --dir dist/release --strict", "release:verify": "node scripts/release/verify-release-bundle.mjs", - "release:diff": "node scripts/release/diff-bundles.mjs", "precommit": "lint-staged", "db:prisma:diff": "prisma migrate diff --from-url $DATABASE_URL --to-schema-datamodel prisma/schema.prisma", "db:knex:smoke": "knex migrate:down && knex migrate:up", "check:governance": "node scripts/check-governance.cjs", + "test:data-governance": "node scripts/ci/verify_data_registry.mjs", "ci:docs-governance": "node scripts/ci/verify_governance_docs.mjs", "ci:docs-governance:fix": "node scripts/ci/verify_governance_docs.mjs --fix", + "ci:osint-governance": "node scripts/ci/verify-osint-evidence.mjs", + "ci:security-audit-gate": "node scripts/ci/security_audit_gate.mjs", "ci:soc-report": "python3 scripts/evidence/generate_soc_report.py --evidence-dir dist/evidence/${GITHUB_SHA}", + "ci:ga-validate-evidence": "bash -c 'EVIDENCE_DIR=\"dist/evidence/${GITHUB_SHA:-$(git rev-parse HEAD)}\"; node scripts/evidence/generate_control_evidence_index.mjs --evidence-dir \"$EVIDENCE_DIR\" && node scripts/evidence/validate_control_evidence.mjs --evidence-dir \"$EVIDENCE_DIR\"'", "ci:branch-protection:check": "node scripts/ci/check_branch_protection_drift.mjs", "ci:branch-protection:apply": "node scripts/ci/apply_branch_protection_policy.mjs --apply", "ci:branch-protection:plan": "node scripts/ci/apply_branch_protection_policy.mjs --dry-run", - "ci:branch-protection:ruleset": "node scripts/ci/generate_ruleset_payload.mjs", - "ci:branch-protection:payload": "node scripts/ci/generate_branch_protection_payload.mjs", + "ci:evidence:index": "node scripts/release/generate_evidence_index.mjs --evidence-dir evidence --provenance evidence/provenance.json --outjson evidence/evidence-index.json --outmd evidence/EVIDENCE_INDEX.md", "ci:evidence-id-consistency": "node scripts/ci/verify_evidence_id_consistency.mjs", + "validate:gate-installation": "node scripts/ci/verify_gate_installation.mjs", + "ci:evidence-id:monitoring": "node scripts/ci/integrations/evidence-id-monitoring-hook.mjs", + "ci:evidence-id:release-integration": "node scripts/ci/integrations/release-evidence-integration.mjs", "verify:living-documents": "node scripts/governance/verify-living-documents.cjs", "check:debt": "node scripts/ci/check_debt_regression.cjs", "check:jest-config": "node scripts/ci/validate-jest-config.cjs", @@ -116,19 +121,55 @@ "ops:command-center": "npx tsx scripts/ops/command-center.ts --mode=live", "ops:command-center:offline": "npx tsx scripts/ops/command-center.ts --mode=offline --snapshotsDir=scripts/ops/snapshots", "compliance:check": "npx tsx scripts/compliance/check_drift.ts", + "compliance:antigravity": "npx tsx scripts/ci/verify-antigravity-compliance.ts", + "compliance:seal": "npx tsx scripts/evidence/link_antigravity_decision.ts", "verify:governance": "npx tsx scripts/compliance/verify_governance.ts", "verify:compliance": "npx tsx scripts/compliance/verify_compliance_drift.ts", + "cep:profile": "tsx packages/context-engineering/src/cli/profile.ts", "compliance:evidence": "npx tsx scripts/compliance/generate_evidence.ts", - "regulatory:build": "npx tsx cli/src/cli.ts regulatory build", - "regulatory:diff": "npx tsx cli/src/cli.ts regulatory diff", "generate:sbom": "npx tsx scripts/compliance/generate_sbom.ts", "generate:provenance": "npx tsx scripts/compliance/generate_provenance.ts", - "ga:verify": "node scripts/ga/ga-verify-runner.mjs", + "ci:ga:manifest": "node scripts/release/generate_ga_evidence_manifest.mjs --evidence-dir evidence --provenance evidence/provenance.json --out evidence/ga-evidence-manifest.json", + "ci:ga:dashboard": "node scripts/release/generate_ga_evidence_dashboard.mjs --evidence-dir evidence --out evidence/GA_EVIDENCE_DASHBOARD.md", "ga:verify:server": "pnpm --filter intelgraph-server typecheck && pnpm --filter intelgraph-server build && pnpm --filter intelgraph-server test:unit", - "ga:smoke": "echo '✅ Smoke tests not configured - add integration tests here' && exit 0", - "release:ready": "pnpm ga:verify && pnpm --filter intelgraph-server test:ci && bash scripts/ci/validate-workflow-filters.sh", + "ga:smoke": "cd server && node scripts/smoke-test.cjs", + "ga:evidence-pack": "node scripts/release/ga_evidence_pack.mjs", + "ga:evidence-pack:check": "node scripts/release/ga_evidence_pack.mjs --check-determinism", + "evidence:go-live:gen": "npx tsx scripts/evidence/generate-go-live-evidence.ts", + "evidence:go-live:verify": "npx tsx scripts/evidence/verify-go-live-evidence.ts", + "test:evidence-schema": "node --test scripts/evidence/tests/go-live-evidence-schema.test.mjs", + "release:go-live:notes": "npx tsx scripts/release/generate-go-live-release-notes.ts", + "release:go-live:tag": "npx tsx scripts/release/create-go-live-tag.ts", + "release:go-live:sbom": "npx tsx scripts/release/generate-go-live-sbom.ts", + "release:go-live:provenance": "npx tsx scripts/release/generate-go-live-provenance.ts", + "release:go-live:full": "pnpm evidence:go-live:gen && pnpm release:go-live:sbom && pnpm release:go-live:provenance && pnpm release:go-live:notes", + "release:go-live:github": "npx tsx scripts/release/create-go-live-release.ts", + "release:go-live:preflight": "npx tsx scripts/release/preflight-check.ts", + "release:go-live:sign": "npx tsx scripts/release/sign-evidence.ts", + "release:go-live": "npx tsx scripts/release/go-live-cli.ts", + "release:go-live:verify": "npx tsx scripts/release/verify-github-release.ts", + "version:bump": "npx tsx scripts/release/bump-version.ts", + "changelog": "npx tsx scripts/release/generate-changelog.ts", + "release:rollback": "npx tsx scripts/release/rollback-release.ts", + "release:post-check": "npx tsx scripts/release/post-release-check.ts", + "release:list": "npx tsx scripts/release/list-releases.ts", + "release:diff": "npx tsx scripts/release/diff-releases.ts", + "release:lock": "npx tsx scripts/release/release-lock.ts", + "release:hotfix": "npx tsx scripts/release/hotfix-release.ts", + "release:metrics": "npx tsx scripts/release/release-metrics.ts", + "release:notify": "npx tsx scripts/release/release-notify.ts", + "release:audit": "npx tsx scripts/release/release-audit.ts", + "release:security-check": "npx tsx scripts/release/security-check.ts", + "release:dashboard": "npx tsx scripts/release/release-dashboard.ts", + "release:approval": "npx tsx scripts/release/release-approval.ts", + "release:validate-env": "npx tsx scripts/release/validate-environment.ts", + "release:runbook": "npx tsx scripts/release/generate-runbook.ts", + "release:impact": "npx tsx scripts/release/analyze-impact.ts", + "release:scheduler": "npx tsx scripts/release/release-scheduler.ts", + "test:go-live-pipeline": "node --test scripts/evidence/tests/go-live-pipeline.integration.test.mjs", + "release:ready": "npm run compliance:antigravity && pnpm ga:verify && GA_VERIFY_MODE=true pnpm --filter intelgraph-server test:ci && bash scripts/ci/validate-workflow-filters.sh", "prepare": "husky", - "verify:archive": "bash scripts/verify-archive-integrity.sh" + "postinstall": "rm -rf node_modules/@types/hapi__catbox node_modules/@types/hapi__shot 2>/dev/null || true" }, "keywords": [ "intelligence-analysis", @@ -143,7 +184,7 @@ "author": "IntelGraph Team", "license": "MIT", "engines": { - "node": ">=22.0.0", + "node": ">=18.18", "npm": ">=8.0.0" }, "devDependencies": { @@ -157,6 +198,8 @@ "@semantic-release/git": "10.0.1", "@semantic-release/github": "^11.0.4", "@semantic-release/npm": "^12.0.2", + "@types/hapi__catbox": "^12.1.0", + "@types/hapi__shot": "^6.0.0", "@types/jest": "^29.5.14", "@types/js-yaml": "^4.0.9", "@types/minimatch": "^6.0.0", @@ -166,6 +209,7 @@ "@typescript-eslint/parser": "^8.50.1", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", + "babel-plugin-transform-import-meta": "^2.3.3", "body-parser": "^2.2.1", "commander": "^12.1.0", "concurrently": "^9.2.0", @@ -176,7 +220,7 @@ "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.4.26", "eventemitter3": "^5.0.1", - "express": "^5.2.1", + "express": "^4.21.2", "globals": "^15.15.0", "helmet": "^8.1.0", "husky": "^9.1.7", @@ -197,7 +241,8 @@ "typescript-eslint": "^8.50.1", "uuid": "^13.0.0", "vitest": "^4.0.16", - "zod": "3.25.76" + "yaml": "^2.8.2", + "zod": "^4.2.1" }, "lint-staged": { "server/**/*.{ts,js}": [ @@ -245,12 +290,12 @@ "@opentelemetry/api": "^1.9.0", "@radix-ui/react-slider": "^1.3.6", "apollo-server-express": "^3.13.0", - "axios": "^1.7.9", + "axios": "^1.13.2", "cbor": "^9.0.2", "commander": "^14.0.2", "cross-env": "^10.0.0", "docx": "^9.5.1", - "dotenv": "^17.2.3", + "dotenv": "^17.2.1", "ioredis": "^5.8.2", "jest-extended": "^4.0.2", "neo4j-driver": "^5.28.1", @@ -259,40 +304,52 @@ "pino-pretty": "^13.1.3", "prom-client": "^15.1.3", "react-monaco-editor": "^0.59.0", - "redis": "^5.8.1", + "redis": "^5.9.0", "supertest": "^7.1.4", "vitest": "^4.0.16", - "ws": "^8.18.3", + "ws": "^8.18.4", "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz", "zustand": "^5.0.9" }, "private": true, "workspaces": [ "packages/*", + "packages/maestro-skills/*", "client", "server" ], "pnpm": { "auditConfig": { - "ignoreCves": [] + "ignoreCves": [ + "CVE-2022-24434", + "CVE-2023-28155" + ] }, "overrides": { - "entities": "^4.5.0", + "@orval/mcp": ">=7.18.0", + "@orval/core": ">=7.19.0", "d3-color": ">=3.1.0", "node-fetch": ">=2.6.7", - "ws": ">=8.17.1", + "debug": ">=4.3.5", + "eslint>chalk": "^4.1.2", + "chalk": ">=5.3.0", + "color": ">=4.2.3", + "ansi-regex": "^5.0.1", + "ws": ">=8.18.4", "parse-duration": ">=2.1.3", "braces": ">=3.0.3", "micromatch": ">=4.0.8", "path-to-regexp": ">=8.0.0", "validator": ">=13.15.20", "nanoid": ">=5.0.9", + "postcss>nanoid": "^3.3.7", "cross-spawn": ">=7.0.6", - "tar": ">=7.5.7", + "tar": ">=6.2.1", "cookie": ">=0.7.0", "send": ">=0.19.0", "serve-static": ">=1.16.0", "express": ">=4.21.0", + "axios": ">=1.13.2", "glob": ">=11.1.0", "tar-fs": ">=3.0.6", "@babel/runtime": ">=7.26.0", @@ -302,20 +359,24 @@ "qs": ">=6.14.1", "form-data": ">=2.5.4", "tough-cookie": ">=4.1.3", - "@modelcontextprotocol/sdk": ">=1.26.0", - "@isaacs/brace-expansion": ">=5.0.1", + "@modelcontextprotocol/sdk": ">=1.1.0", "@remix-run/router": ">=1.21.0", "react-router": ">=6.28.0", "preact": ">=10.25.4", "@types/react": "18.3.11", "@types/react-dom": "18.3.0", - "graphql": "16.12.0", - "fastify": ">=5.7.2", - "fast-xml-parser": ">=5.3.4", - "hono": ">=4.11.7", - "multer": ">=2.0.2", - "busboy": ">=1.6.0", - "html-minifier": "npm:html-minifier-terser@^5.1.1" + "react": "19.2.1", + "react-dom": "19.2.1", + "apollo-server-express": ">=3.13.0", + "redis": ">=5.9.0", + "@types/express": "4.17.21", + "@types/express-serve-static-core": "4.19.6" + }, + "peerDependencyRules": { + "allowedVersions": { + "react": "*", + "react-dom": "*" + } } } } diff --git a/packages/__init__.py b/packages/__init__.py index 2d20b595253..e69de29bb2d 100644 --- a/packages/__init__.py +++ b/packages/__init__.py @@ -1 +0,0 @@ -"""Python package namespace for Summit utilities.""" diff --git a/packages/ai-wellbeing-predictors/vitest.config.ts b/packages/ai-wellbeing-predictors/vitest.config.ts index 425ca94aece..cd6774b8811 100644 --- a/packages/ai-wellbeing-predictors/vitest.config.ts +++ b/packages/ai-wellbeing-predictors/vitest.config.ts @@ -2,7 +2,6 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { - coverage: { reporter: ['text', 'lcov', 'json-summary'] }, include: ['src/**/*.{test,spec}.?(c|m)[jt]s?(x)'], exclude: ['**/dist/**', '**/build/**', '**/node_modules/**'], globals: true, diff --git a/packages/cache/vitest.config.ts b/packages/cache/vitest.config.ts index 1d05b2466e6..7d68df498ea 100644 --- a/packages/cache/vitest.config.ts +++ b/packages/cache/vitest.config.ts @@ -2,7 +2,6 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { - coverage: { reporter: ['text', 'lcov', 'json-summary'] }, include: ['src/__tests__/**/*.test.ts'], globals: true, environment: 'node', diff --git a/packages/decision-ledger/decision_ledger.json b/packages/decision-ledger/decision_ledger.json index c5905f377b0..ec7b27bc16c 100644 --- a/packages/decision-ledger/decision_ledger.json +++ b/packages/decision-ledger/decision_ledger.json @@ -23,7 +23,7 @@ "policyVersion": "1.0.0", "inputHash": "eyJjaGFuZ2UiOiAibWNwIGdpdCBzZXJ2ZXIgY2hhaW4gaGFyZGVuaW5nIGRvYyArIHJvYWRtYXAgc3RhdHVzIHVwZGF0ZSIsICJmaWxlcyI6IFsiZG9jcy9zZWN1cml0eS9tY3AtZ2l0LXNlcnZlci1jaGFpbi1oYXJkZW5pbmcubWQiLCAiZG9jcy9yb2FkbWFwL1NUQVRVUy5qc29uIl19", "decision": { - "action": "scale_up", + "action": "document_controls", "rule": { "condition": "security hardening extraction required", "action": "document_controls", @@ -35,7 +35,7 @@ }, { "id": "6d86288744", - "timestamp": "2026-01-31T06:26:33Z", + "timestamp": "2026-01-28T06:26:33Z", "agentId": "codex-agent", "policyVersion": "1.0.0", "inputHash": "eyJjaGFuZ2UiOiAicmVnaXN0ZXIgcHJvbXB0IGFuZCB0YXNrIHNwZWMgZm9yIG1jcCBnaXQgY2hhaW4gaGFyZGVuaW5nIiwgImZpbGVzIjogWyJwcm9tcHRzL3NlY3VyaXR5L21jcC1naXQtY2hhaW4taGFyZGVuaW5nQHYxLm1kIiwgInByb21wdHMvcmVnaXN0cnkueWFtbCIsICJhZ2VudHMvZXhhbXBsZXMvbWNwLWdpdC1jaGFpbi1oYXJkZW5pbmctdGFzay5qc29uIl19", @@ -89,7 +89,7 @@ "timestamp": "2026-01-30T01:35:06Z", "agentId": "codex-agent", "policyVersion": "1.0.0", - "inputHash": "eyJjaGFuZ2UiOiJkZWJleml1bS1vcGVubGluZWFnZSBzdWJzdW1wdGlvbiBzY2FmZm9sZCIsImZpbGVzIjpbInN1YnN1bXB0aW9uL2RlYmV6aXVtLW9wZW5saW5lYWdlL21hbmlmZXN0LnlhbWwiLCJzdWJzdW1wdGlvbi9kZWJleml1bS1vcGVubGluZWFnZS9saWNlbnNlX2dhdGUubWQiLCJzdWJzdW1wdGlvbi9kZWJleml1bS1vcGVubGluZWFnZS9maXh0dXJlcy9hbGxvdy9SRUFETUUubWQiLCJzdWJzdW1wdGlvbi9kZWJleml1bS1vcGVubGluZWFnZS9maXh0dXJlcy9kZW55L1JFQURNRS5tZCIsInN1YnN1bXB0aW9uL2RlYmV6aXVtLW9wZW5saW5lYWdlL2V2aWRlbmNlL3JlcG9ydC5qc29uIiwic3Vic3VtcHRpb24vZGViZXppdW0tb3BlbmxpbmVhZ2UvbWV0cmljcy5qc29uIiwic3Vic3VtcHRpb24vZGViZXppdW0tb3BlbmxpbmVhZ2UvZXZpZGVuY2Uvc3RhbXAuanNvbiIsImRvY3Mvc3RhbmRhcmRzL2RlYmV6aXVtLW9wZW5saW5lYWdlLm1kIiwiZXZpZGVuY2UvaW5kZXguanNvbiIsImRvY3Ivcm9hZG1hcC9TVEFUVVMuanNvbiIsInByb21wdHMvc3Vic3VtcHRpb24vZGViZXppdW0tb3BlbmxpbmVhZ2VAdjEubWQiLCJwcm9tcHRzL3JlZ2lzdHJ5LnlhbWwiLCJhZ2VudHMvZXhhbXBsZXMvZGViZXppdW0tb3BlbmxpbmVhZ2UtdGFzay5qc29uIl19", + "inputHash": "eyJjaGFuZ2UiOiJkZWJleml1bS1vcGVubGluZWFnZSBzdWJzdW1wdGlvbiBzY2FmZm9sZCIsImZpbGVzIjpbInN1YnN1bXB0aW9uL2RlYmV6aXVtLW9wZW5saW5lYWdlL21hbmlmZXN0LnlhbWwiLCJzdWJzdW1wdGlvbi9kZWJleml1bS1vcGVubGluZWFnZS9saWNlbnNlX2dhdGUubWQiLCJzdWJzdW1wdGlvbi9kZWJleml1bS1vcGVubGluZWFnZS9maXh0dXJlcy9hbGxvdy9SRUFETUUubWQiLCJzdWJzdW1wdGlvbi9kZWJleml1bS1vcGVubGluZWFnZS9maXh0dXJlcy9kZW55L1JFQURNRS5tZCIsInN1YnN1bXB0aW9uL2RlYmV6aXVtLW9wZW5saW5lYWdlL2V2aWRlbmNlL3JlcG9ydC5qc29uIiwic3Vic3VtcHRpb24vZGViZXppdW0tb3BlbmxpbmVhZ2UvZXZpZGVuY2UvbWV0cmljcy5qc29uIiwic3Vic3VtcHRpb24vZGViZXppdW0tb3BlbmxpbmVhZ2UvZXZpZGVuY2Uvc3RhbXAuanNvbiIsImRvY3Mvc3RhbmRhcmRzL2RlYmV6aXVtLW9wZW5saW5lYWdlLm1kIiwiZXZpZGVuY2UvaW5kZXguanNvbiIsImRvY3Mvcm9hZG1hcC9TVEFUVVMuanNvbiIsInByb21wdHMvc3Vic3VtcHRpb24vZGViZXppdW0tb3BlbmxpbmVhZ2VAdjEubWQiLCJwcm9tcHRzL3JlZ2lzdHJ5LnlhbWwiLCJhZ2VudHMvZXhhbXBsZXMvZGViZXppdW0tb3BlbmxpbmVhZ2UtdGFzay5qc29uIl19", "decision": { "action": "scaffold_debezium_openlineage_bundle", "rule": { @@ -168,107 +168,5 @@ }, "reasoning": "Captured OMB M-26-05 risk-based assurance metadata and rescission status for M-22-18/M-23-16. Rollback: revert commit that adds policy/omb files, prompt registry entry, task spec, and roadmap update.", "reverted": false - }, - { - "id": "nardom-evidence-20260202", - "timestamp": "2026-02-02T12:10:00Z", - "agentId": "codex-agent", - "policyVersion": "1.0.0", - "inputHash": "eyJjaGFuZ2UiOiJuYXJyYXRpdmUgaW50ZWwgZXZpZGVuY2Ugc2NhZmZvbGRpbmcgKG5hcmRvbSkiLCJmaWxlcyI6WyJkb2NzL25hcnJhdGl2ZV9pbnRlbC9SRUFETUUubWQiLCJldmlkZW5jZS9uYXJyYXRpdmVfaW50ZWwvaW5kZXguanNvbiIsImV2aWRlbmNlL25hcnJhdGl2ZV9pbnRlbC9tZXRyaWNzLmpzb24iLCJldmlkZW5jZS9uYXJyYXRpdmVfaW50ZWwvcmVwb3J0Lmpzb24iLCJldmlkZW5jZS9uYXJyYXRpdmVfaW50ZWwvc3RhbXAuanNvbiIsImV2aWRlbmNlL2luZGV4Lmpzb24iLCJldmlkZW5jZS9zY2hlbWFzL25hcmRvbV9pbmRleC5zY2hlbWEuanNvbiIsImV2aWRlbmNlL3NjaGVtYXMvbmFyZG9tX21ldHJpY3Muc2NoZW1hLmpzb24iLCJldmlkZW5jZS9zY2hlbWFzL25hcmRvbV9yZXBvcnQuc2NoZW1hLmpzb24iLCJldmlkZW5jZS9zY2hlbWFzL25hcmRvbV9zdGFtcC5zY2hlbWEuanNvbiIsInJlcXVpcmVkX2NoZWNrcy50b2RvLm1kIiwidG9vbHMvY2kvdmVyaWZ5X2V2aWRlbmNlLnB5IiwiZG9jcy9yb2FkbWFwL1NUQVRVUy5qc29uIiwicGFja2FnZXMvZGVjaXNpb24tbGVkZ2VyL2RlY2lzaW9uX2xlZGdlci5qc29uIl19", - "decision": { - "action": "scaffold_nardom_evidence_bundle", - "rule": { - "condition": "narrative intel evidence scaffolding required", - "action": "scaffold_nardom_evidence_bundle", - "max_cost": 0 - } - }, - "reasoning": "Added NARDOM evidence templates, schemas, verifier updates, and roadmap status update. Rollback: revert commit that adds narrative intel evidence scaffolding.", - "reverted": false - }, - { - "id": "io-cogwar-radar-brief-20260202", - "timestamp": "2026-02-02T09:29:45Z", - "agentId": "codex-agent", - "policyVersion": "1.0.0", - "inputHash": "eyJjaGFuZ2UiOiJBZGQgSU8vQ29nV2FyIHJhZGFyIGJyaWVmLCBwcm9tcHQgcmVnaXN0cnkgZW50cnksIHRhc2sgc3BlYywgYW5kIHJvYWRtYXAgdXBkYXRlIiwiZmlsZXMiOlsiZG9jcy9icmllZnMvaW8tY29nd2FyLXJhZGFyLTIwMjcubWQiLCJkb2NzL3JvYWRtYXAvU1RBVFVTLmpzb24iLCJwcm9tcHRzL2RvY3MvaW8tY29nd2FyLXJhZGFyLWJyaWVmQHYxLm1kIiwicHJvbXB0cy9yZWdpc3RyeS55YW1sIiwiYWdlbnRzL2V4YW1wbGVzL0lPX0NPR1dBUl9SQURBUl9CUklFRl8yMDI2MDIwMi5qc29uIiwicGFja2FnZXMvZGVjaXNpb24tbGVkZ2VyL2RlY2lzaW9uX2xlZGdlci5qc29uIl19", - "decision": { - "action": "document_cogwar_radar_brief", - "rule": { - "condition": "defensive IO/CogWar brief required with governance artifacts", - "action": "document_cogwar_radar_brief", - "max_cost": 0 - } - }, - "reasoning": "Documented IO/CogWar radar brief with evidence-first structure, registered the prompt/task spec, updated roadmap status, and recorded rollback guidance.", - "reverted": false - }, - { - "id": "promptspec-foundation-lane1-20260207", - "timestamp": "2026-02-07T00:00:00Z", - "agentId": "codex-agent", - "policyVersion": "1.0.0", - "inputHash": "eyJjaGFuZ2UiOiJwcm9tcHRzcGVjIGxhbmUxIGZvdW5kYXRpb24gc2NhZmZvbGRpbmcgKHNjaGVtYXMsIHBhY2ssIGV2YWwsIHBvbGljeSwgZXZpZGVuY2UsIHRlc3RzLCByZWdpc3RyeSkiLCJmaWxlcyI6WyJzY2hlbWFzL2V2aWRlbmNlLmluZGV4LnNjaGVtYS5qc29uIiwic2NoZW1hcy9wcm9tcHRzcGVjLnNjaGVtYS5qc29uIiwicHJvbXB0c3BlYy9wcm9tcHRzcGVjLnNjaGVtYS5qc29uIiwicHJvbXB0c3BlYy9zcGVjcy9vcHBvcnR1bml0eV9maWx0ZXJfdjAuanNvbiIsInByb21wdHNwZWMvc3BlY3Mvb2ZmZXJfcHJvZHVjdGl6YXRpb25fdjAuanNvbiIsInByb21wdHNwZWMvc3BlY3MvbXZmX2Z1bm5lbF92MC5qc29uIiwicHJvbXB0c3BlYy9zcGVjcy9kZWxpdmVyeV9zb3BfdjAuanNvbiIsInByb21wdHNwZWMvc3BlY3Mvb3BzX2Rhc2hib2FyZF92MC5qc29uIiwicHJvbXB0c3BlYy9wYWNrcy9zb2xvcHJlbmV1cl9zeXN0ZW1fdjAuanNvbiIsImV2YWwvcnVubmVyLnB5IiwiZXZhbC9ydWJyaWNzL3NvbG9wcmVuZXVyX3N5c3RlbV92MC5qc29uIiwiZXZhbC9maXh0dXJlcy9vcHBvcnR1bml0eV9maWx0ZXJfdjAuanNvbiIsInBvbGljeS9nYXRlLnB5IiwicG9saWN5L3J1bGVzLmpzb24iLCJldmlkZW5jZS9pbmRleC5weSIsImV2aWRlbmNlL3dyaXRlX2V2aWRlbmNlLnB5IiwiZG9jcy9yZXF1aXJlZF9jaGVja3MudG9kby5tZCIsImRlcGVuZGVuY3lfZGVsdGEubWQiLCJ0ZXN0cy9wb2xpY3kvdGVzdF9kZW5pZXNfZ3VhcmFudGVlcy5weSIsInRlc3RzL2V2aWRlbmNlL3Rlc3RfaW5kZXhfZGV0ZXJtaW5pc20ucHkiLCJ0ZXN0cy9wcm9tcHRzcGVjL3Rlc3Rfc2NoZW1hX3ZhbGlkYXRlcy5weSIsInByb21wdHMvcHJvbXB0c3BlYy9wcm9tcHRzcGVjLWZvdW5kYXRpb24tbGFuZTFAdjEubWQiLCJwcm9tcHRzL3JlZ2lzdHJ5LnlhbWwiLCJhZ2VudHMvZXhhbXBsZXMvUFJPTVBUU1BFQ19GT1VOREFUSU9OX0xBTkUxXzIwMjYwMjA3Lmpzb24iLCJkb2NzL3JvYWRtYXAvU1RBVFVTLmpzb24iLCJwYWNrYWdlcy9kZWNpc2lvbi1sZWRnZXIvZGVjaXNpb25fbGVkZ2VyLmpzb24iXX0=", - "decision": { - "action": "scaffold_promptspec_lane1", - "rule": { - "condition": "promptspec foundation scaffolding required", - "action": "scaffold_promptspec_lane1", - "max_cost": 0 - } - }, - "reasoning": "Added PromptSpec schema, clean-room pack, eval rubric, policy gate, and evidence scaffolding with deterministic tests. Rollback: revert the commit adding promptspec/evidence/eval/policy scaffolds and registry/task spec updates.", - "reverted": false - }, - { - "id": "adenhq-hive-subsumption-001", - "timestamp": "2026-02-08T00:00:00Z", - "agentId": "codex-agent", - "policyVersion": "1.0.0", - "inputHash": "eyJjaGFuZ2UiOiJzY2FmZm9sZCBhZGVuaHEvaGl2ZSBzdWJzdW1wdGlvbiBtYW5pZmVzdCBhbmQgcmVxdWlyZWQgY2hlY2tzIG1hcHBpbmciLCJmaWxlcyI6WyJzdWJzdW1wdGlvbi9hZGVuaHEtaGl2ZS9tYW5pZmVzdC55YW1sIiwic3Vic3VtcHRpb24vYWRlbmhxLWhpdmUvY2xhaW1zLm1kIiwiZG9jcy9yZXF1aXJlZF9jaGVja3MudG9kby5tZCIsImRvY3Mvcm9hZG1hcC9TVEFUVVMuanNvbiJdfQ==", - "decision": { - "action": "scaffold_hive_subsumption_bundle", - "rule": { - "condition": "hive subsumption intake requires manifest and required-check mapping", - "action": "scaffold_hive_subsumption_bundle", - "max_cost": 0 - } - }, - "reasoning": "Captured adenhq/hive subsumption scope, lane-1 gates, and required-check discovery steps with rollback via revert.", - "reverted": false - }, - { - "id": "jest-entities-override-20260205", - "timestamp": "2026-02-05T23:45:00Z", - "agentId": "codex-agent", - "policyVersion": "1.0.0", - "inputHash": "eyJjaGFuZ2UiOiJwaW4gZW50aXRpZXMgdG8gNC41LnggZm9yIHBhcnNlNSBKZXN0IGNvbXBhdGliaWxpdHkiLCJmaWxlcyI6WyJwYWNrYWdlLmpzb24iLCJwbnBtLWxvY2sueWFtbCIsImRvY3Mvcm9hZG1hcC9TVEFUVVMuanNvbiIsInBhY2thZ2VzL2RlY2lzaW9uLWxlZGdlci9kZWNpc2lvbl9sZWRnZXIuanNvbiIsInByb21wdHMvbWFpbnRlbmFuY2UvamVzdC1lbnRpdGllcy1vdmVycmlkZUB2MS5tZCIsInByb21wdHMvcmVnaXN0cnkueWFtbCJdfQ==", - "decision": { - "action": "pin_dependency", - "rule": { - "condition": "parse5 requires entities/decode during Jest execution", - "action": "pin_entities_4_5", - "max_cost": 0 - } - }, - "reasoning": "Pinned entities to 4.5.x to restore parse5 Jest compatibility while maintaining scoped dependency behavior. Rollback: revert the commit that adds the override and lockfile update.", - "reverted": false - }, - { - "id": "agentic-orch-context-rag-20260208", - "timestamp": "2026-02-08T01:05:00Z", - "agentId": "codex", - "policyVersion": "1.0.0", - "inputHash": "eyJ0YXNrIjoiYWdlbnRpYy1vcmNoLWNvbnRleHQtcmFnIiwic2NvcGUiOiJzcmMsdGVzdHMsZG9jcyJ9", - "decision": { - "action": "introduce_agentic_orchestration_context_rag_scaffold", - "rule": { - "condition": "feature_scaffolding_with_tests_and_docs", - "action": "add_selector_context_manager_rag_modules", - "max_cost": 0 - } - }, - "reasoning": "Implemented predictive orchestration selection, hybrid context management, and agentic RAG scaffolding with tests and documentation to align with Summit readiness guidance. Rollback: revert the commit that introduces the new modules, tests, and docs.", - "reverted": false } ] diff --git a/packages/election-disruption-detection/vitest.config.ts b/packages/election-disruption-detection/vitest.config.ts index 0f63353a8d4..7dd13254e75 100644 --- a/packages/election-disruption-detection/vitest.config.ts +++ b/packages/election-disruption-detection/vitest.config.ts @@ -2,7 +2,6 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { - coverage: { reporter: ['text', 'lcov', 'json-summary'] }, globals: true, environment: 'node', include: ['src/**/*.test.ts'], diff --git a/packages/etl-pipelines/src/loaders/incremental-loader.ts b/packages/etl-pipelines/src/loaders/incremental-loader.ts index d53b536dd90..3c5b83890bd 100644 --- a/packages/etl-pipelines/src/loaders/incremental-loader.ts +++ b/packages/etl-pipelines/src/loaders/incremental-loader.ts @@ -21,17 +21,12 @@ export class IncrementalLoader { ): Promise<{ inserted: number; updated: number; deleted: number }> { const watermark = lastLoadTime || new Date(0); - const changes = await this.pool.query( - ` + const changes = await this.pool.query(` SELECT * FROM ${sourceTable} WHERE ${cdc.timestampColumn} > $1 - `, - [watermark] - ); + `, [watermark]); - let inserted = 0, - updated = 0, - deleted = 0; + let inserted = 0, updated = 0, deleted = 0; for (const row of changes.rows) { const isDeleted = cdc.deleteFlagColumn && row[cdc.deleteFlagColumn]; @@ -56,38 +51,25 @@ export class IncrementalLoader { } private async rowExists(table: string, keyColumns: string[], row: any): Promise { - const whereClause = keyColumns.map((k, i) => `${k} = $${i + 1}`).join(' AND '); - const values = keyColumns.map((k) => row[k]); - const result = await this.pool.query(`SELECT 1 FROM ${table} WHERE ${whereClause}`, values); + const whereClause = keyColumns.map(k => `${k} = '${row[k]}'`).join(' AND '); + const result = await this.pool.query(`SELECT 1 FROM ${table} WHERE ${whereClause}`); return result.rows.length > 0; } private async insertRow(table: string, row: any): Promise { const columns = Object.keys(row).join(', '); - const values = Object.values(row) - .map((_, i) => `$${i + 1}`) - .join(', '); - await this.pool.query( - `INSERT INTO ${table} (${columns}) VALUES (${values})`, - Object.values(row) - ); + const values = Object.values(row).map((_, i) => `$${i + 1}`).join(', '); + await this.pool.query(`INSERT INTO ${table} (${columns}) VALUES (${values})`, Object.values(row)); } private async updateRow(table: string, keyColumns: string[], row: any): Promise { - const updateColumns = Object.keys(row).filter((k) => !keyColumns.includes(k)); - let paramIndex = 1; - - const setClauses = updateColumns.map((k) => `${k} = $${paramIndex++}`).join(', '); - const whereClause = keyColumns.map((k) => `${k} = $${paramIndex++}`).join(' AND '); - - const values = [...updateColumns.map((k) => row[k]), ...keyColumns.map((k) => row[k])]; - - await this.pool.query(`UPDATE ${table} SET ${setClauses} WHERE ${whereClause}`, values); + const setClauses = Object.keys(row).filter(k => !keyColumns.includes(k)).map(k => `${k} = '${row[k]}'`).join(', '); + const whereClause = keyColumns.map(k => `${k} = '${row[k]}'`).join(' AND '); + await this.pool.query(`UPDATE ${table} SET ${setClauses} WHERE ${whereClause}`); } private async deleteRow(table: string, keyColumns: string[], row: any): Promise { - const whereClause = keyColumns.map((k, i) => `${k} = $${i + 1}`).join(' AND '); - const values = keyColumns.map((k) => row[k]); - await this.pool.query(`DELETE FROM ${table} WHERE ${whereClause}`, values); + const whereClause = keyColumns.map(k => `${k} = '${row[k]}'`).join(' AND '); + await this.pool.query(`DELETE FROM ${table} WHERE ${whereClause}`); } } diff --git a/packages/extensions/vitest.config.ts b/packages/extensions/vitest.config.ts index d965f1aea49..61e9e588cd0 100644 --- a/packages/extensions/vitest.config.ts +++ b/packages/extensions/vitest.config.ts @@ -7,7 +7,7 @@ export default defineConfig({ include: ['src/**/*.spec.ts', 'src/**/*.test.ts'], coverage: { enabled: true, - reporter: ['text', 'lcov', 'json-summary'], + reporter: ['text', 'lcov'], }, }, }); diff --git a/packages/graph-reasoning/src/index.ts b/packages/graph-reasoning/src/index.ts index 03f5fbc601b..27f191ac4d9 100644 --- a/packages/graph-reasoning/src/index.ts +++ b/packages/graph-reasoning/src/index.ts @@ -9,6 +9,4 @@ export * from './types/inference.js'; // Core engines export { InferenceEngine } from './engine/InferenceEngine.js'; export { ContradictionDetector } from './engine/ContradictionDetector.js'; -export { EntropyAnalyzer } from './engine/EntropyAnalyzer.js'; -export { CredibilityEngine } from './engine/CredibilityEngine.js'; export { LinkPredictor } from './prediction/LinkPredictor.js'; diff --git a/packages/lineage/openlineage/vitest.config.ts b/packages/lineage/openlineage/vitest.config.ts index 55c8eea768d..6df75656317 100644 --- a/packages/lineage/openlineage/vitest.config.ts +++ b/packages/lineage/openlineage/vitest.config.ts @@ -2,7 +2,6 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { - coverage: { reporter: ['text', 'lcov', 'json-summary'] }, include: ['src/**/*.test.ts'], globals: true, // Use globals if I used them (I used import, so maybe not needed, but safe) }, diff --git a/packages/maestro-core/package.json b/packages/maestro-core/package.json index f3c934c45cb..6cc80f791a7 100644 --- a/packages/maestro-core/package.json +++ b/packages/maestro-core/package.json @@ -1,13 +1,13 @@ { "name": "@intelgraph/maestro-core", - "version": "4.2.3", + "version": "5.3.2", "description": "Maestro orchestration engine core", "main": "dist/index.js", "types": "dist/index.d.ts", "scripts": { "build": "tsc", "dev": "tsc --watch", - "test": "jest", + "test": "jest --passWithNoTests", "test:watch": "jest --watch", "lint": "ESLINT_USE_FLAT_CONFIG=false eslint \"src/**/*.ts\"", "clean": "rm -rf dist" @@ -31,7 +31,7 @@ "@opentelemetry/resources": "^2.1.0", "@opentelemetry/sdk-node": "^0.208.0", "@opentelemetry/semantic-conventions": "^1.38.0", - "axios": "^1.7.9", + "axios": "^1.6.0", "cheerio": "^1.0.0-rc.12", "crypto": "^1.0.1", "events": "^3.3.0", diff --git a/packages/maestro-core/src/engine.ts b/packages/maestro-core/src/engine.ts index e6331a7fb8a..c46e0255321 100644 --- a/packages/maestro-core/src/engine.ts +++ b/packages/maestro-core/src/engine.ts @@ -163,7 +163,7 @@ export class MaestroEngine extends EventEmitter { } else { const steps = this.topologicalSort(context.workflow.steps); for (const step of steps) { - const ready = await this.areDependenciesSatisfied(context.run_id, step); + const ready = await this.areDepenciesSatisfied(context.run_id, step); if (!ready) continue; await this.executeStepWithRetry(context, step); const runStatus = await this.stateStore.getRunStatus(context.run_id); @@ -184,7 +184,7 @@ export class MaestroEngine extends EventEmitter { for (const stepId of remainingSteps) { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const step = stepMap.get(stepId)!; - if (await this.areDependenciesSatisfied(context.run_id, step)) readySteps.push(step); + if (await this.areDepenciesSatisfied(context.run_id, step)) readySteps.push(step); } if (readySteps.length === 0) throw new Error("Deadlock detected: steps remaining but none ready."); const prioritized = ForkDetector.prioritize(readySteps); @@ -296,13 +296,13 @@ export class MaestroEngine extends EventEmitter { } } - private async areDependenciesSatisfied(runId: string, step: WorkflowStep): Promise { + private async areDepenciesSatisfied(runId: string, step: WorkflowStep): Promise { if (!step.depends_on || step.depends_on.length === 0) return true; - // Optimize: Check dependencies in parallel to avoid N+1 queries - const executions = await Promise.all( - step.depends_on.map((depId) => this.stateStore.getStepExecution(runId, depId)), - ); - return executions.every((execution) => execution && execution.status === "succeeded"); + for (const depId of step.depends_on) { + const execution = await this.stateStore.getStepExecution(runId, depId); + if (!execution || execution.status !== "succeeded") return false; + } + return true; } private async completeRun(context: RunContext): Promise { diff --git a/packages/maestro-core/src/index.ts b/packages/maestro-core/src/index.ts index 9d4588c62f9..3e2cf2933e1 100644 --- a/packages/maestro-core/src/index.ts +++ b/packages/maestro-core/src/index.ts @@ -3,7 +3,3 @@ export * from './fork_detector'; export * from './stores/postgres-state-store'; export * from './stores/s3-artifact-store'; export * from './stores/outbox-processor'; - -export * from './core/difficulty'; -export * from './core/routing'; -export * from './collaboration/debate'; diff --git a/packages/maestro-core/src/plugins/litellm-plugin.ts b/packages/maestro-core/src/plugins/litellm-plugin.ts index beacdaea272..af39aa9399d 100644 --- a/packages/maestro-core/src/plugins/litellm-plugin.ts +++ b/packages/maestro-core/src/plugins/litellm-plugin.ts @@ -5,10 +5,6 @@ import axios, { AxiosInstance } from 'axios'; import { StepPlugin, RunContext, WorkflowStep, StepExecution } from '../engine'; -import { HeuristicDifficultyScorer } from '../daao/difficulty/heuristicDifficultyScorer'; -import { CostAwareLLMRouter } from '../daao/routing/llmRouter'; -import { DefaultModelCatalog } from '../daao/routing/modelCatalog'; -import { DebateValidator, LLMRunner } from '../daao/collaboration/debateValidation'; export interface LiteLLMConfig { baseUrl: string; @@ -135,49 +131,12 @@ export class LiteLLMPlugin implements StepPlugin { // Prepare the request payload const payload = await this.preparePayload(stepConfig, context, execution); - // DAAO Integration - const daaoEnabled = process.env.SUMMIT_DAAO_LITE === '1'; - let difficultySignal; - let routingDecision; - let validationResult; - - if (daaoEnabled) { - try { - const userPrompt = payload.messages?.find((m: any) => m.role === 'user')?.content || ''; - if (userPrompt) { - // 1. Difficulty Estimation - const scorer = new HeuristicDifficultyScorer(); - difficultySignal = await scorer.estimate(userPrompt); - - // 2. Routing - const catalog = new DefaultModelCatalog(); - const router = new CostAwareLLMRouter(catalog); - // Estimate input tokens (rough) - const estimatedTokens = Math.ceil(userPrompt.length / 4); - // Budget from context or default high - const budget = context.budget?.max_cost_usd || 1.0; - - routingDecision = router.route(difficultySignal, estimatedTokens, budget); - - // Apply routing decision - if (routingDecision.modelId) { - payload.model = routingDecision.modelId; - stepConfig.model = routingDecision.modelId; - } - } - } catch (e) { - console.warn('DAAO execution failed, falling back to default', e); - } - } - // Add request metadata payload.metadata = { run_id: context.run_id, step_id: step.id, tenant_id: context.tenant_id, environment: context.environment, - daao_difficulty: difficultySignal, - daao_routing: routingDecision, }; // Make the request with retry logic @@ -186,46 +145,6 @@ export class LiteLLMPlugin implements StepPlugin { // Extract response data const result = this.extractResponse(response.data); - // 3. Validation Loop (DAAO) - if ( - daaoEnabled && - difficultySignal && - (difficultySignal.band === 'medium' || difficultySignal.band === 'hard') - ) { - try { - if (result.type === 'text' && result.content) { - const runner: LLMRunner = { - run: async (prompt: string, systemPrompt?: string) => { - const valPayload = { ...payload }; - valPayload.messages = [ - { - role: 'system', - content: systemPrompt || 'You are a helpful assistant.', - }, - { role: 'user', content: prompt }, - ]; - // Use the same model for validation - const valResp = await this.makeRequestWithRetry(valPayload); - const valRes = this.extractResponse(valResp.data); - if (valRes.type === 'text') { - return valRes.content || ''; - } - return ''; - }, - }; - - const validator = new DebateValidator(runner); - validationResult = await validator.validateAndRefine(result.content); - - if (validationResult.wasRefined) { - result.content = validationResult.refined; - } - } - } catch (e) { - console.warn('DAAO validation failed', e); - } - } - // Calculate cost if enabled let cost_usd; if (this.config.costTrackingEnabled && response.data.usage) { @@ -242,7 +161,6 @@ export class LiteLLMPlugin implements StepPlugin { created: response.data.created, finish_reason: response.data.choices?.[0]?.finish_reason, litellm_model_info: response.data.model_info, - daao_validation: validationResult, }, }; } catch (error) { diff --git a/packages/mass-behavior-dynamics/vitest.config.ts b/packages/mass-behavior-dynamics/vitest.config.ts index 0f63353a8d4..7dd13254e75 100644 --- a/packages/mass-behavior-dynamics/vitest.config.ts +++ b/packages/mass-behavior-dynamics/vitest.config.ts @@ -2,7 +2,6 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { - coverage: { reporter: ['text', 'lcov', 'json-summary'] }, globals: true, environment: 'node', include: ['src/**/*.test.ts'], diff --git a/packages/mesh-observability/vitest.config.ts b/packages/mesh-observability/vitest.config.ts index 9e68c651af7..c5f36b4614e 100644 --- a/packages/mesh-observability/vitest.config.ts +++ b/packages/mesh-observability/vitest.config.ts @@ -2,7 +2,6 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { - coverage: { reporter: ['text', 'lcov', 'json-summary'] }, globals: true, environment: 'node', include: ['test/**/*.test.ts'], diff --git a/packages/mesh-sdk/vitest.config.ts b/packages/mesh-sdk/vitest.config.ts index ebda7a555a4..b7ef7ad454a 100644 --- a/packages/mesh-sdk/vitest.config.ts +++ b/packages/mesh-sdk/vitest.config.ts @@ -7,7 +7,7 @@ export default defineConfig({ include: ['test/**/*.test.ts'], coverage: { provider: 'v8', - reporter: ['text', 'lcov', 'json-summary'], + reporter: ['text', 'json', 'html'], include: ['src/**/*.ts'], exclude: ['src/**/*.d.ts'], }, diff --git a/packages/osint-collector/src/index.ts b/packages/osint-collector/src/index.ts index 0711e9cd12f..a7105720d96 100644 --- a/packages/osint-collector/src/index.ts +++ b/packages/osint-collector/src/index.ts @@ -13,9 +13,6 @@ export * from './core/CollectorBase.js'; export * from './core/CollectionScheduler.js'; export * from './core/CollectionQueue.js'; export * from './core/RateLimiter.js'; -export * from './core/Snapshot.js'; -export * from './core/Diff.js'; -export * from './core/Vantage.js'; export * from './collectors/SocialMediaCollector.js'; export * from './collectors/WebScraperCollector.js'; diff --git a/packages/plan-eval-platform/vitest.config.ts b/packages/plan-eval-platform/vitest.config.ts index dbafb8b0761..e1b6f772247 100644 --- a/packages/plan-eval-platform/vitest.config.ts +++ b/packages/plan-eval-platform/vitest.config.ts @@ -6,7 +6,7 @@ export default defineConfig({ environment: 'node', include: ['tests/**/*.test.ts'], coverage: { - reporter: ['text', 'lcov', 'json-summary'], + reporter: ['text', 'json', 'html'], include: ['src/**/*.ts'], exclude: ['src/**/index.ts', 'src/**/types.ts'], }, diff --git a/packages/pve/vitest.config.ts b/packages/pve/vitest.config.ts index 9462b66ea9c..8006772ff27 100644 --- a/packages/pve/vitest.config.ts +++ b/packages/pve/vitest.config.ts @@ -7,7 +7,7 @@ export default defineConfig({ include: ['tests/**/*.test.ts'], coverage: { provider: 'v8', - reporter: ['text', 'lcov', 'json-summary'], + reporter: ['text', 'lcov'], include: ['src/**/*.ts'], exclude: ['src/**/*.d.ts', 'src/**/index.ts'], }, diff --git a/packages/security-defense/vitest.config.ts b/packages/security-defense/vitest.config.ts index 4b72eb2a91e..1e83a6f86d2 100644 --- a/packages/security-defense/vitest.config.ts +++ b/packages/security-defense/vitest.config.ts @@ -6,7 +6,7 @@ export default defineConfig({ environment: 'node', include: ['src/**/*.test.ts'], coverage: { - reporter: ['text', 'lcov', 'json-summary'], + reporter: ['text', 'lcov'], }, }, }); diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index 084456b9196..acb3488f438 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -8,7 +8,3 @@ export interface BaseModel { createdAt: Timestamp; updatedAt: Timestamp; } - -export * from './zk.js'; -export * from './ufar.js'; -export * from './hypothesis_ledger.js'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 51ef3887111..21b1f95ce46 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,22 +5,30 @@ settings: excludeLinksFromLockfile: false overrides: - entities: ^4.5.0 + '@orval/mcp': '>=7.18.0' + '@orval/core': '>=7.19.0' d3-color: '>=3.1.0' node-fetch: '>=2.6.7' - ws: '>=8.17.1' + debug: '>=4.3.5' + eslint>chalk: ^4.1.2 + chalk: '>=5.3.0' + color: '>=4.2.3' + ansi-regex: ^5.0.1 + ws: '>=8.18.4' parse-duration: '>=2.1.3' braces: '>=3.0.3' micromatch: '>=4.0.8' path-to-regexp: '>=8.0.0' validator: '>=13.15.20' nanoid: '>=5.0.9' + postcss>nanoid: ^3.3.7 cross-spawn: '>=7.0.6' - tar: '>=7.5.7' + tar: '>=6.2.1' cookie: '>=0.7.0' send: '>=0.19.0' serve-static: '>=1.16.0' express: '>=4.21.0' + axios: '>=1.13.2' glob: '>=11.1.0' tar-fs: '>=3.0.6' '@babel/runtime': '>=7.26.0' @@ -30,22 +38,20 @@ overrides: qs: '>=6.14.1' form-data: '>=2.5.4' tough-cookie: '>=4.1.3' - '@modelcontextprotocol/sdk': '>=1.26.0' - '@isaacs/brace-expansion': '>=5.0.1' + '@modelcontextprotocol/sdk': '>=1.1.0' '@remix-run/router': '>=1.21.0' react-router: '>=6.28.0' preact: '>=10.25.4' '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - graphql: 16.12.0 - fastify: '>=5.7.2' - fast-xml-parser: '>=5.3.4' - hono: '>=4.11.7' - multer: '>=2.0.2' - busboy: '>=1.6.0' - html-minifier: npm:html-minifier-terser@^5.1.1 + react: 19.2.1 + react-dom: 19.2.1 + apollo-server-express: '>=3.13.0' + redis: '>=5.9.0' + '@types/express': 4.17.21 + '@types/express-serve-static-core': 4.19.6 -pnpmfileChecksum: sha256-a6bZRKVps8e/vFm+ZHjptEhSt2AMVrBBZPNF7tFCrHw= +pnpmfileChecksum: 4jsu64f5ozxsnp2co45i3jiflq importers: @@ -64,17 +70,17 @@ importers: specifier: ^1.3.6 version: 1.3.6(@types/react-dom@18.3.0)(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) apollo-server-express: - specifier: ^3.13.0 + specifier: '>=3.13.0' version: 3.13.0(express@5.2.1)(graphql@16.12.0) axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 cbor: specifier: ^9.0.2 version: 9.0.2 commander: specifier: ^14.0.2 - version: 14.0.3 + version: 14.0.2 cross-env: specifier: ^10.0.0 version: 10.1.0 @@ -82,20 +88,20 @@ importers: specifier: ^9.5.1 version: 9.5.1 dotenv: - specifier: ^17.2.3 + specifier: ^17.2.1 version: 17.2.3 ioredis: specifier: ^5.8.2 version: 5.8.2 jest-extended: specifier: ^4.0.2 - version: 4.0.2(jest@29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3))) + version: 4.0.2(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3))) neo4j-driver: specifier: ^5.28.1 version: 5.28.2 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -109,16 +115,16 @@ importers: specifier: ^0.59.0 version: 0.59.0(monaco-editor@0.55.1)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 supertest: specifier: ^7.1.4 version: 7.1.4 vitest: specifier: ^4.0.16 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.10)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 xlsx: specifier: https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz @@ -132,7 +138,7 @@ importers: version: 4.11.0(playwright-core@1.58.1) '@commitlint/cli': specifier: ^19.8.1 - version: 19.8.1(@types/node@25.0.10)(typescript@5.9.3) + version: 19.8.1(@types/node@25.0.3)(typescript@5.9.3) '@commitlint/config-conventional': specifier: ^19.8.1 version: 19.8.1 @@ -141,7 +147,7 @@ importers: version: 9.39.2 '@graphql-inspector/cli': specifier: ^6.0.5 - version: 6.0.5(@types/node@25.0.10)(graphql@16.12.0) + version: 6.0.5(@types/node@25.0.3)(graphql@16.12.0) '@playwright/test': specifier: ^1.57.0 version: 1.57.0 @@ -157,6 +163,12 @@ importers: '@semantic-release/npm': specifier: ^12.0.2 version: 12.0.2(semantic-release@24.2.9(typescript@5.9.3)) + '@types/hapi__catbox': + specifier: ^12.1.0 + version: 12.1.0 + '@types/hapi__shot': + specifier: ^6.0.0 + version: 6.0.0 '@types/jest': specifier: ^29.5.14 version: 29.5.14 @@ -168,22 +180,25 @@ importers: version: 6.0.0 '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 '@types/uuid': specifier: ^11.0.0 version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.50.1 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.1(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.50.1 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) ajv: specifier: ^8.17.1 version: 8.17.1 ajv-formats: specifier: ^3.0.1 version: 3.0.1(ajv@8.17.1) + babel-plugin-transform-import-meta: + specifier: ^2.3.3 + version: 2.3.3(@babel/core@7.26.10) body-parser: specifier: ^2.2.1 version: 2.2.1 @@ -198,7 +213,7 @@ importers: version: 10.1.8(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jest: specifier: ^29.6.0 - version: 29.11.0(@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.11.0(@typescript-eslint/eslint-plugin@8.50.1(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)))(typescript@5.9.3) eslint-plugin-react: specifier: ^7.37.5 version: 7.37.5(eslint@9.39.2(jiti@2.6.1)) @@ -210,7 +225,7 @@ importers: version: 0.4.26(eslint@9.39.2(jiti@2.6.1)) eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 express: specifier: '>=4.21.0' version: 5.2.1 @@ -225,13 +240,13 @@ importers: version: 9.1.7 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) jest-junit: specifier: 16.0.0 version: 16.0.0 jest-watch-typeahead: specifier: ^2.2.2 - version: 2.2.2(jest@29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3))) + version: 2.2.2(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3))) js-yaml: specifier: ^4.1.1 version: 4.1.1 @@ -255,10 +270,10 @@ importers: version: 24.2.9(typescript@5.9.3) ts-jest: specifier: ^29.4.6 - version: 29.4.6(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.26.10)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.26.10))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3) + version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3) tsx: specifier: ^4.21.0 version: 4.21.0 @@ -271,43 +286,30 @@ importers: uuid: specifier: ^13.0.0 version: 13.0.0 + yaml: + specifier: ^2.8.2 + version: 2.8.2 zod: - specifier: 3.25.76 - version: 3.25.76 + specifier: ^4.2.1 + version: 4.2.1 agents/governance: devDependencies: '@types/node': specifier: ^20.10.0 - version: 20.19.27 + version: 20.19.30 typescript: specifier: ^5.3.3 version: 5.9.3 vitest: specifier: ^1.0.0 - version: 1.6.1(@types/node@20.19.27)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) - - agents/longhorizon: - dependencies: - zod: - specifier: 3.25.76 - version: 3.25.76 - devDependencies: - '@types/node': - specifier: ^25.0.3 - version: 25.3.5 - typescript: - specifier: ^5.7.3 - version: 5.9.3 - vitest: - specifier: ^4.0.16 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 1.6.1(@types/node@20.19.30)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) agents/multimodal: dependencies: neo4j-driver: specifier: ^5.x - version: 5.28.2 + version: 5.28.3 pg: specifier: ^8.x version: 8.18.0 @@ -316,20 +318,20 @@ importers: version: 8.21.0 devDependencies: '@types/jest': - specifier: ^29.5.14 + specifier: ^29.x version: 29.5.14 '@types/node': specifier: ^20.x - version: 20.19.27 + version: 20.19.30 '@types/pg': specifier: ^8.x version: 8.16.0 jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) + specifier: ^29.x + version: 29.7.0(@types/node@20.19.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)) ts-jest: - specifier: ^29.4.6 - version: 29.4.6(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(esbuild@0.27.2)(jest-util@30.2.0)(jest@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.x + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@20.19.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.x version: 5.9.3 @@ -347,7 +349,7 @@ importers: version: 5.0.4 ioredis: specifier: ^5.3.2 - version: 5.8.2 + version: 5.9.2 openai: specifier: ^4.0.0 version: 4.104.0(ws@8.19.0)(zod@3.25.76) @@ -363,44 +365,19 @@ importers: version: 30.0.0 '@types/node': specifier: ^20.19.25 - version: 20.19.27 + version: 20.19.30 '@types/uuid': specifier: ^9.0.7 version: 9.0.8 '@vitest/coverage-v8': specifier: ^1.0.0 - version: 1.6.1(vitest@1.6.1(@types/node@20.19.27)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1)) + version: 1.6.1(vitest@1.6.1(@types/node@20.19.30)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1)) typescript: specifier: ^5.3.3 version: 5.9.3 vitest: specifier: ^1.0.0 - version: 1.6.1(@types/node@20.19.27)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) - - agents/ui_automation: - dependencies: - playwright: - specifier: ^1.40.0 - version: 1.58.1 - devDependencies: - '@types/jest': - specifier: ^29.5.11 - version: 29.5.14 - '@types/node': - specifier: ^18.0.0 - version: 18.19.130 - eslint: - specifier: ^8.0.0 - version: 8.57.1 - jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@18.19.130)(typescript@5.9.3)) - ts-jest: - specifier: ^29.1.1 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@18.19.130)(typescript@5.9.3)))(typescript@5.9.3) - typescript: - specifier: ^5.0.0 - version: 5.9.3 + version: 1.6.1(@types/node@20.19.30)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) apps/a11y-lab: devDependencies: @@ -412,7 +389,7 @@ importers: version: 1.57.0 '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 axe-core: specifier: ^4.10.0 version: 4.11.0 @@ -427,7 +404,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 csv-parser: specifier: ^3.0.0 version: 3.2.0 @@ -457,9 +434,9 @@ importers: version: 6.0.1 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 redis: - specifier: ^5.8.3 + specifier: '>=5.9.0' version: 5.10.0 uuid: specifier: ^13.0.0 @@ -475,14 +452,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 - '@types/hapi__catbox': - specifier: ^12.1.0 - version: 12.1.0 - '@types/hapi__shot': - specifier: ^6.0.0 - version: 6.0.0 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -491,7 +462,7 @@ importers: version: 9.0.10 '@types/lodash': specifier: ^4.14.202 - version: 4.17.23 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -503,10 +474,10 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -515,7 +486,7 @@ importers: version: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) ts-jest: specifier: ^29.4.5 - version: 29.4.6(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3) tsx: specifier: ^4.6.2 version: 4.21.0 @@ -539,26 +510,26 @@ importers: version: 5.2.1 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 '@types/supertest': specifier: ^6.0.3 version: 6.0.3 jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) supertest: specifier: ^7.1.1 version: 7.1.4 ts-jest: specifier: ^29.4.5 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)))(typescript@5.9.3) tsx: specifier: ^4.6.2 version: 4.21.0 @@ -567,15 +538,15 @@ importers: version: 5.9.3 vitest: specifier: ^2.1.2 - version: 2.1.9(@types/node@25.0.10)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(terser@5.44.1) + version: 2.1.9(@types/node@25.0.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1) apps/command-console: dependencies: react: - specifier: ^19.2.0 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^19.2.0 + specifier: 19.2.1 version: 19.2.1(react@19.2.1) devDependencies: '@testing-library/jest-dom': @@ -592,7 +563,7 @@ importers: version: 18.3.0 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1)) + version: 4.7.0(vite@5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1)) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -607,21 +578,21 @@ importers: version: 5.9.3 vite: specifier: ^5.4.11 - version: 5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1) + version: 5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1) vitest: specifier: ^2.1.5 - version: 2.1.9(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@26.1.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1) + version: 2.1.9(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@26.1.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(terser@5.44.1) apps/compliance-console: dependencies: axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 react: - specifier: ^19.2.0 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^19.2.0 + specifier: 19.2.1 version: 19.2.1(react@19.2.1) devDependencies: '@testing-library/dom': @@ -644,7 +615,7 @@ importers: version: 18.3.0 '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.7.0(vite@5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1)) + version: 4.7.0(vite@5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1)) happy-dom: specifier: ^20.0.2 version: 20.0.11 @@ -653,10 +624,10 @@ importers: version: 5.9.3 vite: specifier: ^5.4.10 - version: 5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1) + version: 5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1) vitest: specifier: ^1.6.0 - version: 1.6.1(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + version: 1.6.1(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) apps/desktop-electron: dependencies: @@ -676,21 +647,15 @@ importers: specifier: ^6.3.10 version: 6.6.2 graphql: - specifier: 16.12.0 + specifier: ^16.12.0 version: 16.12.0 react: - specifier: ^19.2.0 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^19.2.0 + specifier: 19.2.1 version: 19.2.1(react@19.2.1) devDependencies: - '@types/hapi__catbox': - specifier: ^12.1.0 - version: 12.1.0 - '@types/hapi__shot': - specifier: ^6.0.0 - version: 6.0.0 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -743,10 +708,10 @@ importers: specifier: ^0.554.0 version: 0.554.0(react@19.2.1) react: - specifier: ^19.2.1 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^19.2.1 + specifier: 19.2.1 version: 19.2.1(react@19.2.1) react-router-dom: specifier: ^7.13.0 @@ -769,10 +734,10 @@ importers: devDependencies: '@eslint/js': specifier: ^9.39.1 - version: 9.39.2 + version: 9.39.1 '@tailwindcss/vite': specifier: ^4.1.18 - version: 4.1.18(vite@7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 4.1.18(vite@7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@types/react': specifier: 18.3.11 version: 18.3.11 @@ -781,7 +746,7 @@ importers: version: 18.3.0 '@vitejs/plugin-react': specifier: ^5.0.4 - version: 5.1.1(vite@7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.1.1(vite@7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) autoprefixer: specifier: ^10.4.16 version: 10.4.22(postcss@8.5.6) @@ -793,7 +758,7 @@ importers: version: 16.5.0 jsdom: specifier: ^27.3.0 - version: 27.4.0(canvas@2.11.2) + version: 27.3.0 postcss: specifier: ^8.4.31 version: 8.5.6 @@ -805,31 +770,31 @@ importers: version: 5.9.3 typescript-eslint: specifier: ^8.49.0 - version: 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) vite: specifier: ^7.1.11 - version: 7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) vite-plugin-pwa: specifier: ^0.19.0 - version: 0.19.8(vite@7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(workbox-build@7.4.0(@types/babel__core@7.20.5))(workbox-window@7.4.0) + version: 0.19.8(vite@7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(workbox-build@7.4.0(@types/babel__core@7.20.5))(workbox-window@7.4.0) vitest: specifier: ^4.0.3 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.1.0)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) apps/gateway: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^4.11.0 + version: 4.12.2(graphql@16.12.0) '@opentelemetry/api': specifier: latest version: 1.9.0 '@opentelemetry/auto-instrumentations-node': specifier: ^0.67.3 - version: 0.67.3(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.6.0(@opentelemetry/api@1.9.0)) + version: 0.67.3(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0)) '@opentelemetry/exporter-metrics-otlp-http': specifier: latest - version: 0.213.0(@opentelemetry/api@1.9.0) + version: 0.211.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-prometheus': specifier: ^0.208.0 version: 0.208.0(@opentelemetry/api@1.9.0) @@ -838,16 +803,16 @@ importers: version: 0.211.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': specifier: latest - version: 2.6.0(@opentelemetry/api@1.9.0) + version: 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': specifier: ^2.2.0 - version: 2.5.0(@opentelemetry/api@1.9.0) + version: 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-node': specifier: ^0.208.0 version: 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': specifier: ^1.38.0 - version: 1.39.0 + version: 1.38.0 bullmq: specifier: ^5.8.2 version: 5.66.1 @@ -877,20 +842,20 @@ importers: version: 1.8.2(@babel/runtime@7.28.4) devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/js-yaml': specifier: ^4.0.9 version: 4.0.9 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3) + version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3) typescript: specifier: ^5.6.3 version: 5.9.3 vitest: specifier: ^4.0.16 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.1.0)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) apps/graph-analytics: dependencies: @@ -899,7 +864,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -923,9 +888,9 @@ importers: version: 6.0.1 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 redis: - specifier: ^5.8.3 + specifier: '>=5.9.0' version: 5.10.0 uuid: specifier: ^13.0.0 @@ -944,8 +909,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -954,7 +919,7 @@ importers: version: 9.0.10 '@types/lodash': specifier: ^4.14.202 - version: 4.17.23 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -969,10 +934,10 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -995,17 +960,17 @@ importers: apps/intelgraph-api: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^4.10.0 + version: 4.12.2(graphql@16.12.0) '@as-integrations/express4': specifier: ^1.0.0 - version: 1.1.2(@apollo/server@4.11.3(graphql@16.12.0))(express@5.2.1) + version: 1.1.2(@apollo/server@4.12.2(graphql@16.12.0))(express@5.2.1) '@opentelemetry/api': specifier: ^1.9.0 version: 1.9.0 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 dotenv: specifier: ^17.2.3 version: 17.2.3 @@ -1016,7 +981,7 @@ importers: specifier: ^8.4.1 version: 8.5.1 graphql: - specifier: 16.12.0 + specifier: ^16.12.0 version: 16.12.0 graphql-tag: specifier: ^2.12.6 @@ -1032,7 +997,7 @@ importers: version: 6.0.1 pg: specifier: ^8.12.0 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -1044,8 +1009,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/express-jwt': specifier: ^7.4.4 version: 7.4.4 @@ -1072,28 +1037,28 @@ importers: dependencies: '@radix-ui/react-dialog': specifier: ^1.0.5 - version: 1.1.15(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.15(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-dropdown-menu': specifier: ^2.0.6 - version: 2.1.16(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.16(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-progress': specifier: ^1.0.3 - version: 1.1.8(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.8(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-select': specifier: ^2.0.0 - version: 2.2.6(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.2.6(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-tabs': specifier: ^1.0.4 - version: 1.1.13(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.13(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-toast': specifier: ^1.1.5 - version: 1.2.15(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.15(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@tanstack/react-query': specifier: ^5.24.1 - version: 5.90.12(react@18.3.1) + version: 5.90.12(react@19.2.1) axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 class-variance-authority: specifier: ^0.7.0 version: 0.7.1 @@ -1105,35 +1070,35 @@ importers: version: 3.6.0 lucide-react: specifier: ^0.344.0 - version: 0.344.0(react@18.3.1) + version: 0.344.0(react@19.2.1) react: - specifier: ^18.2.0 - version: 18.3.1 + specifier: 19.2.1 + version: 19.2.1 react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + specifier: 19.2.1 + version: 19.2.1(react@19.2.1) react-hook-form: specifier: ^7.51.0 - version: 7.68.0(react@18.3.1) + version: 7.68.0(react@19.2.1) react-router-dom: specifier: ^7.13.0 - version: 7.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.13.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) recharts: specifier: ^2.12.2 - version: 2.12.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.15.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1) tailwind-merge: specifier: ^2.2.1 version: 2.6.0 zustand: specifier: ^4.5.1 - version: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@18.3.1) + version: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@19.2.1) devDependencies: '@testing-library/jest-dom': specifier: ^6.4.2 version: 6.9.1 '@testing-library/react': specifier: ^14.2.1 - version: 14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.3.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@types/node': specifier: ^20.11.24 version: 20.19.27 @@ -1183,12 +1148,6 @@ importers: specifier: ^1.3.1 version: 1.6.1(@types/node@20.19.27)(happy-dom@20.0.11)(jsdom@24.1.3(canvas@2.11.2))(lightningcss@1.30.2)(terser@5.44.1) - apps/maestro-workboard: - dependencies: - express: - specifier: '>=4.21.0' - version: 5.2.1 - apps/ml-engine: dependencies: bull: @@ -1199,7 +1158,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -1223,9 +1182,9 @@ importers: version: 6.0.1 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 redis: - specifier: ^5.8.3 + specifier: '>=5.9.0' version: 5.10.0 uuid: specifier: ^13.0.0 @@ -1241,14 +1200,14 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 '@types/lodash': specifier: ^4.14.202 - version: 4.17.23 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -1260,10 +1219,10 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -1326,7 +1285,7 @@ importers: version: 7.9.0(@react-navigation/native@7.1.26(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native-safe-area-context@5.6.2(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native-screens@4.19.0(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) '@react-navigation/drawer': specifier: ^7.2.2 - version: 7.7.10(af2bd9e7ac6aa06e732e4412122c380d) + version: 7.7.10(ydampp7fvan4qptkli3dqtftoq) '@react-navigation/native': specifier: ^7.0.11 version: 7.1.26(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) @@ -1352,8 +1311,8 @@ importers: specifier: ^7.2.0 version: 7.3.1 axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -1367,7 +1326,7 @@ importers: specifier: ^4.1.0 version: 4.1.0 graphql: - specifier: 16.12.0 + specifier: ^16.12.0 version: 16.12.0 graphql-ws: specifier: ^6.0.6 @@ -1382,7 +1341,7 @@ importers: specifier: ^4.1.23 version: 4.2.1(react-native-reanimated@4.2.1(react-native-worklets@0.7.1(@babel/core@7.28.5)(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native-safe-area-context@5.6.2(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native-svg@15.15.1(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(tailwindcss@3.4.18(tsx@4.21.0)(yaml@2.8.2)) react: - specifier: ^19.2.0 + specifier: 19.2.1 version: 19.2.1 react-hook-form: specifier: ^7.54.2 @@ -1461,7 +1420,7 @@ importers: version: 10.3.0 react-native-vision-camera: specifier: ^4.7.3 - version: 4.7.3(2a8bff215a77e9add6caf84016d3d6ae) + version: 4.7.3(mvrucncxhhhixgo4di56wucsee) react-native-webview: specifier: ^13.16.0 version: 13.16.0(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) @@ -1492,7 +1451,7 @@ importers: version: 7.28.4 '@graphql-codegen/cli': specifier: ^5.0.3 - version: 5.0.7(@fastify/websocket@11.2.0)(@types/node@25.0.10)(enquirer@2.4.1)(graphql@16.12.0)(typescript@5.9.3) + version: 5.0.7(@fastify/websocket@11.2.0)(@types/node@25.0.3)(enquirer@2.4.1)(graphql@16.12.0)(typescript@5.9.3) '@graphql-codegen/typescript': specifier: ^5.0.7 version: 5.0.7(graphql@16.12.0) @@ -1507,7 +1466,7 @@ importers: version: 0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5)) '@react-native/eslint-config': specifier: ^0.76.4 - version: 0.76.9(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)))(prettier@3.7.4)(typescript@5.9.3) + version: 0.76.9(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)))(prettier@3.7.4)(typescript@5.9.3) '@react-native/metro-config': specifier: ^0.76.7 version: 0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5)) @@ -1519,7 +1478,7 @@ importers: version: 5.4.3(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react-test-renderer@19.2.3(react@19.2.1))(react@19.2.1) '@testing-library/react-native': specifier: ^13.2.1 - version: 13.3.3(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react-test-renderer@19.2.3(react@19.2.1))(react@19.2.1) + version: 13.3.3(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react-test-renderer@19.2.3(react@19.2.1))(react@19.2.1) '@types/d3': specifier: ^7.4.3 version: 7.4.3 @@ -1528,7 +1487,7 @@ importers: version: 30.0.0 '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 '@types/react': specifier: 18.3.11 version: 18.3.11 @@ -1540,13 +1499,13 @@ importers: version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) detox: specifier: ^20.28.7 - version: 20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3))) + version: 20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3))) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -1558,13 +1517,13 @@ importers: version: 5.2.0(eslint@9.39.2(jiti@2.6.1)) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) metro-react-native-babel-preset: specifier: ^0.77.0 version: 0.77.0(@babel/core@7.28.5) msw: specifier: ^2.11.6 - version: 2.12.4(@types/node@25.0.10)(typescript@5.9.3) + version: 2.12.4(@types/node@25.0.3)(typescript@5.9.3) prettier: specifier: ^3.6.2 version: 3.7.4 @@ -1596,8 +1555,8 @@ importers: specifier: ^10.4.16 version: 10.4.22(postcss@8.5.6) axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 clsx: specifier: ^2.0.0 version: 2.1.1 @@ -1629,13 +1588,13 @@ importers: specifier: ^8.4.32 version: 8.5.6 react: - specifier: ^19.2.1 + specifier: 19.2.1 version: 19.2.1 react-cytoscapejs: specifier: ^2.0.0 version: 2.0.0(cytoscape@3.33.1)(react@19.2.1) react-dom: - specifier: ^19.2.0 + specifier: 19.2.1 version: 19.2.1(react@19.2.1) react-force-graph-2d: specifier: ^1.25.4 @@ -1739,16 +1698,16 @@ importers: version: 18.3.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) eslint-config-next: specifier: ^16.0.0 - version: 16.1.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 16.1.1(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) jest: specifier: ^30.2.0 version: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) @@ -1802,7 +1761,7 @@ importers: version: 7.9.0(@react-navigation/native@7.1.26(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native-safe-area-context@5.6.2(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native-screens@4.19.0(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) '@react-navigation/drawer': specifier: ^7.2.2 - version: 7.7.10(af2bd9e7ac6aa06e732e4412122c380d) + version: 7.7.10(ydampp7fvan4qptkli3dqtftoq) '@react-navigation/native': specifier: ^7.0.11 version: 7.1.26(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) @@ -1825,13 +1784,13 @@ importers: specifier: ^5.8.4 version: 5.90.14(@tanstack/react-query@5.90.12(react@19.2.1))(react@19.2.1) axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 date-fns: specifier: ^4.1.0 version: 4.1.0 graphql: - specifier: 16.12.0 + specifier: ^16.12.0 version: 16.12.0 graphql-ws: specifier: ^6.0.6 @@ -1843,7 +1802,7 @@ importers: specifier: ^0.76.0 version: 0.76.9 react: - specifier: ^19.2.0 + specifier: 19.2.1 version: 19.2.1 react-hook-form: specifier: ^7.54.2 @@ -1934,7 +1893,7 @@ importers: version: 10.3.0 react-native-vision-camera: specifier: ^4.7.3 - version: 4.7.3(2a8bff215a77e9add6caf84016d3d6ae) + version: 4.7.3(mvrucncxhhhixgo4di56wucsee) react-native-webview: specifier: ^13.6.0 version: 13.16.0(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) @@ -1959,7 +1918,7 @@ importers: version: 0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5)) '@react-native/eslint-config': specifier: ^0.76.4 - version: 0.76.9(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(prettier@3.7.4)(typescript@5.9.3) + version: 0.76.9(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)))(prettier@3.7.4)(typescript@5.9.3) '@react-native/metro-config': specifier: ^0.76.7 version: 0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5)) @@ -1968,7 +1927,7 @@ importers: version: 0.76.9 '@testing-library/react-native': specifier: ^13.2.1 - version: 13.3.3(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react-test-renderer@19.2.3(react@19.2.1))(react@19.2.1) + version: 13.3.3(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react-test-renderer@19.2.3(react@19.2.1))(react@19.2.1) '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -1980,19 +1939,19 @@ importers: version: 0.73.0(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1) '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) detox: specifier: ^20.28.7 - version: 20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3))) + version: 20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3))) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) metro-react-native-babel-preset: specifier: ^0.77.0 version: 0.77.0(@babel/core@7.28.5) @@ -2055,9 +2014,9 @@ importers: version: 6.0.1 pg: specifier: ^8.17.2 - version: 8.18.0 + version: 8.17.2 redis: - specifier: ^5.8.3 + specifier: '>=5.9.0' version: 5.10.0 stemmer: specifier: ^2.0.1 @@ -2079,8 +2038,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -2127,11 +2086,11 @@ importers: apps/server: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^4.11.1 + version: 4.12.2(graphql@16.12.0) axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 body-parser: specifier: ^2.2.0 version: 2.2.1 @@ -2140,7 +2099,7 @@ importers: version: 8.1.0(express-session@1.18.2) cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -2151,7 +2110,7 @@ importers: specifier: ^1.18.1 version: 1.18.2 graphql: - specifier: 16.12.0 + specifier: ^16.12.0 version: 16.12.0 helmet: specifier: ^7.2.0 @@ -2180,13 +2139,13 @@ importers: version: 0.0.22 '@types/cookie-parser': specifier: ^1.4.8 - version: 1.4.10(@types/express@4.17.25) + version: 1.4.10(@types/express@4.17.21) '@types/cors': specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/express-session': specifier: ^1.17.12 version: 1.18.2 @@ -2221,8 +2180,8 @@ importers: apps/slo-exporter: dependencies: axios: - specifier: ^1.13.5 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 express: specifier: '>=4.21.0' version: 5.2.1 @@ -2231,8 +2190,8 @@ importers: version: 15.1.3 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 25.0.10 version: 25.0.10 @@ -2243,28 +2202,6 @@ importers: specifier: 5.9.3 version: 5.9.3 - apps/switchboard-console: - dependencies: - commander: - specifier: 14.0.2 - version: 14.0.2 - yaml: - specifier: ^2.6.1 - version: 2.8.2 - zod: - specifier: 3.24.1 - version: 3.24.1 - devDependencies: - '@types/node': - specifier: ^20.11.30 - version: 20.19.27 - typescript: - specifier: ^5.7.3 - version: 5.9.3 - vitest: - specifier: ^2.1.5 - version: 2.1.9(@types/node@20.19.27)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1) - apps/switchboard-web: dependencies: '@tanstack/react-query': @@ -2274,10 +2211,10 @@ importers: specifier: ^2.0.0 version: 2.1.1 react: - specifier: ^19.2.1 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^19.2.1 + specifier: 19.2.1 version: 19.2.1(react@19.2.1) devDependencies: '@types/react': @@ -2288,21 +2225,21 @@ importers: version: 18.3.0 '@vitejs/plugin-react': specifier: ^5.0.4 - version: 5.1.1(vite@7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.1.1(vite@7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) typescript: specifier: ^5.9.3 version: 5.9.3 vite: specifier: ^7.2.6 - version: 7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) apps/tri-pane: dependencies: react: - specifier: ^19.2.0 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^19.2.0 + specifier: 19.2.1 version: 19.2.1(react@19.2.1) devDependencies: '@playwright/test': @@ -2325,13 +2262,13 @@ importers: version: 18.3.0 '@typescript-eslint/eslint-plugin': specifier: ^8.47.0 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.47.0 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.7.0(vite@6.4.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 4.7.0(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) autoprefixer: specifier: ^10.4.20 version: 10.4.22(postcss@8.5.6) @@ -2355,10 +2292,10 @@ importers: version: 5.9.3 vite: specifier: ^6.0.5 - version: 6.4.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) vitest: specifier: ^2.1.4 - version: 2.1.9(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@26.1.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1) + version: 2.1.9(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@26.1.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(terser@5.44.1) apps/ui: {} @@ -2371,8 +2308,8 @@ importers: specifier: ^5.0.0 version: 5.66.1 dotenv: - specifier: ^17.2.3 - version: 17.2.3 + specifier: ^16.0.0 + version: 16.6.1 glob: specifier: '>=11.1.0' version: 13.0.0 @@ -2381,7 +2318,7 @@ importers: version: 5.28.2 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.17.1 devDependencies: '@types/node': specifier: ^25.0.3 @@ -2415,52 +2352,13 @@ importers: version: 5.2.2(react-hook-form@7.68.0(react@19.2.1)) '@monaco-editor/react': specifier: ^4.7.0 - version: 4.7.0(monaco-editor@0.52.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + version: 4.7.0(monaco-editor@0.55.1)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@mui/icons-material': specifier: ^7.3.6 version: 7.3.6(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@mui/material': specifier: ^7.3.6 version: 7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@opentelemetry/api': - specifier: ~1.8.0 - version: 1.8.0 - '@opentelemetry/context-zone': - specifier: ~1.18.1 - version: 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/core': - specifier: ~1.18.1 - version: 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/exporter-trace-otlp-http': - specifier: ~0.45.1 - version: 0.45.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': - specifier: ~0.45.1 - version: 0.45.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-document-load': - specifier: ~0.35.0 - version: 0.35.0(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-fetch': - specifier: ~0.45.1 - version: 0.45.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation-user-interaction': - specifier: ~0.34.0 - version: 0.34.1(@opentelemetry/api@1.8.0)(zone.js@0.11.8) - '@opentelemetry/instrumentation-xml-http-request': - specifier: ~0.45.1 - version: 0.45.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': - specifier: ~1.18.1 - version: 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': - specifier: ~1.18.1 - version: 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-web': - specifier: ~1.18.1 - version: 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': - specifier: ~1.18.1 - version: 1.18.1 '@radix-ui/react-dialog': specifier: 1.1.15 version: 1.1.15(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) @@ -2560,9 +2458,6 @@ importers: mermaid: specifier: ^11.12.2 version: 11.12.2 - monaco-editor: - specifier: ^0.52.2 - version: 0.52.2 react: specifier: 19.2.1 version: 19.2.1 @@ -2578,9 +2473,6 @@ importers: react-leaflet: specifier: 5.0.0 version: 5.0.0(leaflet@1.9.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react-monaco-editor: - specifier: ^0.56.2 - version: 0.56.2(@types/react@18.3.11)(monaco-editor@0.52.2)(react@19.2.1) react-redux: specifier: ^9.2.0 version: 9.2.0(@types/react@18.3.11)(react@19.2.1)(redux@5.0.1) @@ -2601,7 +2493,7 @@ importers: version: 3.4.0 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@4.1.18) + version: 1.0.7(tailwindcss@3.4.18(tsx@4.21.0)(yaml@2.8.2)) web-vitals: specifier: ^5.1.0 version: 5.1.0 @@ -2704,7 +2596,7 @@ importers: version: 5.1.1(vite@7.2.6(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/coverage-v8': specifier: 4.0.16 - version: 4.0.16(vitest@4.0.16(@opentelemetry/api@1.8.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 4.0.16(vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) autoprefixer: specifier: 10.4.22 version: 10.4.22(postcss@8.5.6) @@ -2753,6 +2645,9 @@ importers: storybook: specifier: 10.1.10 version: 10.1.10(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + tailwindcss: + specifier: 3.4.18 + version: 3.4.18(tsx@4.21.0)(yaml@2.8.2) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -2761,10 +2656,10 @@ importers: version: 7.2.6(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) vitest: specifier: 4.0.16 - version: 4.0.16(@opentelemetry/api@1.8.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) vitest-axe: specifier: 0.1.0 - version: 0.1.0(vitest@4.0.16(@opentelemetry/api@1.8.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 0.1.0(vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) apps/webapp: dependencies: @@ -2817,10 +2712,10 @@ importers: specifier: ^3.14.0 version: 3.17.0 react: - specifier: ^19.2.1 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^19.1.1 + specifier: 19.2.1 version: 19.2.1(react@19.2.1) react-redux: specifier: ^9.2.0 @@ -2852,7 +2747,7 @@ importers: version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 '@types/react': specifier: 18.3.11 version: 18.3.11 @@ -2861,16 +2756,16 @@ importers: version: 18.3.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@vitejs/plugin-react': specifier: ^5.0.1 - version: 5.1.1(vite@7.2.6(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.1.1(vite@7.2.6(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.10)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) cypress: specifier: ^13.15.1 version: 13.17.0 @@ -2894,22 +2789,22 @@ importers: version: 5.9.3 vite: specifier: ^7.1.3 - version: 7.2.6(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 7.2.6(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) vitest: specifier: ^4.0.18 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.10)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) apps/workflow-engine: dependencies: axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 compression: specifier: ^1.7.4 version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -2936,9 +2831,9 @@ importers: version: 7.0.12 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 redis: - specifier: ^5.8.3 + specifier: '>=5.9.0' version: 5.10.0 uuid: specifier: ^13.0.0 @@ -2954,8 +2849,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -2964,7 +2859,7 @@ importers: version: 9.0.10 '@types/lodash': specifier: ^4.14.202 - version: 4.17.23 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -2982,10 +2877,10 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -3011,7 +2906,7 @@ importers: specifier: workspace:* version: link:../packages/adapter-sdk chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 commander: specifier: ^12.1.0 @@ -3020,20 +2915,20 @@ importers: specifier: ^13.0.1 version: 13.1.0 dotenv: - specifier: ^17.2.3 - version: 17.2.3 + specifier: ^16.4.5 + version: 16.6.1 ink: specifier: ^5.0.1 - version: 5.2.1(@types/react@18.3.11)(react@18.3.1) + version: 5.2.1(@types/react@18.3.11)(react@19.2.1) ink-spinner: specifier: ^5.0.0 - version: 5.0.0(ink@5.2.1(@types/react@18.3.11)(react@18.3.1))(react@18.3.1) + version: 5.0.0(ink@5.2.1(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) ink-table: specifier: ^3.1.0 - version: 3.1.0(ink@5.2.1(@types/react@18.3.11)(react@18.3.1))(react@18.3.1) + version: 3.1.0(ink@5.2.1(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) ink-text-input: specifier: ^6.0.0 - version: 6.0.0(ink@5.2.1(@types/react@18.3.11)(react@18.3.1))(react@18.3.1) + version: 6.0.0(ink@5.2.1(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) neo4j-driver: specifier: ^5.26.0 version: 5.28.2 @@ -3042,13 +2937,13 @@ importers: version: 8.2.0 pg: specifier: ^8.13.0 - version: 8.18.0 + version: 8.16.3 pgvector: specifier: ^0.2.0 version: 0.2.1 react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: 19.2.1 + version: 19.2.1 uuid: specifier: ^10.0.0 version: 10.0.0 @@ -3064,7 +2959,7 @@ importers: version: 29.5.14 '@types/node': specifier: ^22.9.0 - version: 22.19.7 + version: 22.19.3 '@types/pg': specifier: ^8.16.0 version: 8.16.0 @@ -3076,16 +2971,16 @@ importers: version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.14.0 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.1(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.14.0 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: - specifier: 29.7.0 - version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + specifier: ^29.7.0 + version: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) pkg: specifier: ^5.8.1 version: 5.8.1 @@ -3094,7 +2989,7 @@ importers: version: 6.1.2 ts-jest: specifier: ^29.2.5 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3) tsx: specifier: ^4.19.2 version: 4.21.0 @@ -3106,28 +3001,28 @@ importers: dependencies: '@apollo/client': specifier: 3.13.9 - version: 3.13.9(@types/react@18.3.11)(graphql-ws@5.16.2(graphql@16.12.0))(graphql@16.12.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.9.19(graphql@16.12.0)) + version: 3.13.9(@types/react@18.3.11)(graphql-ws@5.16.2(graphql@16.12.0))(graphql@16.12.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(subscriptions-transport-ws@0.9.19(graphql@16.12.0)) '@emotion/react': specifier: 11.14.0 - version: 11.14.0(@types/react@18.3.11)(react@18.3.1) + version: 11.14.0(@types/react@18.3.11)(react@19.2.1) '@emotion/styled': specifier: 11.14.1 - version: 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + version: 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@mui/icons-material': specifier: 7.3.6 - version: 7.3.6(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + version: 7.3.6(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@mui/lab': specifier: 6.0.0-dev.240424162023-9968b4889d - version: 6.0.0-dev.240424162023-9968b4889d(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.0.0-dev.240424162023-9968b4889d(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@mui/material': specifier: 7.3.6 - version: 7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@mui/x-data-grid': specifier: 8.10.1 - version: 8.10.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 8.10.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@mui/system@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@reduxjs/toolkit': specifier: 2.11.0 - version: 2.11.0(react-redux@9.2.0(@types/react@18.3.11)(react@18.3.1)(redux@5.0.1))(react@18.3.1) + version: 2.11.0(react-redux@9.2.0(@types/react@18.3.11)(react@19.2.1)(redux@5.0.1))(react@19.2.1) cytoscape: specifier: 3.33.1 version: 3.33.1 @@ -3198,41 +3093,41 @@ importers: specifier: 4.17.23 version: 4.17.23 react: - specifier: 18.3.1 - version: 18.3.1 + specifier: 19.2.1 + version: 19.2.1 react-dom: - specifier: 18.3.1 - version: 18.3.1(react@18.3.1) + specifier: 19.2.1 + version: 19.2.1(react@19.2.1) react-grid-layout: specifier: 1.5.3 - version: 1.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.5.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react-hook-form: specifier: 7.68.0 - version: 7.68.0(react@18.3.1) + version: 7.68.0(react@19.2.1) react-leaflet: specifier: 5.0.0 - version: 5.0.0(leaflet@1.9.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.0.0(leaflet@1.9.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react-redux: specifier: 9.2.0 - version: 9.2.0(@types/react@18.3.11)(react@18.3.1)(redux@5.0.1) + version: 9.2.0(@types/react@18.3.11)(react@19.2.1)(redux@5.0.1) react-router-dom: specifier: 7.13.0 - version: 7.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.13.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react-speech-recognition: specifier: 4.0.1 - version: 4.0.1(react@18.3.1) + version: 4.0.1(react@19.2.1) react-syntax-highlighter: specifier: 16.1.0 - version: 16.1.0(react@18.3.1) + version: 16.1.0(react@19.2.1) react-virtualized: specifier: 9.22.6 - version: 9.22.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 9.22.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) reactflow: specifier: 11.11.4 - version: 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) recharts: specifier: 2.12.7 - version: 2.12.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.12.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1) socket.io-client: specifier: 4.8.1 version: 4.8.1 @@ -3253,7 +3148,7 @@ importers: version: 4.2.1 zustand: specifier: 5.0.9 - version: 5.0.9(@types/react@18.3.11)(immer@11.1.0)(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)) + version: 5.0.9(@types/react@18.3.11)(immer@11.1.0)(react@19.2.1)(use-sync-external-store@1.6.0(react@19.2.1)) devDependencies: '@axe-core/playwright': specifier: 4.11.0 @@ -3293,7 +3188,7 @@ importers: version: 6.9.1 '@testing-library/react': specifier: 13.4.0 - version: 13.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 13.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@testing-library/user-event': specifier: 14.6.1 version: 14.6.1(@testing-library/dom@10.4.1) @@ -3382,22 +3277,298 @@ importers: specifier: 4.0.16 version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - libs/realtime: + companyos/services/api-svc-template: dependencies: - graphql-ws: - specifier: ^5.14.0 - version: 5.16.2(graphql@16.12.0) - ws: - specifier: '>=8.17.1' - version: 8.19.0 + axios: + specifier: '>=1.13.2' + version: 1.13.2 + config: + specifier: ^3.3.11 + version: 3.3.12 + express: + specifier: '>=4.21.0' + version: 5.2.1 + pino: + specifier: ^9.4.0 + version: 9.9.0 + prom-client: + specifier: ^15.1.0 + version: 15.1.3 devDependencies: - '@types/ws': - specifier: ^8.5.5 - version: 8.18.1 + '@types/config': + specifier: ^3.3.3 + version: 3.3.5 + '@types/express': + specifier: 4.17.21 + version: 4.17.21 + '@types/node': + specifier: ^22.7.0 + version: 22.19.3 + '@types/supertest': + specifier: ^6.0.3 + version: 6.0.3 + '@typescript-eslint/eslint-plugin': + specifier: ^8.8.1 + version: 8.50.1(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': + specifier: ^8.8.1 + version: 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: + specifier: ^9.39.2 + version: 9.39.2(jiti@2.6.1) + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import: + specifier: ^2.30.0 + version: 2.32.0(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) + supertest: + specifier: ^7.0.0 + version: 7.1.4 + tsconfig-paths: + specifier: ^4.2.0 + version: 4.2.0 + tsx: + specifier: ^4.16.5 + version: 4.21.0 + typescript: + specifier: ^5.6.2 + version: 5.9.3 + vitest: + specifier: ^2.1.2 + version: 2.1.9(@types/node@22.19.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1) + + companyos/services/companyos-api: + dependencies: + axios: + specifier: '>=1.13.2' + version: 1.13.2 + express: + specifier: '>=4.21.0' + version: 5.2.1 + devDependencies: + '@types/express': + specifier: 4.17.21 + version: 4.17.21 + '@types/node': + specifier: ^22.10.1 + version: 22.19.3 + '@types/supertest': + specifier: ^6.0.3 + version: 6.0.3 + nock: + specifier: ^14.0.4 + version: 14.0.10 + supertest: + specifier: ^7.0.0 + version: 7.1.4 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3) + typescript: + specifier: ^5.6.3 + version: 5.9.3 + vitest: + specifier: ^2.1.4 + version: 2.1.9(@types/node@22.19.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1) + + companyos/services/incident-api: + dependencies: + axios: + specifier: '>=1.13.2' + version: 1.13.2 + config: + specifier: ^3.3.11 + version: 3.3.12 + express: + specifier: '>=4.21.0' + version: 5.2.1 + pino: + specifier: ^9.4.0 + version: 9.9.0 + prom-client: + specifier: ^15.1.0 + version: 15.1.3 + devDependencies: + '@types/config': + specifier: ^3.3.3 + version: 3.3.5 + '@types/express': + specifier: 4.17.21 + version: 4.17.21 + '@types/node': + specifier: ^22.7.0 + version: 22.19.3 + '@types/supertest': + specifier: ^6.0.3 + version: 6.0.3 + '@typescript-eslint/eslint-plugin': + specifier: ^8.8.1 + version: 8.50.1(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': + specifier: ^8.8.1 + version: 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: + specifier: ^9.39.2 + version: 9.39.2(jiti@2.6.1) + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import: + specifier: ^2.30.0 + version: 2.32.0(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) + supertest: + specifier: ^7.0.0 + version: 7.1.4 + tsconfig-paths: + specifier: ^4.2.0 + version: 4.2.0 + tsx: + specifier: ^4.16.5 + version: 4.21.0 + typescript: + specifier: ^5.6.2 + version: 5.9.3 + vitest: + specifier: ^2.1.2 + version: 2.1.9(@types/node@22.19.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1) + + companyos/services/tenant-api: + dependencies: + '@apollo/server': + specifier: ^4.10.0 + version: 4.12.2(graphql@16.12.0) + express: + specifier: '>=4.21.0' + version: 5.2.1 + graphql: + specifier: ^16.8.1 + version: 16.12.0 + pg: + specifier: ^8.11.3 + version: 8.16.3 + pino: + specifier: ^9.0.0 + version: 9.9.0 + pino-http: + specifier: ^10.0.0 + version: 10.5.0 + uuid: + specifier: ^9.0.1 + version: 9.0.1 + zod: + specifier: ^3.22.4 + version: 3.25.76 + devDependencies: + '@types/express': + specifier: 4.17.21 + version: 4.17.21 + '@types/node': + specifier: ^22.10.1 + version: 22.19.3 + '@types/pg': + specifier: ^8.11.0 + version: 8.16.0 + '@types/supertest': + specifier: ^6.0.3 + version: 6.0.3 + '@types/uuid': + specifier: ^9.0.7 + version: 9.0.8 + supertest: + specifier: ^7.0.0 + version: 7.1.4 + tsx: + specifier: ^4.7.0 + version: 4.21.0 + typescript: + specifier: ^5.6.3 + version: 5.9.3 + vitest: + specifier: ^2.1.4 + version: 2.1.9(@types/node@22.19.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1) + + devtools/pr-review: + dependencies: + parse-diff: + specifier: ^0.11.1 + version: 0.11.1 + devDependencies: + '@types/jest': + specifier: ^29.5.12 + version: 29.5.14 + '@types/node': + specifier: ^20.12.7 + version: 20.19.27 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) + ts-jest: + specifier: ^29.1.2 + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3) + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3) + typescript: + specifier: ^5.4.5 + version: 5.9.3 + + libs/audit/node: + dependencies: + '@opentelemetry/api': + specifier: ^1.0.0 + version: 1.9.0 + devDependencies: + '@types/node': + specifier: ^20.0.0 + version: 20.19.27 typescript: specifier: ^5.0.0 version: 5.9.3 + libs/ingest-worker/node: + dependencies: + '@opentelemetry/api': + specifier: ^1.7.0 + version: 1.9.0 + ioredis: + specifier: ^5.3.2 + version: 5.8.2 + pg: + specifier: ^8.11.3 + version: 8.16.3 + pino: + specifier: ^8.16.2 + version: 8.21.0 + devDependencies: + '@types/jest': + specifier: ^29.5.11 + version: 29.5.14 + '@types/node': + specifier: ^20.10.5 + version: 20.19.27 + '@types/pg': + specifier: ^8.10.9 + version: 8.16.0 + '@typescript-eslint/eslint-plugin': + specifier: ^6.15.0 + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': + specifier: ^6.15.0 + version: 6.21.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: + specifier: ^9.39.2 + version: 9.39.2(jiti@2.6.1) + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) + ts-jest: + specifier: ^29.1.1 + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3) + typescript: + specifier: ^5.3.3 + version: 5.9.3 + packages/3d-visualization: dependencies: 3d-force-graph: @@ -3408,25 +3579,25 @@ importers: version: link:../visualization '@react-three/drei': specifier: ^9.105.4 - version: 9.122.0(@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0))(@types/react@18.3.11)(@types/three@0.162.0)(immer@11.1.0)(react-dom@18.3.1(react@19.2.1))(react@19.2.1)(three@0.162.0)(use-sync-external-store@1.6.0(react@19.2.1)) + version: 9.122.0(@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0))(@types/react@18.3.11)(@types/three@0.162.0)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(three@0.162.0)(use-sync-external-store@1.6.0(react@19.2.1)) '@react-three/fiber': specifier: ^8.16.2 - version: 8.18.0(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0) + version: 8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0) '@react-three/postprocessing': specifier: ^2.16.2 - version: 2.19.1(@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0))(@types/three@0.162.0)(react@19.2.1)(three@0.162.0) + version: 2.19.1(@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0))(@types/three@0.162.0)(react@19.2.1)(three@0.162.0) '@types/three': specifier: ^0.162.0 version: 0.162.0 leva: specifier: ^0.9.35 - version: 0.9.36(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + version: 0.9.36(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react: - specifier: ^19.2.1 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@19.2.1) + specifier: 19.2.1 + version: 19.2.1(react@19.2.1) react-globe.gl: specifier: ^2.27.2 version: 2.37.0(react@19.2.1) @@ -3461,10 +3632,10 @@ importers: version: 29.5.14 '@types/node': specifier: ^22.7.4 - version: 22.19.7 + version: 22.19.3 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) typescript: specifier: ^5.6.2 version: 5.9.3 @@ -3486,10 +3657,10 @@ importers: version: 29.5.14 '@types/node': specifier: ^22.7.4 - version: 22.19.7 + version: 22.19.3 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) typescript: specifier: ^5.6.2 version: 5.9.3 @@ -3507,7 +3678,7 @@ importers: version: 3.0.1(ajv@8.17.1) commander: specifier: ^14.0.1 - version: 14.0.3 + version: 14.0.2 fs-extra: specifier: ^11.2.0 version: 11.3.3 @@ -3521,7 +3692,7 @@ importers: specifier: ^7.6.3 version: 7.7.3 tar: - specifier: '>=7.5.7' + specifier: '>=6.2.1' version: 7.5.7 zod: specifier: 3.25.76 @@ -3574,7 +3745,7 @@ importers: version: 5.8.2 lru-cache: specifier: ^11.0.0 - version: 11.2.5 + version: 11.2.4 pino: specifier: ^10.1.0 version: 10.1.0 @@ -3614,8 +3785,8 @@ importers: version: 5.2.1 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -3805,28 +3976,6 @@ importers: specifier: ^5.0.0 version: 5.9.3 - packages/agent-skillpacks: - dependencies: - js-yaml: - specifier: ^4.1.1 - version: 4.1.1 - minimatch: - specifier: ^10.1.1 - version: 10.1.1 - devDependencies: - '@types/js-yaml': - specifier: ^4.0.9 - version: 4.0.9 - '@types/minimatch': - specifier: ^6.0.0 - version: 6.0.0 - '@types/node': - specifier: 20.19.27 - version: 20.19.27 - typescript: - specifier: ^5.9.3 - version: 5.9.3 - packages/agent-trace: dependencies: ajv: @@ -3852,25 +4001,6 @@ importers: specifier: ^5.7.3 version: 5.9.3 - packages/agents: - dependencies: - uuid: - specifier: ^11.0.0 - version: 11.1.0 - zod: - specifier: ^3.23.8 - version: 3.25.76 - devDependencies: - '@types/node': - specifier: ^18.0.0 - version: 18.19.130 - typescript: - specifier: ^5.0.0 - version: 5.9.3 - vitest: - specifier: ^1.0.0 - version: 1.6.1(@types/node@18.19.130)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) - packages/ai-safety-suite: {} packages/ai-wellbeing-predictors: @@ -3963,8 +4093,8 @@ importers: packages/api-framework: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^5.1.0 + version: 5.2.0(graphql@16.12.0) '@intelgraph/query-language': specifier: workspace:* version: link:../query-language @@ -3978,15 +4108,15 @@ importers: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.12.0 version: 16.12.0 winston: specifier: ^3.18.3 version: 3.19.0 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -4010,7 +4140,7 @@ importers: version: 1.9.0 '@opentelemetry/sdk-trace-base': specifier: ^2.0.1 - version: 2.5.0(@opentelemetry/api@1.9.0) + version: 2.2.0(@opentelemetry/api@1.9.0) express: specifier: '>=4.21.0' version: 5.2.1 @@ -4024,12 +4154,12 @@ importers: specifier: ^8.17.0 version: 8.21.0 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/http-proxy': specifier: ^1.17.15 version: 1.17.17 @@ -4145,8 +4275,8 @@ importers: specifier: workspace:* version: link:../osint-collector axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 email-validator: specifier: ^2.0.4 version: 2.0.4 @@ -4178,10 +4308,10 @@ importers: version: 20.19.27 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -4254,10 +4384,10 @@ importers: version: 20.19.27 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -4336,8 +4466,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -4357,11 +4487,11 @@ importers: packages/authz-core: dependencies: axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 pg: specifier: ^8.11.0 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.16.0 version: 8.21.0 @@ -4409,7 +4539,7 @@ importers: version: 5.9.3 vitest: specifier: ^1.0.0 - version: 1.6.1(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + version: 1.6.1(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) packages/battle-types: devDependencies: @@ -4431,7 +4561,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.0.16 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) packages/behavioral-analysis: dependencies: @@ -4472,13 +4602,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 - - packages/billing: - dependencies: - stripe: - specifier: ^15.0.0 - version: 15.12.0 + version: 25.0.3 packages/biometrics: dependencies: @@ -4509,7 +4633,7 @@ importers: version: 1.0.1 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -4549,7 +4673,7 @@ importers: version: 6.6.1 eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 ioredis: specifier: ^5.4.1 version: 5.8.2 @@ -4563,7 +4687,7 @@ importers: specifier: ^9.5.0 version: 9.9.0 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 devDependencies: '@types/elliptic': @@ -4624,7 +4748,7 @@ importers: devDependencies: '@types/lodash': specifier: ^4.14.202 - version: 4.17.23 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -4677,7 +4801,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 typescript: specifier: ^5.9.3 version: 5.9.3 @@ -4758,7 +4882,7 @@ importers: version: link:../stream-processing eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 pino: specifier: ^8.17.2 version: 8.21.0 @@ -4814,7 +4938,7 @@ importers: version: 7.4.3 '@visx/visx': specifier: ^3.10.2 - version: 3.12.0(@react-spring/web@10.0.3(react-dom@18.3.1(react@19.2.1))(react@19.2.1))(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + version: 3.12.0(@react-spring/web@10.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1) d3: specifier: ^7.9.0 version: 7.9.0 @@ -4822,14 +4946,14 @@ importers: specifier: ^4.17.23 version: 4.17.23 react: - specifier: ^19.2.1 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@19.2.1) + specifier: 19.2.1 + version: 19.2.1(react@19.2.1) recharts: specifier: ^2.12.7 - version: 2.12.7(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + version: 2.15.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1) victory: specifier: ^37.1.1 version: 37.3.6(react@19.2.1) @@ -4860,7 +4984,7 @@ importers: specifier: workspace:^ version: link:../orchestrator chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 commander: specifier: ^11.1.0 @@ -4895,7 +5019,7 @@ importers: version: 3.958.0 '@aws-sdk/client-s3': specifier: ^3.450.0 - version: 3.980.0 + version: 3.958.0 '@aws-sdk/client-secrets-manager': specifier: ^3.450.0 version: 3.958.0 @@ -4981,13 +5105,13 @@ importers: version: 3.958.0 '@aws-sdk/client-ec2': specifier: ^3.700.0 - version: 3.979.0 + version: 3.958.0 '@aws-sdk/client-iam': specifier: ^3.700.0 version: 3.958.0 '@aws-sdk/client-s3': specifier: ^3.700.0 - version: 3.980.0 + version: 3.958.0 '@azure/arm-compute': specifier: ^22.0.0 version: 22.4.0 @@ -5043,7 +5167,7 @@ importers: version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5074,7 +5198,7 @@ importers: specifier: '>=5.0.9' version: 5.1.6 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 zod: specifier: ^3.22.0 @@ -5101,16 +5225,16 @@ importers: version: 30.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5169,16 +5293,10 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3) - - packages/companyos-sdk: - devDependencies: - typescript: - specifier: ^5.4.0 - version: 5.9.3 + version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3) packages/competitive-execution: devDependencies: @@ -5235,19 +5353,19 @@ importers: version: 30.0.0 '@types/node': specifier: ^22.14.0 - version: 22.19.7 + version: 22.19.3 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5274,7 +5392,7 @@ importers: dependencies: '@aws-sdk/client-s3': specifier: ^3.713.0 - version: 3.980.0 + version: 3.958.0 '@azure/storage-blob': specifier: ^12.26.0 version: 12.29.1 @@ -5282,16 +5400,16 @@ importers: specifier: ^7.11.0 version: 7.13.0 axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 nodemailer: specifier: ^7.0.12 version: 7.0.12 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 uuid: specifier: ^13.0.0 @@ -5314,7 +5432,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.0.9 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) packages/content-verification: dependencies: @@ -5366,7 +5484,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/copilot-agent-runtime: devDependencies: @@ -5457,7 +5575,7 @@ importers: version: 5.8.2 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^9.0.0 version: 9.9.0 @@ -5495,7 +5613,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/crsp: devDependencies: @@ -5523,18 +5641,12 @@ importers: packages/cryptographic-agility: dependencies: - '@intelgraph/observability': - specifier: workspace:* - version: link:../observability '@intelgraph/post-quantum-crypto': specifier: workspace:* version: link:../post-quantum-crypto '@noble/hashes': specifier: ^1.3.3 version: 1.8.0 - zod: - specifier: ^3.22.4 - version: 3.25.76 devDependencies: '@types/node': specifier: ^20.0.0 @@ -5606,14 +5718,14 @@ importers: specifier: ^10.1.1 version: 10.2.0 react: - specifier: ^19.2.1 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@19.2.1) + specifier: 19.2.1 + version: 19.2.1(react@19.2.1) react-grid-layout: specifier: ^1.4.4 - version: 1.5.3(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + version: 1.5.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1) zustand: specifier: ^4.5.2 version: 4.5.7(@types/react@18.3.11)(immer@10.2.0)(react@19.2.1) @@ -5680,8 +5792,8 @@ importers: specifier: 1.7.0 version: 1.7.0 axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 bull: specifier: ^4.16.5 version: 4.16.5 @@ -5690,9 +5802,9 @@ importers: version: 3.0.3 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 winston: specifier: ^3.17.0 @@ -5727,7 +5839,7 @@ importers: version: 6.0.1 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 winston: specifier: ^3.17.0 version: 3.19.0 @@ -5762,7 +5874,7 @@ importers: dependencies: pg: specifier: ^8.11.0 - version: 8.18.0 + version: 8.16.3 devDependencies: '@types/node': specifier: ^18.0.0 @@ -5787,7 +5899,7 @@ importers: version: 2.0.1 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -5834,13 +5946,13 @@ importers: devDependencies: '@types/node': specifier: ^22.14.0 - version: 22.19.7 + version: 22.19.3 typescript: specifier: ^5.3.3 version: 5.9.3 vitest: specifier: ^1.6.0 - version: 1.6.1(@types/node@22.19.7)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + version: 1.6.1(@types/node@22.19.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) packages/deception-detector: dependencies: @@ -5925,16 +6037,16 @@ importers: version: 30.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -5953,10 +6065,10 @@ importers: version: 30.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -6083,7 +6195,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/diplomatic-personnel: dependencies: @@ -6093,7 +6205,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/diplomatic-tracking: dependencies: @@ -6103,40 +6215,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 - - packages/disinfo-news-ecosystem: - devDependencies: - '@types/jest': - specifier: ^29.5.11 - version: 29.5.14 - '@types/node': - specifier: ^22.10.2 - version: 22.19.7 - jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) - ts-jest: - specifier: ^29.1.1 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)))(typescript@5.9.3) - typescript: - specifier: ^5.7.3 - version: 5.9.3 - - packages/disinfo-ops: - devDependencies: - '@types/node': - specifier: ^25.0.3 - version: 25.0.10 - ajv: - specifier: ^8.17.1 - version: 8.17.1 - typescript: - specifier: ^5.7.3 - version: 5.9.3 - vitest: - specifier: ^4.0.16 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.10)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 25.0.3 packages/disinformation-detection: dependencies: @@ -6174,7 +6253,7 @@ importers: version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -6220,22 +6299,22 @@ importers: version: 30.0.0 '@types/node': specifier: ^22.0.0 - version: 22.19.7 + version: 22.19.3 '@types/uuid': specifier: ^11.0.0 version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -6269,7 +6348,7 @@ importers: devDependencies: '@types/node': specifier: ^24.5.2 - version: 24.10.9 + version: 24.10.1 eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -6281,7 +6360,7 @@ importers: version: 5.9.3 vitest: specifier: ^2.1.4 - version: 2.1.9(@types/node@24.10.9)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@24.10.9)(typescript@5.9.3))(terser@5.44.1) + version: 2.1.9(@types/node@24.10.1)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@24.10.1)(typescript@5.9.3))(terser@5.44.1) packages/drug-intelligence: dependencies: @@ -6304,7 +6383,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/edge-ai: dependencies: @@ -6316,7 +6395,7 @@ importers: version: 4.22.0(seedrandom@3.0.5) eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 onnxruntime-node: specifier: ^1.16.0 version: 1.23.2 @@ -6344,7 +6423,7 @@ importers: dependencies: eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 pino: specifier: ^8.17.2 version: 8.21.0 @@ -6375,7 +6454,7 @@ importers: version: 4.0.9 eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 pino: specifier: ^8.17.2 version: 8.21.0 @@ -6406,7 +6485,7 @@ importers: version: link:../edge-computing eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 pino: specifier: ^8.17.2 version: 8.21.0 @@ -6443,7 +6522,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/entity-extraction: dependencies: @@ -6482,8 +6561,8 @@ importers: specifier: workspace:* version: link:../knowledge-graph axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 neo4j-driver: specifier: 6.0.1 version: 6.0.1 @@ -6502,16 +6581,16 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -6547,15 +6626,15 @@ importers: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.8.0 version: 16.12.0 pino: specifier: ^8.16.0 version: 8.21.0 devDependencies: '@types/express': - specifier: ^4.17.0 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.0.0 version: 20.19.27 @@ -6664,7 +6743,7 @@ importers: version: 3.0.3 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 winston: specifier: ^3.17.0 version: 3.19.0 @@ -6689,7 +6768,7 @@ importers: dependencies: pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 packages/eval-funnel: dependencies: @@ -6741,7 +6820,7 @@ importers: dependencies: pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^9.0.0 version: 9.9.0 @@ -6835,7 +6914,7 @@ importers: packages/explainability-sdk: dependencies: redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 uuid: specifier: ^13.0.0 @@ -6895,19 +6974,6 @@ importers: specifier: ^2.1.1 version: 2.1.9(@types/node@20.19.27)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1) - packages/extortion: - dependencies: - zod: - specifier: ^4.2.1 - version: 4.2.1 - devDependencies: - typescript: - specifier: ^5.0.0 - version: 5.9.3 - vitest: - specifier: ^1.0.0 - version: 1.6.1(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) - packages/extremism-monitor: dependencies: '@intelgraph/common-types': @@ -6941,19 +7007,19 @@ importers: version: 30.0.0 '@types/node': specifier: ^22.14.0 - version: 22.19.7 + version: 22.19.3 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -6983,37 +7049,6 @@ importers: specifier: ^5.9.3 version: 5.9.3 - packages/factcert: - dependencies: - fast-json-stable-stringify: - specifier: ^2.1.0 - version: 2.1.0 - zod: - specifier: ^3.23.0 - version: 3.25.76 - devDependencies: - '@types/fast-json-stable-stringify': - specifier: ^2.0.0 - version: 2.1.2 - '@types/node': - specifier: ^20.0.0 - version: 20.19.27 - ajv: - specifier: ^8.12.0 - version: 8.17.1 - ajv-formats: - specifier: ^2.1.1 - version: 2.1.1(ajv@8.17.1) - tsx: - specifier: ^4.19.0 - version: 4.21.0 - typescript: - specifier: ^5.7.0 - version: 5.9.3 - vitest: - specifier: ^1.6.0 - version: 1.6.1(@types/node@20.19.27)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) - packages/fake-account-detection: dependencies: '@intelgraph/common-types': @@ -7053,7 +7088,7 @@ importers: version: 1.20.1(@openfeature/core@1.9.1) eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 ioredis: specifier: ^5.4.1 version: 5.8.2 @@ -7067,8 +7102,8 @@ importers: specifier: ^15.1.3 version: 15.1.3 react: - specifier: ^18.0.0 - version: 18.3.1 + specifier: 19.2.1 + version: 19.2.1 unleash-client: specifier: ^6.9.5 version: 6.9.5 @@ -7077,8 +7112,8 @@ importers: version: 3.19.0 devDependencies: '@types/express': - specifier: ^5.0.6 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.0.0 version: 29.5.14 @@ -7113,7 +7148,7 @@ importers: packages/federated-campaign-radar: dependencies: graphql: - specifier: 16.12.0 + specifier: ^16.8.0 version: 16.12.0 graphql-subscriptions: specifier: ^2.0.0 @@ -7154,7 +7189,7 @@ importers: version: link:../edge-computing eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 pino: specifier: ^8.17.2 version: 8.21.0 @@ -7275,12 +7310,12 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/foundry: dependencies: chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 zod: specifier: ^3.22.4 @@ -7313,23 +7348,23 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/fztr-client: dependencies: axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 devDependencies: '@types/jest': specifier: ^29.5.12 version: 29.5.14 '@types/node': specifier: ^22.7.4 - version: 22.19.7 + version: 22.19.3 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) typescript: specifier: ^5.6.2 version: 5.9.3 @@ -7350,17 +7385,17 @@ importers: specifier: ^1.19.5 version: 1.19.6 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.12 version: 29.5.14 '@types/node': specifier: ^22.7.4 - version: 22.19.7 + version: 22.19.3 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) typescript: specifier: ^5.6.2 version: 5.9.3 @@ -7413,7 +7448,7 @@ importers: version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -7429,7 +7464,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.0.16 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.1.0)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) packages/geolocation-engine: dependencies: @@ -7483,7 +7518,7 @@ importers: specifier: ^7946.0.14 version: 7946.0.16 fast-xml-parser: - specifier: '>=5.3.4' + specifier: ^5.3.4 version: 5.3.4 geojson: specifier: ^0.5.0 @@ -7524,7 +7559,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/golden-records: dependencies: @@ -7555,7 +7590,7 @@ importers: dependencies: commander: specifier: ^14.0.1 - version: 14.0.3 + version: 14.0.2 node-html-parser: specifier: ^7.0.1 version: 7.0.1 @@ -7576,7 +7611,7 @@ importers: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) graphql: - specifier: 16.12.0 + specifier: ^16.8.0 version: 16.12.0 typescript: specifier: ^5.3.0 @@ -7585,18 +7620,6 @@ importers: specifier: ^1.0.0 version: 1.6.1(@types/node@20.19.27)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) - packages/gql-mapper: - devDependencies: - '@types/jest': - specifier: ^29.0.0 - version: 29.5.14 - jest: - specifier: ^29.0.0 - version: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) - ts-jest: - specifier: ^29.0.0 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3) - packages/graph-ai-core: devDependencies: typescript: @@ -7629,10 +7652,10 @@ importers: version: 20.19.27 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -7682,13 +7705,13 @@ importers: version: 29.5.14 '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.9 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) + version: 29.7.0(@types/node@25.0.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)) ts-jest: specifier: ^29.4.6 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.0.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.7.3 version: 5.9.3 @@ -7716,28 +7739,21 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 - packages/graph-sync-validator: - devDependencies: - '@types/node': - specifier: ^20.0.0 - version: 20.19.27 - typescript: - specifier: ^5.0.0 - version: 5.9.3 + packages/graph-sync-validator: {} packages/graph-synthesis: dependencies: @@ -7752,7 +7768,7 @@ importers: version: 30.0.0 jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -7782,59 +7798,21 @@ importers: specifier: ^5.7.2 version: 5.9.3 - packages/graphrag-context-compiler: - dependencies: - ajv: - specifier: 8.17.1 - version: 8.17.1 - devDependencies: - '@types/node': - specifier: ^25.3.3 - version: 25.3.5 - typescript: - specifier: ^5.9.3 - version: 5.9.3 - - packages/graphrag-core: - dependencies: - neo4j-driver: - specifier: ^5.28.1 - version: 5.28.2 - zod: - specifier: ^3.23.8 - version: 3.25.76 - devDependencies: - '@types/jest': - specifier: ^29.5.14 - version: 29.5.14 - '@types/node': - specifier: ^22.0.0 - version: 22.19.7 - jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) - ts-jest: - specifier: ^29.2.0 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)))(typescript@5.9.3) - typescript: - specifier: ^5.5.0 - version: 5.9.3 - packages/help-overlay: dependencies: react: - specifier: ^18.2.0 - version: 18.3.1 + specifier: 19.2.1 + version: 19.2.1 react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + specifier: 19.2.1 + version: 19.2.1(react@19.2.1) devDependencies: '@testing-library/jest-dom': specifier: ^6.2.0 version: 6.9.1 '@testing-library/react': specifier: ^14.1.2 - version: 14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.3.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -7846,13 +7824,13 @@ importers: version: 18.3.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 29.7.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0(canvas@2.11.2) ts-jest: specifier: ^29.1.1 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.3.3 version: 5.9.3 @@ -7898,17 +7876,17 @@ importers: specifier: ^1.19.5 version: 1.19.6 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.12 version: 29.5.14 '@types/node': specifier: ^22.7.4 - version: 22.19.7 + version: 22.19.3 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) typescript: specifier: ^5.6.2 version: 5.9.3 @@ -7934,8 +7912,8 @@ importers: specifier: workspace:* version: link:../canonical-schema react: - specifier: ^18.0.0 - version: 18.3.1 + specifier: 19.2.1 + version: 19.2.1 zod: specifier: ^3.24.1 version: 3.25.76 @@ -7965,10 +7943,10 @@ importers: specifier: ^2.3.0 version: 2.4.1(intl-messageformat@10.7.18) react: - specifier: ^18.0.0 || ^19.0.0 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^18.0.0 || ^19.0.0 + specifier: 19.2.1 version: 19.2.1(react@19.2.1) react-i18next: specifier: ^15.3.3 @@ -7976,7 +7954,7 @@ importers: devDependencies: '@types/node': specifier: ^22.15.5 - version: 22.19.7 + version: 22.19.3 '@types/react': specifier: 18.3.11 version: 18.3.11 @@ -7985,7 +7963,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.0.3 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.7)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@22.19.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) packages/identity-resolution: dependencies: @@ -8034,19 +8012,19 @@ importers: version: 30.0.0 '@types/node': specifier: ^22.14.0 - version: 22.19.7 + version: 22.19.3 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8075,8 +8053,8 @@ importers: specifier: ^2.17.2 version: 2.17.2 axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 devDependencies: '@types/node': specifier: 20.19.27 @@ -8089,7 +8067,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/ingest-connector-sdk: dependencies: @@ -8125,10 +8103,10 @@ importers: specifier: ^2.1.0 version: 2.1.1 react: - specifier: ^19.2.1 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^19.2.0 + specifier: 19.2.1 version: 19.2.1(react@19.2.1) zod: specifier: ^4.1.12 @@ -8145,16 +8123,16 @@ importers: version: 18.3.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8213,7 +8191,7 @@ importers: version: 3.0.1(ajv@8.17.1) commander: specifier: ^14.0.1 - version: 14.0.3 + version: 14.0.2 devDependencies: '@types/jest': specifier: ^30.0.0 @@ -8341,16 +8319,16 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8374,8 +8352,8 @@ importers: version: 5.2.1 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -8390,7 +8368,7 @@ importers: version: 5.9.3 vitest: specifier: ^2.1.4 - version: 2.1.9(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1) + version: 2.1.9(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(terser@5.44.1) packages/lakehouse: dependencies: @@ -8464,8 +8442,8 @@ importers: version: 5.2.1 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -8525,8 +8503,8 @@ importers: version: 10.3.1 devDependencies: '@types/express': - specifier: ^5.0.6 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -8576,8 +8554,8 @@ importers: version: 5.2.1 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -8595,13 +8573,13 @@ importers: dependencies: '@intelgraph/maestro-core': specifier: file:../maestro-core - version: file:packages/maestro-core(@opentelemetry/core@2.6.0(@opentelemetry/api@1.9.0))(pg@8.18.0) + version: file:packages/maestro-core(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(pg@8.16.3) chalk: - specifier: ^5.6.2 + specifier: '>=5.3.0' version: 5.6.2 commander: specifier: ^14.0.1 - version: 14.0.3 + version: 14.0.2 figlet: specifier: ^1.7.0 version: 1.9.4 @@ -8616,9 +8594,9 @@ importers: version: 9.0.0 pg: specifier: ^8.11.0 - version: 8.18.0 + version: 8.16.3 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 devDependencies: '@types/figlet': @@ -8641,10 +8619,10 @@ importers: version: 8.18.1 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -8662,10 +8640,10 @@ importers: dependencies: '@aws-sdk/client-s3': specifier: ^3.450.0 - version: 3.980.0 + version: 3.958.0 '@aws-sdk/lib-storage': specifier: ^3.450.0 - version: 3.980.0(@aws-sdk/client-s3@3.980.0) + version: 3.958.0(@aws-sdk/client-s3@3.958.0) '@opentelemetry/api': specifier: ^1.9.0 version: 1.9.0 @@ -8674,28 +8652,28 @@ importers: version: 0.33.0 '@opentelemetry/auto-instrumentations-node': specifier: ^0.67.0 - version: 0.67.3(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.6.0(@opentelemetry/api@1.9.0)) + version: 0.67.3(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0)) '@opentelemetry/exporter-jaeger': specifier: ^2.2.0 - version: 2.5.0(@opentelemetry/api@1.9.0) + version: 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-prometheus': specifier: ^0.208.0 version: 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': specifier: ^2.1.0 - version: 2.5.0(@opentelemetry/api@1.9.0) + version: 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-node': specifier: ^0.208.0 version: 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': specifier: ^1.38.0 - version: 1.39.0 + version: 1.38.0 axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 cheerio: specifier: ^1.0.0-rc.12 - version: 1.2.0 + version: 1.1.2 crypto: specifier: ^1.0.1 version: 1.0.1 @@ -8704,10 +8682,10 @@ importers: version: 3.3.0 jsdom: specifier: ^27.0.1 - version: 27.4.0(canvas@2.11.2) + version: 27.3.0 pg: specifier: ^8.11.0 - version: 8.18.0 + version: 8.16.3 robots-txt-parser: specifier: ^2.0.3 version: 2.0.3 @@ -8735,10 +8713,10 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -8776,6 +8754,98 @@ importers: specifier: ^4.21.0 version: 4.21.0 + packages/maestro-skills/recursive-context-skill: + dependencies: + '@intelgraph/maestro-core': + specifier: workspace:* + version: link:../../maestro-core + '@maestro/recursive-context-runtime': + specifier: workspace:* + version: link:../../recursive-context-runtime + uuid: + specifier: ^11.0.0 + version: 11.1.0 + devDependencies: + '@types/node': + specifier: ^25.0.3 + version: 25.0.10 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + + packages/maestro-skills/skill-designos-extract: + dependencies: + '@intelgraph/maestro-core': + specifier: workspace:* + version: link:../../maestro-core + uuid: + specifier: ^11.0.0 + version: 11.1.0 + devDependencies: + '@types/node': + specifier: ^25.0.3 + version: 25.0.10 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + + packages/maestro-skills/skill-github-pr: + dependencies: + '@intelgraph/maestro-core': + specifier: workspace:* + version: link:../../maestro-core + + packages/maestro-skills/skill-ui-build-loop: + dependencies: + '@intelgraph/maestro-core': + specifier: workspace:* + version: link:../../maestro-core + uuid: + specifier: ^11.0.0 + version: 11.1.0 + devDependencies: + '@types/node': + specifier: ^25.0.3 + version: 25.0.10 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + + packages/maestro-skills/skill-ui-components: + dependencies: + '@intelgraph/maestro-core': + specifier: workspace:* + version: link:../../maestro-core + uuid: + specifier: ^11.0.0 + version: 11.1.0 + devDependencies: + '@types/node': + specifier: ^25.0.3 + version: 25.0.10 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + + packages/maestro-skills/voice-generation-skill: + dependencies: + '@intelgraph/maestro-core': + specifier: workspace:* + version: link:../../maestro-core + uuid: + specifier: ^9.0.0 + version: 9.0.1 + devDependencies: + '@types/node': + specifier: ^25.0.3 + version: 25.0.10 + '@types/uuid': + specifier: ^9.0.0 + version: 9.0.8 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + packages/malware-analysis: dependencies: '@intelgraph/common-types': @@ -8820,7 +8890,7 @@ importers: version: 9.2.5(@deck.gl/core@9.2.5)(@loaders.gl/core@4.3.4)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))) '@deck.gl/react': specifier: ^9.0.16 - version: 9.2.5(@deck.gl/core@9.2.5)(@deck.gl/widgets@9.2.5(@deck.gl/core@9.2.5)(@luma.gl/core@9.2.5))(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + version: 9.2.5(@deck.gl/core@9.2.5)(@deck.gl/widgets@9.2.5(@deck.gl/core@9.2.5)(@luma.gl/core@9.2.5))(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@intelgraph/visualization': specifier: workspace:* version: link:../visualization @@ -8835,7 +8905,7 @@ importers: version: 3.4.1 deck.gl: specifier: ^9.0.16 - version: 9.2.5(@arcgis/core@4.34.8)(@luma.gl/constants@9.2.5)(@luma.gl/gltf@9.2.5(@luma.gl/constants@9.2.5)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))(@luma.gl/webgl@9.2.5(@luma.gl/core@9.2.5))(@math.gl/web-mercator@4.1.0)(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + version: 9.2.5(@arcgis/core@4.34.8)(@luma.gl/constants@9.2.5)(@luma.gl/gltf@9.2.5(@luma.gl/constants@9.2.5)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))(@luma.gl/webgl@9.2.5(@luma.gl/core@9.2.5))(@math.gl/web-mercator@4.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) leaflet: specifier: ^1.9.4 version: 1.9.4 @@ -8843,17 +8913,17 @@ importers: specifier: ^3.2.0 version: 3.17.0 react: - specifier: ^19.2.1 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@19.2.1) + specifier: 19.2.1 + version: 19.2.1(react@19.2.1) react-leaflet: specifier: ^4.2.1 - version: 4.2.1(leaflet@1.9.4)(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + version: 4.2.1(leaflet@1.9.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react-map-gl: specifier: ^7.1.7 - version: 7.1.9(mapbox-gl@3.17.0)(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + version: 7.1.9(mapbox-gl@3.17.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) turf: specifier: ^3.0.14 version: 3.0.14 @@ -8879,10 +8949,10 @@ importers: version: 30.0.0 jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) ts-jest: specifier: ^29.4.5 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -8914,7 +8984,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.0.16 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.1.0)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) packages/mcp-gateway: {} @@ -9089,7 +9159,7 @@ importers: version: 5.9.3 vitest: specifier: ^1.0.0 - version: 1.6.1(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + version: 1.6.1(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) packages/mesh-sdk: devDependencies: @@ -9098,7 +9168,7 @@ importers: version: 5.9.3 vitest: specifier: ^1.0.0 - version: 1.6.1(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + version: 1.6.1(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) packages/message-queue-enhanced: dependencies: @@ -9181,7 +9251,7 @@ importers: version: link:../data-catalog pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 zod: specifier: ^3.22.4 version: 3.25.76 @@ -9202,22 +9272,6 @@ importers: specifier: ^5.9.3 version: 5.9.3 - packages/metrics: - dependencies: - '@opentelemetry/api': - specifier: ^1.9.0 - version: 1.9.0 - prom-client: - specifier: ^15.1.3 - version: 15.1.3 - devDependencies: - typescript: - specifier: ^5.7.3 - version: 5.9.3 - vitest: - specifier: ^4.0.16 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - packages/metrics-exporter: dependencies: prom-client: @@ -9280,8 +9334,8 @@ importers: specifier: workspace:* version: link:../threat-detection-core axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 devDependencies: '@types/jest': specifier: ^29.5.11 @@ -9303,9 +9357,9 @@ importers: version: link:../common-types pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 uuid: specifier: ^13.0.0 @@ -9400,7 +9454,7 @@ importers: version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9444,7 +9498,7 @@ importers: version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9474,8 +9528,8 @@ importers: specifier: ^1.7.5 version: 1.8.1 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -9494,30 +9548,11 @@ importers: devDependencies: ts-jest: specifier: ^29.2.6 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.7.3 version: 5.9.3 - packages/moonshot-kimi: - dependencies: - zod: - specifier: ^3.22.4 - version: 3.25.76 - devDependencies: - '@types/node': - specifier: ^25.0.3 - version: 25.0.10 - rimraf: - specifier: ^5.0.0 - version: 5.0.10 - typescript: - specifier: ^5.7.3 - version: 5.9.3 - vitest: - specifier: ^4.0.16 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.10)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - packages/multi-int-fusion: dependencies: zod: @@ -9529,16 +9564,16 @@ importers: version: 30.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9551,7 +9586,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/narrative-engine: dependencies: @@ -9563,8 +9598,8 @@ importers: version: 15.1.3 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 packages/narrative-ops-analyzer: {} @@ -9574,8 +9609,8 @@ importers: specifier: ^2.17.2 version: 2.17.2 axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 devDependencies: '@types/node': specifier: 20.19.27 @@ -9614,14 +9649,14 @@ importers: specifier: ^0.10.1 version: 0.10.1(graphology-types@0.24.8) react: - specifier: ^19.2.1 + specifier: 19.2.1 version: 19.2.1 react-cytoscapejs: specifier: ^2.0.0 version: 2.0.0(cytoscape@3.33.1)(react@19.2.1) react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@19.2.1) + specifier: 19.2.1 + version: 19.2.1(react@19.2.1) vis-network: specifier: ^9.1.9 version: 9.1.13(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)(keycharm@0.4.0)(uuid@13.0.0)(vis-data@8.0.3(uuid@13.0.0)(vis-util@6.0.0(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)))(vis-util@6.0.0(@egjs/hammerjs@2.0.17)(component-emitter@1.3.1)) @@ -9687,10 +9722,10 @@ importers: version: 30.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -9755,7 +9790,7 @@ importers: devDependencies: '@types/lodash': specifier: ^4.14.202 - version: 4.17.23 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -9802,19 +9837,19 @@ importers: version: 30.0.0 '@types/node': specifier: ^22.14.0 - version: 22.19.7 + version: 22.19.3 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9881,7 +9916,7 @@ importers: version: 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': specifier: ^1.25.0 - version: 1.39.0 + version: 1.38.0 express: specifier: '>=4.21.0' version: 5.2.1 @@ -9925,19 +9960,19 @@ importers: version: 30.0.0 '@types/node': specifier: ^22.14.0 - version: 22.19.7 + version: 22.19.3 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9959,16 +9994,16 @@ importers: version: 30.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -9984,16 +10019,16 @@ importers: version: 30.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10001,7 +10036,7 @@ importers: packages/orchestration: dependencies: redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 uuid: specifier: ^13.0.0 @@ -10025,25 +10060,19 @@ importers: fs-extra: specifier: ^11.2.0 version: 11.3.3 - uuid: - specifier: ^13.0.0 - version: 13.0.0 devDependencies: '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 '@types/node': specifier: ^20.10.0 - version: 20.19.27 - '@types/uuid': - specifier: ^11.0.0 - version: 11.0.0 + version: 20.19.30 typescript: specifier: ^5.3.0 version: 5.9.3 vitest: specifier: ^1.6.0 - version: 1.6.1(@types/node@20.19.27)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + version: 1.6.1(@types/node@20.19.30)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) packages/orchestrator-store: dependencies: @@ -10098,17 +10127,17 @@ importers: packages/osint-collector: dependencies: axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 cheerio: specifier: ^1.0.0 - version: 1.2.0 + version: 1.1.2 cron: specifier: ^3.1.7 version: 3.5.0 ip-address: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^9.0.5 + version: 9.0.5 node-fetch: specifier: '>=2.6.7' version: 3.3.2 @@ -10160,15 +10189,6 @@ importers: specifier: ^5.9.3 version: 5.9.3 - packages/outreach: - dependencies: - ioredis: - specifier: ^5.8.2 - version: 5.8.2 - neo4j-driver: - specifier: ^5.28.1 - version: 5.28.2 - packages/packs: dependencies: zod: @@ -10237,7 +10257,7 @@ importers: packages/platform-benchmarks: dependencies: chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 cli-table3: specifier: ^0.6.3 @@ -10370,8 +10390,8 @@ importers: specifier: ^0.37.0 version: 0.37.2(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-redis-4': - specifier: ^0.49.0 - version: 0.49.0(@opentelemetry/api@1.9.0) + specifier: ^0.35.0 + version: 0.35.6(@opentelemetry/api@1.9.0) '@opentelemetry/resources': specifier: ^1.19.0 version: 1.30.1(@opentelemetry/api@1.9.0) @@ -10386,7 +10406,7 @@ importers: version: 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': specifier: ^1.19.0 - version: 1.39.0 + version: 1.38.0 prom-client: specifier: ^15.1.0 version: 15.1.3 @@ -10414,10 +10434,10 @@ importers: version: link:../plugin-system cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 express: specifier: '>=4.21.0' version: 5.2.1 @@ -10441,8 +10461,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -10482,7 +10502,7 @@ importers: dependencies: eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 isolated-vm: specifier: ^5.0.1 version: 5.0.4 @@ -10518,13 +10538,13 @@ importers: devDependencies: '@eslint/js': specifier: ^9.39.1 - version: 9.39.2 + version: 9.39.1 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -10533,10 +10553,10 @@ importers: version: 10.1.8(eslint@9.39.2(jiti@2.6.1)) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript-eslint: specifier: ^8.46.4 - version: 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) packages/policy-cards: devDependencies: @@ -10603,7 +10623,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/predictive-graph-intelligence: dependencies: @@ -10648,7 +10668,7 @@ importers: devDependencies: '@types/lodash': specifier: ^4.14.195 - version: 4.17.23 + version: 4.17.21 '@types/node': specifier: ^20.0.0 version: 20.19.27 @@ -10731,8 +10751,8 @@ importers: specifier: ^2.2.3 version: 2.2.3 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.6.2 + version: 5.6.2 fs-extra: specifier: ^11.3.3 version: 11.3.3 @@ -10758,8 +10778,8 @@ importers: packages/prov-ledger-client: dependencies: axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 axios-retry: specifier: ^3.8.0 version: 3.9.1 @@ -10803,10 +10823,10 @@ importers: version: 20.19.27 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -10831,13 +10851,13 @@ importers: version: 30.0.0 '@types/node': specifier: ^22.10.1 - version: 22.19.7 + version: 22.19.3 jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) ts-jest: specifier: ^29.4.5 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -10904,22 +10924,22 @@ importers: dependencies: '@emotion/react': specifier: ^11.11.1 - version: 11.14.0(@types/react@18.3.11)(react@18.3.1) + version: 11.14.0(@types/react@18.3.11)(react@19.2.1) '@emotion/styled': specifier: ^11.11.0 - version: 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + version: 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@mui/icons-material': specifier: ^5.15.0 - version: 5.18.0(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + version: 5.18.0(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@mui/lab': specifier: 6.0.0-dev.240424162023-9968b4889d - version: 6.0.0-dev.240424162023-9968b4889d(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.0.0-dev.240424162023-9968b4889d(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@mui/material': specifier: ^5.15.0 - version: 5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 crypto-js: specifier: ^4.2.0 version: 4.2.0 @@ -10930,14 +10950,14 @@ importers: specifier: ^3.0.0 version: 3.6.0 react: - specifier: ^18.2.0 - version: 18.3.1 + specifier: 19.2.1 + version: 19.2.1 react-d3-tree: specifier: ^3.6.1 - version: 3.6.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.6.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + specifier: 19.2.1 + version: 19.2.1(react@19.2.1) devDependencies: '@types/crypto-js': specifier: ^4.2.0 @@ -10953,13 +10973,13 @@ importers: version: 18.3.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@vitejs/plugin-react': specifier: ^4.2.0 - version: 4.7.0(vite@5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1)) + version: 4.7.0(vite@5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1)) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -10968,10 +10988,10 @@ importers: version: 5.9.3 vite: specifier: ^5.0.0 - version: 5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1) + version: 5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1) vitest: specifier: ^1.0.0 - version: 1.6.1(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + version: 1.6.1(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) packages/purple-team: dependencies: @@ -11128,7 +11148,7 @@ importers: dependencies: pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 devDependencies: '@types/jest': specifier: ^30.0.0 @@ -11165,8 +11185,8 @@ importers: packages/rate-limiter: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^4.0.0 + version: 4.12.2(graphql@16.12.0) express: specifier: '>=4.21.0' version: 5.2.1 @@ -11181,7 +11201,7 @@ importers: specifier: ^20.11.5 version: 20.19.27 graphql: - specifier: 16.12.0 + specifier: ^16.12.0 version: 16.12.0 typescript: specifier: ^5.3.3 @@ -11221,7 +11241,7 @@ importers: specifier: '>=5.0.9' version: 5.1.6 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 zod: specifier: ^3.22.0 @@ -11340,8 +11360,6 @@ importers: specifier: ^5.3.3 version: 5.9.3 - packages/reporting: {} - packages/rest-api: dependencies: '@intelgraph/errors': @@ -11358,7 +11376,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -11385,8 +11403,8 @@ importers: specifier: ^2.8.0 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -11465,7 +11483,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/risk-scoring: dependencies: @@ -11494,7 +11512,7 @@ importers: version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11502,11 +11520,11 @@ importers: packages/rpa: dependencies: axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 cheerio: specifier: ^1.0.0 - version: 1.2.0 + version: 1.1.2 node-cron: specifier: ^4.2.1 version: 4.2.1 @@ -11552,19 +11570,19 @@ importers: version: 30.0.0 '@types/node': specifier: ^22.14.0 - version: 22.19.7 + version: 22.19.3 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11575,7 +11593,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/sdk-js: dependencies: @@ -11584,8 +11602,8 @@ importers: version: 5.2.1 devDependencies: '@types/express': - specifier: ^4.17.25 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.19.25 version: 20.19.27 @@ -11647,16 +11665,16 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11692,8 +11710,8 @@ importers: specifier: ^2.17.2 version: 2.17.2 axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 devDependencies: '@types/node': specifier: 20.19.27 @@ -11713,7 +11731,7 @@ importers: devDependencies: '@types/node': specifier: ^20.0.0 - version: 20.19.27 + version: 20.19.30 typescript: specifier: ^5.0.0 version: 5.9.3 @@ -11752,7 +11770,7 @@ importers: version: link:../shared eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 uuid: specifier: ^9.0.0 version: 9.0.1 @@ -11765,7 +11783,7 @@ importers: version: 5.9.3 vitest: specifier: ^1.0.0 - version: 1.6.1(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + version: 1.6.1(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) packages/sigint-processor: dependencies: @@ -11804,7 +11822,7 @@ importers: devDependencies: '@types/node': specifier: ^22.14.0 - version: 22.19.7 + version: 22.19.3 typescript: specifier: ^5.9.3 version: 5.9.3 @@ -11812,8 +11830,8 @@ importers: packages/sim-harness: dependencies: axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 commander: specifier: ^11.0.0 version: 11.1.0 @@ -11821,7 +11839,7 @@ importers: specifier: ^9.0.0 version: 9.0.1 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 yaml: specifier: ^2.3.0 @@ -11855,8 +11873,8 @@ importers: packages/skillmesh: dependencies: chalk: - specifier: ^4.1.2 - version: 4.1.2 + specifier: '>=5.3.0' + version: 5.6.2 commander: specifier: ^11.0.0 version: 11.1.0 @@ -12004,8 +12022,8 @@ importers: specifier: workspace:* version: link:../osint-collector axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 compromise: specifier: ^14.13.0 version: 14.14.5 @@ -12080,10 +12098,10 @@ importers: version: 20.19.27 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -12125,8 +12143,8 @@ importers: specifier: workspace:* version: link:../audio-processing axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 microsoft-cognitiveservices-speech-sdk: specifier: ^1.0.0 version: 1.47.0 @@ -12142,10 +12160,10 @@ importers: version: 20.19.27 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -12166,7 +12184,7 @@ importers: version: 3.958.0 '@strands-agents/sdk': specifier: ^0.1.0 - version: 0.1.3(ws@8.19.0) + version: 0.1.3(hono@4.11.7)(ws@8.19.0) neo4j-driver: specifier: ^5.27.0 version: 5.28.2 @@ -12191,10 +12209,10 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -12209,7 +12227,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/stream-analytics: dependencies: @@ -12249,7 +12267,7 @@ importers: version: 1.19.0(@opentelemetry/api@1.7.0) eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 ioredis: specifier: ^5.3.2 version: 5.8.2 @@ -12286,17 +12304,17 @@ importers: dependencies: eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 uuid: specifier: ^11.0.5 version: 11.1.0 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -12319,53 +12337,6 @@ importers: specifier: ^5.9.3 version: 5.9.3 - packages/summit-cogbattlespace: - dependencies: - '@intelgraph/summit-schemas': - specifier: workspace:* - version: link:../summit-schemas - - packages/summit-core: - dependencies: - duckdb-async: - specifier: ^1.4.2 - version: 1.4.2 - devDependencies: - vitest: - specifier: ^4.0.18 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - - packages/summit-cultural: - dependencies: - zod: - specifier: ^4.1.12 - version: 4.2.1 - devDependencies: - tsx: - specifier: ^4.20.6 - version: 4.21.0 - typescript: - specifier: ^5.9.3 - version: 5.9.3 - - packages/summit-lineage-normalizer: - devDependencies: - '@types/jest': - specifier: ^29.5.14 - version: 29.5.14 - '@types/node': - specifier: ^25.3.3 - version: 25.3.5 - jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) - ts-jest: - specifier: ^29.4.6 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3) - typescript: - specifier: ^5.9.3 - version: 5.9.3 - packages/summit-platform: dependencies: '@summit/flows-co': @@ -12381,31 +12352,6 @@ importers: specifier: workspace:* version: link:../sb - packages/summit-praxeology: - dependencies: - ajv: - specifier: ^8.18.0 - version: 8.18.0 - ajv-formats: - specifier: ^3.0.1 - version: 3.0.1(ajv@8.18.0) - devDependencies: - typescript: - specifier: ^5.9.3 - version: 5.9.3 - vitest: - specifier: ^2.1.9 - version: 2.1.9(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1) - - packages/summit-schemas: - dependencies: - ajv: - specifier: ^8.17.1 - version: 8.18.0 - ajv-formats: - specifier: ^3.0.1 - version: 3.0.1(ajv@8.18.0) - packages/supplier-risk: dependencies: '@intelgraph/supply-chain-types': @@ -12523,7 +12469,7 @@ importers: devDependencies: '@types/lodash': specifier: ^4.14.195 - version: 4.17.23 + version: 4.17.21 '@types/node': specifier: ^20.0.0 version: 20.19.27 @@ -12573,16 +12519,16 @@ importers: version: 30.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -12598,7 +12544,7 @@ importers: devDependencies: '@types/lodash': specifier: ^4.14.202 - version: 4.17.23 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -12613,10 +12559,10 @@ importers: dependencies: '@aws-sdk/client-s3': specifier: ^3.626.0 - version: 3.980.0 + version: 3.958.0 '@intelgraph/maestro-sdk': specifier: workspace:* - version: link:../maestro-sdk + version: link:../../sdk/typescript ajv: specifier: ^8.17.1 version: 8.17.1 @@ -12653,7 +12599,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.0.3 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) packages/technical-analysis: dependencies: @@ -12730,7 +12676,7 @@ importers: version: 0.48.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': specifier: ^1.21.0 - version: 1.39.0 + version: 1.38.0 devDependencies: typescript: specifier: ^5.3.3 @@ -12826,7 +12772,7 @@ importers: devDependencies: '@types/lodash': specifier: ^4.14.195 - version: 4.17.23 + version: 4.17.21 '@types/node': specifier: ^20.0.0 version: 20.19.27 @@ -12935,8 +12881,8 @@ importers: specifier: workspace:* version: link:../common-types axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 zod: specifier: ^4.1.12 version: 4.2.1 @@ -13019,7 +12965,7 @@ importers: version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13044,7 +12990,7 @@ importers: version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13057,7 +13003,7 @@ importers: devDependencies: '@types/node': specifier: ^25.0.3 - version: 25.0.10 + version: 25.0.3 packages/treaty-verification: dependencies: @@ -13081,29 +13027,14 @@ importers: specifier: ^5.9.3 version: 5.9.3 - packages/trends: - devDependencies: - '@types/node': - specifier: ^20.11.0 - version: 20.19.27 - jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) - ts-jest: - specifier: ^29.1.1 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3) - typescript: - specifier: ^5.3.3 - version: 5.9.3 - packages/tri-pane-ux: dependencies: react: - specifier: ^18.2.0 - version: 18.3.1 + specifier: 19.2.1 + version: 19.2.1 react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + specifier: 19.2.1 + version: 19.2.1(react@19.2.1) devDependencies: '@types/node': specifier: ^20.10.6 @@ -13164,8 +13095,8 @@ importers: specifier: ^4.0.4 version: 4.0.4 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.12.7 version: 20.19.27 @@ -13209,19 +13140,19 @@ importers: version: 30.0.0 '@types/node': specifier: ^22.14.0 - version: 22.19.7 + version: 22.19.3 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -13233,7 +13164,7 @@ importers: version: 7.4.3 '@types/lodash': specifier: ^4.17.7 - version: 4.17.23 + version: 4.17.21 d3: specifier: ^7.9.0 version: 7.9.0 @@ -13241,11 +13172,11 @@ importers: specifier: ^4.17.23 version: 4.17.23 react: - specifier: ^19.2.1 + specifier: 19.2.1 version: 19.2.1 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@19.2.1) + specifier: 19.2.1 + version: 19.2.1(react@19.2.1) devDependencies: '@types/react': specifier: 18.3.11 @@ -13326,11 +13257,11 @@ importers: specifier: ^0.6.0 version: 0.6.0 axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 cheerio: specifier: ^1.0.0 - version: 1.2.0 + version: 1.1.2 difflib: specifier: ^0.2.4 version: 0.2.4 @@ -13388,7 +13319,7 @@ importers: dependencies: eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 socket.io-client: specifier: ^4.8.1 version: 4.8.1 @@ -13443,7 +13374,7 @@ importers: specifier: ^22.0.0 version: 22.0.0 graphql: - specifier: 16.12.0 + specifier: ^16.8.1 version: 16.12.0 graphql-yoga: specifier: ^5.1.1 @@ -13481,226 +13412,226 @@ importers: specifier: ^5.3.0 version: 5.9.3 - platform/aurelius: + prov-ledger-service: dependencies: - uuid: - specifier: ^9.0.1 - version: 9.0.1 + '@fastify/formbody': + specifier: ^7.0.1 + version: 7.4.0 + '@fastify/swagger': + specifier: ^8.14.0 + version: 8.15.0 + '@intelgraph/provenance': + specifier: file:../packages/provenance + version: link:../packages/provenance + fastify: + specifier: ^5.1.0 + version: 5.6.2 + tar-stream: + specifier: ^3.1.7 + version: 3.1.7 + zod: + specifier: ^3.23.8 + version: 3.25.76 devDependencies: + '@eslint/js': + specifier: ^9.9.0 + version: 9.39.1 '@types/jest': - specifier: ^29.5.12 + specifier: ^29.5.14 version: 29.5.14 + '@types/node': + specifier: ^20.17.5 + version: 20.19.27 + '@types/supertest': + specifier: ^6.0.3 + version: 6.0.3 + '@types/tar-stream': + specifier: ^2.2.2 + version: 2.2.3 + eslint: + specifier: ^9.39.2 + version: 9.39.2(jiti@2.6.1) + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@9.39.2(jiti@2.6.1)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) - ts-jest: - specifier: ^29.1.2 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) + supertest: + specifier: ^6.3.4 + version: 6.3.4 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3) typescript: - specifier: ^5.3.3 + specifier: ^5.7.3 version: 5.9.3 + typescript-eslint: + specifier: ^8.9.0 + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - platform/chm: + sdk/acc: dependencies: - eventemitter3: - specifier: ^5.0.1 - version: 5.0.4 - jquery: - specifier: ^3.7.1 - version: 3.7.1 - pg: - specifier: ^8.13.1 - version: 8.18.0 - zod: - specifier: ^3.23.8 - version: 3.25.76 + undici: + specifier: ^6.23.0 + version: 6.23.0 devDependencies: - '@playwright/test': - specifier: ^1.49.1 - version: 1.57.0 - '@types/jquery': - specifier: ^3.5.31 - version: 3.5.33 '@types/node': - specifier: ^22.7.4 - version: 22.19.7 - '@typescript-eslint/eslint-plugin': - specifier: ^7.18.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^7.18.0 - version: 7.18.0(eslint@8.57.1)(typescript@5.9.3) + specifier: ^20.11.30 + version: 20.19.27 eslint: - specifier: ^8.57.0 - version: 8.57.1 + specifier: ^9.39.2 + version: 9.39.2(jiti@2.6.1) eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.57.1) + version: 9.1.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-import: - specifier: ^2.29.1 - version: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3) + specifier: ^2.32.0 + version: 2.32.0(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) typescript: - specifier: ^5.5.4 + specifier: ^5.9.2 version: 5.9.3 vitest: - specifier: ^1.6.0 - version: 1.6.1(@types/node@22.19.7)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + specifier: ^2.1.4 + version: 2.1.9(@types/node@20.19.27)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1) - platform/governance-kernel: - dependencies: - zod: - specifier: ^3.22.4 - version: 3.25.76 + sdk/acx: devDependencies: '@types/jest': - specifier: ^29.5.12 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 + '@types/node': + specifier: ^22.10.1 + version: 22.19.3 jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + specifier: ^30.1.2 + version: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) ts-jest: - specifier: ^29.1.2 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.1 + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3) typescript: - specifier: ^5.3.3 + specifier: ^5.9.2 version: 5.9.3 - platform/intelgraph-core: - dependencies: - '@intelgraph/governance-kernel': - specifier: workspace:* - version: link:../governance-kernel + sdk/cab: devDependencies: - '@types/jest': - specifier: ^29.5.12 - version: 29.5.14 - jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) - ts-jest: - specifier: ^29.1.2 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3) typescript: - specifier: ^5.3.3 + specifier: ^5.4.0 version: 5.9.3 - platform/maas: + sdk/cce-ts: dependencies: - '@intelgraph/core': - specifier: workspace:* - version: link:../intelgraph-core - '@intelgraph/governance-kernel': - specifier: workspace:* - version: link:../governance-kernel - '@intelgraph/maestro-core': - specifier: workspace:* - version: link:../maestro-core - uuid: - specifier: ^9.0.1 - version: 9.0.1 + '@grpc/grpc-js': + specifier: ^1.10.0 + version: 1.14.3 devDependencies: - '@types/jest': - specifier: ^29.5.12 - version: 29.5.14 - jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) - ts-jest: - specifier: ^29.1.2 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3) typescript: - specifier: ^5.3.3 + specifier: ^5.4.0 version: 5.9.3 - platform/maestro-core: + sdk/jpr-ts: dependencies: - '@intelgraph/core': - specifier: workspace:* - version: link:../intelgraph-core - '@intelgraph/governance-kernel': - specifier: workspace:* - version: link:../governance-kernel - uuid: - specifier: ^9.0.1 - version: 9.0.1 + yaml: + specifier: ^2.4.5 + version: 2.8.2 devDependencies: - '@types/jest': - specifier: ^29.5.12 - version: 29.5.14 - jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) - ts-jest: - specifier: ^29.1.2 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3) + '@types/node': + specifier: ^20.11.30 + version: 20.19.27 typescript: - specifier: ^5.3.3 + specifier: ^5.4.5 + version: 5.9.3 + + sdk/pcqp: + devDependencies: + typescript: + specifier: ^5.4.0 version: 5.9.3 + vitest: + specifier: ^1.6.0 + version: 1.6.1(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) - platform/securiteyes: + sdk/prer-ts: dependencies: - '@intelgraph/core': - specifier: workspace:* - version: link:../intelgraph-core - '@intelgraph/governance-kernel': - specifier: workspace:* - version: link:../governance-kernel - uuid: - specifier: ^9.0.1 - version: 9.0.1 + node-fetch: + specifier: '>=2.6.7' + version: 3.3.2 + devDependencies: + '@types/node': + specifier: ^20.12.12 + version: 20.19.27 + typescript: + specifier: ^5.4.5 + version: 5.9.3 + + sdk/psc-runner: {} + + sdk/rarl: + devDependencies: + '@types/node': + specifier: ^20.11.30 + version: 20.19.27 + typescript: + specifier: ^5.4.5 + version: 5.9.3 + + sdk/typescript: devDependencies: '@types/jest': - specifier: ^29.5.12 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 + '@typescript-eslint/eslint-plugin': + specifier: ^8.41.0 + version: 8.50.1(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': + specifier: ^8.41.0 + version: 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + dtslint: + specifier: ^4.2.1 + version: 4.2.1(typescript@5.9.3) + eslint: + specifier: ^9.39.2 + version: 9.39.2(jiti@2.6.1) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + specifier: ^30.1.2 + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) + orval: + specifier: ^7.11.2 + version: 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + prettier: + specifier: ^3.6.2 + version: 3.7.4 ts-jest: - specifier: ^29.1.2 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3) + specifier: ^29.4.1 + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)))(typescript@5.9.3) typescript: - specifier: ^5.3.3 + specifier: ^5.9.2 version: 5.9.3 - platform/summitsight: + sdk/zk-tx-client: dependencies: - '@intelgraph/governance-kernel': - specifier: workspace:* - version: link:../governance-kernel - '@intelgraph/maestro-core': - specifier: workspace:* - version: link:../maestro-core - '@intelgraph/securiteyes': - specifier: workspace:* - version: link:../securiteyes + blake3: + specifier: ^2.1.6 + version: 2.1.7 devDependencies: - '@types/jest': - specifier: ^29.5.12 - version: 29.5.14 - jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) - ts-jest: - specifier: ^29.1.2 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3) + '@types/node': + specifier: ^25.0.3 + version: 25.0.3 typescript: - specifier: ^5.3.3 + specifier: ^5.4.0 version: 5.9.3 server: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: 5.2.0 + version: 5.2.0(graphql@16.12.0) '@as-integrations/express4': specifier: 1.1.2 - version: 1.1.2(@apollo/server@4.11.3(graphql@16.12.0))(express@5.2.1) + version: 1.1.2(@apollo/server@5.2.0(graphql@16.12.0))(express@5.2.1) '@aws-sdk/client-s3': specifier: ^3.962.0 - version: 3.980.0 + version: 3.962.0 '@bull-board/api': specifier: 6.12.0 version: 6.12.0(@bull-board/ui@5.23.0) @@ -13715,13 +13646,13 @@ importers: version: link:../packages/feature-flags '@intelgraph/maestro-core': specifier: workspace:* - version: link:../platform/maestro-core - '@intelgraph/provenance': + version: link:../packages/maestro-core + '@intelgraph/osint-collector': specifier: workspace:* - version: link:../packages/provenance + version: link:../packages/osint-collector '@intelgraph/telemetry-config': - specifier: file:../packages/telemetry-config - version: file:packages/telemetry-config + specifier: workspace:* + version: link:../packages/telemetry-config '@node-saml/node-saml': specifier: ^5.1.0 version: 5.1.0 @@ -13741,8 +13672,8 @@ importers: specifier: 0.44.0 version: 0.44.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-http': - specifier: ^0.208.0 - version: 0.208.0(@opentelemetry/api@1.9.0) + specifier: ^0.211.0 + version: 0.211.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-graphql': specifier: ^0.56.0 version: 0.56.0(@opentelemetry/api@1.9.0) @@ -13760,7 +13691,7 @@ importers: version: 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': specifier: ^2.2.0 - version: 2.5.0(@opentelemetry/api@1.9.0) + version: 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-node': specifier: 0.45.0 version: 0.45.0(@opentelemetry/api@1.9.0) @@ -13773,15 +13704,12 @@ importers: '@opentelemetry/semantic-conventions': specifier: 1.38.0 version: 1.38.0 - '@react-email/render': - specifier: ^0.0.12 - version: 0.0.12 '@socket.io/redis-adapter': specifier: 8.3.0 version: 8.3.0(socket.io-adapter@2.5.6) '@turf/area': - specifier: 7.3.3 - version: 7.3.3 + specifier: 7.3.1 + version: 7.3.1 '@turf/bbox': specifier: 7.3.1 version: 7.3.1 @@ -13833,9 +13761,6 @@ importers: ajv-formats: specifier: ^3.0.1 version: 3.0.1(ajv@8.17.1) - apollo-server-express: - specifier: 3.13.0 - version: 3.13.0(express@5.2.1)(graphql@16.12.0) archiver: specifier: 6.0.1 version: 6.0.1 @@ -13843,8 +13768,8 @@ importers: specifier: ^0.44.0 version: 0.44.0 axios: - specifier: ^1.7.9 - version: 1.13.4 + specifier: '>=1.13.2' + version: 1.13.2 bullmq: specifier: 5.66.1 version: 5.66.1 @@ -13853,7 +13778,7 @@ importers: version: 2.11.2 commander: specifier: ^14.0.2 - version: 14.0.3 + version: 14.0.2 compression: specifier: 1.8.1 version: 1.8.1 @@ -13911,9 +13836,6 @@ importers: graphql: specifier: 16.12.0 version: 16.12.0 - graphql-query-complexity: - specifier: ^1.0.0 - version: 1.1.0(graphql@16.12.0) graphql-subscriptions: specifier: 2.0.0 version: 2.0.0(graphql@16.12.0) @@ -13929,18 +13851,12 @@ importers: helmet: specifier: 7.2.0 version: 7.2.0 - html-escaper: - specifier: ^3.0.3 - version: 3.0.3 - html-to-text: - specifier: ^9.0.0 - version: 9.0.5 + hpp: + specifier: ^0.2.3 + version: 0.2.3 ioredis: specifier: 5.8.2 version: 5.8.2 - isomorphic-dompurify: - specifier: ^2.0.0 - version: 2.35.0(canvas@2.11.2) joi: specifier: 17.13.3 version: 17.13.3 @@ -13953,24 +13869,18 @@ importers: jsonwebtoken: specifier: 9.0.2 version: 9.0.2 - juice: - specifier: ^10.0.0 - version: 10.0.1 kafkajs: specifier: ^2.2.4 version: 2.2.4 lodash: - specifier: 4.17.21 - version: 4.17.21 + specifier: 4.17.23 + version: 4.17.23 lru-cache: specifier: ^11.2.4 - version: 11.2.5 + version: 11.2.4 minisearch: specifier: ^7.2.0 version: 7.2.0 - mjml: - specifier: ^4.15.0 - version: 4.18.0 morgan: specifier: 1.10.1 version: 1.10.1 @@ -14017,8 +13927,8 @@ importers: specifier: 9.9.0 version: 9.9.0 pino-http: - specifier: 11.0.0 - version: 11.0.0 + specifier: 10.5.0 + version: 10.5.0 prom-client: specifier: 15.1.3 version: 15.1.3 @@ -14052,14 +13962,11 @@ importers: uuid: specifier: 9.0.1 version: 9.0.1 - validator: - specifier: '>=13.15.20' - version: 13.15.26 winston: specifier: 3.19.0 version: 3.19.0 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 zod: specifier: 3.25.76 @@ -14087,8 +13994,8 @@ importers: specifier: 4.0.3 version: 4.0.3(graphql@16.12.0) '@graphql-codegen/typescript': - specifier: 4.1.6 - version: 4.1.6(graphql@16.12.0) + specifier: 5.0.7 + version: 5.0.7(graphql@16.12.0) '@graphql-codegen/typescript-resolvers': specifier: 4.5.1 version: 4.5.1(graphql@16.12.0) @@ -14106,7 +14013,7 @@ importers: version: 11.11.0 '@types/cookie-parser': specifier: ^1.4.10 - version: 1.4.10(@types/express@5.0.6) + version: 1.4.10(@types/express@4.17.21) '@types/cors': specifier: 2.8.19 version: 2.8.19 @@ -14114,8 +14021,8 @@ importers: specifier: ^1.11.5 version: 1.11.5 '@types/express': - specifier: 5.0.6 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/express-mongo-sanitize': specifier: 2.1.2 version: 2.1.2 @@ -14151,10 +14058,10 @@ importers: version: 8.18.1 '@typescript-eslint/eslint-plugin': specifier: 8.50.0 - version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: 8.50.0 - version: 8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) apollo-server-testing: specifier: ^2.25.3 version: 2.25.3(graphql@16.12.0) @@ -14177,29 +14084,32 @@ importers: specifier: '>=0.25.0' version: 0.27.2 eslint: - specifier: 9.39.1 - version: 9.39.1(jiti@2.6.1) + specifier: 9.39.2 + version: 9.39.2(jiti@2.6.1) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.39.1(jiti@2.6.1)) + version: 9.1.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jest: specifier: 29.1.0 - version: 29.1.0(@typescript-eslint/eslint-plugin@8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(jest@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.1.0(@typescript-eslint/eslint-plugin@8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3) eslint-plugin-react: specifier: 7.37.5 - version: 7.37.5(eslint@9.39.1(jiti@2.6.1)) + version: 7.37.5(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-hooks: specifier: 5.2.0 - version: 5.2.0(eslint@9.39.1(jiti@2.6.1)) + version: 5.2.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-refresh: specifier: 0.4.26 - version: 0.4.26(eslint@9.39.1(jiti@2.6.1)) + version: 0.4.26(eslint@9.39.2(jiti@2.6.1)) exif-reader: specifier: ^2.0.3 version: 2.0.3 fast-check: specifier: ^4.5.3 version: 4.5.3 + glob: + specifier: '>=11.1.0' + version: 13.0.0 globals: specifier: ^16.5.0 version: 16.5.0 @@ -14209,9 +14119,6 @@ importers: graphql-redis-subscriptions: specifier: ^2.7.0 version: 2.7.0(graphql-subscriptions@2.0.0(graphql@16.12.0)) - hpp: - specifier: ^0.2.3 - version: 0.2.3 jest: specifier: 29.7.0 version: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) @@ -14234,8 +14141,8 @@ importers: specifier: ^7.0.4 version: 7.0.4 mongodb-memory-server: - specifier: 9.1.1 - version: 9.1.1 + specifier: 11.0.1 + version: 11.0.1(socks@2.8.7) nock: specifier: 13.4.0 version: 13.4.0 @@ -14273,11 +14180,11 @@ importers: specifier: 10.9.2 version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3) typescript: - specifier: ^5.7.3 + specifier: ^5.9.3 version: 5.9.3 typescript-eslint: specifier: 8.50.0 - version: 8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) wait-for-expect: specifier: 3.0.2 version: 3.0.2 @@ -14285,8 +14192,8 @@ importers: services/admin-api: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^4.10.0 + version: 4.12.2(graphql@16.12.0) '@intelgraph/metrics-exporter': specifier: workspace:* version: link:../../packages/metrics-exporter @@ -14295,19 +14202,19 @@ importers: version: link:../../packages/slow-query-killer cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.8.1 version: 16.12.0 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 redis: - specifier: ^4.6.12 - version: 4.7.1 + specifier: '>=5.9.0' + version: 5.10.0 zod: specifier: ^3.22.4 version: 3.25.76 @@ -14316,8 +14223,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.0.0 version: 20.19.27 @@ -14334,16 +14241,16 @@ importers: services/admin-automation: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^4.12.2 + version: 4.12.2(graphql@16.12.0) cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.12.0 version: 16.12.0 uuid: specifier: ^9.0.1 @@ -14356,8 +14263,8 @@ importers: specifier: ^2.8.19 version: 2.8.19 '@types/express': - specifier: ^4.17.25 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.0.0 version: 20.19.27 @@ -14387,7 +14294,7 @@ importers: version: 2.1.1(ajv@8.17.1) cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 dotenv: specifier: ^17.2.3 version: 17.2.3 @@ -14405,7 +14312,7 @@ importers: version: 5.8.2 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 uuid: specifier: ^9.0.1 version: 9.0.1 @@ -14420,8 +14327,8 @@ importers: specifier: ^2.8.19 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -14433,10 +14340,10 @@ importers: version: 9.0.8 '@typescript-eslint/eslint-plugin': specifier: ^8.47.0 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.47.0 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -14457,7 +14364,7 @@ importers: version: 5.1.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -14469,7 +14376,7 @@ importers: version: 3.3.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.16.2 version: 8.21.0 @@ -14490,8 +14397,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -14538,8 +14445,8 @@ importers: specifier: ^4.12.0 version: 4.16.5 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.6.1 + version: 5.6.2 ioredis: specifier: ^5.8.2 version: 5.8.2 @@ -14576,10 +14483,10 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -14635,10 +14542,10 @@ importers: specifier: ^4.1.0 version: 4.1.0 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.6.1 + version: 5.6.2 graphql: - specifier: 16.12.0 + specifier: ^16.9.0 version: 16.12.0 ioredis: specifier: ^5.8.2 @@ -14666,7 +14573,7 @@ importers: version: 3.3.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -14680,7 +14587,7 @@ importers: specifier: ^13.0.0 version: 13.0.0 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 yaml: specifier: ^2.3.0 @@ -14706,7 +14613,7 @@ importers: version: 9.0.10 '@types/lodash': specifier: ^4.17.15 - version: 4.17.23 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -14721,37 +14628,37 @@ importers: version: 8.18.1 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3)) + version: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) k6: specifier: ^0.0.0 version: 0.0.0 ts-jest: specifier: ^29.1.1 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3)))(typescript@5.8.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3) tsx: specifier: ^4.7.0 version: 4.21.0 typedoc: specifier: ^0.27.6 - version: 0.27.9(typescript@5.8.3) + version: 0.27.9(typescript@5.9.3) typescript: - specifier: 5.8.3 - version: 5.8.3 + specifier: ^5.9.3 + version: 5.9.3 services/agents: dependencies: redis: - specifier: ^4.6.0 - version: 4.7.1 + specifier: '>=5.9.0' + version: 5.10.0 uuid: specifier: ^9.0.0 version: 9.0.1 @@ -14820,7 +14727,7 @@ importers: version: 5.9.3 vitest: specifier: ^1.6.0 - version: 1.6.1(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + version: 1.6.1(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) services/ai-sandbox: dependencies: @@ -14834,8 +14741,8 @@ importers: specifier: ^5.12.0 version: 5.66.1 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.0.0 + version: 5.6.2 ioredis: specifier: ^5.4.1 version: 5.8.2 @@ -14860,16 +14767,16 @@ importers: version: 29.5.14 '@types/node': specifier: ^22.7.0 - version: 22.19.7 + version: 22.19.3 '@types/uuid': specifier: ^10.0.0 version: 10.0.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) ts-jest: specifier: ^29.2.5 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3) tsx: specifier: ^4.19.0 version: 4.21.0 @@ -14920,14 +14827,14 @@ importers: specifier: ^5.4.2 version: 5.66.1 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^4.26.2 + version: 4.29.1 ioredis: specifier: ^5.3.2 version: 5.8.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 prom-client: specifier: ^15.1.0 version: 15.1.3 @@ -14972,12 +14879,12 @@ importers: specifier: ^8.17.2 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^9.0.0 + version: 9.0.0 devDependencies: '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -14995,11 +14902,11 @@ importers: version: 5.2.1 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 devDependencies: ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3) + version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3) typescript: specifier: ^5.3.3 version: 5.9.3 @@ -15007,22 +14914,22 @@ importers: services/api-gateway: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^5.1.0 + version: 5.2.0(graphql@16.12.0) '@as-integrations/express4': specifier: ^1.1.2 - version: 1.1.2(@apollo/server@4.11.3(graphql@16.12.0))(express@5.2.1) + version: 1.1.2(@apollo/server@5.2.0(graphql@16.12.0))(express@5.2.1) compression: specifier: ^1.7.4 version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.12.0 version: 16.12.0 graphql-tag: specifier: ^2.12.0 @@ -15044,8 +14951,8 @@ importers: specifier: ^2.8.0 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -15054,10 +14961,10 @@ importers: version: 20.19.27 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -15078,7 +14985,7 @@ importers: version: 1.9.0 '@opentelemetry/auto-instrumentations-node': specifier: ^0.67.0 - version: 0.67.3(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.6.0(@opentelemetry/api@1.9.0)) + version: 0.67.3(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0)) '@opentelemetry/exporter-metrics-otlp-http': specifier: ^0.208.0 version: 0.208.0(@opentelemetry/api@1.9.0) @@ -15093,13 +15000,13 @@ importers: version: 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': specifier: ^1.28.0 - version: 1.39.0 + version: 1.38.0 compression: specifier: ^1.7.4 version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -15108,13 +15015,13 @@ importers: version: 8.1.0 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^10.4.0 + version: 10.5.0 prom-client: specifier: ^15.1.3 version: 15.1.3 @@ -15132,11 +15039,11 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^22.10.1 - version: 22.19.7 + version: 22.19.3 '@types/pg': specifier: ^8.11.6 version: 8.16.0 @@ -15148,7 +15055,7 @@ importers: version: 10.0.0 '@vitest/coverage-v8': specifier: ^3.2.3 - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.7)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1)) + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)) supertest: specifier: ^7.1.0 version: 7.1.4 @@ -15160,7 +15067,7 @@ importers: version: 5.9.3 vitest: specifier: ^3.2.3 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.7)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1) services/audio-service: dependencies: @@ -15195,15 +15102,15 @@ importers: specifier: '>=4.21.0' version: 5.2.1 redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -15221,7 +15128,7 @@ importers: dependencies: cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -15236,13 +15143,13 @@ importers: version: 9.0.2 pg: specifier: ^8.13.1 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^9.6.0 version: 9.9.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^10.4.0 + version: 10.5.0 uuid: specifier: ^11.1.0 version: 11.1.0 @@ -15254,8 +15161,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.1 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.14 version: 29.5.14 @@ -15264,7 +15171,7 @@ importers: version: 9.0.10 '@types/node': specifier: ^22.15.21 - version: 22.19.7 + version: 22.19.3 '@types/pg': specifier: ^8.11.13 version: 8.16.0 @@ -15273,10 +15180,10 @@ importers: version: 10.0.0 jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) ts-jest: specifier: ^29.4.6 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3) tsx: specifier: ^4.19.4 version: 4.21.0 @@ -15287,8 +15194,8 @@ importers: services/auth-gateway: dependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -15308,8 +15215,8 @@ importers: specifier: ^8.17.0 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^8.6.0 + version: 8.6.1 zod: specifier: ^3.22.4 version: 3.25.76 @@ -15337,7 +15244,7 @@ importers: version: link:../../packages/media-manipulation cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -15346,8 +15253,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -15362,40 +15269,40 @@ importers: version: 1.9.0 '@opentelemetry/auto-instrumentations-node': specifier: latest - version: 0.71.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.6.0(@opentelemetry/api@1.9.0)) + version: 0.69.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0)) '@opentelemetry/core': specifier: latest - version: 2.6.0(@opentelemetry/api@1.9.0) + version: 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-jaeger': specifier: latest - version: 2.6.0(@opentelemetry/api@1.9.0) + version: 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-http': specifier: latest - version: 0.213.0(@opentelemetry/api@1.9.0) + version: 0.211.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-zipkin': specifier: latest - version: 2.6.0(@opentelemetry/api@1.9.0) + version: 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/propagator-b3': specifier: latest - version: 2.6.0(@opentelemetry/api@1.9.0) + version: 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/propagator-jaeger': specifier: latest - version: 2.6.0(@opentelemetry/api@1.9.0) + version: 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': specifier: latest - version: 2.6.0(@opentelemetry/api@1.9.0) + version: 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-node': specifier: latest - version: 0.213.0(@opentelemetry/api@1.9.0) + version: 0.211.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': specifier: latest - version: 2.6.0(@opentelemetry/api@1.9.0) + version: 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': specifier: latest - version: 1.40.0 + version: 1.39.0 axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 express: specifier: '>=4.21.0' version: 5.2.1 @@ -15419,8 +15326,8 @@ importers: specifier: ^30.2.0 version: 30.2.0 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/http-proxy-middleware': specifier: ^1.0.0 version: 1.0.0 @@ -15468,13 +15375,13 @@ importers: version: 5.9.3 typescript-eslint: specifier: ^8.46.4 - version: 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) services/battle-api: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^4.9.0 + version: 4.12.2(graphql@16.12.0) '@graphql-tools/schema': specifier: ^10.0.30 version: 10.0.30(graphql@16.12.0) @@ -15483,12 +15390,12 @@ importers: version: link:../../packages/battle-types cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.8.0 version: 16.12.0 graphql-subscriptions: specifier: ^2.0.0 @@ -15507,8 +15414,8 @@ importers: specifier: ^2.8.0 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -15535,7 +15442,7 @@ importers: version: 2.2.4 pg: specifier: ^8.11.0 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.17.0 version: 8.21.0 @@ -15547,8 +15454,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -15589,12 +15496,12 @@ importers: specifier: ^9.0.0 version: 9.0.1 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -15636,8 +15543,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -15676,9 +15583,9 @@ importers: version: 5.2.1 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 zod: specifier: ^4.1.12 @@ -15688,8 +15595,8 @@ importers: specifier: ^30.0.0 version: 30.2.0 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -15712,12 +15619,12 @@ importers: specifier: '>=4.21.0' version: 5.2.1 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -15746,8 +15653,8 @@ importers: specifier: ^3.6.0 version: 3.6.0 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.6.1 + version: 5.6.2 handlebars: specifier: ^4.7.8 version: 4.7.8 @@ -15762,7 +15669,7 @@ importers: version: 3.0.3 pg: specifier: ^8.11.0 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -15784,7 +15691,7 @@ importers: version: 29.5.14 '@types/node': specifier: ^22.10.0 - version: 22.19.7 + version: 22.19.3 '@types/node-cron': specifier: ^3.0.11 version: 3.0.11 @@ -15796,19 +15703,19 @@ importers: version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.15.0 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.15.0 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) ts-jest: specifier: ^29.2.5 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3) tsx: specifier: ^4.19.2 version: 4.21.0 @@ -15838,7 +15745,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -15859,8 +15766,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -15924,9 +15831,9 @@ importers: version: 4.104.0(ws@8.19.0)(zod@3.25.76) pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 zod: specifier: ^3.22.4 @@ -15961,8 +15868,8 @@ importers: version: 5.2.1 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -16004,8 +15911,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -16050,8 +15957,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -16069,7 +15976,7 @@ importers: version: link:../../packages/cloud-platform cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -16090,8 +15997,8 @@ importers: specifier: ^2.8.19 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -16136,13 +16043,13 @@ importers: specifier: workspace:* version: link:../../packages/collaboration fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^4.25.0 + version: 4.29.1 nanoid: specifier: '>=5.0.9' version: 5.1.6 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 zod: specifier: ^3.22.0 @@ -16165,7 +16072,7 @@ importers: dependencies: eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 ioredis: specifier: ^5.3.2 version: 5.8.2 @@ -16174,7 +16081,7 @@ importers: version: 3.0.3 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.16.2 version: 8.21.0 @@ -16213,15 +16120,15 @@ importers: specifier: ^9.0.0 version: 9.9.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^10.0.0 + version: 10.5.0 undici: specifier: ^6.23.0 version: 6.23.0 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -16244,19 +16151,19 @@ importers: services/config-service: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^4.11.0 + version: 4.12.2(graphql@16.12.0) '@as-integrations/express4': specifier: ^1.1.2 - version: 1.1.2(@apollo/server@4.11.3(graphql@16.12.0))(express@5.2.1) + version: 1.1.2(@apollo/server@4.12.2(graphql@16.12.0))(express@5.2.1) cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.12.0 version: 16.12.0 graphql-tag: specifier: ^2.12.0 @@ -16272,7 +16179,7 @@ importers: version: 2.0.1 pg: specifier: ^8.13.3 - version: 8.18.0 + version: 8.16.3 prom-client: specifier: ^15.1.3 version: 15.1.3 @@ -16287,32 +16194,32 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.14 version: 29.5.14 '@types/node': specifier: ^22.14.0 - version: 22.19.7 + version: 22.19.3 '@types/pg': specifier: ^8.11.10 version: 8.16.0 '@typescript-eslint/eslint-plugin': specifier: ^8.29.0 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.29.0 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) ts-jest: specifier: ^29.2.5 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3) tsx: specifier: ^4.19.2 version: 4.21.0 @@ -16323,8 +16230,8 @@ importers: services/control-tower-service: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^4.9.0 + version: 4.12.2(graphql@16.12.0) '@graphql-tools/schema': specifier: ^10.0.0 version: 10.0.30(graphql@16.12.0) @@ -16335,7 +16242,7 @@ importers: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.8.0 version: 16.12.0 graphql-subscriptions: specifier: ^2.0.0 @@ -16354,20 +16261,20 @@ importers: version: 5.28.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 uuid: specifier: ^9.0.0 version: 9.0.1 ws: - specifier: '>=8.17.1' + specifier: '>=8.18.4' version: 8.19.0 zod: specifier: ^3.22.4 version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.20 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.9.0 version: 20.19.27 @@ -16394,7 +16301,7 @@ importers: dependencies: cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -16406,7 +16313,7 @@ importers: version: 5.28.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.16.2 version: 8.21.0 @@ -16424,8 +16331,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -16503,8 +16410,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.0 version: 29.5.14 @@ -16555,8 +16462,8 @@ importers: version: 5.2.1 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -16601,8 +16508,8 @@ importers: specifier: workspace:* version: link:../../packages/post-quantum-crypto '@types/express': - specifier: ^4.17.17 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 express: specifier: '>=4.21.0' version: 5.2.1 @@ -16627,8 +16534,8 @@ importers: version: 9.0.1 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.12 version: 29.5.14 @@ -16646,7 +16553,7 @@ importers: version: 9.1.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-import: specifier: ^2.29.1 - version: 2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) + version: 2.32.0(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) jest: specifier: ^29.7.0 version: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) @@ -16666,14 +16573,14 @@ importers: services/dashboard-service: dependencies: apollo-server-express: - specifier: ^3.13.0 + specifier: '>=3.13.0' version: 3.13.0(express@5.2.1)(graphql@16.12.0) compression: specifier: ^1.7.5 version: 1.8.1 cors: specifier: '*' - version: 2.8.6 + version: 2.8.5 dotenv: specifier: ^17.2.3 version: 17.2.3 @@ -16681,7 +16588,7 @@ importers: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.8.1 version: 16.12.0 helmet: specifier: ^8.1.0 @@ -16691,9 +16598,9 @@ importers: version: 6.0.1 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 socket.io: specifier: ^4.7.2 @@ -16709,8 +16616,8 @@ importers: specifier: '*' version: 2.8.19 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -16737,7 +16644,7 @@ importers: version: 5.28.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 uuid: specifier: ^9.0.1 version: 9.0.1 @@ -16749,8 +16656,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -16794,14 +16701,14 @@ importers: specifier: ^3.3.1 version: 3.6.0 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^4.26.2 + version: 4.29.1 parquetjs: specifier: ^0.11.2 version: 0.11.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.19.0 version: 8.21.0 @@ -16809,8 +16716,8 @@ importers: specifier: ^11.0.0 version: 11.3.0 redis: - specifier: ^4.6.13 - version: 4.7.1 + specifier: '>=5.9.0' + version: 5.10.0 uuid: specifier: ^9.0.1 version: 9.0.1 @@ -16870,8 +16777,8 @@ importers: specifier: ^6.12.0 version: 6.16.0 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^4.28.0 + version: 4.29.1 zod: specifier: ^3.23.0 version: 3.25.76 @@ -16884,13 +16791,13 @@ importers: version: 5.9.3 vitest: specifier: ^1.6.0 - version: 1.6.1(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + version: 1.6.1(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) services/data-monetization-engine: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^4.10.0 + version: 4.12.2(graphql@16.12.0) '@intelgraph/data-monetization-types': specifier: workspace:* version: link:../../packages/data-monetization-types @@ -16902,12 +16809,12 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.8.1 version: 16.12.0 helmet: specifier: ^7.1.0 @@ -16926,7 +16833,7 @@ importers: version: 3.0.3 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.19.0 version: 8.21.0 @@ -16944,8 +16851,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jsonwebtoken': specifier: ^9.0.5 version: 9.0.10 @@ -16977,8 +16884,8 @@ importers: specifier: workspace:* version: link:../distributed-registry fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^4.28.0 + version: 4.29.1 ioredis: specifier: ^5.4.0 version: 5.8.2 @@ -17000,7 +16907,7 @@ importers: version: 5.9.3 vitest: specifier: ^1.6.0 - version: 1.6.1(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + version: 1.6.1(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) services/data-spine: {} @@ -17060,20 +16967,20 @@ importers: version: link:../../packages/synthetic-media cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 multer: - specifier: '>=2.0.2' + specifier: ^2.0.2 version: 2.0.2 devDependencies: '@types/cors': specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/multer': specifier: ^1.4.12 version: 1.4.13 @@ -17102,14 +17009,14 @@ importers: specifier: workspace:* version: link:../../packages/decision-graph fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^4.24.0 + version: 4.29.1 jose: specifier: ^6.1.0 version: 6.1.3 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.16.0 version: 8.21.0 @@ -17158,8 +17065,8 @@ importers: services/digital-twin: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^4.11.0 + version: 4.12.2(graphql@16.12.0) '@opentelemetry/api': specifier: 1.7.0 version: 1.7.0 @@ -17167,7 +17074,7 @@ importers: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.8.1 version: 16.12.0 kafkajs: specifier: ^2.2.4 @@ -17177,12 +17084,12 @@ importers: version: 6.0.1 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.17.2 version: 8.21.0 redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 rxjs: specifier: ^7.8.1 @@ -17195,8 +17102,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -17277,8 +17184,8 @@ importers: specifier: workspace:* version: link:../../packages/common-types fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^4.28.0 + version: 4.29.1 ioredis: specifier: ^5.4.0 version: 5.8.2 @@ -17300,7 +17207,7 @@ importers: version: 5.9.3 vitest: specifier: ^1.6.0 - version: 1.6.1(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + version: 1.6.1(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) services/dl-training-service: dependencies: @@ -17314,8 +17221,8 @@ importers: specifier: workspace:* version: link:../../packages/neural-networks axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 express: specifier: '>=4.21.0' version: 5.2.1 @@ -17324,14 +17231,14 @@ importers: version: 4.2.1 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) tsx: specifier: ^4.7.1 version: 4.21.0 @@ -17345,8 +17252,8 @@ importers: specifier: ^1.9.0 version: 1.9.0 axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 express: specifier: '>=4.21.0' version: 5.2.1 @@ -17367,8 +17274,8 @@ importers: version: 4.2.1 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -17398,7 +17305,7 @@ importers: dependencies: cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 dotenv: specifier: ^17.2.3 version: 17.2.3 @@ -17413,7 +17320,7 @@ importers: version: 7.2.0 http-proxy-middleware: specifier: ^2.0.6 - version: 2.0.9(@types/express@4.17.25) + version: 2.0.9(@types/express@4.17.21) jsonwebtoken: specifier: ^9.0.2 version: 9.0.2 @@ -17421,15 +17328,15 @@ importers: specifier: ^8.17.2 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^9.0.0 + version: 9.0.0 devDependencies: '@types/cors': specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -17468,7 +17375,7 @@ importers: version: link:../../packages/federated-learning cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 dotenv: specifier: ^17.2.3 version: 17.2.3 @@ -17482,8 +17389,8 @@ importers: specifier: ^8.17.2 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^9.0.0 + version: 9.0.0 zod: specifier: ^3.22.4 version: 3.25.76 @@ -17492,8 +17399,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -17523,8 +17430,8 @@ importers: version: 5.2.1 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -17548,8 +17455,8 @@ importers: version: 5.2.1 devDependencies: '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -17569,17 +17476,17 @@ importers: specifier: '>=4.21.0' version: 5.2.1 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.6.1 + version: 5.6.2 pg: specifier: ^8.11.0 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^10.0.0 + version: 10.5.0 pino-pretty: specifier: ^13.1.2 version: 13.1.3 @@ -17591,8 +17498,8 @@ importers: version: 4.2.1 devDependencies: '@types/express': - specifier: ^4.17.0 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -17607,10 +17514,10 @@ importers: version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -17661,7 +17568,7 @@ importers: version: 8.1.0(socks@2.8.7) pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -17685,8 +17592,8 @@ importers: specifier: ^30.0.0 version: 30.2.0 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -17715,11 +17622,11 @@ importers: specifier: workspace:* version: link:../../packages/esg-reporting axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 date-fns: specifier: ^4.1.0 version: 4.1.0 @@ -17737,7 +17644,7 @@ importers: version: 1.17.1 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -17745,7 +17652,7 @@ importers: specifier: ^13.0.0 version: 13.1.3 redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 uuid: specifier: ^13.0.0 @@ -17758,8 +17665,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -17813,7 +17720,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -17822,10 +17729,10 @@ importers: version: 8.1.0 pg: specifier: ^8.13.1 - version: 8.18.0 + version: 8.16.3 redis: - specifier: ^4.7.0 - version: 4.7.1 + specifier: '>=5.9.0' + version: 5.10.0 zod: specifier: ^3.24.1 version: 3.25.76 @@ -17837,8 +17744,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -17870,11 +17777,11 @@ importers: specifier: workspace:* version: link:../../packages/etl-framework fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.3.0 + version: 5.6.2 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 winston: specifier: ^3.17.0 version: 3.19.0 @@ -17923,7 +17830,7 @@ importers: version: link:../../packages/messaging cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 dotenv: specifier: ^17.2.3 version: 17.2.3 @@ -17937,15 +17844,15 @@ importers: specifier: ^9.0.0 version: 9.9.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^10.0.0 + version: 10.5.0 devDependencies: '@types/cors': specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -17975,8 +17882,8 @@ importers: version: 1.17.1 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -17988,10 +17895,10 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -18017,26 +17924,20 @@ importers: specifier: ^5.9.3 version: 5.9.3 - services/factcert: - dependencies: - axios: - specifier: ^1.7.9 - version: 1.13.6 - services/feature-flags: dependencies: eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^4.24.3 + version: 4.29.1 ioredis: specifier: ^5.3.2 version: 5.8.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.16.2 version: 8.21.0 @@ -18093,8 +17994,8 @@ importers: specifier: ^8.17.2 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^9.0.0 + version: 9.0.0 uuid: specifier: ^9.0.1 version: 9.0.1 @@ -18103,8 +18004,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -18158,7 +18059,7 @@ importers: version: 6.0.1 pg: specifier: ^8.11.0 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -18183,10 +18084,10 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -18210,7 +18111,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 csv-parse: specifier: ^5.5.3 version: 5.6.0 @@ -18225,7 +18126,7 @@ importers: version: 5.8.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 uuid: specifier: ^9.0.1 version: 9.0.1 @@ -18243,8 +18144,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -18289,7 +18190,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -18307,8 +18208,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -18350,8 +18251,8 @@ importers: version: 8.21.0 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -18377,11 +18278,11 @@ importers: specifier: workspace:* version: link:../../packages/geospatial axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 dotenv: specifier: ^17.2.3 version: 17.2.3 @@ -18405,8 +18306,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/geoip-lite': specifier: ^1.4.1 version: 1.4.4 @@ -18442,7 +18343,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -18463,8 +18364,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -18472,8 +18373,8 @@ importers: specifier: 18.3.11 version: 18.3.11 react: - specifier: ^18.2.0 - version: 18.3.1 + specifier: 19.2.1 + version: 19.2.1 tsx: specifier: ^4.6.0 version: 4.21.0 @@ -18494,7 +18395,7 @@ importers: version: 1.20.4 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -18515,8 +18416,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -18555,8 +18456,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.8 version: 29.5.14 @@ -18580,10 +18481,10 @@ importers: dependencies: cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 dotenv: - specifier: ^17.2.3 - version: 17.2.3 + specifier: ^16.4.5 + version: 16.6.1 express: specifier: '>=4.21.0' version: 5.2.1 @@ -18594,8 +18495,8 @@ importers: specifier: ^9.0.0 version: 9.9.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^10.0.0 + version: 10.5.0 prom-client: specifier: ^15.1.0 version: 15.1.3 @@ -18604,8 +18505,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -18659,8 +18560,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -18711,8 +18612,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -18724,10 +18625,10 @@ importers: version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -18759,8 +18660,8 @@ importers: specifier: workspace:* version: link:../../packages/graph-analytics redis: - specifier: ^4.6.0 - version: 4.7.1 + specifier: '>=5.9.0' + version: 5.10.0 devDependencies: '@types/node': specifier: ^20.0.0 @@ -18772,8 +18673,8 @@ importers: services/graph-core: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^4.11.0 + version: 4.12.2(graphql@16.12.0) '@graphql-tools/schema': specifier: ^10.0.6 version: 10.0.30(graphql@16.12.0) @@ -18784,7 +18685,7 @@ importers: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.9.0 version: 16.12.0 graphql-scalars: specifier: ^1.23.0 @@ -18794,7 +18695,7 @@ importers: version: 6.0.1 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 uuid: specifier: ^13.0.0 version: 13.0.0 @@ -18806,8 +18707,8 @@ importers: specifier: ^1.19.5 version: 1.19.6 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -18858,7 +18759,7 @@ importers: version: link:../../packages/relationship-mining cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -18867,8 +18768,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.1 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -18901,44 +18802,41 @@ importers: version: 6.0.1 openai: specifier: ^4.103.0 - version: 4.104.0(ws@8.19.0)(zod@3.25.76) - prom-client: - specifier: ^15.1.0 - version: 15.1.3 + version: 4.104.0(ws@8.19.0)(zod@4.2.1) redis: - specifier: ^5.4.2 + specifier: '>=5.9.0' version: 5.10.0 uuid: specifier: ^11.0.3 version: 11.1.0 zod: - specifier: ^3.23.8 - version: 3.25.76 + specifier: ^4.1.12 + version: 4.2.1 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 '@types/node': specifier: ^24.0.0 - version: 24.10.9 + version: 24.10.1 '@types/uuid': specifier: ^11.0.0 version: 11.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)) + version: 30.2.0(@types/node@24.10.1)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -18953,8 +18851,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.6 version: 20.19.27 @@ -18971,42 +18869,11 @@ importers: specifier: ^5.3.3 version: 5.9.3 - services/graphrag-engine: - dependencies: - '@summit/graphrag-core': - specifier: workspace:* - version: link:../../packages/graphrag-core - neo4j-driver: - specifier: ^5.28.1 - version: 5.28.2 - uuid: - specifier: ^11.0.3 - version: 11.1.0 - devDependencies: - '@types/jest': - specifier: ^29.5.14 - version: 29.5.14 - '@types/node': - specifier: ^22.0.0 - version: 22.19.7 - '@types/uuid': - specifier: ^11.0.0 - version: 11.0.0 - jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) - ts-jest: - specifier: ^29.2.0 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)))(typescript@5.9.3) - typescript: - specifier: ^5.5.0 - version: 5.9.3 - services/health-aggregator: dependencies: fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^4.24.3 + version: 4.29.1 ioredis: specifier: ^5.3.2 version: 5.8.2 @@ -19015,7 +18882,7 @@ importers: version: 3.0.3 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.16.2 version: 8.21.0 @@ -19061,13 +18928,13 @@ importers: version: 5.28.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.17.0 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^9.0.0 + version: 9.0.0 uuid: specifier: ^9.0.1 version: 9.0.1 @@ -19076,8 +18943,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -19107,8 +18974,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.6 version: 20.19.27 @@ -19131,11 +18998,11 @@ importers: specifier: ^8.5.0 version: 8.5.1 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -19163,16 +19030,16 @@ importers: version: 2.8.19 '@types/node': specifier: ^22.15.5 - version: 22.19.7 + version: 22.19.3 '@vitest/coverage-v8': specifier: ^4.0.3 - version: 4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.7)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 4.0.16(vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@22.19.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) typescript: specifier: ^5.9.3 version: 5.9.3 vitest: specifier: ^4.0.3 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.7)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@22.19.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) services/identity-fusion: dependencies: @@ -19187,14 +19054,14 @@ importers: version: 5.2.1 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 zod: specifier: ^4.1.12 version: 4.2.1 devDependencies: '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -19210,12 +19077,6 @@ importers: services/ingest: dependencies: - '@aws-sdk/client-s3': - specifier: ^3.987.0 - version: 3.1004.0 - csv-parser: - specifier: ^3.0.0 - version: 3.2.0 express: specifier: '>=4.21.0' version: 5.2.1 @@ -19224,8 +19085,8 @@ importers: version: 1.5.2 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/express-fileupload': specifier: ^1.5.1 version: 1.5.1 @@ -19243,7 +19104,7 @@ importers: dependencies: '@aws-sdk/client-s3': specifier: ^3.450.0 - version: 3.980.0 + version: 3.958.0 '@aws-sdk/client-sqs': specifier: ^3.450.0 version: 3.958.0 @@ -19255,7 +19116,7 @@ importers: version: 1.9.0 '@opentelemetry/semantic-conventions': specifier: ^1.18.1 - version: 1.39.0 + version: 1.38.0 ajv: specifier: ^8.12.0 version: 8.17.1 @@ -19287,8 +19148,8 @@ importers: specifier: ^8.16.2 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^8.6.0 + version: 8.6.1 ssh2-sftp-client: specifier: ^9.1.0 version: 9.1.0 @@ -19300,8 +19161,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -19348,8 +19209,8 @@ importers: specifier: ^5.7.7 version: 5.7.9 axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 bullmq: specifier: ^5.0.0 version: 5.66.1 @@ -19413,8 +19274,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -19450,8 +19311,8 @@ importers: version: 5.2.1 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.17.5 version: 20.19.27 @@ -19503,7 +19364,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 dompurify: specifier: ^3.0.6 version: 3.3.1 @@ -19521,13 +19382,13 @@ importers: version: 11.2.0 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.17.2 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^9.0.0 + version: 9.0.0 uuid: specifier: ^9.0.1 version: 9.0.1 @@ -19545,8 +19406,8 @@ importers: specifier: ^3.0.5 version: 3.2.0 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -19596,11 +19457,11 @@ importers: specifier: ^1.0.1 version: 1.0.1 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.6.1 + version: 5.6.2 pg: specifier: ^8.11.0 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -19622,10 +19483,10 @@ importers: version: 8.16.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -19658,7 +19519,7 @@ importers: version: link:../../packages/unified-analytics cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -19679,8 +19540,8 @@ importers: specifier: ^2.8.19 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -19703,11 +19564,11 @@ importers: specifier: ^13.0.2 version: 13.0.2 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.6.1 + version: 5.6.2 pg: specifier: ^8.11.0 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -19729,10 +19590,10 @@ importers: version: 8.16.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -19769,16 +19630,16 @@ importers: version: 29.5.14 '@types/node': specifier: ^22.15.21 - version: 22.19.7 + version: 22.19.3 '@types/uuid': specifier: ^10.0.0 version: 10.0.0 jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) ts-jest: specifier: ^29.4.6 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3) tsx: specifier: ^4.19.4 version: 4.21.0 @@ -19792,8 +19653,8 @@ importers: specifier: workspace:* version: link:../../packages/logistics-automation-types '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 express: specifier: '>=4.21.0' version: 5.2.1 @@ -19801,8 +19662,8 @@ importers: specifier: ^8.16.2 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^8.5.1 + version: 8.6.1 uuid: specifier: ^9.0.0 version: 9.0.1 @@ -19823,66 +19684,11 @@ importers: specifier: ^5.3.3 version: 5.9.3 - services/maestro-orchestrator: - dependencies: - '@fastify/cors': - specifier: ^11.1.0 - version: 11.2.0 - '@fastify/helmet': - specifier: ^13.0.2 - version: 13.0.2 - fastify: - specifier: '>=5.7.2' - version: 5.7.4 - pino: - specifier: ^10.1.0 - version: 10.1.0 - pino-pretty: - specifier: ^13.1.2 - version: 13.1.3 - uuid: - specifier: ^11.0.5 - version: 11.1.0 - zod: - specifier: ^3.25.76 - version: 3.25.76 - devDependencies: - '@types/jest': - specifier: ^30.0.0 - version: 30.0.0 - '@types/node': - specifier: 20.19.27 - version: 20.19.27 - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 - '@typescript-eslint/eslint-plugin': - specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: - specifier: ^9.39.2 - version: 9.39.2(jiti@2.6.1) - jest: - specifier: ^30.2.0 - version: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) - ts-jest: - specifier: ^29.1.0 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3) - tsx: - specifier: ^4.7.0 - version: 4.21.0 - typescript: - specifier: ^5.9.3 - version: 5.9.3 - services/marketplace: dependencies: cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -19897,7 +19703,7 @@ importers: version: 5.28.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 uuid: specifier: ^9.0.1 version: 9.0.1 @@ -19912,8 +19718,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -19967,7 +19773,7 @@ importers: version: link:../../packages/reference-data cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -19982,8 +19788,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -20006,14 +19812,14 @@ importers: specifier: ^9.0.4 version: 9.3.0 axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 bullmq: specifier: ^5.34.8 version: 5.66.1 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.6.1 + version: 5.6.2 file-type: specifier: ^19.0.0 version: 19.6.0 @@ -20031,7 +19837,7 @@ importers: version: 2.1.35 pg: specifier: ^8.11.0 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -20062,10 +19868,10 @@ importers: version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -20140,15 +19946,15 @@ importers: specifier: workspace:* version: link:../../packages/sentiment-analysis axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 express: specifier: '>=4.21.0' version: 5.2.1 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -20178,7 +19984,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -20199,8 +20005,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -20224,7 +20030,7 @@ importers: version: 5.2.1 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^9.7.0 version: 9.9.0 @@ -20232,7 +20038,7 @@ importers: specifier: ^13.0.0 version: 13.1.3 redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 uuid: specifier: ^11.1.0 @@ -20248,8 +20054,8 @@ importers: specifier: ^4.2.2 version: 4.2.2 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -20288,7 +20094,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -20297,7 +20103,7 @@ importers: version: 8.1.0 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 winston: specifier: ^3.18.3 version: 3.19.0 @@ -20309,8 +20115,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -20333,13 +20139,13 @@ importers: specifier: workspace:* version: link:../../packages/model-optimization '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 express: specifier: '>=4.21.0' version: 5.2.1 redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 zod: specifier: ^4.1.12 @@ -20350,7 +20156,7 @@ importers: version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) tsx: specifier: ^4.7.1 version: 4.21.0 @@ -20383,8 +20189,8 @@ importers: specifier: ^1.19.5 version: 1.19.6 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -20414,29 +20220,29 @@ importers: specifier: ^1.19.5 version: 1.19.6 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 '@types/node': specifier: ^24.5.2 - version: 24.10.9 + version: 24.10.1 '@types/supertest': specifier: ^2.0.16 version: 2.0.16 jest: specifier: ^30.1.3 - version: 30.2.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)) + version: 30.2.0(@types/node@24.10.1)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)) supertest: specifier: ^7.0.0 version: 7.1.4 ts-jest: specifier: ^29.2.5 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.10.1)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3) + version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3) typescript: specifier: ^5.9.2 version: 5.9.3 @@ -20448,17 +20254,17 @@ importers: version: 5.2.1 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^22.7.4 - version: 22.19.7 + version: 22.19.3 typescript: specifier: ^5.5.4 version: 5.9.3 vitest: specifier: ^4.0.16 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.7)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@22.19.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) services/nlp-service: dependencies: @@ -20476,7 +20282,7 @@ importers: version: link:../../packages/text-analytics cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 dotenv: specifier: ^17.2.3 version: 17.2.3 @@ -20497,8 +20303,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.1 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -20518,8 +20324,8 @@ importers: specifier: ^7.0.2 version: 7.0.6 dotenv: - specifier: ^17.2.3 - version: 17.2.3 + specifier: ^16.3.1 + version: 16.6.1 handlebars: specifier: ^4.7.8 version: 4.7.8 @@ -20531,7 +20337,7 @@ importers: version: 7.0.12 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 winston: specifier: ^3.11.0 version: 3.19.0 @@ -20607,20 +20413,20 @@ importers: version: 9.0.1 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^22.7.4 - version: 22.19.7 + version: 22.19.3 '@types/uuid': specifier: ^10.0.0 version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.6.0 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.6.0 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -20629,7 +20435,7 @@ importers: version: 9.1.0(eslint@9.39.2(jiti@2.6.1)) ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3) + version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3) typescript: specifier: ^5.5.4 version: 5.9.3 @@ -20646,14 +20452,14 @@ importers: specifier: workspace:* version: link:../../packages/etl-framework axios: - specifier: ^1.7.9 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 bull: specifier: ^4.16.5 version: 4.16.5 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 dotenv: specifier: ^17.2.3 version: 17.2.3 @@ -20664,7 +20470,7 @@ importers: specifier: ^3.0.3 version: 3.0.3 redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 winston: specifier: ^3.17.0 @@ -20677,8 +20483,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -20714,7 +20520,7 @@ importers: version: link:../../packages/web-scraper cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -20726,8 +20532,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -20754,8 +20560,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -20778,61 +20584,6 @@ importers: specifier: ^5.3.3 version: 5.9.3 - services/personal-agent-api: - dependencies: - '@fastify/cors': - specifier: ^11.1.0 - version: 11.2.0 - '@fastify/helmet': - specifier: ^13.0.2 - version: 13.0.2 - fastify: - specifier: '>=5.7.2' - version: 5.7.4 - pino: - specifier: ^10.1.0 - version: 10.1.0 - pino-pretty: - specifier: ^13.1.2 - version: 13.1.3 - uuid: - specifier: ^11.0.5 - version: 11.1.0 - zod: - specifier: ^3.25.76 - version: 3.25.76 - devDependencies: - '@types/jest': - specifier: ^30.0.0 - version: 30.0.0 - '@types/node': - specifier: 20.19.27 - version: 20.19.27 - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 - '@typescript-eslint/eslint-plugin': - specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: - specifier: ^9.39.2 - version: 9.39.2(jiti@2.6.1) - jest: - specifier: ^30.2.0 - version: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) - ts-jest: - specifier: ^29.1.0 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3) - tsx: - specifier: ^4.7.0 - version: 4.21.0 - typescript: - specifier: ^5.9.3 - version: 5.9.3 - services/plugin-executor: dependencies: '@intelgraph/plugin-system': @@ -20852,8 +20603,8 @@ importers: specifier: ^4.10.0 version: 4.10.4 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -20877,10 +20628,10 @@ importers: version: 7.5.1(express@5.2.1) pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 redis: - specifier: ^4.6.11 - version: 4.7.1 + specifier: '>=5.9.0' + version: 5.10.0 semver: specifier: ^7.5.4 version: 7.7.3 @@ -20889,8 +20640,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -20921,11 +20672,11 @@ importers: specifier: ^11.1.0 version: 11.1.0 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.6.1 + version: 5.6.2 pg: specifier: ^8.11.0 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -20933,8 +20684,8 @@ importers: specifier: ^13.1.2 version: 13.1.3 redis: - specifier: ^4.6.0 - version: 4.7.1 + specifier: '>=5.9.0' + version: 5.10.0 zod: specifier: ^4.1.12 version: 4.2.1 @@ -20950,10 +20701,10 @@ importers: version: 8.16.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -20998,11 +20749,11 @@ importers: specifier: ^13.0.2 version: 13.0.2 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.6.1 + version: 5.6.2 pg: specifier: ^8.11.0 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -21030,10 +20781,10 @@ importers: version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -21085,8 +20836,8 @@ importers: specifier: ^1.19.5 version: 1.19.6 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -21125,8 +20876,8 @@ importers: specifier: ^1.19.5 version: 1.19.6 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -21150,8 +20901,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.12 version: 29.5.14 @@ -21174,8 +20925,8 @@ importers: services/privacy: dependencies: axios: - specifier: ^1.13.5 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 devDependencies: '@types/jest': specifier: ^30.0.0 @@ -21200,7 +20951,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -21218,7 +20969,7 @@ importers: version: 3.3.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.16.2 version: 8.21.0 @@ -21226,8 +20977,8 @@ importers: specifier: ^10.3.1 version: 10.3.1 redis: - specifier: ^4.6.12 - version: 4.7.1 + specifier: '>=5.9.0' + version: 5.10.0 uuid: specifier: ^9.0.0 version: 9.0.1 @@ -21242,8 +20993,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -21308,18 +21059,15 @@ importers: services/prov-ledger: dependencies: - '@intelgraph/cryptographic-agility': - specifier: workspace:* - version: link:../../packages/cryptographic-agility apollo-server: specifier: 3.13.0 - version: 3.13.0(graphql@16.12.0) + version: 3.13.0(graphql@16.9.0) fast-json-stable-stringify: specifier: 2.1.0 version: 2.1.0 graphql: - specifier: 16.12.0 - version: 16.12.0 + specifier: 16.9.0 + version: 16.9.0 keccak: specifier: 3.0.4 version: 3.0.4 @@ -21370,8 +21118,8 @@ importers: specifier: workspace:* version: link:../../packages/quantum-simulation '@types/express': - specifier: ^4.17.17 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 express: specifier: '>=4.21.0' version: 5.2.1 @@ -21411,8 +21159,8 @@ importers: version: 3.19.0 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.0 version: 29.5.14 @@ -21457,8 +21205,8 @@ importers: version: 9.0.1 devDependencies: '@types/express': - specifier: ^4.17.17 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.5.9 version: 20.19.27 @@ -21472,8 +21220,8 @@ importers: specifier: workspace:* version: link:../../packages/provenance fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.1.0 + version: 5.6.2 pino: specifier: ^8.21.0 version: 8.21.0 @@ -21553,11 +21301,11 @@ importers: specifier: workspace:* version: link:../../packages/reference-data '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -21578,8 +21326,8 @@ importers: services/regulatory-compliance-agents: dependencies: axios: - specifier: ^1.13.5 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 bullmq: specifier: ^5.0.0 version: 5.66.1 @@ -21590,7 +21338,7 @@ importers: specifier: '>=4.21.0' version: 5.2.1 fast-xml-parser: - specifier: '>=5.3.4' + specifier: ^5.3.4 version: 5.3.4 ioredis: specifier: ^5.3.0 @@ -21603,7 +21351,7 @@ importers: version: 4.104.0(ws@8.19.0)(zod@3.25.76) pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.16.0 version: 8.21.0 @@ -21615,8 +21363,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -21668,7 +21416,7 @@ importers: version: 29.5.14 '@types/node': specifier: ^22.10.0 - version: 22.19.7 + version: 22.19.3 '@types/sanitize-html': specifier: ^2.11.0 version: 2.16.0 @@ -21677,19 +21425,19 @@ importers: version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.15.0 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.15.0 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) ts-jest: specifier: ^29.2.5 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3) tsx: specifier: ^4.19.2 version: 4.21.0 @@ -21701,7 +21449,7 @@ importers: dependencies: '@aws-sdk/client-s3': specifier: ^3.400.0 - version: 3.980.0 + version: 3.958.0 '@aws-sdk/s3-request-presigner': specifier: ^3.400.0 version: 3.958.0 @@ -21731,8 +21479,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 @@ -21756,7 +21504,7 @@ importers: version: 5.66.1 eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 express: specifier: '>=4.21.0' version: 5.2.1 @@ -21786,8 +21534,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -21820,7 +21568,7 @@ importers: version: link:../../packages/third-party-risk cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -21828,8 +21576,8 @@ importers: specifier: ^10.1.0 version: 10.1.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^10.3.0 + version: 10.5.0 zod: specifier: ^3.22.4 version: 3.25.76 @@ -21838,8 +21586,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -21860,8 +21608,8 @@ importers: version: 9.0.1 devDependencies: '@types/express': - specifier: ^4.17.17 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.0 version: 29.5.14 @@ -21897,8 +21645,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -21918,8 +21666,8 @@ importers: services/sandbox-gateway: dependencies: '@apollo/server': - specifier: 4.11.3 - version: 4.11.3(graphql@16.12.0) + specifier: ^4.10.0 + version: 4.12.2(graphql@16.12.0) '@intelgraph/datalab-service': specifier: workspace:* version: link:../datalab-service @@ -21940,7 +21688,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 dataloader: specifier: ^2.2.2 version: 2.2.3 @@ -21948,7 +21696,7 @@ importers: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.8.1 version: 16.12.0 graphql-tag: specifier: ^2.12.6 @@ -21963,8 +21711,8 @@ importers: specifier: ^8.16.0 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^9.0.0 + version: 9.0.0 prom-client: specifier: ^15.1.0 version: 15.1.3 @@ -21991,8 +21739,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -22047,8 +21795,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -22078,7 +21826,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -22087,13 +21835,13 @@ importers: version: 7.2.0 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.17.2 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^9.0.0 + version: 9.0.0 zod: specifier: ^3.22.4 version: 3.25.76 @@ -22105,8 +21853,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -22133,8 +21881,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -22164,8 +21912,8 @@ importers: version: 4.21.0 devDependencies: '@types/express': - specifier: ^4.17.13 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 services/scoring-engine: dependencies: @@ -22208,20 +21956,20 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^22.5.4 - version: 22.19.7 + version: 22.19.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3) + version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3) typescript: specifier: ^5.6.3 version: 5.9.3 vitest: specifier: ^2.1.3 - version: 2.1.9(@types/node@22.19.7)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1) + version: 2.1.9(@types/node@22.19.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1) services/secure-elections: dependencies: @@ -22232,8 +21980,8 @@ importers: specifier: ^11.1.1 version: 11.1.1 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^4.24.3 + version: 4.29.1 pino: specifier: ^8.16.2 version: 8.21.0 @@ -22260,8 +22008,8 @@ importers: services/self-upgrading-infrastructure: dependencies: axios: - specifier: ^1.13.5 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 date-fns: specifier: ^2.30.0 version: 2.30.0 @@ -22288,8 +22036,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -22337,8 +22085,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/uuid': specifier: 9.0.1 version: 9.0.1 @@ -22404,8 +22152,8 @@ importers: specifier: ^8.17.2 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^9.0.0 + version: 9.0.0 rxjs: specifier: ^7.8.1 version: 7.8.2 @@ -22414,8 +22162,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -22444,8 +22192,8 @@ importers: specifier: ^8.16.2 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^8.5.1 + version: 8.6.1 uuid: specifier: ^9.0.0 version: 9.0.1 @@ -22454,8 +22202,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -22546,7 +22294,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.0.3 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) services/sparql-endpoint: dependencies: @@ -22558,7 +22306,7 @@ importers: version: link:../../packages/semantic-analysis cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -22573,23 +22321,23 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) tsx: specifier: '*' version: 4.21.0 @@ -22607,8 +22355,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^22.10.2 version: 22.19.7 @@ -22631,8 +22379,8 @@ importers: specifier: ^2.1.1 version: 2.1.1(ajv@8.17.1) axios: - specifier: ^1.13.5 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 https-proxy-agent: specifier: ^7.0.2 version: 7.0.6 @@ -22644,7 +22392,7 @@ importers: version: 4.104.0(ws@8.19.0)(zod@3.25.76) pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pgvector: specifier: ^0.1.8 version: 0.1.8 @@ -22689,7 +22437,7 @@ importers: version: 5.8.2 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.17.2 version: 8.21.0 @@ -22725,8 +22473,8 @@ importers: specifier: 1.19.0 version: 1.19.0(@opentelemetry/api@1.7.0) axios: - specifier: ^1.13.5 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 commander: specifier: ^12.0.0 version: 12.1.0 @@ -22737,8 +22485,8 @@ importers: specifier: ^4.2.0 version: 4.2.0 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.6.1 + version: 5.6.2 ioredis: specifier: ^5.3.2 version: 5.8.2 @@ -22747,7 +22495,7 @@ importers: version: 2.2.4 pg: specifier: ^8.16.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^10.1.0 version: 10.1.0 @@ -22772,10 +22520,10 @@ importers: version: 8.16.0 '@typescript-eslint/eslint-plugin': specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) @@ -22820,7 +22568,7 @@ importers: version: link:../../packages/supply-chain-types cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -22828,8 +22576,8 @@ importers: specifier: ^10.1.0 version: 10.1.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^10.3.0 + version: 10.5.0 zod: specifier: ^3.22.4 version: 3.25.76 @@ -22838,8 +22586,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -22850,64 +22598,6 @@ importers: specifier: ^5.3.3 version: 5.9.3 - services/switchboard-api: - dependencies: - '@fastify/cors': - specifier: ^11.1.0 - version: 11.2.0 - '@fastify/helmet': - specifier: ^13.0.2 - version: 13.0.2 - axios: - specifier: ^1.7.7 - version: 1.13.6 - fastify: - specifier: '>=5.7.2' - version: 5.7.4 - pino: - specifier: ^10.1.0 - version: 10.1.0 - pino-pretty: - specifier: ^13.1.2 - version: 13.1.3 - uuid: - specifier: ^11.0.5 - version: 11.1.0 - zod: - specifier: ^3.25.76 - version: 3.25.76 - devDependencies: - '@types/jest': - specifier: ^30.0.0 - version: 30.0.0 - '@types/node': - specifier: 20.19.27 - version: 20.19.27 - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 - '@typescript-eslint/eslint-plugin': - specifier: ^8.46.4 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.46.4 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: - specifier: ^9.39.2 - version: 9.39.2(jiti@2.6.1) - jest: - specifier: ^30.2.0 - version: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) - ts-jest: - specifier: ^29.1.0 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3) - tsx: - specifier: ^4.7.0 - version: 4.21.0 - typescript: - specifier: ^5.9.3 - version: 5.9.3 - services/sync-service: dependencies: '@fastify/cors': @@ -22920,14 +22610,14 @@ importers: specifier: ^3.3.1 version: 3.6.0 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^4.26.0 + version: 4.29.1 ioredis: specifier: ^5.3.2 version: 5.8.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 zod: specifier: ^3.22.4 version: 3.25.76 @@ -22995,7 +22685,7 @@ importers: version: 1.20.4 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 express: specifier: '>=4.21.0' version: 5.2.1 @@ -23004,8 +22694,8 @@ importers: specifier: ^2.8.13 version: 2.8.19 '@types/express': - specifier: ^4.17.0 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 typescript: specifier: ^5.0.0 version: 5.9.3 @@ -23017,7 +22707,7 @@ importers: version: 1.8.1 cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 date-fns: specifier: ^3.2.0 version: 3.6.0 @@ -23041,8 +22731,8 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -23105,8 +22795,8 @@ importers: version: 5.2.1 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -23132,8 +22822,8 @@ importers: specifier: ^8.16.2 version: 8.21.0 pino-http: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^8.6.0 + version: 8.6.1 uuid: specifier: ^9.0.1 version: 9.0.1 @@ -23142,8 +22832,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -23203,7 +22893,7 @@ importers: version: 2.1.3 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 prom-client: specifier: ^15.1.0 version: 15.1.3 @@ -23215,8 +22905,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -23260,15 +22950,15 @@ importers: specifier: '>=4.21.0' version: 5.2.1 redis: - specifier: ^5.8.1 + specifier: '>=5.9.0' version: 5.10.0 devDependencies: '@types/bull': specifier: ^4.10.0 version: 4.10.4 '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: 20.19.27 version: 20.19.27 @@ -23289,22 +22979,22 @@ importers: version: 5.9.3 vitest: specifier: ^4.0.3 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) services/unified-audit: dependencies: eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^4.24.3 + version: 4.29.1 ioredis: specifier: ^5.3.2 version: 5.8.2 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 pino: specifier: ^8.16.2 version: 8.21.0 @@ -23346,11 +23036,11 @@ importers: specifier: workspace:* version: link:../license-registry axios: - specifier: ^1.13.5 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 fastify: - specifier: '>=5.7.2' - version: 5.7.4 + specifier: ^5.6.1 + version: 5.6.2 pino: specifier: ^10.1.0 version: 10.1.0 @@ -23405,10 +23095,10 @@ importers: version: link:../../packages/video-analysis cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 dotenv: - specifier: ^17.2.3 - version: 17.2.3 + specifier: ^16.4.7 + version: 16.6.1 express: specifier: '>=4.21.0' version: 5.2.1 @@ -23416,7 +23106,7 @@ importers: specifier: ^8.0.0 version: 8.1.0 multer: - specifier: '>=2.0.2' + specifier: ^2.0.2 version: 2.0.2 winston: specifier: ^3.17.0 @@ -23429,20 +23119,20 @@ importers: specifier: ^2.8.17 version: 2.8.19 '@types/express': - specifier: ^5.0.0 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/multer': specifier: ^1.4.12 version: 1.4.13 '@types/node': specifier: ^22.14.0 - version: 22.19.7 + version: 22.19.3 eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + version: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) tsx: specifier: ^4.19.2 version: 4.21.0 @@ -23466,11 +23156,11 @@ importers: version: 5.2.1 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 devDependencies: '@types/express': - specifier: ^4.17.20 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/node': specifier: ^20.10.0 version: 20.19.27 @@ -23488,7 +23178,7 @@ importers: version: 0.2.3(socket.io-adapter@2.5.6) cors: specifier: ^2.8.5 - version: 2.8.6 + version: 2.8.5 dotenv: specifier: ^17.2.3 version: 17.2.3 @@ -23510,9 +23200,6 @@ importers: pino-http: specifier: ^11.0.0 version: 11.0.0 - pino-pretty: - specifier: ^13.0.0 - version: 13.1.3 prom-client: specifier: ^15.1.3 version: 15.1.3 @@ -23527,8 +23214,8 @@ importers: specifier: ^2.8.19 version: 2.8.19 '@types/express': - specifier: ^5.0.3 - version: 5.0.6 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -23580,14 +23267,14 @@ importers: dependencies: eventemitter3: specifier: ^5.0.1 - version: 5.0.4 + version: 5.0.1 express: specifier: '>=4.21.0' version: 5.2.1 devDependencies: jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + version: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) supertest: specifier: ^7.1.4 version: 7.1.4 @@ -23595,17 +23282,17 @@ importers: services/xai-explain-anomaly: dependencies: apollo-server-express: - specifier: ^3.13.0 + specifier: '>=3.13.0' version: 3.13.0(express@5.2.1)(graphql@16.12.0) express: specifier: '>=4.21.0' version: 5.2.1 graphql: - specifier: 16.12.0 + specifier: ^16.8.1 version: 16.12.0 ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3) + version: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3) typescript: specifier: ^5.2.2 version: 5.9.3 @@ -23623,8 +23310,8 @@ importers: version: 3.25.76 devDependencies: '@types/express': - specifier: ^4.17.21 - version: 4.17.25 + specifier: 4.17.21 + version: 4.17.21 '@types/jest': specifier: ^29.5.11 version: 29.5.14 @@ -23661,12 +23348,12 @@ importers: version: 5.9.3 vitest: specifier: ^1.6.0 - version: 1.6.1(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + version: 1.6.1(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) tools/admin-cli: dependencies: chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 commander: specifier: ^11.1.0 @@ -23731,7 +23418,7 @@ importers: tools/aql: dependencies: chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 commander: specifier: ^11.1.0 @@ -23753,7 +23440,7 @@ importers: tools/auditctl: dependencies: chalk: - specifier: ^5.0.0 + specifier: '>=5.3.0' version: 5.6.2 commander: specifier: ^10.0.0 @@ -23775,7 +23462,7 @@ importers: tools/claude-code-cli: dependencies: chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 commander: specifier: ^11.1.0 @@ -23809,7 +23496,7 @@ importers: dependencies: commander: specifier: ^14.0.1 - version: 14.0.3 + version: 14.0.2 devDependencies: '@types/node': specifier: 20.19.27 @@ -23857,7 +23544,7 @@ importers: specifier: workspace:* version: link:../../packages/plugin-sdk chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 commander: specifier: ^11.1.0 @@ -23897,7 +23584,7 @@ importers: specifier: ^20.0.2 version: 20.1.2 chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 commander: specifier: ^12.0.0 @@ -23943,7 +23630,7 @@ importers: specifier: ^2.1.1 version: 2.1.1(ajv@8.17.1) chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 commander: specifier: ^12.0.0 @@ -23978,10 +23665,10 @@ importers: version: 20.19.27 '@typescript-eslint/eslint-plugin': specifier: ^8.47.0 - version: 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.47.0 - version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: 9.39.2 version: 9.39.2(jiti@2.6.1) @@ -23998,7 +23685,7 @@ importers: tools/replayctl: dependencies: chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 commander: specifier: ^11.1.0 @@ -24020,7 +23707,7 @@ importers: version: 7.0.1 pg: specifier: ^8.11.3 - version: 8.18.0 + version: 8.16.3 table: specifier: ^6.8.1 version: 6.9.0 @@ -24053,7 +23740,7 @@ importers: tools/sandbox-cli: dependencies: chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 cli-table3: specifier: ^0.6.3 @@ -24068,7 +23755,7 @@ importers: specifier: ^3.0.0 version: 3.6.0 graphql: - specifier: 16.12.0 + specifier: ^16.8.1 version: 16.12.0 graphql-request: specifier: ^6.1.0 @@ -24099,7 +23786,7 @@ importers: tools/scaffold-cli: dependencies: chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 commander: specifier: ^11.1.0 @@ -24157,7 +23844,7 @@ importers: tools/ses: dependencies: chalk: - specifier: ^5.3.0 + specifier: '>=5.3.0' version: 5.6.2 devDependencies: '@types/node': @@ -24173,11 +23860,11 @@ importers: tools/summitctl: dependencies: axios: - specifier: ^1.13.5 - version: 1.13.6 + specifier: '>=1.13.2' + version: 1.13.2 chalk: - specifier: ^4.1.2 - version: 4.1.2 + specifier: '>=5.3.0' + version: 5.6.2 cli-table3: specifier: ^0.6.5 version: 0.6.5 @@ -24304,6 +23991,10 @@ packages: peerDependencies: ajv: '>=8' + '@apidevtools/json-schema-ref-parser@14.0.1': + resolution: {integrity: sha512-Oc96zvmxx1fqoSEdUmfmvvb59/KDOnUoJ7s2t7bISyAn0XEz57LCCw8k2Y4Pf3mwKaZLMciESALORLgfe2frCw==} + engines: {node: '>= 16'} + '@apidevtools/json-schema-ref-parser@9.1.2': resolution: {integrity: sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==} @@ -24319,18 +24010,23 @@ packages: peerDependencies: openapi-types: '>=7' + '@apidevtools/swagger-parser@12.1.0': + resolution: {integrity: sha512-e5mJoswsnAX0jG+J09xHFYQXb/bUc5S3pLpMxUuRUA2H8T2kni3yEoyz2R3Dltw5f4A6j6rPNMpWTK+iVDFlng==} + peerDependencies: + openapi-types: '>=7' + '@apollo/cache-control-types@1.0.3': resolution: {integrity: sha512-F17/vCp7QVwom9eG7ToauIKdAxpSoadsJnqIfyryLFSkLSOEqu+eC5Z3N8OXcUVStuOMcNHlyraRsA6rRICu4g==} peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x '@apollo/client@3.13.9': resolution: {integrity: sha512-RStSzQfL1XwL6/NWd7W8avhGQYTgPCtJ+qHkkTTSj9Upp3VVm6Oppv81YWdXG1FgEpDPW4hvCrTUELdcC4inCQ==} peerDependencies: - graphql: 16.12.0 + graphql: ^15.0.0 || ^16.0.0 graphql-ws: ^5.5.5 || ^6.0.3 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 subscriptions-transport-ws: ^0.9.0 || ^0.11.0 peerDependenciesMeta: graphql-ws: @@ -24345,10 +24041,10 @@ packages: '@apollo/client@4.0.11': resolution: {integrity: sha512-jyW5j3DEYnFlYA1Lk9Szd7O/od1DptnbZnj03DQXxuQb+Gnop0w/uQxVRKaU7bPhvVuBnlAtZYPOykArX+xWdg==} peerDependencies: - graphql: 16.12.0 + graphql: ^16.0.0 graphql-ws: ^5.5.5 || ^6.0.3 - react: ^17.0.0 || ^18.0.0 || >=19.0.0-rc - react-dom: ^17.0.0 || ^18.0.0 || >=19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 rxjs: ^7.3.0 subscriptions-transport-ws: ^0.9.0 || ^0.11.0 peerDependenciesMeta: @@ -24377,14 +24073,25 @@ packages: resolution: {integrity: sha512-pGwCl/po6+rxRmDMFgozKQo2pbsSwE91TpsDBAOgf74CRDPXHHtM88wbwjab0wMMZh95QfR45GGyDIdhY24bkQ==} deprecated: '@apollo/server-gateway-interface v1 is part of Apollo Server v4, which is deprecated and will transition to end-of-life on January 26, 2026. As long as you are already using a non-EOL version of Node.js, upgrading to v2 should take only a few minutes. See https://www.apollographql.com/docs/apollo-server/previous-versions for details.' peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x - '@apollo/server@4.11.3': - resolution: {integrity: sha512-mW8idE2q0/BN14mimfJU5DAnoPHZRrAWgwsVLBEdACds+mxapIYxIbI6AH4AsOpxfrpvHts3PCYDbopy1XPW1g==} + '@apollo/server-gateway-interface@2.0.0': + resolution: {integrity: sha512-3HEMD6fSantG2My3jWkb9dvfkF9vJ4BDLRjMgsnD790VINtuPaEp+h3Hg9HOHiWkML6QsOhnaRqZ+gvhp3y8Nw==} + peerDependencies: + graphql: 14.x || 15.x || 16.x + + '@apollo/server@4.12.2': + resolution: {integrity: sha512-jKRlf+sBMMdKYrjMoiWKne42Eb6paBfDOr08KJnUaeaiyWFj+/040FjVPQI7YGLfdwnYIsl1NUUqS2UdgezJDg==} engines: {node: '>=14.16.0'} - deprecated: Apollo Server v4 is end-of-life since January 26, 2026. As long as you are already using a non-EOL version of Node.js, upgrading to v5 should take only a few minutes. See https://www.apollographql.com/docs/apollo-server/previous-versions for details. + deprecated: Apollo Server v4 is deprecated and will transition to end-of-life on January 26, 2026. As long as you are already using a non-EOL version of Node.js, upgrading to v5 should take only a few minutes. See https://www.apollographql.com/docs/apollo-server/previous-versions for details. peerDependencies: - graphql: 16.12.0 + graphql: ^16.6.0 + + '@apollo/server@5.2.0': + resolution: {integrity: sha512-OEAl5bwVitkvVkmZlgWksSnQ10FUr6q2qJMdkexs83lsvOGmd/y81X5LoETmKZux8UiQsy/A/xzP00b8hTHH/w==} + engines: {node: '>=20'} + peerDependencies: + graphql: ^16.11.0 '@apollo/usage-reporting-protobuf@4.1.1': resolution: {integrity: sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA==} @@ -24393,26 +24100,38 @@ packages: resolution: {integrity: sha512-UkS3xqnVFLZ3JFpEmU/2cM2iKJotQXMoSTgxXsfQgXLC5gR1WaepoXagmYnPSA7Q/2cmnyTYK5OgAgoC4RULPg==} engines: {node: '>=14'} + '@apollo/utils.createhash@3.0.1': + resolution: {integrity: sha512-CKrlySj4eQYftBE5MJ8IzKwIibQnftDT7yGfsJy5KSEEnLlPASX0UTpbKqkjlVEwPPd4mEwI7WOM7XNxEuO05A==} + engines: {node: '>=16'} + '@apollo/utils.dropunuseddefinitions@1.1.0': resolution: {integrity: sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==} engines: {node: '>=12.13.0'} peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x '@apollo/utils.dropunuseddefinitions@2.0.1': resolution: {integrity: sha512-EsPIBqsSt2BwDsv8Wu76LK5R1KtsVkNoO4b0M5aK0hx+dGg9xJXuqlr7Fo34Dl+y83jmzn+UvEW+t1/GP2melA==} engines: {node: '>=14'} peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x '@apollo/utils.fetcher@2.0.1': resolution: {integrity: sha512-jvvon885hEyWXd4H6zpWeN3tl88QcWnHp5gWF5OPF34uhvoR+DFqcNxs9vrRaBBSY3qda3Qe0bdud7tz2zGx1A==} engines: {node: '>=14'} + '@apollo/utils.fetcher@3.1.0': + resolution: {integrity: sha512-Z3QAyrsQkvrdTuHAFwWDNd+0l50guwoQUoaDQssLOjkmnmVuvXlJykqlEJolio+4rFwBnWdoY1ByFdKaQEcm7A==} + engines: {node: '>=16'} + '@apollo/utils.isnodelike@2.0.1': resolution: {integrity: sha512-w41XyepR+jBEuVpoRM715N2ZD0xMD413UiJx8w5xnAZD2ZkSJnMJBoIzauK83kJpSgNuR6ywbV29jG9NmxjK0Q==} engines: {node: '>=14'} + '@apollo/utils.isnodelike@3.0.0': + resolution: {integrity: sha512-xrjyjfkzunZ0DeF6xkHaK5IKR8F1FBq6qV+uZ+h9worIF/2YSzA0uoBxGv6tbTeo9QoIQnRW4PVFzGix5E7n/g==} + engines: {node: '>=16'} + '@apollo/utils.keyvaluecache@1.0.2': resolution: {integrity: sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==} @@ -24420,6 +24139,10 @@ packages: resolution: {integrity: sha512-qVo5PvUUMD8oB9oYvq4ViCjYAMWnZ5zZwEjNF37L2m1u528x5mueMlU+Cr1UinupCgdB78g+egA1G98rbJ03Vw==} engines: {node: '>=14'} + '@apollo/utils.keyvaluecache@4.0.0': + resolution: {integrity: sha512-mKw1myRUkQsGPNB+9bglAuhviodJ2L2MRYLTafCMw5BIo7nbvCPNCkLnIHjZ1NOzH7SnMAr5c9LmXiqsgYqLZw==} + engines: {node: '>=20'} + '@apollo/utils.logger@1.0.1': resolution: {integrity: sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==} @@ -24427,75 +24150,83 @@ packages: resolution: {integrity: sha512-YuplwLHaHf1oviidB7MxnCXAdHp3IqYV8n0momZ3JfLniae92eYqMIx+j5qJFX6WKJPs6q7bczmV4lXIsTu5Pg==} engines: {node: '>=14'} + '@apollo/utils.logger@3.0.0': + resolution: {integrity: sha512-M8V8JOTH0F2qEi+ktPfw4RL7MvUycDfKp7aEap2eWXfL5SqWHN6jTLbj5f5fj1cceHpyaUSOZlvlaaryaxZAmg==} + engines: {node: '>=16'} + '@apollo/utils.printwithreducedwhitespace@1.1.0': resolution: {integrity: sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==} engines: {node: '>=12.13.0'} peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x '@apollo/utils.printwithreducedwhitespace@2.0.1': resolution: {integrity: sha512-9M4LUXV/fQBh8vZWlLvb/HyyhjJ77/I5ZKu+NBWV/BmYGyRmoEP9EVAy7LCVoY3t8BDcyCAGfxJaLFCSuQkPUg==} engines: {node: '>=14'} peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x '@apollo/utils.removealiases@1.0.0': resolution: {integrity: sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==} engines: {node: '>=12.13.0'} peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x '@apollo/utils.removealiases@2.0.1': resolution: {integrity: sha512-0joRc2HBO4u594Op1nev+mUF6yRnxoUH64xw8x3bX7n8QBDYdeYgY4tF0vJReTy+zdn2xv6fMsquATSgC722FA==} engines: {node: '>=14'} peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x '@apollo/utils.sortast@1.1.0': resolution: {integrity: sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==} engines: {node: '>=12.13.0'} peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x '@apollo/utils.sortast@2.0.1': resolution: {integrity: sha512-eciIavsWpJ09za1pn37wpsCGrQNXUhM0TktnZmHwO+Zy9O4fu/WdB4+5BvVhFiZYOXvfjzJUcc+hsIV8RUOtMw==} engines: {node: '>=14'} peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x '@apollo/utils.stripsensitiveliterals@1.2.0': resolution: {integrity: sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==} engines: {node: '>=12.13.0'} peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x '@apollo/utils.stripsensitiveliterals@2.0.1': resolution: {integrity: sha512-QJs7HtzXS/JIPMKWimFnUMK7VjkGQTzqD9bKD1h3iuPAqLsxd0mUNVbkYOPTsDhUKgcvUOfOqOJWYohAKMvcSA==} engines: {node: '>=14'} peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x '@apollo/utils.usagereporting@1.0.1': resolution: {integrity: sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==} engines: {node: '>=12.13.0'} peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x '@apollo/utils.usagereporting@2.1.0': resolution: {integrity: sha512-LPSlBrn+S17oBy5eWkrRSGb98sWmnEzo3DPTZgp8IQc8sJe0prDgDuppGq4NeQlpoqEHz0hQeYHAOA0Z3aQsxQ==} engines: {node: '>=14'} peerDependencies: - graphql: 16.12.0 + graphql: 14.x || 15.x || 16.x '@apollo/utils.withrequired@2.0.1': resolution: {integrity: sha512-YBDiuAX9i1lLc6GeTy1m7DGLFn/gMnvXqlalOIMjM7DeOgIacEjjfwPqb0M1CQ2v11HhR15d1NmxJoRCfrNqcA==} engines: {node: '>=14'} + '@apollo/utils.withrequired@3.0.0': + resolution: {integrity: sha512-aaxeavfJ+RHboh7c2ofO5HHtQobGX4AgUujXP4CXpREHp9fQ9jPi6K9T1jrAKe7HIipoP0OJ1gd6JamSkFIpvA==} + engines: {node: '>=16'} + '@apollographql/apollo-tools@0.5.4': resolution: {integrity: sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==} engines: {node: '>=8', npm: '>=6'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.2.1 || ^15.0.0 || ^16.0.0 '@apollographql/graphql-playground-html@1.6.27': resolution: {integrity: sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==} @@ -24507,7 +24238,7 @@ packages: resolution: {integrity: sha512-lHAj/PUegYu02zza9Pg0bQQYH5I0ah1nyIzu2YIqOv41P0vu3GCBISAmQCfFHThK7N3dy7dLFPhoKcXlXRLPoQ==} engines: {node: '>=8.5'} peerDependencies: - graphql: 16.12.0 + graphql: 0.13.1 - 15 '@arcgis/core@4.34.8': resolution: {integrity: sha512-UrEBTjXpSA9fhmmnAENBzz9GG81xALTezQFMXUs2iMB+tiOckmJyBbhATI/W4lIQyUfNEK7Zm/46EP2PhDga/A==} @@ -24528,13 +24259,13 @@ packages: resolution: {integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==} hasBin: true peerDependencies: - graphql: 16.12.0 + graphql: '*' '@ardatan/relay-compiler@12.0.3': resolution: {integrity: sha512-mBDFOGvAoVlWaWqs3hm1AciGHSQE1rqFc/liZTyYz/Oek9yZdT5H26pH2zAFuEiTiBVPPyMuqf5VjOFPI2DGsQ==} hasBin: true peerDependencies: - graphql: 16.12.0 + graphql: '*' '@ardatan/sync-fetch@0.0.1': resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} @@ -24562,6 +24293,9 @@ packages: '@asamuzakjp/nwsapi@2.3.9': resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} + '@asyncapi/specs@6.10.0': + resolution: {integrity: sha512-vB5oKLsdrLUORIZ5BXortZTlVyGWWMC1Nud/0LtgxQ3Yn2738HigAD6EVqScvpPsDUI/bcLVsYEXN4dtXQHVng==} + '@aws-crypto/crc32@5.2.0': resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} engines: {node: '>=16.0.0'} @@ -24605,6 +24339,10 @@ packages: resolution: {integrity: sha512-R3G5cxf3fsL0CEcTbY1VkSwU1FJtImrhA5I9Eepd8nEO6isZ6C99qVKZtDG9eG7qVNK6zTzUigXac/GFrn6hYA==} engines: {node: '>=18.0.0'} + '@aws-sdk/client-ec2@3.958.0': + resolution: {integrity: sha512-wLVg+QPCpH7Mu04ChqZ2iYOgXvjFzCe84iHdvtpcOj15Opq0z37tajIAQ47vUZpY//hTOy22/0TjQDHdZNitbg==} + engines: {node: '>=18.0.0'} + '@aws-sdk/client-ec2@3.979.0': resolution: {integrity: sha512-Oq11z+5MIy1y0R0+k451D5M1fLqcZcN8IP3HsbZcLIaRdiTZcNPY1mbfh+JvEN145Pilif+XBEaAOyWfy3siow==} engines: {node: '>=20.0.0'} @@ -24629,9 +24367,13 @@ packages: resolution: {integrity: sha512-RxKi5cdssLtFpI2lJqU6VI0YjIH+ZIFejPGW2JmVM/AOnJwKycewqx6PGt5OMr/HvINI93RfWS927P0SY4aeQw==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-s3@3.1004.0': - resolution: {integrity: sha512-m0zNfpsona9jQdX1cHtHArOiuvSGZPsgp/KRZS2YjJhKah96G2UN3UNGZQ6aVjXIQjCY6UanCJo0uW9Xf2U41w==} - engines: {node: '>=20.0.0'} + '@aws-sdk/client-s3@3.958.0': + resolution: {integrity: sha512-ol8Sw37AToBWb6PjRuT/Wu40SrrZSA0N4F7U3yTkjUNX0lirfO1VFLZ0hZtZplVJv8GNPITbiczxQ8VjxESXxg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-s3@3.962.0': + resolution: {integrity: sha512-I2/1McBZCcM3PfM4ck8D6gnZR3K7+yl1fGkwTq/3ThEn9tdLjNwcdgTbPfxfX6LoecLrH9Ekoo+D9nmQ0T261w==} + engines: {node: '>=18.0.0'} '@aws-sdk/client-s3@3.980.0': resolution: {integrity: sha512-ch8QqKehyn1WOYbd8LyDbWjv84Z9OEj9qUxz8q3IOCU3ftAVkVR0wAuN96a1xCHnpOJcQZo3rOB08RlyKdkGxQ==} @@ -24661,6 +24403,10 @@ packages: resolution: {integrity: sha512-6qNCIeaMzKzfqasy2nNRuYnMuaMebCcCPP4J2CVGkA8QYMbIVKPlkn9bpB20Vxe6H/r3jtCCLQaOJjVTx/6dXg==} engines: {node: '>=18.0.0'} + '@aws-sdk/client-sso@3.975.0': + resolution: {integrity: sha512-HpgJuleH7P6uILxzJKQOmlHdwaCY+xYC6VgRDzlwVEqU/HXjo4m2gOAyjUbpXlBOCWfGgMUzfBlNJ9z3MboqEQ==} + engines: {node: '>=20.0.0'} + '@aws-sdk/client-sso@3.980.0': resolution: {integrity: sha512-AhNXQaJ46C1I+lQ+6Kj+L24il5K9lqqIanJd8lMszPmP7bLnmX0wTKK0dxywcvrLdij3zhWttjAKEBNgLtS8/A==} engines: {node: '>=20.0.0'} @@ -24673,28 +24419,28 @@ packages: resolution: {integrity: sha512-DrZgDnF1lQZv75a52nFWs6MExihJF2GZB6ETZRqr6jMwhrk2kbJPUtvgbifwcL7AYmVqHQDJBrR/MqkwwFCpiw==} engines: {node: '>=18.0.0'} - '@aws-sdk/core@3.973.18': - resolution: {integrity: sha512-GUIlegfcK2LO1J2Y98sCJy63rQSiLiDOgVw7HiHPRqfI2vb3XozTVqemwO0VSGXp54ngCnAQz0Lf0YPCBINNxA==} + '@aws-sdk/core@3.973.4': + resolution: {integrity: sha512-8Rk+kPP74YiR47x54bxYlKZswsaSh0a4XvvRUMLvyS/koNawhsGu/+qSZxREqUeTO+GkKpFvSQIsAZR+deUP+g==} engines: {node: '>=20.0.0'} '@aws-sdk/core@3.973.5': resolution: {integrity: sha512-IMM7xGfLGW6lMvubsA4j6BHU5FPgGAxoQ/NA63KqNLMwTS+PeMBcx8DPHL12Vg6yqOZnqok9Mu4H2BdQyq7gSA==} engines: {node: '>=20.0.0'} + '@aws-sdk/crc64-nvme@3.957.0': + resolution: {integrity: sha512-qSwSfI+qBU9HDsd6/4fM9faCxYJx2yDuHtj+NVOQ6XYDWQzFab/hUdwuKZ77Pi6goLF1pBZhJ2azaC2w7LbnTA==} + engines: {node: '>=18.0.0'} + '@aws-sdk/crc64-nvme@3.972.0': resolution: {integrity: sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw==} engines: {node: '>=20.0.0'} - '@aws-sdk/crc64-nvme@3.972.4': - resolution: {integrity: sha512-HKZIZLbRyvzo/bXZU7Zmk6XqU+1C9DjI56xd02vwuDIxedxBEqP17t9ExhbP9QFeNq/a3l9GOcyirFXxmbDhmw==} - engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.957.0': resolution: {integrity: sha512-475mkhGaWCr+Z52fOOVb/q2VHuNvqEDixlYIkeaO6xJ6t9qR0wpLt4hOQaR6zR1wfZV0SlE7d8RErdYq/PByog==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-env@3.972.16': - resolution: {integrity: sha512-HrdtnadvTGAQUr18sPzGlE5El3ICphnH6SU7UQOMOWFgRKbTRNN8msTxM4emzguUso9CzaHU2xy5ctSrmK5YNA==} + '@aws-sdk/credential-provider-env@3.972.2': + resolution: {integrity: sha512-wzH1EdrZsytG1xN9UHaK12J9+kfrnd2+c8y0LVoS4O4laEjPoie1qVK3k8/rZe7KOtvULzyMnO3FT4Krr9Z0Dg==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-env@3.972.3': @@ -24705,8 +24451,8 @@ packages: resolution: {integrity: sha512-8dS55QHRxXgJlHkEYaCGZIhieCs9NU1HU1BcqQ4RfUdSsfRdxxktqUKgCnBnOOn0oD3PPA8cQOCAVgIyRb3Rfw==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-http@3.972.18': - resolution: {integrity: sha512-NyB6smuZAixND5jZumkpkunQ0voc4Mwgkd+SZ6cvAzIB7gK8HV8Zd4rS8Kn5MmoGgusyNfVGG+RLoYc4yFiw+A==} + '@aws-sdk/credential-provider-http@3.972.4': + resolution: {integrity: sha512-OC7F3ipXV12QfDEWybQGHLzoeHBlAdx/nLzPfHP0Wsabu3JBffu5nlzSaJNf7to9HGtOW8Bpu8NX0ugmDrCbtw==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-http@3.972.5': @@ -24717,8 +24463,12 @@ packages: resolution: {integrity: sha512-u7twvZa1/6GWmPBZs6DbjlegCoNzNjBsMS/6fvh5quByYrcJr/uLd8YEr7S3UIq4kR/gSnHqcae7y2nL2bqZdg==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-ini@3.972.17': - resolution: {integrity: sha512-dFqh7nfX43B8dO1aPQHOcjC0SnCJ83H3F+1LoCh3X1P7E7N09I+0/taID0asU6GCddfDExqnEvQtDdkuMe5tKQ==} + '@aws-sdk/credential-provider-ini@3.962.0': + resolution: {integrity: sha512-h0kVnXLW2d3nxbcrR/Pfg3W/+YoCguasWz7/3nYzVqmdKarGrpJzaFdoZtLgvDSZ8VgWUC4lWOTcsDMV0UNqUQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-ini@3.972.2': + resolution: {integrity: sha512-Jrb8sLm6k8+L7520irBrvCtdLxNtrG7arIxe9TCeMJt/HxqMGJdbIjw8wILzkEHLMIi4MecF2FbXCln7OT1Tag==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-ini@3.972.3': @@ -24729,8 +24479,12 @@ packages: resolution: {integrity: sha512-sDwtDnBSszUIbzbOORGh5gmXGl9aK25+BHb4gb1aVlqB+nNL2+IUEJA62+CE55lXSH8qXF90paivjK8tOHTwPA==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-login@3.972.17': - resolution: {integrity: sha512-gf2E5b7LpKb+JX2oQsRIDxdRZjBFZt2olCGlWCdb3vBERbXIPgm2t1R5mEnwd4j0UEO/Tbg5zN2KJbHXttJqwA==} + '@aws-sdk/credential-provider-login@3.962.0': + resolution: {integrity: sha512-kHYH6Av2UifG3mPkpPUNRh/PuX6adaAcpmsclJdHdxlixMCRdh8GNeEihq480DC0GmfqdpoSf1w2CLmLLPIS6w==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-login@3.972.2': + resolution: {integrity: sha512-mlaw2aiI3DrimW85ZMn3g7qrtHueidS58IGytZ+mbFpsYLK5wMjCAKZQtt7VatLMtSBG/dn/EY4njbnYXIDKeQ==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-login@3.972.3': @@ -24741,8 +24495,12 @@ packages: resolution: {integrity: sha512-vdoZbNG2dt66I7EpN3fKCzi6fp9xjIiwEA/vVVgqO4wXCGw8rKPIdDUus4e13VvTr330uQs2W0UNg/7AgtquEQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-node@3.972.18': - resolution: {integrity: sha512-ZDJa2gd1xiPg/nBDGhUlat02O8obaDEnICBAVS8qieZ0+nDfaB0Z3ec6gjZj27OqFTjnB/Q5a0GwQwb7rMVViw==} + '@aws-sdk/credential-provider-node@3.962.0': + resolution: {integrity: sha512-CS78NsWRxLa+nWqeWBEYMZTLacMFIXs1C5WJuM9kD05LLiWL32ksljoPsvNN24Bc7rCSQIIMx/U3KGvkDVZMVg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-node@3.972.3': + resolution: {integrity: sha512-iu+JwWHM7tHowKqE+8wNmI3sM6mPEiI9Egscz2BEV7adyKmV95oR9tBO4VIOl72FGDi7X9mXg19VtqIpSkEEsA==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-node@3.972.4': @@ -24753,8 +24511,8 @@ packages: resolution: {integrity: sha512-/KIz9kadwbeLy6SKvT79W81Y+hb/8LMDyeloA2zhouE28hmne+hLn0wNCQXAAupFFlYOAtZR2NTBs7HBAReJlg==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-process@3.972.16': - resolution: {integrity: sha512-n89ibATwnLEg0ZdZmUds5bq8AfBAdoYEDpqP3uzPLaRuGelsKlIvCYSNNvfgGLi8NaHPNNhs1HjJZYbqkW9b+g==} + '@aws-sdk/credential-provider-process@3.972.2': + resolution: {integrity: sha512-NLKLTT7jnUe9GpQAVkPTJO+cs2FjlQDt5fArIYS7h/Iw/CvamzgGYGFRVD2SE05nOHCMwafUSi42If8esGFV+g==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-process@3.972.3': @@ -24765,8 +24523,8 @@ packages: resolution: {integrity: sha512-CBYHJ5ufp8HC4q+o7IJejCUctJXWaksgpmoFpXerbjAso7/Fg7LLUu9inXVOxlHKLlvYekDXjIUBXDJS2WYdgg==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-sso@3.972.17': - resolution: {integrity: sha512-wGtte+48xnhnhHMl/MsxzacBPs5A+7JJedjiP452IkHY7vsbYKcvQBqFye8LwdTJVeHtBHv+JFeTscnwepoWGg==} + '@aws-sdk/credential-provider-sso@3.972.2': + resolution: {integrity: sha512-YpwDn8g3gCGUl61cCV0sRxP2pFIwg+ZsMfWQ/GalSyjXtRkctCMFA+u0yPb/Q4uTfNEiya1Y4nm0C5rIHyPW5Q==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-sso@3.972.3': @@ -24777,8 +24535,8 @@ packages: resolution: {integrity: sha512-dgnvwjMq5Y66WozzUzxNkCFap+umHUtqMMKlr8z/vl9NYMLem/WUbWNpFFOVFWquXikc+ewtpBMR4KEDXfZ+KA==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.17': - resolution: {integrity: sha512-8aiVJh6fTdl8gcyL+sVNcNwTtWpmoFa1Sh7xlj6Z7L/cZ/tYMEBHq44wTYG8Kt0z/PpGNopD89nbj3FHl9QmTA==} + '@aws-sdk/credential-provider-web-identity@3.972.2': + resolution: {integrity: sha512-x9DAiN9Qz+NjJ99ltDiVQ8d511M/tuF/9MFbe2jUgo7HZhD6+x4S3iT1YcP07ndwDUjmzKGmeOEgE24k4qvfdg==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-web-identity@3.972.3': @@ -24799,20 +24557,26 @@ packages: resolution: {integrity: sha512-X3e/PBEl66efNCRR840IU2HM4oLMaP/Krc1w7vEqgKKhIbyiLRJ43NSrxNEYadQ19P/U0U7JHMCC9HbwhIMTeg==} engines: {node: '>=18.0.0'} + '@aws-sdk/lib-storage@3.958.0': + resolution: {integrity: sha512-cd8CTiJ165ep2DKTc2PHHhVCxDn3byv10BXMGn+lkDY3KwMoatcgZ1uhFWCBuJvsCUnSExqGouJN/Q0qgjkWtg==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@aws-sdk/client-s3': ^3.958.0 + '@aws-sdk/lib-storage@3.980.0': resolution: {integrity: sha512-cR9rKtiBmkxCuuZV9bjNEz2xYEOqkvLBfV8HtuSmFqu2RogOyY5sAG9kua6N/qrVGNATM7QjFbtmHUBCjJtqnA==} engines: {node: '>=20.0.0'} peerDependencies: '@aws-sdk/client-s3': 3.980.0 + '@aws-sdk/middleware-bucket-endpoint@3.957.0': + resolution: {integrity: sha512-iczcn/QRIBSpvsdAS/rbzmoBpleX1JBjXvCynMbDceVLBIcVrwT1hXECrhtIC2cjh4HaLo9ClAbiOiWuqt+6MA==} + engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-bucket-endpoint@3.972.3': resolution: {integrity: sha512-fmbgWYirF67YF1GfD7cg5N6HHQ96EyRNx/rDIrTF277/zTWVuPI2qS/ZHgofwR1NZPe/NWvoppflQY01LrbVLg==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-bucket-endpoint@3.972.7': - resolution: {integrity: sha512-goX+axlJ6PQlRnzE2bQisZ8wVrlm6dXJfBzMJhd8LhAIBan/w1Kl73fJnalM/S+18VnpzIHumyV6DtgmvqG5IA==} - engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-endpoint-discovery@3.957.0': resolution: {integrity: sha512-MJjlw4mVJNTyR5dW6wpzKLRzFPIYAMA8qUWqgG4hGscmm4GFHvWVJ9mhhdpDu7Ie4Uaikmzfy0C4xzZ+lkf1+w==} engines: {node: '>=18.0.0'} @@ -24821,65 +24585,69 @@ packages: resolution: {integrity: sha512-zFAx12yGEJcf35cnlv4zepqxZA0Z3orrhQdN7mjzvbHQGqDX+7gAnKEyTEsYdCD5ICZHuHxvhEnfE+pVIx0e7A==} engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-expect-continue@3.957.0': + resolution: {integrity: sha512-AlbK3OeVNwZZil0wlClgeI/ISlOt/SPUxBsIns876IFaVu/Pj3DgImnYhpcJuFRek4r4XM51xzIaGQXM6GDHGg==} + engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-expect-continue@3.972.3': resolution: {integrity: sha512-4msC33RZsXQpUKR5QR4HnvBSNCPLGHmB55oDiROqqgyOc+TOfVu2xgi5goA7ms6MdZLeEh2905UfWMnMMF4mRg==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-expect-continue@3.972.7': - resolution: {integrity: sha512-mvWqvm61bmZUKmmrtl2uWbokqpenY3Mc3Jf4nXB/Hse6gWxLPaCQThmhPBDzsPSV8/Odn8V6ovWt3pZ7vy4BFQ==} - engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-flexible-checksums@3.957.0': + resolution: {integrity: sha512-iJpeVR5V8se1hl2pt+k8bF/e9JO4KWgPCMjg8BtRspNtKIUGy7j6msYvbDixaKZaF2Veg9+HoYcOhwnZumjXSA==} + engines: {node: '>=18.0.0'} '@aws-sdk/middleware-flexible-checksums@3.972.3': resolution: {integrity: sha512-MkNGJ6qB9kpsLwL18kC/ZXppsJbftHVGCisqpEVbTQsum8CLYDX1Bmp/IvhRGNxsqCO2w9/4PwhDKBjG3Uvr4Q==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.973.4': - resolution: {integrity: sha512-7CH2jcGmkvkHc5Buz9IGbdjq1729AAlgYJiAvGq7qhCHqYleCsriWdSnmsqWTwdAfXHMT+pkxX3w6v5tJNcSug==} - engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-host-header@3.957.0': resolution: {integrity: sha512-BBgKawVyfQZglEkNTuBBdC3azlyqNXsvvN4jPkWAiNYcY0x1BasaJFl+7u/HisfULstryweJq/dAvIZIxzlZaA==} engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-host-header@3.972.2': + resolution: {integrity: sha512-42hZ8jEXT2uR6YybCzNq9OomqHPw43YIfRfz17biZjMQA4jKSQUaHIl6VvqO2Ddl5904pXg2Yd/ku78S0Ikgog==} + engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-host-header@3.972.3': resolution: {integrity: sha512-aknPTb2M+G3s+0qLCx4Li/qGZH8IIYjugHMv15JTYMe6mgZO8VBpYgeGYsNMGCqCZOcWzuf900jFBG5bopfzmA==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-host-header@3.972.7': - resolution: {integrity: sha512-aHQZgztBFEpDU1BB00VWCIIm85JjGjQW1OG9+98BdmaOpguJvzmXBGbnAiYcciCd+IS4e9BEq664lhzGnWJHgQ==} - engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-location-constraint@3.957.0': + resolution: {integrity: sha512-y8/W7TOQpmDJg/fPYlqAhwA4+I15LrS7TwgUEoxogtkD8gfur9wFMRLT8LCyc9o4NMEcAnK50hSb4+wB0qv6tQ==} + engines: {node: '>=18.0.0'} '@aws-sdk/middleware-location-constraint@3.972.3': resolution: {integrity: sha512-nIg64CVrsXp67vbK0U1/Is8rik3huS3QkRHn2DRDx4NldrEFMgdkZGI/+cZMKD9k4YOS110Dfu21KZLHrFA/1g==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-location-constraint@3.972.7': - resolution: {integrity: sha512-vdK1LJfffBp87Lj0Bw3WdK1rJk9OLDYdQpqoKgmpIZPe+4+HawZ6THTbvjhJt4C4MNnRrHTKHQjkwBiIpDBoig==} - engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-logger@3.957.0': resolution: {integrity: sha512-w1qfKrSKHf9b5a8O76yQ1t69u6NWuBjr5kBX+jRWFx/5mu6RLpqERXRpVJxfosbep7k3B+DSB5tZMZ82GKcJtQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-logger@3.972.3': - resolution: {integrity: sha512-Ftg09xNNRqaz9QNzlfdQWfpqMCJbsQdnZVJP55jfhbKi1+FTWxGuvfPoBhDHIovqWKjqbuiew3HuhxbJ0+OjgA==} + '@aws-sdk/middleware-logger@3.972.2': + resolution: {integrity: sha512-iUzdXKOgi4JVDDEG/VvoNw50FryRCEm0qAudw12DcZoiNJWl0rN6SYVLcL1xwugMfQncCXieK5UBlG6mhH7iYA==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-logger@3.972.7': - resolution: {integrity: sha512-LXhiWlWb26txCU1vcI9PneESSeRp/RYY/McuM4SpdrimQR5NgwaPb4VJCadVeuGWgh6QmqZ6rAKSoL1ob16W6w==} + '@aws-sdk/middleware-logger@3.972.3': + resolution: {integrity: sha512-Ftg09xNNRqaz9QNzlfdQWfpqMCJbsQdnZVJP55jfhbKi1+FTWxGuvfPoBhDHIovqWKjqbuiew3HuhxbJ0+OjgA==} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-recursion-detection@3.957.0': resolution: {integrity: sha512-D2H/WoxhAZNYX+IjkKTdOhOkWQaK0jjJrDBj56hKjU5c9ltQiaX/1PqJ4dfjHntEshJfu0w+E6XJ+/6A6ILBBA==} engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-recursion-detection@3.972.2': + resolution: {integrity: sha512-/mzlyzJDtngNFd/rAYvqx29a2d0VuiYKN84Y/Mu9mGw7cfMOCyRK+896tb9wV6MoPRHUX7IXuKCIL8nzz2Pz5A==} + engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-recursion-detection@3.972.3': resolution: {integrity: sha512-PY57QhzNuXHnwbJgbWYTrqIDHYSeOlhfYERTAuc16LKZpTZRJUjzBFokp9hF7u1fuGeE3D70ERXzdbMBOqQz7Q==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-recursion-detection@3.972.7': - resolution: {integrity: sha512-l2VQdcBcYLzIzykCHtXlbpiVCZ94/xniLIkAj0jpnpjY4xlgZx7f56Ypn+uV1y3gG0tNVytJqo3K9bfMFee7SQ==} - engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-sdk-ec2@3.957.0': + resolution: {integrity: sha512-e5vefUeeVkF66HW++z4hqNtibvxQJy76c7076QnXpJRR3nkd/OLI2YVZsnwREh9h4Mtsz+8ludl4WjoTC0MZdg==} + engines: {node: '>=18.0.0'} '@aws-sdk/middleware-sdk-ec2@3.972.4': resolution: {integrity: sha512-oa6ClwROLOmTOVxbeURgGFctQuaGaC5IMEkMMa1bqKrjodTI1bwXWMAXNm36I4EctDZSwTUyOJdUHz0wtZBC9g==} @@ -24893,10 +24661,6 @@ packages: resolution: {integrity: sha512-5B2qY2nR2LYpxoQP0xUum5A1UNvH2JQpLHDH1nWFNF/XetV7ipFHksMxPNhtJJ6ARaWhQIDXfOUj0jcnkJxXUg==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-sdk-s3@3.972.18': - resolution: {integrity: sha512-5E3XxaElrdyk6ZJ0TjH7Qm6ios4b/qQCiLr6oQ8NK7e4Kn6JBTJCaYioQCQ65BpZ1+l1mK5wTAac2+pEz0Smpw==} - engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-s3@3.972.5': resolution: {integrity: sha512-3IgeIDiQ15tmMBFIdJ1cTy3A9rXHGo+b9p22V38vA3MozeMyVC8VmCYdDLA0iMWo4VHA9LDJTgCM0+xU3wjBOg==} engines: {node: '>=20.0.0'} @@ -24905,20 +24669,20 @@ packages: resolution: {integrity: sha512-3A1V2oSV/NzWukwDBwnf/ng+n+8zU32jRml0lbYiP9PzBgc6D6Y4Z/RCbPp7g+PO8XrCRrZg6QKspO3cLpGnOw==} engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-ssec@3.957.0': + resolution: {integrity: sha512-qwkmrK0lizdjNt5qxl4tHYfASh8DFpHXM1iDVo+qHe+zuslfMqQEGRkzxS8tJq/I+8F0c6v3IKOveKJAfIvfqQ==} + engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-ssec@3.972.3': resolution: {integrity: sha512-dU6kDuULN3o3jEHcjm0c4zWJlY1zWVkjG9NPe9qxYLLpcbdj5kRYBS2DdWYD+1B9f910DezRuws7xDEqKkHQIg==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-ssec@3.972.7': - resolution: {integrity: sha512-G9clGVuAml7d8DYzY6DnRi7TIIDRvZ3YpqJPz/8wnWS5fYx/FNWNmkO6iJVlVkQg9BfeMzd+bVPtPJOvC4B+nQ==} - engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-user-agent@3.957.0': resolution: {integrity: sha512-50vcHu96XakQnIvlKJ1UoltrFODjsq2KvtTgHiPFteUS884lQnK5VC/8xd1Msz/1ONpLMzdCVproCQqhDTtMPQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-user-agent@3.972.19': - resolution: {integrity: sha512-Km90fcXt3W/iqujHzuM6IaDkYCj73gsYufcuWXApWdzoTy6KGk8fnchAjePMARU0xegIR3K4N3yIo1vy7OVe8A==} + '@aws-sdk/middleware-user-agent@3.972.4': + resolution: {integrity: sha512-6sU8jrSJvY/lqSnU6IYsa8SrCKwOZ4Enl6O4xVJo8RCq9Bdr5Giuw2eUaJAk9GPcpr4OFcmSFv3JOLhpKGeRZA==} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-user-agent@3.972.5': @@ -24928,30 +24692,29 @@ packages: '@aws-sdk/middleware-websocket@3.957.0': resolution: {integrity: sha512-/VyCEDTS56V2UZ+nNUDhZ9fuMgrKkO+9Od47umpgn9Mq7BZ7Cw9emJkvMSNNZAbtMeDaHN4lUYmmF8XhYgJOPQ==} engines: {node: '>= 14.0.0'} - deprecated: Please update your @aws-sdk client to a more recent version, such as https://github.com/aws/aws-sdk-js-v3/releases/tag/v3.982.0, if using browser-based WebSocket bidirectional streaming. '@aws-sdk/nested-clients@3.958.0': resolution: {integrity: sha512-/KuCcS8b5TpQXkYOrPLYytrgxBhv81+5pChkOlhegbeHttjM69pyUpQVJqyfDM/A7wPLnDrzCAnk4zaAOkY0Nw==} engines: {node: '>=18.0.0'} - '@aws-sdk/nested-clients@3.980.0': - resolution: {integrity: sha512-/dONY5xc5/CCKzOqHZCTidtAR4lJXWkGefXvTRKdSKMGaYbbKsxDckisd6GfnvPSLxWtvQzwgRGRutMRoYUApQ==} + '@aws-sdk/nested-clients@3.975.0': + resolution: {integrity: sha512-OkeFHPlQj2c/Y5bQGkX14pxhDWUGUFt3LRHhjcDKsSCw6lrxKcxN3WFZN0qbJwKNydP+knL5nxvfgKiCLpTLRA==} engines: {node: '>=20.0.0'} - '@aws-sdk/nested-clients@3.996.7': - resolution: {integrity: sha512-MlGWA8uPaOs5AiTZ5JLM4uuWDm9EEAnm9cqwvqQIc6kEgel/8s1BaOWm9QgUcfc9K8qd7KkC3n43yDbeXOA2tg==} + '@aws-sdk/nested-clients@3.980.0': + resolution: {integrity: sha512-/dONY5xc5/CCKzOqHZCTidtAR4lJXWkGefXvTRKdSKMGaYbbKsxDckisd6GfnvPSLxWtvQzwgRGRutMRoYUApQ==} engines: {node: '>=20.0.0'} '@aws-sdk/region-config-resolver@3.957.0': resolution: {integrity: sha512-V8iY3blh8l2iaOqXWW88HbkY5jDoWjH56jonprG/cpyqqCnprvpMUZWPWYJoI8rHRf2bqzZeql1slxG6EnKI7A==} engines: {node: '>=18.0.0'} - '@aws-sdk/region-config-resolver@3.972.3': - resolution: {integrity: sha512-v4J8qYAWfOMcZ4MJUyatntOicTzEMaU7j3OpkRCGGFSL2NgXQ5VbxauIyORA+pxdKZ0qQG2tCQjQjZDlXEC3Ow==} + '@aws-sdk/region-config-resolver@3.972.2': + resolution: {integrity: sha512-/7vRBsfmiOlg2X67EdKrzzQGw5/SbkXb7ALHQmlQLkZh8qNgvS2G2dDC6NtF3hzFlpP3j2k+KIEtql/6VrI6JA==} engines: {node: '>=20.0.0'} - '@aws-sdk/region-config-resolver@3.972.7': - resolution: {integrity: sha512-/Ev/6AI8bvt4HAAptzSjThGUMjcWaX3GX8oERkB0F0F9x2dLSBdgFDiyrRz3i0u0ZFZFQ1b28is4QhyqXTUsVA==} + '@aws-sdk/region-config-resolver@3.972.3': + resolution: {integrity: sha512-v4J8qYAWfOMcZ4MJUyatntOicTzEMaU7j3OpkRCGGFSL2NgXQ5VbxauIyORA+pxdKZ0qQG2tCQjQjZDlXEC3Ow==} engines: {node: '>=20.0.0'} '@aws-sdk/s3-request-presigner@3.958.0': @@ -24966,18 +24729,14 @@ packages: resolution: {integrity: sha512-tO2jBj+ZIVM0nEgi1SyxWtaYGpuAJdsrugmWcI3/U2MPWCYsrvKasUo0026NvJJao38wyUq9B8XTG8Xu53j/VA==} engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.996.6': - resolution: {integrity: sha512-NnsOQsVmJXy4+IdPFUjRCWPn9qNH1TzS/f7MiWgXeoHs903tJpAWQWQtoFvLccyPoBgomKP9L89RRr2YsT/L0g==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/token-providers@3.1004.0': - resolution: {integrity: sha512-j9BwZZId9sFp+4GPhf6KrwO8Tben2sXibZA8D1vv2I1zBdvkUHcBA2g4pkqIpTRalMTLC0NPkBPX0gERxfy/iA==} - engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.958.0': resolution: {integrity: sha512-UCj7lQXODduD1myNJQkV+LYcGYJ9iiMggR8ow8Hva1g3A/Na5imNXzz6O67k7DAee0TYpy+gkNw+SizC6min8Q==} engines: {node: '>=18.0.0'} + '@aws-sdk/token-providers@3.975.0': + resolution: {integrity: sha512-AWQt64hkVbDQ+CmM09wnvSk2mVyH4iRROkmYkr3/lmUtFNbE2L/fnw26sckZnUcFCsHPqbkQrcsZAnTcBLbH4w==} + engines: {node: '>=20.0.0'} + '@aws-sdk/token-providers@3.980.0': resolution: {integrity: sha512-1nFileg1wAgDmieRoj9dOawgr2hhlh7xdvcH57b1NnqfPaVlcqVJyPc6k3TLDUFPY69eEwNxdGue/0wIz58vjA==} engines: {node: '>=20.0.0'} @@ -24994,10 +24753,6 @@ packages: resolution: {integrity: sha512-DwHBiMNOB468JiX6+i34c+THsKHErYUdNQ3HexeXZvVn4zouLjgaS4FejiGSi2HyBuzuyHg7SuOPmjSvoU9NRg==} engines: {node: '>=20.0.0'} - '@aws-sdk/types@3.973.5': - resolution: {integrity: sha512-hl7BGwDCWsjH8NkZfx+HgS7H2LyM2lTMAI7ba9c8O0KqdBLTdNJivsHpqjg9rNlAlPyREb6DeDRXUl0s8uFdmQ==} - engines: {node: '>=20.0.0'} - '@aws-sdk/util-arn-parser@3.957.0': resolution: {integrity: sha512-Aj6m+AyrhWyg8YQ4LDPg2/gIfGHCEcoQdBt5DeSFogN5k9mmJPOJ+IAmNSWmWRjpOxEy6eY813RNDI6qS97M0g==} engines: {node: '>=18.0.0'} @@ -25006,10 +24761,6 @@ packages: resolution: {integrity: sha512-VkykWbqMjlSgBFDyrY3nOSqupMc6ivXuGmvci6Q3NnLq5kC+mKQe2QBZ4nrWRE/jqOxeFP2uYzLtwncYYcvQDg==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-arn-parser@3.972.3': - resolution: {integrity: sha512-HzSD8PMFrvgi2Kserxuff5VitNq2sgf3w9qxmskKDiDTThWfVteJxuCS9JXiPIPtmCrp+7N9asfIaVhBFORllA==} - engines: {node: '>=20.0.0'} - '@aws-sdk/util-endpoints@3.957.0': resolution: {integrity: sha512-xwF9K24mZSxcxKS3UKQFeX/dPYkEps9wF1b+MGON7EvnbcucrJGyQyK1v1xFPn1aqXkBTFi+SZaMRx5E5YCVFw==} engines: {node: '>=18.0.0'} @@ -25022,10 +24773,6 @@ packages: resolution: {integrity: sha512-AjKBNEc+rjOZQE1HwcD9aCELqg1GmUj1rtICKuY8cgwB73xJ4U/kNyqKKpN2k9emGqlfDY2D8itIp/vDc6OKpw==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-endpoints@3.996.4': - resolution: {integrity: sha512-Hek90FBmd4joCFj+Vc98KLJh73Zqj3s2W56gjAcTkrNLMDI5nIFkG9YpfcJiVI1YlE2Ne1uOQNe+IgQ/Vz2XRA==} - engines: {node: '>=20.0.0'} - '@aws-sdk/util-format-url@3.957.0': resolution: {integrity: sha512-Yyo/tlc0iGFGTPPkuxub1uRAv6XrnVnvSNjslZh5jIYA8GZoeEFPgJa3Qdu0GUS/YwoK8GOLnnaL9h/eH5LDJQ==} engines: {node: '>=18.0.0'} @@ -25041,12 +24788,12 @@ packages: '@aws-sdk/util-user-agent-browser@3.957.0': resolution: {integrity: sha512-exueuwxef0lUJRnGaVkNSC674eAiWU07ORhxBnevFFZEKisln+09Qrtw823iyv5I1N8T+wKfh95xvtWQrNKNQw==} + '@aws-sdk/util-user-agent-browser@3.972.2': + resolution: {integrity: sha512-gz76bUyebPZRxIsBHJUd/v+yiyFzm9adHbr8NykP2nm+z/rFyvQneOHajrUejtmnc5tTBeaDPL4X25TnagRk4A==} + '@aws-sdk/util-user-agent-browser@3.972.3': resolution: {integrity: sha512-JurOwkRUcXD/5MTDBcqdyQ9eVedtAsZgw5rBwktsPTN7QtPiS2Ld1jkJepNgYoCufz1Wcut9iup7GJDoIHp8Fw==} - '@aws-sdk/util-user-agent-browser@3.972.7': - resolution: {integrity: sha512-7SJVuvhKhMF/BkNS1n0QAJYgvEwYbK2QLKBrzDiwQGiTRU6Yf1f3nehTzm/l21xdAOtWSfp2uWSddPnP2ZtsVw==} - '@aws-sdk/util-user-agent-node@3.957.0': resolution: {integrity: sha512-ycbYCwqXk4gJGp0Oxkzf2KBeeGBdTxz559D41NJP8FlzSej1Gh7Rk40Zo6AyTfsNWkrl/kVi1t937OIzC5t+9Q==} engines: {node: '>=18.0.0'} @@ -25056,8 +24803,8 @@ packages: aws-crt: optional: true - '@aws-sdk/util-user-agent-node@3.972.3': - resolution: {integrity: sha512-gqG+02/lXQtO0j3US6EVnxtwwoXQC5l2qkhLCrqUrqdtcQxV7FDMbm9wLjKqoronSHyELGTjbFKK/xV5q1bZNA==} + '@aws-sdk/util-user-agent-node@3.972.2': + resolution: {integrity: sha512-vnxOc4C6AR7hVbwyFo1YuH0GB6dgJlWt8nIOOJpnzJAWJPkUMPJ9Zv2lnKsSU7TTZbhP2hEO8OZ4PYH59XFv8Q==} engines: {node: '>=20.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -25065,8 +24812,8 @@ packages: aws-crt: optional: true - '@aws-sdk/util-user-agent-node@3.973.4': - resolution: {integrity: sha512-uqKeLqZ9D3nQjH7HGIERNXK9qnSpUK08l4MlJ5/NZqSSdeJsVANYp437EM9sEzwU28c2xfj2V6qlkqzsgtKs6Q==} + '@aws-sdk/util-user-agent-node@3.972.3': + resolution: {integrity: sha512-gqG+02/lXQtO0j3US6EVnxtwwoXQC5l2qkhLCrqUrqdtcQxV7FDMbm9wLjKqoronSHyELGTjbFKK/xV5q1bZNA==} engines: {node: '>=20.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -25078,14 +24825,14 @@ packages: resolution: {integrity: sha512-Ai5iiQqS8kJ5PjzMhWcLKN0G2yasAkvpnPlq2EnqlIMdB48HsizElt62qcktdxp4neRMyGkFq4NzgmDbXnhRiA==} engines: {node: '>=18.0.0'} - '@aws-sdk/xml-builder@3.972.10': - resolution: {integrity: sha512-OnejAIVD+CxzyAUrVic7lG+3QRltyja9LoNqCE/1YVs8ichoTbJlVSaZ9iSMcnHLyzrSNtvaOGjSDRP+d/ouFA==} - engines: {node: '>=20.0.0'} - '@aws-sdk/xml-builder@3.972.2': resolution: {integrity: sha512-jGOOV/bV1DhkkUhHiZ3/1GZ67cZyOXaDb7d1rYD6ZiXf5V9tBNOcgqXwRRPvrCbYaFRa1pPMFb3ZjqjWpR3YfA==} engines: {node: '>=20.0.0'} + '@aws/lambda-invoke-store@0.2.2': + resolution: {integrity: sha512-C0NBLsIqzDIae8HFw9YIrIBsbc0xTiOtt7fAukGPnqQ/+zZNaq+4jhuccltK0QuWHBnNm/a6kLIRA6GFiM10eg==} + engines: {node: '>=18.0.0'} + '@aws/lambda-invoke-store@0.2.3': resolution: {integrity: sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw==} engines: {node: '>=18.0.0'} @@ -25214,10 +24961,18 @@ packages: resolution: {integrity: sha512-eIOH1pqFwI6UmVNnDQvmFeSg0XppuzDLFeUNO/Xht7ODAzRLgGDh7h550pSxoA+lPDxBl1+D2m/KG3jWzCUjTg==} engines: {node: '>=20.0.0'} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + '@babel/code-frame@7.29.0': resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.28.5': + resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.29.0': resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} engines: {node: '>=6.9.0'} @@ -25245,6 +25000,10 @@ packages: resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.29.0': resolution: {integrity: sha512-vSH118/wwM/pLR38g/Sgk05sNtro6TlTJKuiMXDaZqPUfjTFcudpCOt00IhOfj+1BFAX+UFAlzCU+6WXr3GLFQ==} engines: {node: '>=6.9.0'} @@ -25253,10 +25012,20 @@ packages: resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.28.6': resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.28.5': + resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.28.6': resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} engines: {node: '>=6.9.0'} @@ -25286,10 +25055,20 @@ packages: resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.28.6': resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.28.6': resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} engines: {node: '>=6.9.0'} @@ -25300,6 +25079,10 @@ packages: resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.28.6': resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} engines: {node: '>=6.9.0'} @@ -25310,6 +25093,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.27.1': + resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.28.6': resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} engines: {node: '>=6.9.0'} @@ -25336,6 +25125,10 @@ packages: resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + engines: {node: '>=6.9.0'} + '@babel/helpers@7.28.6': resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} engines: {node: '>=6.9.0'} @@ -25345,6 +25138,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/parser@7.29.0': resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} engines: {node: '>=6.0.0'} @@ -25513,6 +25311,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.28.6': resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} engines: {node: '>=6.9.0'} @@ -25561,6 +25365,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.28.6': resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} engines: {node: '>=6.9.0'} @@ -25723,6 +25533,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-commonjs@7.27.1': + resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-commonjs@7.28.6': resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} engines: {node: '>=6.9.0'} @@ -25909,6 +25725,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.28.5': + resolution: {integrity: sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.28.6': resolution: {integrity: sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==} engines: {node: '>=6.9.0'} @@ -25984,10 +25806,22 @@ packages: resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + '@babel/template@7.28.6': resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.28.5': + resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.28.6': + resolution: {integrity: sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.29.0': resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} engines: {node: '>=6.9.0'} @@ -25996,6 +25830,10 @@ packages: resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + engines: {node: '>=6.9.0'} + '@babel/types@7.29.0': resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} @@ -26013,8 +25851,8 @@ packages: '@bkrem/react-transition-group@1.3.5': resolution: {integrity: sha512-lbBYhC42sxAeFEopxzd9oWdkkV0zirO5E9WyeOBxOrpXsf7m30Aj8vnbayZxFOwD9pvUQ2Pheb1gO79s0Qap3Q==} peerDependencies: - react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@borewit/text-codec@0.1.1': resolution: {integrity: sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==} @@ -26041,7 +25879,7 @@ packages: '@callstack/react-theme-provider@3.0.9': resolution: {integrity: sha512-tTQ0uDSCL0ypeMa8T/E9wAZRGKWj8kXP7+6RYgPTfOPs9N07C9xM8P02GJ3feETap4Ux5S69D9nteq9mEj86NA==} peerDependencies: - react: '>=16.3.0' + react: 19.2.1 '@carto/api-client@0.5.23': resolution: {integrity: sha512-LexUjRLO7MzFerbXznH7b7udLSOSitDF1KO2uzeMkNUeLN3sCt4s34GS0C+eAwao56wmxWvqHegUPDf1b0+zVQ==} @@ -26079,6 +25917,11 @@ packages: resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} + '@commander-js/extra-typings@14.0.0': + resolution: {integrity: sha512-hIn0ncNaJRLkZrxBIp5AsW/eXEHNKYQBh0aPdoUqNgD+Io3NIykQqpKFyKcuasZhicGaEZJX/JBSIkZ4e5x8Dg==} + peerDependencies: + commander: ~14.0.0 + '@commitlint/cli@19.8.1': resolution: {integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==} engines: {node: '>=v18'} @@ -26296,8 +26139,8 @@ packages: peerDependencies: '@deck.gl/core': ~9.2.0 '@deck.gl/widgets': ~9.2.0 - react: '>=16.3.0' - react-dom: '>=16.3.0' + react: 19.2.1 + react-dom: 19.2.1 '@deck.gl/widgets@9.2.5': resolution: {integrity: sha512-nzukGcyaVag6XRT8aP3A8Ul2bSdb/TyFmenbDNRhrYop0OdmDl9Bx0U9wZlVlY6vxpB3kssfBXAv+MTdRr2JfA==} @@ -26305,6 +26148,18 @@ packages: '@deck.gl/core': ~9.2.0 '@luma.gl/core': ~9.2.4 + '@definitelytyped/header-parser@0.2.22': + resolution: {integrity: sha512-zmsZ6cXHpGkPB99WUUKnc237I49RIvHHBW4FzBvBzLNxKPcpqZx505IqqlAYN11ve9wjhYSbPPCI5y+B1nLOfQ==} + engines: {node: '>=20.17.0'} + + '@definitelytyped/typescript-versions@0.1.10': + resolution: {integrity: sha512-4aBop464n0PUxrlzj1FpAfiNa5P5ENycB0K/Ho22Ay8xAGEGXUpLkaWtFsn2R+Jfn4ldd7lJqfqw0z29sAingQ==} + engines: {node: '>=20.17.0'} + + '@definitelytyped/utils@0.1.10': + resolution: {integrity: sha512-XCd8g2hhZmwytP+sO6AUYILcdfr8Wjwx8laqRpdxdhvg7a4T+eDNM7EuD/O9THFhWc39j/aH54rSSb93WI0gxQ==} + engines: {node: '>=20.17.0'} + '@derhuerst/http-basic@8.2.4': resolution: {integrity: sha512-F9rL9k9Xjf5blCz8HsJRO4diy111cayL2vkY2XE4r4t3n0yPXVYy3KD3nJ1qbrSn9743UWSXH4IwuCa/HWlGFw==} engines: {node: '>=6.0.0'} @@ -26400,7 +26255,7 @@ packages: resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} peerDependencies: '@types/react': '*' - react: '>=16.8.0' + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -26416,7 +26271,7 @@ packages: peerDependencies: '@emotion/react': ^11.0.0-rc.0 '@types/react': '*' - react: '>=16.8.0' + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -26427,7 +26282,7 @@ packages: '@emotion/use-insertion-effect-with-fallbacks@1.2.0': resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} peerDependencies: - react: '>=16.8.0' + react: 19.2.1 '@emotion/utils@1.4.2': resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} @@ -26606,6 +26461,12 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -26628,18 +26489,10 @@ packages: resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/eslintrc@3.3.3': resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@9.39.1': resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -26685,6 +26538,9 @@ packages: '@exodus/crypto': optional: true + '@exodus/schemasafe@1.3.0': + resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==} + '@faker-js/faker@8.4.1': resolution: {integrity: sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} @@ -26702,6 +26558,9 @@ packages: '@fastify/accept-negotiator@2.0.1': resolution: {integrity: sha512-/c/TW2bO/v9JeEgoD/g1G5GxGeCF1Hafdf79WPmUlgYiBXummY0oX3VVq4yFkKKVBKDNlaDUYoab7g38RpPqCQ==} + '@fastify/ajv-compiler@3.6.0': + resolution: {integrity: sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==} + '@fastify/ajv-compiler@4.0.5': resolution: {integrity: sha512-KoWKW+MhvfTRWL4qrhUwAAZoaChluo0m0vbiJlGMt2GXvL4LVPQEjt8kSpHI3IBq5Rez8fg+XeH3cneztq+C7A==} @@ -26730,12 +26589,21 @@ packages: '@fastify/deepmerge@3.1.0': resolution: {integrity: sha512-lCVONBQINyNhM6LLezB6+2afusgEYR4G8xenMsfe+AT+iZ7Ca6upM5Ha8UkZuYSnuMw3GWl/BiPXnLMi/gSxuQ==} + '@fastify/error@3.4.1': + resolution: {integrity: sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==} + '@fastify/error@4.2.0': resolution: {integrity: sha512-RSo3sVDXfHskiBZKBPRgnQTtIqpi/7zhJOEmAxCiBcM7d0uwdGdxLlsCaLzGs8v8NnxIRlfG0N51p5yFaOentQ==} + '@fastify/fast-json-stringify-compiler@4.3.0': + resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==} + '@fastify/fast-json-stringify-compiler@5.0.3': resolution: {integrity: sha512-uik7yYHkLr6fxd8hJSZ8c+xF4WafPK+XzneQDPU+D10r5X19GW8lJcom2YijX2+qtFF1ENJlHXKFM9ouXNJYgQ==} + '@fastify/formbody@7.4.0': + resolution: {integrity: sha512-H3C6h1GN56/SMrZS8N2vCT2cZr7mIHzBHzOBa5OPpjfB/D6FzP9mMpE02ZzrFX0ANeh0BAJdoXKOF2e7IbV+Og==} + '@fastify/forwarded@3.0.1': resolution: {integrity: sha512-JqDochHFqXs3C3Ml3gOY58zM7OqO9ENqPo0UqAjAjH8L01fRZqwX9iLeX34//kiJubF7r2ZQHtBRU36vONbLlw==} @@ -27009,44 +26877,50 @@ packages: '@floating-ui/core@0.7.3': resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==} + '@floating-ui/core@1.7.3': + resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} + '@floating-ui/core@1.7.4': resolution: {integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==} '@floating-ui/dom@0.5.4': resolution: {integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==} + '@floating-ui/dom@1.7.4': + resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} + '@floating-ui/dom@1.7.5': resolution: {integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==} '@floating-ui/react-dom@0.7.2': resolution: {integrity: sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react: 19.2.1 + react-dom: 19.2.1 '@floating-ui/react-dom@1.3.0': resolution: {integrity: sha512-htwHm67Ji5E/pROEAr7f8IKFShuiCKHwUC/UY4vC3I5jiSvGFAYnSYiZO5MlGmads+QqvUkR9ANHEguGrDv72g==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react: 19.2.1 + react-dom: 19.2.1 '@floating-ui/react-dom@2.1.6': resolution: {integrity: sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react: 19.2.1 + react-dom: 19.2.1 '@floating-ui/react@0.19.2': resolution: {integrity: sha512-JyNk4A0Ezirq8FlXECvRtQOX/iBe5Ize0W/pLkrZjfHW9GUV7Xnq6zm6fyZuQzaHHqEnVizmvlA96e1/CkZv+w==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react: 19.2.1 + react-dom: 19.2.1 '@floating-ui/react@0.26.28': resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react: 19.2.1 + react-dom: 19.2.1 '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} @@ -27096,6 +26970,9 @@ packages: '@gerrit0/mini-shiki@1.27.2': resolution: {integrity: sha512-GeWyHz8ao2gBiUW4OJnQDxXQnFgZQwwQk05t/CVVgNBN7/rK8XZ7xY6YhLVv9tH3VppWWmr9DCl3MwemB/i+Og==} + '@gerrit0/mini-shiki@3.20.0': + resolution: {integrity: sha512-Wa57i+bMpK6PGJZ1f2myxo3iO+K/kZikcyvH8NIqNNZhQUbDav7V9LQmWOXhf946mz5c1NZ19WMsGYiDKTryzQ==} + '@google-cloud/billing@5.1.1': resolution: {integrity: sha512-UDrWnXHk5rS/KHKhoi/IfJK2NwHQXha6VqUATEnyirwbJut5kdrxomJgF09ItHlyA7HqNHpmwoerUzQj8ZFFag==} engines: {node: '>=18'} @@ -27159,13 +27036,13 @@ packages: '@graphql-codegen/add@5.0.3': resolution: {integrity: sha512-SxXPmramkth8XtBlAHu4H4jYcYXM/o3p01+psU+0NADQowA8jtYkK6MW5rV6T+CxkEaNZItfSmZRPgIuypcqnA==} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/add@6.0.0': resolution: {integrity: sha512-biFdaURX0KTwEJPQ1wkT6BRgNasqgQ5KbCI1a3zwtLtO7XTo7/vKITPylmiU27K5DSOWYnY/1jfSqUAEBuhZrQ==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/cli@5.0.7': resolution: {integrity: sha512-h/sxYvSaWtxZxo8GtaA8SvcHTyViaaPd7dweF/hmRDpaQU1o3iU3EZxlcJ+oLTunU0tSMFsnrIXm/mhXxI11Cw==} @@ -27173,7 +27050,7 @@ packages: hasBin: true peerDependencies: '@parcel/watcher': ^2.1.0 - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 peerDependenciesMeta: '@parcel/watcher': optional: true @@ -27184,7 +27061,7 @@ packages: hasBin: true peerDependencies: '@parcel/watcher': ^2.1.0 - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 peerDependenciesMeta: '@parcel/watcher': optional: true @@ -27193,7 +27070,7 @@ packages: resolution: {integrity: sha512-QpEsPSO9fnRxA6Z66AmBuGcwHjZ6dYSxYo5ycMlYgSPzAbyG8gn/kWljofjJfWqSY+T/lRn+r8IXTH14ml24vQ==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 graphql-sock: ^1.0.0 peerDependenciesMeta: graphql-sock: @@ -27203,7 +27080,7 @@ packages: resolution: {integrity: sha512-1xufIJZr04ylx0Dnw49m8Jrx1s1kujUNVm+Tp5cPRsQmgPN9VjB7wWY7CGD8ArStv6Vjb0a31Xnm5I+VzZM+Rw==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 graphql-sock: ^1.0.0 peerDependenciesMeta: graphql-sock: @@ -27212,76 +27089,76 @@ packages: '@graphql-codegen/core@4.0.2': resolution: {integrity: sha512-IZbpkhwVqgizcjNiaVzNAzm/xbWT6YnGgeOLwVjm4KbJn3V2jchVtuzHH09G5/WkkLSk2wgbXNdwjM41JxO6Eg==} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/core@5.0.0': resolution: {integrity: sha512-vLTEW0m8LbE4xgRwbFwCdYxVkJ1dBlVJbQyLb9Q7bHnVFgHAP982Xo8Uv7FuPBmON+2IbTjkCqhFLHVZbqpvjQ==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/gql-tag-operations@4.0.17': resolution: {integrity: sha512-2pnvPdIG6W9OuxkrEZ6hvZd142+O3B13lvhrZ48yyEBh2ujtmKokw0eTwDHtlXUqjVS0I3q7+HB2y12G/m69CA==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/gql-tag-operations@5.1.2': resolution: {integrity: sha512-BIv66VJ2bKlpfXBeVakJxihBSKnBIdGFLMaFdnGPxqYlKIzaGffjsGbhViPwwBinmBChW4Se6PU4Py7eysYEiA==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/introspection@4.0.3': resolution: {integrity: sha512-4cHRG15Zu4MXMF4wTQmywNf4+fkDYv5lTbzraVfliDnB8rJKcaurQpRBi11KVuQUe24YTq/Cfk4uwewfNikWoA==} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/plugin-helpers@3.1.2': resolution: {integrity: sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/plugin-helpers@5.1.1': resolution: {integrity: sha512-28GHODK2HY1NhdyRcPP3sCz0Kqxyfiz7boIZ8qIxFYmpLYnlDgiYok5fhFLVSZihyOpCs4Fa37gVHf/Q4I2FEg==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/plugin-helpers@6.1.0': resolution: {integrity: sha512-JJypehWTcty9kxKiqH7TQOetkGdOYjY78RHlI+23qB59cV2wxjFFVf8l7kmuXS4cpGVUNfIjFhVr7A1W7JMtdA==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/schema-ast@4.1.0': resolution: {integrity: sha512-kZVn0z+th9SvqxfKYgztA6PM7mhnSZaj4fiuBWvMTqA+QqQ9BBed6Pz41KuD/jr0gJtnlr2A4++/0VlpVbCTmQ==} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/schema-ast@5.0.0': resolution: {integrity: sha512-jn7Q3PKQc0FxXjbpo9trxzlz/GSFQWxL042l0iC8iSbM/Ar+M7uyBwMtXPsev/3Razk+osQyreghIz0d2+6F7Q==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/typed-document-node@5.1.2': resolution: {integrity: sha512-jaxfViDqFRbNQmfKwUY8hDyjnLTw2Z7DhGutxoOiiAI0gE/LfPe0LYaVFKVmVOOD7M3bWxoWfu4slrkbWbUbEw==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/typed-document-node@6.1.5': resolution: {integrity: sha512-6dgEPz+YRMzSPpATj7tsKh/L6Y8OZImiyXIUzvSq/dRAEgoinahrES5y/eZQyc7CVxfoFCyHF9KMQQ9jiLn7lw==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/typescript-operations@4.6.1': resolution: {integrity: sha512-k92laxhih7s0WZ8j5WMIbgKwhe64C0As6x+PdcvgZFMudDJ7rPJ/hFqJ9DCRxNjXoHmSjnr6VUuQZq4lT1RzCA==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 graphql-sock: ^1.0.0 peerDependenciesMeta: graphql-sock: @@ -27291,7 +27168,7 @@ packages: resolution: {integrity: sha512-5N3myNse1putRQlp8+l1k9ayvc98oq2mPJx0zN8MTOlTBxcb2grVPFRLy5wJJjuv9NffpyCkVJ9LvUaf8mqQgg==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 graphql-sock: ^1.0.0 peerDependenciesMeta: graphql-sock: @@ -27301,13 +27178,13 @@ packages: resolution: {integrity: sha512-1z79xzwG8j0lmweHd65kqeELSfL1m2gAbNVA4zUllp9N8aVI4rzbXmSGcLGGrAEDkL3eZhzkYDAhV4TyULlReA==} engines: {node: '>= 16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/typescript-resolvers@4.5.1': resolution: {integrity: sha512-1Z9xyqcrM+EiuuwpgCGFz3IxlKqn+nS4mRpm81zWW9EHmUyiz1LkinIc+lQ6Ku+F2KyTbLkXUanE970wvdQLmA==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 graphql-sock: ^1.0.0 peerDependenciesMeta: graphql-sock: @@ -27317,30 +27194,30 @@ packages: resolution: {integrity: sha512-vpw3sfwf9A7S+kIUjyFxuvrywGxd4lmwmyYnnDVjVE4kSQ6Td3DpqaPTy8aNQ6O96vFoi/bxbZS2BW49PwSUUA==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/typescript@5.0.7': resolution: {integrity: sha512-kZwcu9Iat5RWXxLGPnDbG6qVbGTigF25/aGqCG/DCQ1Al8RufSjVXhIOkJBp7QWAqXn3AupHXL1WTMXP7xs4dQ==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/visitor-plugin-common@2.13.8': resolution: {integrity: sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ==} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/visitor-plugin-common@5.8.0': resolution: {integrity: sha512-lC1E1Kmuzi3WZUlYlqB4fP6+CvbKH9J+haU1iWmgsBx5/sO2ROeXJG4Dmt8gP03bI2BwjiwV5WxCEMlyeuzLnA==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-codegen/visitor-plugin-common@6.2.2': resolution: {integrity: sha512-wEJ4zJj58PKlXISItZfr0xIHyM1lAuRfoflPegsb1L17Mx5+YzNOy0WAlLele3yzyV89WvCiprFKMcVQ7KfDXg==} engines: {node: '>=16'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-hive/signal@1.0.0': resolution: {integrity: sha512-RiwLMc89lTjvyLEivZ/qxAC5nBHoS2CtsWFSOsN35sxG9zoo5Z+JsFHM8MlvmO9yt+MJNIyC5MLE1rsbOphlag==} @@ -27354,20 +27231,20 @@ packages: resolution: {integrity: sha512-/9gkcJwko9DcqrFdWipZJgDVd20pcitKVHKLWM6kLO2uvinB8W3FrSh8WgdvddXanK3P8LJ/wqfRalimheDjmA==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/cli@6.0.5': resolution: {integrity: sha512-y5cIDbIE6o5nM1+kzKMflQ2VspSgyEluYBg3aVkz2tlXKsdMRNctpUB4Q3KkyL2Y3vkTu9DCdpJ4clfRDcCesA==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/code-loader@5.0.1': resolution: {integrity: sha512-kdyP76g0QrtOFRda67+aNshSf0PXYyGJLiGxoVBogpAbkzDRhZQZAsdQVKP0tdEQAn4w0zN6VBdmpF/PAeBO5A==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/commands@6.0.0': resolution: {integrity: sha512-EYM2e6n41GZ2iKmPOa8dOAeSUey/vqvkJPR3oqkbkB67ktupn5QZZLlUcbLAyfMoNLtg/SthHpg+Ps4VS5hcGw==} @@ -27375,75 +27252,75 @@ packages: peerDependencies: '@graphql-inspector/config': ^4.0.0 '@graphql-inspector/loaders': ^4.1.0 - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 yargs: 17.7.2 '@graphql-inspector/config@4.0.2': resolution: {integrity: sha512-fnIwVpGM5AtTr4XyV8NJkDnwpXxZSBzi3BopjuXwBPXXD1F3tcVkCKNT6/5WgUQGfNPskBVbitcOPtM4hIYAOQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/core@7.1.0': resolution: {integrity: sha512-wfyNEOnNjzqCygj7mp3ctVBwQwBWNirDpgJ+tAPu/yA9y7xjAFPPtFuP9Nj9mMFn1Y1hJTnZ2XfA7kJJXrwRkw==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/coverage-command@6.1.11': resolution: {integrity: sha512-J1q8RCq8X9Kxq/ZVihTpzoUj79rcDQ9p1gYH5geSL4hAApzgBb1XaE6Xw4ykiBADwz/dL+kvO+MmpBKMSCQepA==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/diff-command@6.0.5': resolution: {integrity: sha512-cQnMkaTMJXRLoabcz99zfOF9RKIJjDPldmgkJM0ORHR4n5FWytI1mmBamZEYEKLBOGOh/uLM+ZC7eo0/BrfYqg==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/docs-command@5.0.5': resolution: {integrity: sha512-eeVVM62ztDQktz+qJQuu4EocPWHWpei3okNaVqH1mIVuEjo8WI+dS88cJnpNX2sy00L7V56AjqCpnAdUbtZ8Dw==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/git-loader@5.0.1': resolution: {integrity: sha512-eZFNU/y1z4sZ9Axu8mB/J7mW+e78JnWgXG2vcT1TT2E1uzFm0x2oNONM2lgLCZGEJuwQDEnreok5CoHumIdE4Q==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/github-loader@5.0.1': resolution: {integrity: sha512-CDsY4V1pEDzr5z5FlYTxcPa/7pKsuT/6xQmo1JghHQuYQPZ5TjtGsyNZwgQOjISMCw7pknXfifPBrFQKt6IOEA==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/graphql-loader@5.0.1': resolution: {integrity: sha512-VZIcbkMhgak3sW4GehVIX/Qnwu1TmQidvaWs8YUiT+czPxKK1rqY/c/G3arwQDtqAdPMx8IwY1bT83ykfIyxfg==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/introspect-command@5.0.17': resolution: {integrity: sha512-f4KYgNZ4hCWdgu/xhSgpb29exkLNqQIwbWUjeHKM5y8pZepXL1Z2rLilapKrqO25KZQva1rF0wVYl4qvNn1GQQ==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/json-loader@5.0.1': resolution: {integrity: sha512-ql5zI2E/RNgLKDJ2HilTds2lUTv8ZXQfY5HG29iia85q/CIFslVTDbhzhbXRqmz4jsLd3KCi1LxpAeYQQMhCSQ==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/loaders@4.1.0': resolution: {integrity: sha512-Ue1xSc11b+ouAeiHLAv9s7CK6FTO4FIVqjwzojDic+3PlMa9hEVgYDYnlvdebOZfwTW9g54As4KfxVXQd6YiBw==} engines: {node: '>=18.0.0'} peerDependencies: '@graphql-inspector/config': ^4.0.0 - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/logger@5.0.1': resolution: {integrity: sha512-rEo+HoQt+qjdayy7p5vcR9GeGTdKXmN0LbIm3W+jKKoXeAMlV4zHxnOW6jEhO6E0eVQxf8Sc1TlcH78i2P2a9w==} @@ -27453,370 +27330,376 @@ packages: resolution: {integrity: sha512-8tteA/1i4vk/f/ZnWLfiLOAAP36/W+AkjGsJa0eQ8s+NIqAGJuU1XYc9mmfxD98y6logdqwW1B1dr64JJw5cJw==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/similar-command@5.0.17': resolution: {integrity: sha512-aRV/x9QijdEPfmd0Z4j43ZNoF9vuJJlPhGY9W4IJlg9O5ai7sqYe7EmYmtiRMMxLndo6gwkas41sp0SIZeQ/5A==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/url-loader@5.0.1': resolution: {integrity: sha512-7OPJfTJgqptJyfsrpntsn3GEMpSZWxkJO+KaMIZfqDsiWN/zyvNqB0Amogi3d7xxtU1fnB3NCN5VWCFuiRSPXg==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-inspector/validate-command@5.0.17': resolution: {integrity: sha512-rItYbKsxYSkd+Vr+XNn3bDYJxVvaWzalWD4x+cUp6EN9AqvVnWmUD7Qfwl/pnXGWbFYUUL1pSa0Sn7noFlBTog==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 '@graphql-tools/apollo-engine-loader@8.0.27': resolution: {integrity: sha512-XT4BvqmRXkVaT8GgNb9/pr8u4M4vTcvGuI2GlvK+albrJNIV8VxTpsdVYma3kw+VtSIYrxEvLixlfDA/KdmDpg==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/batch-execute@10.0.4': resolution: {integrity: sha512-t8E0ILelbaIju0aNujMkKetUmbv3/07nxGSv0kEGLBk9GNtEmQ/Bjj8ZTo2WN35/Fy70zCHz2F/48Nx/Ec48cA==} engines: {node: '>=20.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/batch-execute@9.0.19': resolution: {integrity: sha512-VGamgY4PLzSx48IHPoblRw0oTaBa7S26RpZXt0Y4NN90ytoE0LutlpB2484RbkfcTjv9wa64QD474+YP1kEgGA==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/code-file-loader@8.1.2': resolution: {integrity: sha512-GrLzwl1QV2PT4X4TEEfuTmZYzIZHLqoTGBjczdUzSqgCCcqwWzLB3qrJxFQfI8e5s1qZ1bhpsO9NoMn7tvpmyA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/code-file-loader@8.1.20': resolution: {integrity: sha512-GzIbjjWJIc04KWnEr8VKuPe0FA2vDTlkaeub5p4lLimljnJ6C0QSkOyCUnFmsB9jetQcHm0Wfmn/akMnFUG+wA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/code-file-loader@8.1.27': resolution: {integrity: sha512-q3GDbm+7m3DiAnqxa+lYMgYZd49+ez6iGFfXHmzP6qAnf5WlBxRNKNjNVuxOgoV30DCr+vOJfoXeU7VN1qqGWQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/delegate@10.2.23': resolution: {integrity: sha512-xrPtl7f1LxS+B6o+W7ueuQh67CwRkfl+UKJncaslnqYdkxKmNBB4wnzVcW8ZsRdwbsla/v43PtwAvSlzxCzq2w==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/delegate@12.0.2': resolution: {integrity: sha512-1X93onxNgOzRvnZ8Xulwi6gNuBeuDxvGYOjUHEZyesPCsaWsyiVj1Wk6Pw/DTPGLy70sOFUKQGcaZbWnDORM2w==} engines: {node: '>=20.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/documents@1.0.1': resolution: {integrity: sha512-aweoMH15wNJ8g7b2r4C4WRuJxZ0ca8HtNO54rkye/3duxTkW4fGBEutCx03jCIr5+a1l+4vFJNP859QnAVBVCA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/executor-common@0.0.1': resolution: {integrity: sha512-Gan7uiQhKvAAl0UM20Oy/n5NGBBDNm+ASHvnYuD8mP+dAH0qY+2QMCHyi5py28WAlhAwr0+CAemEyzY/ZzOjdQ==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/executor-common@0.0.4': resolution: {integrity: sha512-SEH/OWR+sHbknqZyROCFHcRrbZeUAyjCsgpVWCRjqjqRbiJiXq6TxNIIOmpXgkrXWW/2Ev4Wms6YSGJXjdCs6Q==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/executor-common@0.0.6': resolution: {integrity: sha512-JAH/R1zf77CSkpYATIJw+eOJwsbWocdDjY+avY7G+P5HCXxwQjAjWVkJI1QJBQYjPQDVxwf1fmTZlIN3VOadow==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/executor-common@1.0.5': resolution: {integrity: sha512-gsBRxP4ui8s7/ppKGCJUQ9xxTNoFpNYmEirgM52EHo74hL5hrpS5o4zOmBH33+9t2ZasBziIfupYtLNa0DgK0g==} engines: {node: '>=20.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/executor-graphql-ws@1.3.7': resolution: {integrity: sha512-9KUrlpil5nBgcb+XRUIxNQGI+c237LAfDBqYCdLGuYT+/oZz1b4rRIe6HuRk09vuxrbaMTzm7xHhn/iuwWW4eg==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/executor-graphql-ws@2.0.7': resolution: {integrity: sha512-J27za7sKF6RjhmvSOwOQFeNhNHyP4f4niqPnerJmq73OtLx9Y2PGOhkXOEB0PjhvPJceuttkD2O1yMgEkTGs3Q==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/executor-graphql-ws@3.1.3': resolution: {integrity: sha512-q4k8KLoH2U51XdWJRdiW/KIKbBOtJ1mcILv0ALvBkOF99C3vwGj2zr4U0AMGCD3HzML2mPZuajhfYo/xB/pnZQ==} engines: {node: '>=20.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/executor-http@1.3.3': resolution: {integrity: sha512-LIy+l08/Ivl8f8sMiHW2ebyck59JzyzO/yF9SFS4NH6MJZUezA1xThUXCDIKhHiD56h/gPojbkpcFvM2CbNE7A==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/executor-http@3.0.7': resolution: {integrity: sha512-sHjtiUZmRtkjhpSzMhxT2ywAGzHjuB1rHsiaSLAq8U5BQg5WoLakKYD7BajgVHwNbfWEc+NnFiJI7ldyhiciiQ==} engines: {node: '>=20.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/executor-legacy-ws@1.1.24': resolution: {integrity: sha512-wfSpOJCxeBcwVXy3JS4TB4oLwVICuVKPlPQhcAjTRPWYwKerE0HosgUzxCX1fEQ4l1B1OMgKWRglGpoXExKqsQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/executor@1.5.0': resolution: {integrity: sha512-3HzAxfexmynEWwRB56t/BT+xYKEYLGPvJudR1jfs+XZX8bpfqujEhqVFoxmkpEE8BbFcKuBNoQyGkTi1eFJ+hA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/git-loader@8.0.31': resolution: {integrity: sha512-xVHM1JecjpU2P0aOj/IaIUc3w6It8sWOdrJElWFZdY9yfWRqXFYwfemtsn/JOrJDIJXYeGpJ304OeqJD5vFIEw==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/git-loader@8.0.6': resolution: {integrity: sha512-FQFO4H5wHAmHVyuUQrjvPE8re3qJXt50TWHuzrK3dEaief7JosmlnkLMDMbMBwtwITz9u1Wpl6doPhT2GwKtlw==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/github-loader@8.0.1': resolution: {integrity: sha512-W4dFLQJ5GtKGltvh/u1apWRFKBQOsDzFxO9cJkOYZj1VzHCpRF43uLST4VbCfWve+AwBqOuKr7YgkHoxpRMkcg==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/github-loader@8.0.22': resolution: {integrity: sha512-uQ4JNcNPsyMkTIgzeSbsoT9hogLjYrZooLUYd173l5eUGUi49EAcsGdiBCKaKfEjanv410FE8hjaHr7fjSRkJw==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/github-loader@9.0.5': resolution: {integrity: sha512-89FRDQGMlzL3607BCQtJhKEiQaZtTmdAnyC5Hmi9giTQXVzEXBbMEZOU0qILxj64cr+smNBx5XqxQ1xn0uZeEA==} engines: {node: '>=20.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/graphql-file-loader@8.0.1': resolution: {integrity: sha512-7gswMqWBabTSmqbaNyWSmRRpStWlcCkBc73E6NZNlh4YNuiyKOwbvSkOUYFOqFMfEL+cFsXgAvr87Vz4XrYSbA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/graphql-file-loader@8.1.8': resolution: {integrity: sha512-dZi9Cw+NWEzJAqzIUON9qjZfjebjcoT4H6jqLkEoAv6kRtTq52m4BLXgFWjMHU7PNLE9OOHB9St7UeZQL+GYrw==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/graphql-tag-pluck@8.3.1': resolution: {integrity: sha512-ujits9tMqtWQQq4FI4+qnVPpJvSEn7ogKtyN/gfNT+ErIn6z1e4gyVGQpTK5sgAUXq1lW4gU/5fkFFC5/sL2rQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/graphql-tag-pluck@8.3.19': resolution: {integrity: sha512-LEw/6IYOUz48HjbWntZXDCzSXsOIM1AyWZrlLoJOrA8QAlhFd8h5Tny7opCypj8FO9VvpPFugWoNDh5InPOEQA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/graphql-tag-pluck@8.3.26': resolution: {integrity: sha512-hLsX++KA3YR/PnNJGBq1weSAY8XUUAQFfOSHanLHA2qs5lcNgU6KWbiLiRsJ/B/ZNi2ZO687dhzeZ4h4Yt0V6Q==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/import@7.0.1': resolution: {integrity: sha512-935uAjAS8UAeXThqHfYVr4HEAp6nHJ2sximZKO1RzUTq5WoALMAhhGARl0+ecm6X+cqNUwIChJbjtaa6P/ML0w==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/import@7.1.8': resolution: {integrity: sha512-aUKHMbaeHhCkS867mNCk9sJuvd9xE3Ocr+alwdvILkDxHf7Xaumx4mK8tN9FAXeKhQWGGD5QpkIBnUzt2xoX/A==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/json-file-loader@8.0.1': resolution: {integrity: sha512-lAy2VqxDAHjVyqeJonCP6TUemrpYdDuKt25a10X6zY2Yn3iFYGnuIDQ64cv3ytyGY6KPyPB+Kp+ZfOkNDG3FQA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/json-file-loader@8.0.25': resolution: {integrity: sha512-Dnr9z818Kdn3rfoZO/+/ZQUqWavjV7AhEp4edV1mGsX+J1HFkNC3WMl6MD3W0hth2HWLQpCFJDdOPnchxnFNfA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/load@8.0.19': resolution: {integrity: sha512-YA3T9xTy2B6dNTnqsCzqSclA23j4v3p3A2Vdn0jEbZPGLMRPzWW8MJu2nlgQ8uua1IpYD/J8xgyrFxxAo3qPmQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/load@8.1.7': resolution: {integrity: sha512-RxrHOC4vVI50+Q1mwgpmTVCB/UDDYVEGD/g/hP3tT2BW9F3rJ7Z3Lmt/nGfPQuWPao3w6vgJ9oSAWtism7CU5w==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/merge@8.3.1': resolution: {integrity: sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/merge@8.4.2': resolution: {integrity: sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/merge@9.1.6': resolution: {integrity: sha512-bTnP+4oom4nDjmkS3Ykbe+ljAp/RIiWP3R35COMmuucS24iQxGLa9Hn8VMkLIoaoPxgz6xk+dbC43jtkNsFoBw==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/mock@8.7.20': resolution: {integrity: sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/optimize@1.4.0': resolution: {integrity: sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/optimize@2.0.0': resolution: {integrity: sha512-nhdT+CRGDZ+bk68ic+Jw1OZ99YCDIKYA5AlVAnBHJvMawSx9YQqQAIj4refNc1/LRieGiuWvhbG3jvPVYho0Dg==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/prisma-loader@8.0.17': resolution: {integrity: sha512-fnuTLeQhqRbA156pAyzJYN0KxCjKYRU5bz1q/SKOwElSnAU4k7/G1kyVsWLh7fneY78LoMNH5n+KlFV8iQlnyg==} engines: {node: '>=16.0.0'} deprecated: 'This package was intended to be used with an older versions of Prisma.\nThe newer versions of Prisma has a different approach to GraphQL integration.\nTherefore, this package is no longer needed and has been deprecated and removed.\nLearn more: https://www.prisma.io/graphql' peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/relay-operation-optimizer@6.5.18': resolution: {integrity: sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/relay-operation-optimizer@7.0.26': + resolution: {integrity: sha512-cVdS2Hw4hg/WgPVV2wRIzZM975pW5k4vdih3hR4SvEDQVr6MmozmlTQSqzMyi9yg8LKTq540Oz3bYQa286yGmg==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/relay-operation-optimizer@7.0.27': resolution: {integrity: sha512-rdkL1iDMFaGDiHWd7Bwv7hbhrhnljkJaD0MXeqdwQlZVgVdUDlMot2WuF7CEKVgijpH6eSC6AxXMDeqVgSBS2g==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/schema@10.0.30': resolution: {integrity: sha512-yPXU17uM/LR90t92yYQqn9mAJNOVZJc0nQtYeZyZeQZeQjwIGlTubvvoDL0fFVk+wZzs4YQOgds2NwSA4npodA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/schema@8.5.1': resolution: {integrity: sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/schema@9.0.19': resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/url-loader@8.0.2': resolution: {integrity: sha512-1dKp2K8UuFn7DFo1qX5c1cyazQv2h2ICwA9esHblEqCYrgf69Nk8N7SODmsfWg94OEaI74IqMoM12t7eIGwFzQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/url-loader@8.0.33': resolution: {integrity: sha512-Fu626qcNHcqAj8uYd7QRarcJn5XZ863kmxsg1sm0fyjyfBJnsvC7ddFt6Hayz5kxVKfsnjxiDfPMXanvsQVBKw==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/url-loader@9.0.5': resolution: {integrity: sha512-EPNhZBBL48TudLdyenOw1wV9dI7vsinWLLxSTtkx4zUQxmU+p/LxMyf7MUwjmp3yFZhR/9XchsTZX6uvOyXWqA==} engines: {node: '>=20.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/utils@10.11.0': resolution: {integrity: sha512-iBFR9GXIs0gCD+yc3hoNswViL1O5josI33dUqiNStFI/MHLCEPduasceAcazRH77YONKNiviHBV8f7OgcT4o2Q==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/utils@10.8.6': resolution: {integrity: sha512-Alc9Vyg0oOsGhRapfL3xvqh1zV8nKoFUdtLhXX7Ki4nClaIJXckrA86j+uxEuG3ic6j4jlM1nvcWXRn/71AVLQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/utils@11.0.0': resolution: {integrity: sha512-bM1HeZdXA2C3LSIeLOnH/bcqSgbQgKEDrjxODjqi3y58xai2TkNrtYcQSoWzGbt9VMN1dORGjR7Vem8SPnUFQA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/utils@8.9.0': resolution: {integrity: sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/utils@9.2.1': resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/wrap@10.1.4': resolution: {integrity: sha512-7pyNKqXProRjlSdqOtrbnFRMQAVamCmEREilOXtZujxY6kYit3tvWWSjUrcIOheltTffoRh7EQSjpy2JDCzasg==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-tools/wrap@11.1.2': resolution: {integrity: sha512-TcKZzUzJNmuyMBQ1oMdnxhBUUacN/5VEJu0/1KVce2aIzCwTTaN9JTU3MgjO7l5Ixn4QLkc6XbxYNv0cHDQgtQ==} engines: {node: '>=20.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-typed-document-node/core@3.2.0': resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 '@graphql-yoga/logger@2.0.1': resolution: {integrity: sha512-Nv0BoDGLMg9QBKy9cIswQ3/6aKaKjlTh87x3GiBg2Z4RrjyrM48DvOOK0pJh1C1At+b0mUIM67cwZcFTDLN4sA==} @@ -27923,26 +27806,26 @@ packages: resolution: {integrity: sha512-RzCEg+LXsuI7mHiSomsu/gBJSjpupm6A1qIZ5sWjd7JhARNlMiSA4kKfJpCKwU9tE+zMRterhhrP74PvfJrpXQ==} engines: {node: '>=10'} peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - react-dom: ^18 || ^19 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 '@headlessui/react@2.2.9': resolution: {integrity: sha512-Mb+Un58gwBn0/yWZfyrCh0TJyurtT+dETj7YHleylHk5od3dv2XqETPGWMyQ5/7sYN7oWdyM1u9MvC0OC8UmzQ==} engines: {node: '>=10'} peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - react-dom: ^18 || ^19 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 '@heroicons/react@2.2.0': resolution: {integrity: sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ==} peerDependencies: - react: '>= 16 || ^19.0.0-rc' + react: 19.2.1 '@hono/node-server@1.19.9': resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} engines: {node: '>=18.14.1'} peerDependencies: - hono: '>=4.11.7' + hono: ^4 '@hookform/resolvers@5.2.2': resolution: {integrity: sha512-A/IxlMLShx3KjV/HeTcTfaMxdwy690+L/ZADoeaTltLx+CVuzkeVIPuybK3jrRfw7YZnmdKsVVHAlEPIAEUNlA==} @@ -27961,23 +27844,22 @@ packages: resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} engines: {node: '>=18.18.0'} - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - '@humanwhocodes/retry@0.4.3': resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} + '@ibm-cloud/openapi-ruleset-utilities@1.9.0': + resolution: {integrity: sha512-AoFbSarOqFBYH+1TZ9Ahkm2IWYSi5v0pBk88fpV+5b3qGJukypX8PwvCWADjuyIccKg48/F73a6hTTkBzDQ2UA==} + engines: {node: '>=16.0.0'} + + '@ibm-cloud/openapi-ruleset@1.33.6': + resolution: {integrity: sha512-q3FnXqiQkSrC7HuLn3u+cMMmAHUvIRFdLCbBSnJCuJPWa+OYoA8gDgtw9KXGkOklwxToXEwmjRBIfeQDoCxt2w==} + engines: {node: '>=16.0.0'} + '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -28503,15 +28385,15 @@ packages: '@intelgraph/synthdata-js@file:packages/sdk/synthdata-js': resolution: {directory: packages/sdk/synthdata-js, type: directory} - '@intelgraph/telemetry-config@file:packages/telemetry-config': - resolution: {directory: packages/telemetry-config, type: directory} - '@interactjs/types@1.10.27': resolution: {integrity: sha512-BUdv0cvs4H5ODuwft2Xp4eL8Vmi3LcihK42z0Ft/FbVJZoRioBsxH+LlsBdK4tAie7PqlKGy+1oyOncu1nQ6eA==} '@ioredis/commands@1.4.0': resolution: {integrity: sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==} + '@ioredis/commands@1.5.0': + resolution: {integrity: sha512-eUgLqrMf8nJkZxT24JvVRrQya1vZkQh8BBeYNwGDqa5I0VUi8ACx7uFvAaLxintokpTenkK6DASvo/bvNbBGow==} + '@ipld/dag-cbor@9.2.5': resolution: {integrity: sha512-84wSr4jv30biui7endhobYhXBQzQE4c/wdoWlFrKcfiwH+ofaPg8fwsM8okX9cOzkkrsAsNdDyH3ou+kiLquwQ==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} @@ -28528,8 +28410,8 @@ packages: resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} engines: {node: 20 || >=22} - '@isaacs/brace-expansion@5.0.1': - resolution: {integrity: sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==} + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} engines: {node: 20 || >=22} '@isaacs/fs-minipass@4.0.1': @@ -28761,6 +28643,24 @@ packages: '@jsdevtools/ono@7.1.3': resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} + '@jsep-plugin/assignment@1.3.0': + resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 + + '@jsep-plugin/regex@1.0.4': + resolution: {integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 + + '@jsep-plugin/ternary@1.1.4': + resolution: {integrity: sha512-ck5wiqIbqdMX6WRQztBL7ASDty9YLgJ3sSAK5ZpBzXeySvFGCzIvM6UiAI4hTZ22fEcYQVV/zhUbNscggW+Ukg==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 + '@juggle/resize-observer@3.4.0': resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} @@ -29013,11 +28913,6 @@ packages: resolution: {integrity: sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==} hasBin: true - '@mapbox/node-pre-gyp@2.0.3': - resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==} - engines: {node: '>=18'} - hasBin: true - '@mapbox/point-geometry@0.1.0': resolution: {integrity: sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==} @@ -29073,7 +28968,7 @@ packages: resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==} peerDependencies: '@types/react': 18.3.11 - react: '>=16' + react: 19.2.1 '@mediapipe/tasks-vision@0.10.17': resolution: {integrity: sha512-CZWV/q6TTe8ta61cZXjfnnHsfWIdFhms03M9T7Cnd5y2mdpylJM0rF1qRq+wsQVRMLz1OYPVEBU9ph2Bx8cxrg==} @@ -29116,8 +29011,8 @@ packages: '@mixmark-io/domino@2.2.0': resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} - '@modelcontextprotocol/sdk@1.26.0': - resolution: {integrity: sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==} + '@modelcontextprotocol/sdk@1.25.2': + resolution: {integrity: sha512-LZFeo4F9M5qOhC/Uc1aQSrBHxMrvxett+9KLHt7OhcExtoiRN9DKgbZffMP/nxjutWDQpfMDfP3nkHI4X9ijww==} engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 @@ -29133,8 +29028,11 @@ packages: resolution: {integrity: sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==} peerDependencies: monaco-editor: '>= 0.25.0 < 1' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 + + '@mongodb-js/saslprep@1.4.4': + resolution: {integrity: sha512-p7X/ytJDIdwUfFL/CLOhKgdfJe1Fa8uw9seJYvdOmnP9JBWGWHW69HkOixXS6Wy9yvGf1MbhcS6lVmrhy4jm2g==} '@mongodb-js/saslprep@1.4.5': resolution: {integrity: sha512-k64Lbyb7ycCSXHSLzxVdb2xsKGPMvYZfCICXvDsI8Z65CeWQzTEKS4YmGbnqw+U9RBvLPTsB6UCmwkgsDTGWIw==} @@ -29182,6 +29080,10 @@ packages: cpu: [x64] os: [win32] + '@mswjs/interceptors@0.39.8': + resolution: {integrity: sha512-2+BzZbjRO7Ct61k8fMNHEtoKjeWI9pIlHFTqBwZ5icHpqszIgEZbjb1MW5Z0+bITTCTl3gk4PDBxs9tA/csXvA==} + engines: {node: '>=18'} + '@mswjs/interceptors@0.40.0': resolution: {integrity: sha512-EFd6cVbHsgLa6wa4RljGj6Wk75qoHxUSyc5asLyyPSyuhIcdS2Q3Phw6ImS1q+CkALthJRShiYfKANcQMuMqsQ==} engines: {node: '>=18'} @@ -29192,8 +29094,8 @@ packages: deprecated: This package has been replaced by @base-ui/react peerDependencies: '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -29210,7 +29112,7 @@ packages: peerDependencies: '@mui/material': ^5.0.0 '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -29221,7 +29123,7 @@ packages: peerDependencies: '@mui/material': ^7.3.6 '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -29229,14 +29131,13 @@ packages: '@mui/lab@6.0.0-dev.240424162023-9968b4889d': resolution: {integrity: sha512-iKFAz7/EeWI4PaFsP4jK2FcYJmUYDBkn3XZwpQSAl5806yYq5J2U2mPQLuZBdhrH50gT2O98p95i3vwL4YBwAg==} engines: {node: '>=12.0.0'} - deprecated: 'This version is deprecated. Please update to the latest v6 version: npm install @mui/lab@latest-v6' peerDependencies: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 '@mui/material': ^6.0.0-dev.240424162023-9968b4889d '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@emotion/react': optional: true @@ -29252,8 +29153,8 @@ packages: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@emotion/react': optional: true @@ -29270,8 +29171,8 @@ packages: '@emotion/styled': ^11.3.0 '@mui/material-pigment-css': ^7.3.6 '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@emotion/react': optional: true @@ -29287,7 +29188,7 @@ packages: engines: {node: '>=12.0.0'} peerDependencies: '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -29297,7 +29198,7 @@ packages: engines: {node: '>=14.0.0'} peerDependencies: '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -29307,7 +29208,7 @@ packages: engines: {node: '>=14.0.0'} peerDependencies: '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -29318,7 +29219,7 @@ packages: peerDependencies: '@emotion/react': ^11.4.1 '@emotion/styled': ^11.3.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@emotion/react': optional: true @@ -29331,7 +29232,7 @@ packages: peerDependencies: '@emotion/react': ^11.4.1 '@emotion/styled': ^11.3.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@emotion/react': optional: true @@ -29344,7 +29245,7 @@ packages: peerDependencies: '@emotion/react': ^11.4.1 '@emotion/styled': ^11.3.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@emotion/react': optional: true @@ -29358,7 +29259,7 @@ packages: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@emotion/react': optional: true @@ -29374,7 +29275,7 @@ packages: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@emotion/react': optional: true @@ -29390,7 +29291,7 @@ packages: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@emotion/react': optional: true @@ -29420,7 +29321,7 @@ packages: engines: {node: '>=12.0.0'} peerDependencies: '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -29430,7 +29331,7 @@ packages: engines: {node: '>=14.0.0'} peerDependencies: '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -29440,7 +29341,7 @@ packages: engines: {node: '>=14.0.0'} peerDependencies: '@types/react': 18.3.11 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -29453,8 +29354,8 @@ packages: '@emotion/styled': ^11.8.1 '@mui/material': ^5.15.14 || ^6.0.0 || ^7.0.0 '@mui/system': ^5.15.14 || ^6.0.0 || ^7.0.0 - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@emotion/react': optional: true @@ -29465,14 +29366,14 @@ packages: resolution: {integrity: sha512-stYhWBeCKfV2/ltAWShZ3ZJ51otbqpMpC+krWWoIsxM8TuvGzwXw5YMU9L2fTb8hRstsiOCQfEzIn12Ii7+N0Q==} engines: {node: '>=14.0.0'} peerDependencies: - react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 '@mui/x-virtualizer@0.1.2': resolution: {integrity: sha512-RCvOy/gpeGr4tpQm3WkK9bafy8HMtJima4kvLWWijhqwhjgFd74IsXIJuxg9SA6oGHcpKrwkv2JgIhSraENCXw==} engines: {node: '>=14.0.0'} peerDependencies: - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@multiformats/base-x@4.0.1': resolution: {integrity: sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==} @@ -29822,11 +29723,27 @@ packages: resolution: {integrity: sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==} engines: {node: ^20.17.0 || >=22.9.0} + '@npmcli/git@7.0.1': + resolution: {integrity: sha512-+XTFxK2jJF/EJJ5SoAzXk3qwIDfvFc5/g+bD274LZ7uY7LE8sTfG6Z8rOanPl2ZEvZWqNvmEdtXC25cE54VcoA==} + engines: {node: ^20.17.0 || >=22.9.0} + '@npmcli/move-file@2.0.1': resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} deprecated: This functionality has been moved to @npmcli/fs + '@npmcli/package-json@7.0.4': + resolution: {integrity: sha512-0wInJG3j/K40OJt/33ax47WfWMzZTm6OQxB9cDhTt5huCP2a9g2GnlsxmfN+PulItNPIpPrZ+kfwwUil7eHcZQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/promise-spawn@9.0.1': + resolution: {integrity: sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/redact@4.0.0': + resolution: {integrity: sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==} + engines: {node: ^20.17.0 || >=22.9.0} + '@octokit/auth-token@4.0.0': resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} engines: {node: '>= 18'} @@ -29933,13 +29850,10 @@ packages: '@octokit/types@16.0.0': resolution: {integrity: sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==} - '@one-ini/wasm@0.1.1': - resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} - '@op-engineering/op-sqlite@11.4.9': resolution: {integrity: sha512-gVj/m7UDCC11h8Fb/elLtT8Q2Fm8wIURkKRWZvV0FP1sLpZB+07N6ezktjGJroN7TV4/VQjGrYuu3GxgHse4HA==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' '@open-draft/deferred-promise@2.2.0': @@ -29966,10 +29880,6 @@ packages: peerDependencies: '@openfeature/core': ^1.9.0 - '@opentelemetry/api-logs@0.202.0': - resolution: {integrity: sha512-fTBjMqKCfotFWfLzaKyhjLvyEyq5vDKTTFfBmx21btv3gvy8Lq6N5Dh2OzqeuN4DjtpSvNT1uNVfg08eD2Rfxw==} - engines: {node: '>=8.0.0'} - '@opentelemetry/api-logs@0.208.0': resolution: {integrity: sha512-CjruKY9V6NMssL/T1kAFgzosF1v9o6oeN+aX5JB/C/xPNtmgIJqcXHG7fA82Ou1zCpWGl4lROQUKwUNE1pMCyg==} engines: {node: '>=8.0.0'} @@ -29978,10 +29888,6 @@ packages: resolution: {integrity: sha512-swFdZq8MCdmdR22jTVGQDhwqDzcI4M10nhjXkLr1EsIzXgZBqm4ZlmmcWsg3TSNf+3mzgOiqveXmBLZuDi2Lgg==} engines: {node: '>=8.0.0'} - '@opentelemetry/api-logs@0.213.0': - resolution: {integrity: sha512-zRM5/Qj6G84Ej3F1yt33xBVY/3tnMxtL1fiDIxYbDWYaZ/eudVw3/PBiZ8G7JwUxXxjW8gU4g6LnOyfGKYHYgw==} - engines: {node: '>=8.0.0'} - '@opentelemetry/api-logs@0.41.2': resolution: {integrity: sha512-JEV2RAqijAFdWeT6HddYymfnkiRu2ASxoTBr4WsnGJhOjWZkEy6vp+Sx9ozr1NaIODOa2HUyckExIqQjn6qywQ==} engines: {node: '>=14'} @@ -29990,10 +29896,6 @@ packages: resolution: {integrity: sha512-swhLdhH/nftC/bNhc3bQ7cn4XJvVO1n8aidDJ7fSw+5ostDLSurDdHS2bY8dxVmb+oHndgBlYOvrx7Jx4OPO6A==} engines: {node: '>=14'} - '@opentelemetry/api-logs@0.45.1': - resolution: {integrity: sha512-zVGq/k70l+kB/Wuv3O/zhptP2hvDhEbhDu9EtHde1iWZJf3FedeYS/nWVcMBkkyPAjS/JKNk86WN4CBQLGUuOw==} - engines: {node: '>=14'} - '@opentelemetry/api-logs@0.46.0': resolution: {integrity: sha512-+9BcqfiEDGPXEIo+o3tso/aqGM5dGbGwAkGVp3FPpZ8GlkK1YlaKRd9gMVyPaeRATwvO5wYGGnCsAc/sMMM9Qw==} engines: {node: '>=14'} @@ -30023,10 +29925,6 @@ packages: resolution: {integrity: sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==} engines: {node: '>=8.0.0'} - '@opentelemetry/api@1.8.0': - resolution: {integrity: sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==} - engines: {node: '>=8.0.0'} - '@opentelemetry/api@1.9.0': resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} @@ -30056,15 +29954,15 @@ packages: '@opentelemetry/api': ^1.4.1 '@opentelemetry/core': ^2.0.0 - '@opentelemetry/auto-instrumentations-node@0.71.0': - resolution: {integrity: sha512-umqazfIujHj9fE+p3skrPMO9uCsDodSUqIgVRtELaPX036HhGkVaI7MwCQL3/kiyqrXRsKYSow2vCBR4CVsnOA==} + '@opentelemetry/auto-instrumentations-node@0.69.0': + resolution: {integrity: sha512-m/wqAaeZi3VkT2izPRivEfZrvKR+cP7Y/Jkic9D8QClGFpfd3bgvfUZS+OA2MzL+RT46sO27G5TKPN+M35xQJg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.4.1 '@opentelemetry/core': ^2.0.0 - '@opentelemetry/configuration@0.213.0': - resolution: {integrity: sha512-MfVgZiUuwL1d3bPPvXcEkVHGTGNUGoqGK97lfwBuRoKttcVGGqDyxTCCVa5MGbirtBQkUTysXMBUVWPaq7zbWw==} + '@opentelemetry/configuration@0.211.0': + resolution: {integrity: sha512-PNsCkzsYQKyv8wiUIsH+loC4RYyblOaDnVASBtKS22hK55ToWs2UP6IsrcfSWWn54wWTvVe2gnfwz67Pvrxf2Q==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -30111,19 +30009,12 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/context-async-hooks@2.6.0': - resolution: {integrity: sha512-L8UyDwqpTcbkIK5cgwDRDYDoEhQoj8wp8BwsO19w3LB1Z41yEQm2VJyNfAi9DrLP/YTqXqWpKHyZfR9/tFYo1Q==} + '@opentelemetry/context-async-hooks@2.5.0': + resolution: {integrity: sha512-uOXpVX0ZjO7heSVjhheW2XEPrhQAWr2BScDPoZ9UDycl5iuHG+Usyc3AIfG6kZeC1GyLpMInpQ6X5+9n69yOFw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/context-zone-peer-dep@1.18.1': - resolution: {integrity: sha512-0rqvBIW8+oMaWbVFTcEl96cpj3W3tuL4U9Mxf6PCtQctEPTGVzoFRYQ4gucYW29Ne7O2N7yit9rrrQuPja4rPA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.8.0' - zone.js: ^0.10.2 || ^0.11.0 - '@opentelemetry/context-zone-peer-dep@2.5.0': resolution: {integrity: sha512-ZCBtCkfiHzKsUXutg2BhZzz4p7APCnWK+NZ6pjet+SmnwvKjGN8KqgH1Z+3hIMhbzbWGhkOxO6PQcYjIiqLvSQ==} engines: {node: ^18.19.0 || >=20.6.0} @@ -30131,10 +30022,6 @@ packages: '@opentelemetry/api': '>=1.0.0 <1.10.0' zone.js: ^0.10.2 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0 || ^0.15.0 || ^0.16.0 - '@opentelemetry/context-zone@1.18.1': - resolution: {integrity: sha512-c/y2dyqlvMPMLFZL4oDJR87ayAt4otQy9W4pddrRrNPAq1mfG9z0GrS/nvDpK7qWK0ztqzFxis4rsmCl5arW3g==} - engines: {node: '>=14'} - '@opentelemetry/context-zone@2.5.0': resolution: {integrity: sha512-wevPtv5up7I22YHg0rioRkniAiyN/smHA3Thol3nwC7769bqf6gUgIb5fI4c0gyAlzMZLQLSkG5woPInTdJVKw==} engines: {node: ^18.19.0 || >=20.6.0} @@ -30199,12 +30086,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.6.0': - resolution: {integrity: sha512-HLM1v2cbZ4TgYN6KEOj+Bbj8rAKriOdkF9Ed3tG25FoprSiQl7kYc+RRT6fUZGOvx0oMi5U67GoFdT+XUn8zEg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/exporter-jaeger@1.15.2': resolution: {integrity: sha512-BwYd5836GYvuiQcF4l5X0ca09jGJr/F37MMGyz94VH0b1dp0uYBwRJw2CQh56RlVZEdpKv29JyDRVZ/4UrRgLQ==} engines: {node: '>=14'} @@ -30219,14 +30100,14 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/exporter-jaeger@2.5.0': - resolution: {integrity: sha512-gUkPynSY1Ut5fd18AKpbJtiSOOVM/fV8CxRM70w2PSSYU5oDPWukPjKuk5JToC2eEd/Gn7AsSkKikbpg0zklfQ==} + '@opentelemetry/exporter-jaeger@2.2.0': + resolution: {integrity: sha512-nMDUoZ9IniddS0eyvVSnWFhTLEoIxZUQHnnxvPDtJVkACXinZjfaPmSuXLfsIrwu5lrjmPW6Afh5/zUokUbInA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/exporter-jaeger@2.6.0': - resolution: {integrity: sha512-KzyYCSKg4OpXaczS5+abChe8hnTGJhgXyi9O0HQ6TNcyB/R+Rr7Vslneb9RvpirmsWXZvORhzei3Ed91hPSWHA==} + '@opentelemetry/exporter-jaeger@2.5.0': + resolution: {integrity: sha512-gUkPynSY1Ut5fd18AKpbJtiSOOVM/fV8CxRM70w2PSSYU5oDPWukPjKuk5JToC2eEd/Gn7AsSkKikbpg0zklfQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 @@ -30237,8 +30118,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-logs-otlp-grpc@0.213.0': - resolution: {integrity: sha512-QiRZzvayEOFnenSXi85Eorgy5WTqyNQ+E7gjl6P6r+W3IUIwAIH8A9/BgMWfP056LwmdrBL6+qvnwaIEmug6Yg==} + '@opentelemetry/exporter-logs-otlp-grpc@0.211.0': + resolution: {integrity: sha512-UhOoWENNqyaAMP/dL1YXLkXt6ZBtovkDDs1p4rxto9YwJX1+wMjwg+Obfyg2kwpcMoaiIFT3KQIcLNW8nNGNfQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30249,8 +30130,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-logs-otlp-http@0.213.0': - resolution: {integrity: sha512-vqDVSpLp09ZzcFIdb7QZrEFPxUlO3GzdhBKLstq3jhYB5ow3+ZtV5V0ngSdi/0BZs+J5WPiN1+UDV4X5zD/GzA==} + '@opentelemetry/exporter-logs-otlp-http@0.211.0': + resolution: {integrity: sha512-c118Awf1kZirHkqxdcF+rF5qqWwNjJh+BB1CmQvN9AQHC/DUIldy6dIkJn3EKlQnQ3HmuNRKc/nHHt5IusN7mA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30261,8 +30142,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-logs-otlp-proto@0.213.0': - resolution: {integrity: sha512-gQk41nqfK3KhDk8jbSo3LR/fQBlV7f6Q5xRcfDmL1hZlbgXQPdVFV9/rIfYUrCoq1OM+2NnKnFfGjBt6QpLSsA==} + '@opentelemetry/exporter-logs-otlp-proto@0.211.0': + resolution: {integrity: sha512-kMvfKMtY5vJDXeLnwhrZMEwhZ2PN8sROXmzacFU/Fnl4Z79CMrOaL7OE+5X3SObRYlDUa7zVqaXp9ZetYCxfDQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30273,8 +30154,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-metrics-otlp-grpc@0.213.0': - resolution: {integrity: sha512-Z8gYKUAU48qwm+a1tjnGv9xbE7a5lukVIwgF6Z5i3VPXPVMe4Sjra0nN3zU7m277h+V+ZpsPGZJ2Xf0OTkL7/w==} + '@opentelemetry/exporter-metrics-otlp-grpc@0.211.0': + resolution: {integrity: sha512-D/U3G8L4PzZp8ot5hX9wpgbTymgtLZCiwR7heMe4LsbGV4OdctS1nfyvaQHLT6CiGZ6FjKc1Vk9s6kbo9SWLXQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30285,8 +30166,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-metrics-otlp-http@0.213.0': - resolution: {integrity: sha512-yw3fTIw4KQIRXC/ZyYQq5gtA3Ogfdfz/g5HVgleobQAcjUUE8Nj3spGMx8iQPp+S+u6/js7BixufRkXhzLmpJA==} + '@opentelemetry/exporter-metrics-otlp-http@0.211.0': + resolution: {integrity: sha512-lfHXElPAoDSPpPO59DJdN5FLUnwi1wxluLTWQDayqrSPfWRnluzxRhD+g7rF8wbj1qCz0sdqABl//ug1IZyWvA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30303,8 +30184,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-metrics-otlp-proto@0.213.0': - resolution: {integrity: sha512-geHF+zZaDb0/WRkJTxR8o8dG4fCWT/Wq7HBdNZCxwH5mxhwRi/5f37IDYH7nvU+dwU6IeY4Pg8TPI435JCiNkg==} + '@opentelemetry/exporter-metrics-otlp-proto@0.211.0': + resolution: {integrity: sha512-61iNbffEpyZv/abHaz3BQM3zUtA2kVIDBM+0dS9RK68ML0QFLRGYa50xVMn2PYMToyfszEPEgFC3ypGae2z8FA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30315,8 +30196,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-prometheus@0.213.0': - resolution: {integrity: sha512-FyV3/JfKGAgx+zJUwCHdjQHbs+YeGd2fOWvBHYrW6dmfv/w89lb8WhJTSZEoWgP525jwv/gFeBttlGu1flebdA==} + '@opentelemetry/exporter-prometheus@0.211.0': + resolution: {integrity: sha512-cD0WleEL3TPqJbvxwz5MVdVJ82H8jl8mvMad4bNU24cB5SH2mRW5aMLDTuV4614ll46R//R3RMmci26mc2L99g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30351,8 +30232,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-trace-otlp-grpc@0.213.0': - resolution: {integrity: sha512-L8y6piP4jBIIx1Nv7/9hkx25ql6/Cro/kQrs+f9e8bPF0Ar5Dm991v7PnbtubKz6Q4fT872H56QXUWVnz/Cs4Q==} + '@opentelemetry/exporter-trace-otlp-grpc@0.211.0': + resolution: {integrity: sha512-eFwx4Gvu6LaEiE1rOd4ypgAiWEdZu7Qzm2QNN2nJqPW1XDeAVH1eNwVcVQl+QK9HR/JCDZ78PZgD7xD/DBDqbw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30399,12 +30280,6 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-trace-otlp-http@0.213.0': - resolution: {integrity: sha512-tnRmJD39aWrE/Sp7F6AbRNAjKHToDkAqBi6i0lESpGWz3G+f4bhVAV6mgSXH2o18lrDVJXo6jf9bAywQw43wRA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-trace-otlp-http@0.41.2': resolution: {integrity: sha512-Y0fGLipjZXLMelWtlS1/MDtrPxf25oM408KukRdkN31a1MEFo4h/ZkNwS7ZfmqHGUa+4rWRt2bi6JBiqy7Ytgw==} engines: {node: '>=14'} @@ -30417,12 +30292,6 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/exporter-trace-otlp-http@0.45.1': - resolution: {integrity: sha512-a6CGqSG66n5R1mghzLMzyzn3iGap1b0v+0PjKFjfYuwLtpHQBxh2PHxItu+m2mXSwnM4R0GJlk9oUW5sQkCE0w==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@opentelemetry/exporter-trace-otlp-http@0.46.0': resolution: {integrity: sha512-vZ2pYOB+qrQ+jnKPY6Gnd58y1k/Ti//Ny6/XsSX7/jED0X77crtSVgC6N5UA0JiGJOh6QB2KE9gaH99010XHzg==} engines: {node: '>=14'} @@ -30447,8 +30316,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-trace-otlp-proto@0.213.0': - resolution: {integrity: sha512-six3vPq3sL+ge1iZOfKEg+RHuFQhGb8ZTdlvD234w/0gi8ty/qKD46qoGpKvM3amy5yYunWBKiFBW47WaVS26w==} + '@opentelemetry/exporter-trace-otlp-proto@0.211.0': + resolution: {integrity: sha512-DkjXwbPiqpcPlycUojzG2RmR0/SIK8Gi9qWO9znNvSqgzrnAIE9x2n6yPfpZ+kWHZGafvsvA1lVXucTyyQa5Kg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30519,8 +30388,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/exporter-zipkin@2.6.0': - resolution: {integrity: sha512-AFP77OQMLfw/Jzh6WT2PtrywstNjdoyT9t9lYrYdk1s4igsvnMZ8DkZKCwxsItC01D+4Lydgrb+Wy0bAvpp8xg==} + '@opentelemetry/exporter-zipkin@2.5.0': + resolution: {integrity: sha512-bk9VJgFgUAzkZzU8ZyXBSWiUGLOM3mZEgKJ1+jsZclhRnAoDNf+YBdq+G9R3cP0+TKjjWad+vVrY/bE/vRR9lA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 @@ -30543,8 +30412,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-amqplib@0.60.0': - resolution: {integrity: sha512-q/B2IvoVXRm1M00MvhnzpMN6rKYOszPXVsALi6u0ss4AYHe+TidZEtLW9N1ZhrobI1dSriHnBqqtAOZVAv07sg==} + '@opentelemetry/instrumentation-amqplib@0.58.0': + resolution: {integrity: sha512-fjpQtH18J6GxzUZ+cwNhWUpb71u+DzT7rFkg5pLssDGaEber91Y2WNGdpVpwGivfEluMlNMZumzjEqfg8DeKXQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30567,8 +30436,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-aws-lambda@0.65.0': - resolution: {integrity: sha512-7SiaXnyEH0abDi61r72YCpkeQr27ePiCK3SaE2uFEF/riAUwk18r6vDXQKPZczWv3BGrGpk1YDc4qYYlY0uomA==} + '@opentelemetry/instrumentation-aws-lambda@0.63.0': + resolution: {integrity: sha512-XEkXvrBtIKPgp6kFSuNV3FpugGiLIz3zpjXu/7t9ioBKN7pZG5hef3VCPUhtyE8UZ3N3D9rkjSLaDOND0inNrg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30597,8 +30466,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-aws-sdk@0.68.0': - resolution: {integrity: sha512-nHXSRX3iYSE9MaiPE+jIovuNA8dTmleeg0vdLHkk5nvWCYFf/I9kMdqA3KcfKCPonVc5+NtSTft6OVtuGtawIA==} + '@opentelemetry/instrumentation-aws-sdk@0.66.0': + resolution: {integrity: sha512-K+vFDsD0RsjxjCOWGOKgaqOoE5wxIPMA8wnGJ0no3m7MjVdpkS/dNOGUx2nYegpqZzU/jZ0qvc+JrfkvkzcUyg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30627,8 +30496,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-bunyan@0.58.0': - resolution: {integrity: sha512-vxotqOCzUQf2C4Dlrv+feY9XhQSa2wG/R+0S/JZ/axhbW0/yJeNKWsWWQ1FUFZQkUlZUS5nyWM8ePvgVmPq/Kg==} + '@opentelemetry/instrumentation-bunyan@0.56.0': + resolution: {integrity: sha512-cTt3gLGxBvgjgUTBeMz6MaFAHXFQM/N3411mZFTzlczuOQTlsuJTn+fWTah/a0el9NsepO5LdbULRBNmA9rSUw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30657,8 +30526,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-cassandra-driver@0.58.0': - resolution: {integrity: sha512-qPzEANo6IVz02sctrbihMwcNGq+LUUrISnzFitUmFzBz5SjPp5iEPy59KFNqpNa9k/oas5B7650OWB/z2Ld7qQ==} + '@opentelemetry/instrumentation-cassandra-driver@0.56.0': + resolution: {integrity: sha512-56Yd41E15QlciuqC6DZR2KdeetXzhdcwp1BRRb8ORsHbRQWbvPdhV8vpvkrvs3cvY8N1KoqtPgh7mdkVhyQz+Q==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30681,8 +30550,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-connect@0.56.0': - resolution: {integrity: sha512-PKp+sSZ7AfzMvGgO3VCyo1inwNu+q7A1k9X88WK4PQ+S6Hp7eFk8pie+sWHDTaARovmqq5V2osav3lQej2B0nw==} + '@opentelemetry/instrumentation-connect@0.54.0': + resolution: {integrity: sha512-43RmbhUhqt3uuPnc16cX6NsxEASEtn8z/cYV8Zpt6EP4p2h9s4FNuJ4Q9BbEQ2C0YlCCB/2crO1ruVz/hWt8fA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30705,8 +30574,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/instrumentation-cucumber@0.29.0': - resolution: {integrity: sha512-u3bECWikRK/nHQemb5TJbfht/eC70sVUwzkhAOTuXHAU+QAtUV9XLy6snjtGSJ1RLgOXU26tb4SqNplLa26COA==} + '@opentelemetry/instrumentation-cucumber@0.26.0': + resolution: {integrity: sha512-LGSgNR9gMJ3eiChbW9WjFgiCdJwdPKwARZwRE1s57CGY8/B3emAoQt2B05TY1y2TQuQKRBFbyNVXpWHFl9WQGQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 @@ -30729,8 +30598,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-dataloader@0.30.0': - resolution: {integrity: sha512-MXHP2Q38cd2OhzEBKAIXUi9uBlPEYzF6BNJbyjUXBQ6kLaf93kRC41vNMIz0Nl5mnuwK7fDvKT+/lpx7BXRwdg==} + '@opentelemetry/instrumentation-dataloader@0.28.0': + resolution: {integrity: sha512-ExXGBp0sUj8yhm6Znhf9jmuOaGDsYfDES3gswZnKr4MCqoBWQdEFn6EoDdt5u+RdbxQER+t43FoUihEfTSqsjA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30759,18 +30628,12 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-dns@0.56.0': - resolution: {integrity: sha512-u2E07CxapafcgNkTH5V0XSeE7xm3VA19HpKVEcwV+j9S7lKb9CE1j42dAM6nT7NgIQocIyyon1vFU2ubS0ukpA==} + '@opentelemetry/instrumentation-dns@0.54.0': + resolution: {integrity: sha512-CvnGlYr8FKB2SeqauqJ7bSgZhrkVYj1vgbqFcbc/wnQcc03jc+afngkduahHiBgnJr+CYL/p3XjdKWp7AKYoGg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-document-load@0.35.0': - resolution: {integrity: sha512-U3zQBjbAF0rm7GT7YJ8DPqgiCdBoshmld4c1pZe3tAGAMa5QPIjonIfSMSvJ2XMh6Nvi+8Rfe3XFCe0cuWIjsQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-document-load@0.56.0': resolution: {integrity: sha512-JWBBIuXyDiSQ6Q/pyp/i5kfM2Hs0UyCPQF99dmt3mwAVZixcuxeyxeXIZRBt1BaLodxTOY/n6rwztBTSMeHe/Q==} engines: {node: ^18.19.0 || >=20.6.0} @@ -30807,8 +30670,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-express@0.61.0': - resolution: {integrity: sha512-Xdmqo9RZuZlL29Flg8QdwrrX7eW1CZ7wFQPKHyXljNymgKhN1MCsYuqQ/7uxavhSKwAl7WxkTzKhnqpUApLMvQ==} + '@opentelemetry/instrumentation-express@0.59.0': + resolution: {integrity: sha512-pMKV/qnHiW/Q6pmbKkxt0eIhuNEtvJ7sUAyee192HErlr+a1Jx+FZ3WjfmzhQL1geewyGEiPGkmjjAgNY8TgDA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30831,8 +30694,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fastify@0.57.0': - resolution: {integrity: sha512-D+rwRtbiOediYocpKGvY/RQTpuLsLdCVwaOREyqWViwItJGibWI7O/wgd9xIV63pMP0D9IdSy27wnARfUaotKg==} + '@opentelemetry/instrumentation-fastify@0.55.0': + resolution: {integrity: sha512-kkx8ODI57dN+mMW+nPuE9gniSXs/LlxWiPoXXiAJhtQJPpMqQwncHlMo+1c+qzQC5aQWkKdDskJG7TPnACNgcw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30843,12 +30706,6 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fetch@0.45.1': - resolution: {integrity: sha512-BcLXMlZmGN5islwT+B1hHmgrizZbA7MgTUHhlvwLkZpAmlDeCBUdr779q2iOpxixD2AcpUTQ1RY54JArCZIB7w==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@opentelemetry/instrumentation-fs@0.14.0': resolution: {integrity: sha512-pVc8P5AgliC1DphyyBUgsxXlm2XaPH4BpYvt7rAZDMIqUpRk8gs19SioABtKqqxvFzg5jPtgJfJsdxq0Y+maLw==} engines: {node: '>=14'} @@ -30861,8 +30718,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fs@0.32.0': - resolution: {integrity: sha512-koR6apx0g0wX6RRiPpjA4AFQUQUbXrK16kq4/SZjVp7u5cffJhNkY4TnITxcGA4acGSPYAfx3NHRIv4Khn1axQ==} + '@opentelemetry/instrumentation-fs@0.30.0': + resolution: {integrity: sha512-n3Cf8YhG7reaj5dncGlRIU7iT40bxPOjsBEA5Bc1a1g6e9Qvb+JFJ7SEiMlPbUw4PBmxE3h40ltE8LZ3zVt6OA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30891,8 +30748,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-generic-pool@0.56.0': - resolution: {integrity: sha512-fg+Jffs6fqrf0uQS0hom7qBFKsbtpBiBl8+Vkc63Gx8xh6pVh+FhagmiO6oM0m3vyb683t1lP7yGYq22SiDnqg==} + '@opentelemetry/instrumentation-generic-pool@0.54.0': + resolution: {integrity: sha512-8dXMBzzmEdXfH/wjuRvcJnUFeWzZHUnExkmFJ2uPfa31wmpyBCMxO59yr8f/OXXgSogNgi/uPo9KW9H7LMIZ+g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30927,8 +30784,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-graphql@0.61.0': - resolution: {integrity: sha512-pUiVASv6nh2XrerTvlbVHh7vKFzscpgwiQ/xvnZuAIzQ5lRjWVdRPUuXbvZJ/Yq79QsE81TZdJ7z9YsXiss1ew==} + '@opentelemetry/instrumentation-graphql@0.58.0': + resolution: {integrity: sha512-+yWVVY7fxOs3j2RixCbvue8vUuJ1inHxN2q1sduqDB0Wnkr4vOzVKRYl/Zy7B31/dcPS72D9lo/kltdOTBM3bQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30939,8 +30796,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-grpc@0.213.0': - resolution: {integrity: sha512-GT53wIJnEffHcWlDUXRodTSUUspy57PNBZXc46z9rfy3Ee+VeM5XqWnieF1yefCd01QTaISYB49LXNc2SayIBQ==} + '@opentelemetry/instrumentation-grpc@0.211.0': + resolution: {integrity: sha512-bshedE3TaD18OE3oPU15j8bn4vz+3X5mvg9jluoSn/ZjlshCb1FrstjNkTYQuRERWzeMl7WcR8sShr91FcUBXA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30981,8 +30838,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-hapi@0.59.0': - resolution: {integrity: sha512-33wa4mEr+9+ztwdgLor1SeBu4Opz4IsmpcLETXAd3VmBrOjez8uQtrsOhPCa5Vhbm5gzDlMYTgFRLQzf8/YHFA==} + '@opentelemetry/instrumentation-hapi@0.57.0': + resolution: {integrity: sha512-Os4THbvls8cTQTVA8ApLfZZztuuqGEeqog0XUnyRW7QVF0d/vOVBEcBCk1pazPFmllXGEdNbbat8e2fYIWdFbw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -30993,8 +30850,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-http@0.213.0': - resolution: {integrity: sha512-B978Xsm5XEPGhm1P07grDoaOFLHapJPkOG9h016cJsyWWxmiLnPu2M/4Nrm7UCkHSiLnkXgC+zVGUAIahy8EEA==} + '@opentelemetry/instrumentation-http@0.211.0': + resolution: {integrity: sha512-n0IaQ6oVll9PP84SjbOCwDjaJasWRHi6BLsbMLiT6tNj7QbVOkuA5sk/EfZczwI0j5uTKl1awQPivO/ldVtsqA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31047,8 +30904,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-ioredis@0.61.0': - resolution: {integrity: sha512-hsHDadUtAFbws1YSDc1XW0svGFKiUbqv2td1Cby+UAiwvojm1NyBo/taifH0t8CuFZ0x/2SDm0iuTwrM5pnVOg==} + '@opentelemetry/instrumentation-ioredis@0.59.0': + resolution: {integrity: sha512-875UxzBHWkW+P4Y45SoFM2AR8f8TzBMD8eO7QXGCyFSCUMP5s9vtt/BS8b/r2kqLyaRPK6mLbdnZznK3XzQWvw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31059,8 +30916,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-kafkajs@0.22.0': - resolution: {integrity: sha512-wJU4IBQMUikdJAcTChLFqK5lo+flo7pahqd8DSLv7uMxsdOdAHj6RzKYAm8pPfUS6ItKYutYyuicwKaFwQKsoA==} + '@opentelemetry/instrumentation-kafkajs@0.20.0': + resolution: {integrity: sha512-yJXOuWZROzj7WmYCUiyT27tIfqBrVtl1/TwVbQyWPz7rL0r1Lu7kWjD0PiVeTCIL6CrIZ7M2s8eBxsTAOxbNvw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31083,8 +30940,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-knex@0.57.0': - resolution: {integrity: sha512-vMCSh8kolEm5rRsc+FZeTZymWmIJwc40hjIKnXH4O0Dv/gAkJJIRXCsPX5cPbe0c0j/34+PsENd0HqKruwhVYw==} + '@opentelemetry/instrumentation-knex@0.55.0': + resolution: {integrity: sha512-FtTL5DUx5Ka/8VK6P1VwnlUXPa3nrb7REvm5ddLUIeXXq4tb9pKd+/ThB1xM/IjefkRSN3z8a5t7epYw1JLBJQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31107,8 +30964,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/instrumentation-koa@0.61.0': - resolution: {integrity: sha512-lvrfWe9ShK/D2X4brmx8ZqqeWPfRl8xekU0FCn7C1dHm5k6+rTOOi36+4fnaHAP8lig9Ux6XQ1D4RNIpPCt1WQ==} + '@opentelemetry/instrumentation-koa@0.59.0': + resolution: {integrity: sha512-K9o2skADV20Skdu5tG2bogPKiSpXh4KxfLjz6FuqIVvDJNibwSdu5UvyyBzRVp1rQMV6UmoIk6d3PyPtJbaGSg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -31131,8 +30988,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-lru-memoizer@0.57.0': - resolution: {integrity: sha512-cEqpUocSKJfwDtLYTTJehRLWzkZ2eoePCxfVIgGkGkb83fMB71O+y4MvRHJPbeV2bdoWdOVrl8uO0+EynWhTEA==} + '@opentelemetry/instrumentation-lru-memoizer@0.55.0': + resolution: {integrity: sha512-FDBfT7yDGcspN0Cxbu/k8A0Pp1Jhv/m7BMTzXGpcb8ENl3tDj/51U65R5lWzUH15GaZA15HQ5A5wtafklxYj7g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31155,8 +31012,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-memcached@0.56.0': - resolution: {integrity: sha512-rU5kc6g465SgG52uUl2Qlf5OiNopYleqzNgJCDPokPdEeUb3Hpj3O7kqjAJ5bKEVMZVG9UC1MBp2TQwGv60byw==} + '@opentelemetry/instrumentation-memcached@0.54.0': + resolution: {integrity: sha512-7lG+XMQVt8I+/qc4U0KAwabnIAn4CubmxBPftlrChmcok6wbv6z6W+SCVNBbN13FvPgum8NO0YwyuUXMmCyXvg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31185,8 +31042,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongodb@0.66.0': - resolution: {integrity: sha512-d7m9QnAY+4TCWI4q1QRkfrc6fo/92VwssaB1DzQfXNRvu51b78P+HJlWP7Qg6N6nkwdb9faMZNBCZJfftmszkw==} + '@opentelemetry/instrumentation-mongodb@0.64.0': + resolution: {integrity: sha512-pFlCJjweTqVp7B220mCvCld1c1eYKZfQt1p3bxSbcReypKLJTwat+wbL2YZoX9jPi5X2O8tTKFEOahO5ehQGsA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31215,8 +31072,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongoose@0.59.0': - resolution: {integrity: sha512-6/jWU+c1NgznkVLDU/2y0bXV2nJo3o9FWZ9mZ9nN6T/JBNRoMnVXZl2FdBmgH+a5MwaWLs5kmRJTP5oUVGIkPw==} + '@opentelemetry/instrumentation-mongoose@0.57.0': + resolution: {integrity: sha512-MthiekrU/BAJc5JZoZeJmo0OTX6ycJMiP6sMOSRTkvz5BrPMYDqaJos0OgsLPL/HpcgHP7eo5pduETuLguOqcg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31239,8 +31096,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql2@0.59.0': - resolution: {integrity: sha512-n9/xrVCRBfG9egVbffnlU1uhr+HX0vF4GgtAB/Bvm48wpFgRidqD8msBMiym1kRYzmpWvJqTxNT47u1MkgBEdw==} + '@opentelemetry/instrumentation-mysql2@0.57.0': + resolution: {integrity: sha512-nHSrYAwF7+aV1E1V9yOOP9TchOodb6fjn4gFvdrdQXiRE7cMuffyLLbCZlZd4wsspBzVwOXX8mpURdRserAhNA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31263,8 +31120,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql@0.59.0': - resolution: {integrity: sha512-r+V/Fh0sm7Ga8/zk/TI5H5FQRAjwr0RrpfPf8kNIehlsKf12XnvIaZi8ViZkpX0gyPEpLXqzqWD6QHlgObgzZw==} + '@opentelemetry/instrumentation-mysql@0.57.0': + resolution: {integrity: sha512-HFS/+FcZ6Q7piM7Il7CzQ4VHhJvGMJWjx7EgCkP5AnTntSN5rb5Xi3TkYJHBKeR27A0QqPlGaCITi93fUDs++Q==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31287,8 +31144,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-nestjs-core@0.59.0': - resolution: {integrity: sha512-tt2cFTENV8XB3D3xjhOz0q4hLc1eqkMZS5UyT9nnHF5FfYH94S2vAGdssvsMv+pFtA6/PmhPUZd4onUN1O7STg==} + '@opentelemetry/instrumentation-nestjs-core@0.57.0': + resolution: {integrity: sha512-mzTjjethjuk70o/vWUeV12QwMG9EAFJpkn13/q8zi++sNosf2hoGXTplIdbs81U8S3PJ4GxHKsBjM0bj1CGZ0g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31311,20 +31168,20 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-net@0.57.0': - resolution: {integrity: sha512-UUb59z83btvU8q9sQFOc3wr6dsxZP9O17dPlqRUxl1gVrxx8+CIajEGFP+KhJNdlkGyRjH09UfMRvWvCtJdakw==} + '@opentelemetry/instrumentation-net@0.55.0': + resolution: {integrity: sha512-J7isLTAmBphAKX99fZgR/jYFRJk+d5E3yVDEd7eTcyPPwFDN/LM8J8j/H5gP4ukZCbt0mtKnx1CA+P5+qw7xFQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-openai@0.11.0': - resolution: {integrity: sha512-dlE35fB8xUFBFvlVOQcaMMii+mKk6kWeQbwQEePOLBp2U4oQd2wGGeVPYyihMnTFLVhQdQm2k5DVPFc2Gcllow==} + '@opentelemetry/instrumentation-openai@0.7.1': + resolution: {integrity: sha512-QDnnAYxByJoJ3jMly/EwRbXhnfZpGigfBcHyPcgWEMR4bfawJZhdOdFi1GVcC4ImdS7fGaYQOTX1WW24mftISg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-openai@0.7.1': - resolution: {integrity: sha512-QDnnAYxByJoJ3jMly/EwRbXhnfZpGigfBcHyPcgWEMR4bfawJZhdOdFi1GVcC4ImdS7fGaYQOTX1WW24mftISg==} + '@opentelemetry/instrumentation-openai@0.9.0': + resolution: {integrity: sha512-Tf3shDZZo3pKz0LBschaEfX+SgpwMITnm8moOMzr6Fc10sKU96GxFwMmEg2JC0JW5x56kGJuwRoXZCVL66GBgg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31335,8 +31192,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-oracledb@0.38.0': - resolution: {integrity: sha512-xPVEN9jO5pdpuzRYY8d7JTMEk2sPA3KShzoK4mBQgfLvM2BR3k0XwtyyX/FmWYSrjE7oxnO30HlhuyfkEd6o5A==} + '@opentelemetry/instrumentation-oracledb@0.36.0': + resolution: {integrity: sha512-VyfdaRfr/xnx/ndQnCCk34z7HqADxmRi47SLTzL9m79LrA+F1qK49nCcqbeiFfeVJ2RA5NmfSS+BllFE4RGnsw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31371,8 +31228,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-pg@0.65.0': - resolution: {integrity: sha512-W0zpHEIEuyZ8zvb3njaX9AAbHgPYOsSWVOoWmv1sjVRSF6ZpBqtlxBWbU+6hhq1TFWBeWJOXZ8nZS/PUFpLJYQ==} + '@opentelemetry/instrumentation-pg@0.63.0': + resolution: {integrity: sha512-dKm/ODNN3GgIQVlbD6ZPxwRc3kleLf95hrRWXM+l8wYo+vSeXtEpQPT53afEf6VFWDVzJK55VGn8KMLtSve/cg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31395,8 +31252,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-pino@0.59.0': - resolution: {integrity: sha512-IgImVFtWjfMmqxc0NIe3iSjp+J3Asf9lLX8reouUFUk3Aa/qJQO5PEvOtO3sNQtJBkC9bAd1OQdFaFWSFQc03g==} + '@opentelemetry/instrumentation-pino@0.57.0': + resolution: {integrity: sha512-Oa+PT1fxWQo88KSfibLJSyCwdV9Kb2iqjpIbfMK5CFcyeOGfth8mVSFjvQEaCo+Tdbpq9Y8Ylyi4/XmWrxStew==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31413,13 +31270,6 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-redis-4@0.49.0': - resolution: {integrity: sha512-i+Wsl7M2LXEDA2yXouNJ3fttSzzb5AhlehvSBVRIFuinY51XrrKSH66biO0eox+pYQMwAlPxJ778XcMQffN78A==} - engines: {node: ^18.19.0 || >=20.6.0} - deprecated: Use "@opentelemetry/instrumentation-redis", which (as of v0.50.0) includes support for instrumenting redis v4. - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-redis@0.35.5': resolution: {integrity: sha512-UPYUncDlLqDPtyU11UhyZOUxAyPQS6yQGT0b96KjpqMhmuRb3b0WxzZh3SoIaAyprL5f9fxyeV2HfSulR0aWFQ==} engines: {node: '>=14'} @@ -31444,8 +31294,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-redis@0.61.0': - resolution: {integrity: sha512-JnPexA034/0UJRsvH96B0erQoNOqKJZjE2ZRSw9hiTSC23LzE0nJE/u6D+xqOhgUhRnhhcPHq4MdYtmUdYTF+Q==} + '@opentelemetry/instrumentation-redis@0.59.0': + resolution: {integrity: sha512-JKv1KDDYA2chJ1PC3pLP+Q9ISMQk6h5ey+99mB57/ARk0vQPGZTTEb4h4/JlcEpy7AYT8HIGv7X6l+br03Neeg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31468,8 +31318,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-restify@0.58.0': - resolution: {integrity: sha512-E8pEjW9d5rd6xxLhgHiQTwUG6YBOBeWzH/pe/IkdIGwkDzm1NVoExjSCVtMLQ8dRZbVo0nSdv2TqzyDcysuiSQ==} + '@opentelemetry/instrumentation-restify@0.56.0': + resolution: {integrity: sha512-ZkPT7zoIx6du3u7Js4n7FEw1FvNdeIpprpcM0pR4p7kfgQ82ZzhfJ7ilWKxT9Hpe6HMu+yFLicFyS1b83XcVMQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31492,8 +31342,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-router@0.57.0': - resolution: {integrity: sha512-iWhLFvNee9ZX5QhFbXZeGdoT966QemUfd1i+zxPWceE58P22qf9va6x662LbrNhcvJfXnf7hoW7BU9tzaBLmYg==} + '@opentelemetry/instrumentation-router@0.55.0': + resolution: {integrity: sha512-8IA64a6+vVQavH1qj2W/0mPOr1uS6ROkLoV29p+3At2omEIgn13g46yslKqU5lIgMSn9uzU4tSlOTe6vQM4dIg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31504,8 +31354,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-runtime-node@0.26.0': - resolution: {integrity: sha512-Q6xlV3o/ogtAJ1stWNNqL7kKFD6sMEDyC3Rb9GqnMQ5uH1wfnXO189F2XwMNt7Xe52asNU1WCrqiGa0iSrkq1g==} + '@opentelemetry/instrumentation-runtime-node@0.24.0': + resolution: {integrity: sha512-1gNjTpHhgHIkRXivY4Nk+jS+2oChwQSnEVne4AHvlY0tzLHpWE+LEZV6DoiN7Ui93/UpnebhMsF0YUnFZaeJdg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31534,8 +31384,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-socket.io@0.60.0': - resolution: {integrity: sha512-gzIkrN+hJzuQR87CA1zVCUQASOuuz0uC7kk7qDt9E/4sNvWrCIfI0YYa8ZTPgbaofqZE1fGWt0UqzIzQTb5BWQ==} + '@opentelemetry/instrumentation-socket.io@0.57.0': + resolution: {integrity: sha512-0FhO9/UPnOsRbbVHLxgffXMEdATNJQauwM+X4+X6UaV9EANEhci+etMX9R06xprJRvE3kDcfXoMn2MTF3RdNDw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31552,8 +31402,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-tedious@0.32.0': - resolution: {integrity: sha512-BQS6gG8RJ1foEqfEZ+wxoqlwfCAzb1ZVG0ad8Gfe4x8T658HJCLGLd4E4NaoQd8EvPfLqOXgzGaE/2U4ytDSWA==} + '@opentelemetry/instrumentation-tedious@0.30.0': + resolution: {integrity: sha512-bZy9Q8jFdycKQ2pAsyuHYUHNmCxCOGdG6eg1Mn75RvQDccq832sU5OWOBnc12EFUELI6icJkhR7+EQKMBam2GA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31570,8 +31420,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.7.0 - '@opentelemetry/instrumentation-undici@0.23.0': - resolution: {integrity: sha512-LL0VySzKVR2cJSFVZaTYpZl1XTpBGnfzoQPe2W7McS2267ldsaEIqtQY6VXs2KCXN0poFjze5110PIpxHDaDGg==} + '@opentelemetry/instrumentation-undici@0.21.0': + resolution: {integrity: sha512-gok0LPUOTz2FQ1YJMZzaHcOzDFyT64XJ8M9rNkugk923/p6lDGms/cRW1cqgqp6N6qcd6K6YdVHwPEhnx9BWbw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.7.0 @@ -31582,13 +31432,6 @@ packages: peerDependencies: '@opentelemetry/api': ^1.7.0 - '@opentelemetry/instrumentation-user-interaction@0.34.1': - resolution: {integrity: sha512-VD4HwEm1TKcm1d9OuRAixqKtCiG54y/bdJop+RoR/6dhDvl4BfkM7XTYa3YNGyWq23X81o/srwbShwpu2xAZDQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - zone.js: 0.11.4 - '@opentelemetry/instrumentation-user-interaction@0.55.0': resolution: {integrity: sha512-C9rspncOTR9dMPJHXHxPA88tRrDqfgegwuQ1qEmqnlzxkBXnX3Ps0zT3RTNTHiaGy+vp/rGlqumz2xjuLMd6GA==} engines: {node: ^18.19.0 || >=20.6.0} @@ -31620,20 +31463,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-winston@0.57.0': - resolution: {integrity: sha512-0MEeeyTd55OcXEd3SRkDwPvpb2equZ4kIADI7boVB9OYyaxAR2TB7jPX1IGORn1n/V+FXVWlYn9pQc2GuboJ+w==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-xml-http-request@0.45.1': - resolution: {integrity: sha512-gwX55apcB4d+2OpZsOEtct+eUAvtZ9wT8IyZVbzZyN471vSePacKNrGbQr8uFlyioPj+IAS/izv+LJyqw6PNxA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/instrumentation@0.202.0': - resolution: {integrity: sha512-Uz3BxZWPgDwgHM2+vCKEQRh0R8WKrd/q6Tus1vThRClhlPO39Dyz7mDrOr6KuqGXAlBQ1e5Tnymzri4RMZNaWA==} + '@opentelemetry/instrumentation-winston@0.55.0': + resolution: {integrity: sha512-RKW/PYJrvIbRYss0uKe0eU+FgIRScnQTJXIWAZK17ViHf7EALaRDXOu3tFW5JDRg6fkccj5q90YZUCzh6s0v5A==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31650,12 +31481,6 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation@0.213.0': - resolution: {integrity: sha512-3i9NdkET/KvQomeh7UaR/F4r9P25Rx6ooALlWXPIjypcEOUxksCmVu0zA70NBJWlrMW1rPr/LRidFAflLI+s/w==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation@0.41.2': resolution: {integrity: sha512-rxU72E0pKNH6ae2w5+xgVYZLzc5mlxAbGzF4shxMVK8YC2QQsfN38B2GPbj0jvrKWWNUElfclQ+YTykkNg/grw==} engines: {node: '>=14'} @@ -31722,12 +31547,6 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-exporter-base@0.213.0': - resolution: {integrity: sha512-MegxAP1/n09Ob2dQvY5NBDVjAFkZRuKtWKxYev1R2M8hrsgXzQGkaMgoEKeUOyQ0FUyYcO29UOnYdQWmWa0PXg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-exporter-base@0.41.2': resolution: {integrity: sha512-pfwa6d+Dax3itZcGWiA0AoXeVaCuZbbqUTsCtOysd2re8C2PWXNxDONUfBWsn+KgxAdi+ljwTjJGiaVLDaIEvQ==} engines: {node: '>=14'} @@ -31740,12 +31559,6 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/otlp-exporter-base@0.45.1': - resolution: {integrity: sha512-Jvd6x8EwWGKEPWF4tkP4LpTPXiIkkafMNMvMJUfJd5DyNAftL1vAz+48jmi3URL2LMPkGryrvWPz8Tdu917gQw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@opentelemetry/otlp-exporter-base@0.46.0': resolution: {integrity: sha512-hfkh7cG17l77ZSLRAogz19SIJzr0KeC7xv5PDyTFbHFpwwoxV/bEViO49CqUFH6ckXB63NrltASP9R7po+ahTQ==} engines: {node: '>=14'} @@ -31770,8 +31583,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-grpc-exporter-base@0.213.0': - resolution: {integrity: sha512-XgRGuLE9usFNlnw2lgMIM4HTwpcIyjdU/xPoJ8v3LbBLBfjaDkIugjc9HoWa7ZSJ/9Bhzgvm/aD0bGdYUFgnTw==} + '@opentelemetry/otlp-grpc-exporter-base@0.211.0': + resolution: {integrity: sha512-mR5X+N4SuphJeb7/K7y0JNMC8N1mB6gEtjyTLv+TSAhl0ZxNQzpSKP8S5Opk90fhAqVYD4R0SQSAirEBlH1KSA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -31846,12 +31659,6 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-transformer@0.213.0': - resolution: {integrity: sha512-RSuAlxFFPjeK4d5Y6ps8L2WhaQI6CXWllIjvo5nkAlBpmq2XdYWEBGiAbOF4nDs8CX4QblJDv5BbMUft3sEfDw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-transformer@0.41.2': resolution: {integrity: sha512-jJbPwB0tNu2v+Xi0c/v/R3YBLJKLonw1p+v3RVjT2VfzeUyzSp/tBeVdY7RZtL6dzZpA9XSmp8UEfWIFQo33yA==} engines: {node: '>=14'} @@ -31864,12 +31671,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.8.0' - '@opentelemetry/otlp-transformer@0.45.1': - resolution: {integrity: sha512-FhIHgfC0b0XtoBrS5ISfva939yWffNl47ypXR8I7Ru+dunlySpmf2TLocKHYLHGcWiuoeSNO5O4dZCmSKOtpXw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.8.0' - '@opentelemetry/otlp-transformer@0.46.0': resolution: {integrity: sha512-Fj9hZwr6xuqgsaERn667Uf6kuDG884puWhyrai2Jen2Fq+bGf4/5BzEJp/8xvty0VSU4EfXOto/ys3KpSz2UHg==} engines: {node: '>=14'} @@ -31942,8 +31743,8 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/propagator-b3@2.6.0': - resolution: {integrity: sha512-SguK4jMmRvQ0c0dxAMl6K+Eu1+01X0OP7RLiIuHFjOS8hlB23ZYNnhnbAdSQEh5xVXQmH0OAS0TnmVI+6vB2Kg==} + '@opentelemetry/propagator-b3@2.5.0': + resolution: {integrity: sha512-g10m4KD73RjHrSvUge+sUxUl8m4VlgnGc6OKvo68a4uMfaLjdFU+AULfvMQE/APq38k92oGUxEzBsAZ8RN/YHg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' @@ -31990,8 +31791,8 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/propagator-jaeger@2.6.0': - resolution: {integrity: sha512-KGWJuvp9X8X36bhHgIhWEnHAzXDInFr+Fvo9IQhhuu6pXLT8mF7HzFyx/X+auZUITvPaZhM39Phj3vK12MbhwA==} + '@opentelemetry/propagator-jaeger@2.5.0': + resolution: {integrity: sha512-t70ErZCncAR/zz5AcGkL0TF25mJiK1FfDPEQCgreyAHZ+mRJ/bNUiCnImIBDlP3mSDXy6N09DbUEKq0ktW98Hg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' @@ -32000,10 +31801,6 @@ packages: resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} engines: {node: '>=14'} - '@opentelemetry/redis-common@0.37.0': - resolution: {integrity: sha512-tJwgE6jt32bLs/9J6jhQRKU2EZnsD8qaO13aoFyXwF6s4LhpT7YFHf3Z03MqdILk6BA2BFUhoyh7k9fj9i032A==} - engines: {node: ^18.19.0 || >=20.6.0} - '@opentelemetry/redis-common@0.38.2': resolution: {integrity: sha512-1BCcU93iwSRZvDAgwUxC/DV4T/406SkMfxGqu5ojc3AvNI+I9GhV7v0J1HljsczuuhcnFLYqD5VmwVXfCGHzxA==} engines: {node: ^18.19.0 || >=20.6.0} @@ -32020,8 +31817,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resource-detector-alibaba-cloud@0.33.3': - resolution: {integrity: sha512-Ep3LDWALU+wCgGzAa1rgFXh3TObahN7HaQZntAeVQnnNhZ3VSXnBniRGeSCTIRvRr7YdZvq+G+rstixtAN5Ugw==} + '@opentelemetry/resource-detector-alibaba-cloud@0.33.1': + resolution: {integrity: sha512-PMR5CZABP7flrYdSEYO1u9A1CjPdwtX4JBO8b1r0rTXeXRhIVT7kdTcA7OAqIlqqLh0L3mbzXXS+KCPWQlANjw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 @@ -32038,8 +31835,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resource-detector-aws@2.13.0': - resolution: {integrity: sha512-ZPCn7gZhGqUYUoD+RCHIlayoHBMaJaEjfqlgz2EPKoXJ4y7Ru7CUm+Tm3yJVMKF92cN9xUQR0j5KALyF0fg9aw==} + '@opentelemetry/resource-detector-aws@2.9.0': + resolution: {integrity: sha512-2dk1TuuImatD8n0OyBgghucluGcj2XtnortmJdLH0OffM7cVtat4h7Dcg8IZvP7WrMjbP4ZQQ2cpD1Fhvx6BsA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 @@ -32050,15 +31847,15 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resource-detector-azure@0.2.12': - resolution: {integrity: sha512-iIarQu6MiCjEEp8dOzmBvCSlRITPFTinFB2oNKAjU6xhx8d7eUcjNOKhBGQTvuCriZrxrEvDaEEY9NfrPQ6uYQ==} - engines: {node: '>=14'} + '@opentelemetry/resource-detector-azure@0.19.0': + resolution: {integrity: sha512-3UBJYyAfQY7aqot4xBvTsGlxi9Ax5XwWlddCvFPNIfZiy5KX405w3KThcRypadVsP5Q9D/lr/WAn5J+xXTqJoA==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resource-detector-azure@0.21.0': - resolution: {integrity: sha512-gAjK+lKeywMcRk9X/DjJsK9aPrQo+tM9vcp6AKpAAHRN5hNwzO/vAaW/Ezdodu76BK4ELo/O77y/b9qP+uU7vg==} - engines: {node: ^18.19.0 || >=20.6.0} + '@opentelemetry/resource-detector-azure@0.2.12': + resolution: {integrity: sha512-iIarQu6MiCjEEp8dOzmBvCSlRITPFTinFB2oNKAjU6xhx8d7eUcjNOKhBGQTvuCriZrxrEvDaEEY9NfrPQ6uYQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 @@ -32068,14 +31865,14 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resource-detector-container@0.8.2': - resolution: {integrity: sha512-8oT0tUO+QS8Tz7u0YQZKoZOpS+LIgS4FnLjWSCPyXPOgKuOeOK5Xe0sd0ulkAGPN4yKr7toNYNVkBeaC/HlmFQ==} + '@opentelemetry/resource-detector-container@0.8.0': + resolution: {integrity: sha512-nq0DlvJuKtnQWTqK3kwvYiaWnHgErpdS60e/JA50btD0CDqMq0vkl1xd6YFC7PvcPsOdiwXINRP5J/GncF70UQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resource-detector-container@0.8.4': - resolution: {integrity: sha512-kIvGHkMSacp+kb7btTuXbOAIWLyOCO+P/h/8xxaeLcp5ptmHRZ67uEdLAQo61ApdayFB/uqjJ9gY4x2/i/KsoA==} + '@opentelemetry/resource-detector-container@0.8.2': + resolution: {integrity: sha512-8oT0tUO+QS8Tz7u0YQZKoZOpS+LIgS4FnLjWSCPyXPOgKuOeOK5Xe0sd0ulkAGPN4yKr7toNYNVkBeaC/HlmFQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 @@ -32092,8 +31889,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resource-detector-gcp@0.48.0': - resolution: {integrity: sha512-kT/iG9zjlbWYaj22ixQ+vso0fXKCSKLH0loTb0Xfq+nQpu19MBTAa63IdITGCfqjcffh8/aB4hdyExypwAC16A==} + '@opentelemetry/resource-detector-gcp@0.46.0': + resolution: {integrity: sha512-CulcNXV/a4lc4TTYFdApTfRg4DlCwiUilsXnEsRfFSK/p/EbkfgEQz8hB4tZF5z/Us9MnhtuT6l4Kj4Ng8qLcw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 @@ -32158,12 +31955,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/resources@2.6.0': - resolution: {integrity: sha512-D4y/+OGe3JSuYUCBxtH5T9DSAWNcvCb/nQWIga8HNtXTVPQn59j0nTBAgaAXxUVBDl40mG3Tc76b46wPlZaiJQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-logs@0.208.0': resolution: {integrity: sha512-QlAyL1jRpOeaqx7/leG1vJMp84g0xKP6gJmfELBpnI4O/9xPX+Hu5m1POk9Kl+veNkyth5t19hRlN6tNY1sjbA==} engines: {node: ^18.19.0 || >=20.6.0} @@ -32176,12 +31967,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.4.0 <1.10.0' - '@opentelemetry/sdk-logs@0.213.0': - resolution: {integrity: sha512-00xlU3GZXo3kXKve4DLdrAL0NAFUaZ9appU/mn00S/5kSUdAvyYsORaDUfR04Mp2CLagAOhrzfUvYozY/EZX2g==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.4.0 <1.10.0' - '@opentelemetry/sdk-logs@0.41.2': resolution: {integrity: sha512-smqKIw0tTW15waj7BAPHFomii5c3aHnSE4LQYTszGoK5P9nZs8tEAIpu15UBxi3aG31ZfsLmm4EUQkjckdlFrw==} engines: {node: '>=14'} @@ -32196,13 +31981,6 @@ packages: '@opentelemetry/api': '>=1.4.0 <1.8.0' '@opentelemetry/api-logs': '>=0.39.1' - '@opentelemetry/sdk-logs@0.45.1': - resolution: {integrity: sha512-z0RRgW4LeKEKnhXS4F/HnqB6+7gsy63YK47F4XAJYHs4s1KKg8XnQ2RkbuL31i/a9nXkylttYtvsT50CGr487g==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.4.0 <1.8.0' - '@opentelemetry/api-logs': '>=0.39.1' - '@opentelemetry/sdk-logs@0.46.0': resolution: {integrity: sha512-Knlyk4+G72uEzNh6GRN1Fhmrj+/rkATI5/lOrevN7zRDLgp4kfyZBGGoWk7w+qQjlYvwhIIdPVxlIcipivdZIg==} engines: {node: '>=14'} @@ -32283,20 +32061,14 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.9.0 <1.10.0' - '@opentelemetry/sdk-metrics@2.6.0': - resolution: {integrity: sha512-CicxWZxX6z35HR83jl+PLgtFgUrKRQ9LCXyxgenMnz5A1lgYWfAog7VtdOvGkJYyQgMNPhXQwkYrDLujk7z1Iw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.9.0 <1.10.0' - '@opentelemetry/sdk-node@0.208.0': resolution: {integrity: sha512-pbAqpZ7zTMFuTf3YecYsecsto/mheuvnK2a/jgstsE5ynWotBjgF5bnz5500W9Xl2LeUfg04WMt63TWtAgzRMw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-node@0.213.0': - resolution: {integrity: sha512-8s7SQtY8DIAjraXFrUf0+I90SBAUQbsMWMtUGKmusswRHWXtKJx42aJQMoxEtC82Csqj+IlBH6FoP8XmmUDSrQ==} + '@opentelemetry/sdk-node@0.211.0': + resolution: {integrity: sha512-+s1eGjoqmPCMptNxcJJD4IxbWJKNLOQFNKhpwkzi2gLkEbCj6LzSHJNhPcLeBrBlBLtlSpibM+FuS7fjZ8SSFQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' @@ -32343,12 +32115,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' - '@opentelemetry/sdk-trace-base@1.18.1': - resolution: {integrity: sha512-tRHfDxN5dO+nop78EWJpzZwHsN1ewrZRVVwo03VJa3JQZxToRDH29/+MB24+yoa+IArerdr7INFJiX/iN4gjqg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.8.0' - '@opentelemetry/sdk-trace-base@1.19.0': resolution: {integrity: sha512-+IRvUm+huJn2KqfFW3yW/cjvRwJ8Q7FzYHoUNx5Fr0Lws0LxjMJG1uVB8HDpLwm7mg5XXH2M5MF+0jj5cM8BpQ==} engines: {node: '>=14'} @@ -32385,12 +32151,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-trace-base@2.6.0': - resolution: {integrity: sha512-g/OZVkqlxllgFM7qMKqbPV9c1DUPhQ7d4n3pgZFcrnrNft9eJXZM2TNHTPYREJBrtNdRytYyvwjgL5geDKl3EQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-trace-node@1.15.2': resolution: {integrity: sha512-5deakfKLCbPpKJRCE2GPI8LBE2LezyvR17y3t37ZI3sbaeogtyxmBaFV+slmG9fN8OaIT+EUsm1QAT1+z59gbQ==} engines: {node: '>=14'} @@ -32433,18 +32193,12 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/sdk-trace-node@2.6.0': - resolution: {integrity: sha512-YhswtasmsbIGEFvLGvR9p/y3PVRTfFf+mgY8van4Ygpnv4sA3vooAjvh+qAn9PNWxs4/IwGGqiQS0PPsaRJ0vQ==} + '@opentelemetry/sdk-trace-node@2.5.0': + resolution: {integrity: sha512-O6N/ejzburFm2C84aKNrwJVPpt6HSTSq8T0ZUMq3xT2XmqT4cwxUItcL5UWGThYuq8RTcbH8u1sfj6dmRci0Ow==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/sdk-trace-web@1.18.1': - resolution: {integrity: sha512-WN30vxy4NY8TqFWuICXaPXjBdy6A5kDhxOqp4NfhqXfpcWWT0GqSgv05Q42quWYOFgaulnmPRRJwxzAdhBliLQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.8.0' - '@opentelemetry/sdk-trace-web@2.5.0': resolution: {integrity: sha512-xWibakHs+xbx6vxH7Q8TbFS6zjf812o/kIS4xBDB32qSL9wF+Z5IZl2ZAGu4rtmPBQ7coZcOd684DobMhf8dKw==} engines: {node: ^18.19.0 || >=20.6.0} @@ -32495,10 +32249,6 @@ packages: resolution: {integrity: sha512-R5R9tb2AXs2IRLNKLBJDynhkfmx7mX0vi8NkhZb3gUkPWHn6HXk5J8iQ/dql0U3ApfWym4kXXmBDRGO+oeOfjg==} engines: {node: '>=14'} - '@opentelemetry/semantic-conventions@1.40.0': - resolution: {integrity: sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw==} - engines: {node: '>=14'} - '@opentelemetry/sql-common@0.40.1': resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==} engines: {node: '>=14'} @@ -32511,6 +32261,36 @@ packages: peerDependencies: '@opentelemetry/api': ^1.1.0 + '@orval/angular@7.20.0': + resolution: {integrity: sha512-Axb0uOH7k/YRUovjCDW+LkGrbeX5UJEo67wzJZFZCo5VHQZJNjKA4AG2m8Jxps9r9xtsW5OsBJiQ6Miruxr5Jw==} + + '@orval/axios@7.20.0': + resolution: {integrity: sha512-QdkEGAGX0pchYgw4kVq/s3qXSvcaWmdhpb73TQRQ4kVzCaJu7LWAMlRy5Mv0uXKJrSD2csJv1IF7831XDFhTtQ==} + + '@orval/core@7.20.0': + resolution: {integrity: sha512-K5ilcSEOOQVHl6/f0bWAGP+BEf5kRIh7XlXD0AJl/oE76vzFN8BgXgfjRBrpKIBQNUofLRgwYpGJXnhVr3bc4Q==} + + '@orval/fetch@7.20.0': + resolution: {integrity: sha512-Ysq4pgkgJePmHnkAPigOXDC0cGEHoXkY2n/0TowzvBk/MZ6cYZTdgljrYJ/fhPor3bNfwpy2ppVYEvvDsItxOg==} + + '@orval/hono@7.20.0': + resolution: {integrity: sha512-ESf42JjNFXvfs0Txp4aFNOOoSqvBF9YCgQB+lyP/VYyPffJriDBsE8+T0njuagj0oP8ucJiG/7SH2NYCoR6uhg==} + + '@orval/mcp@7.20.0': + resolution: {integrity: sha512-qRmPUnvdIE8jnYu9XcHvQIC7FZ8Dx42VCrRdyQrACJSKhlHbfafARQrw/CK58G+f2ADaYz8xb3TStbcFMiw36A==} + + '@orval/mock@7.20.0': + resolution: {integrity: sha512-fAuGnoKUOhM9eJm8/+H3Llt3w2hiAYDTK6H15qrheeJyulX3PbGr0QRz2raRoAkHc2G+oNiNruWuryhyr1jjJw==} + + '@orval/query@7.20.0': + resolution: {integrity: sha512-/sAXHBh8FguOVzKvxxLhKgxISscp1eStZIytcDaBF2Y5wVHpqqUq6B0kFbtClKt2e10nZUZgqAjnDQfSMY4Hrw==} + + '@orval/swr@7.20.0': + resolution: {integrity: sha512-lu6a1dVNzhua9jtBc/UwvyPZd7AFi42iID9eMJH+PeefrVhNexFDdYbOVe4ABrtfdiI4mpMHUDGbmzyrwMLblg==} + + '@orval/zod@7.20.0': + resolution: {integrity: sha512-Czzz6aR/eSLy35HZdvKChNYIr4ebbIgyoaX576vKssK+zHY17fftOW4oq0e8CMtlxJseiKBi4IE0n/hQJbt6zw==} + '@paralleldrive/cuid2@2.3.1': resolution: {integrity: sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==} @@ -32666,16 +32446,16 @@ packages: '@radix-ui/react-arrow@1.0.2': resolution: {integrity: sha512-fqYwhhI9IarZ0ll2cUSfKuXHlJK0qE4AfnRrPBbRwEH/4mGQn04/QFGomLi8TXWIdv9WJk//KgGm+aDxVIr1wA==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 '@radix-ui/react-arrow@1.0.3': resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32687,8 +32467,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32700,8 +32480,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32713,8 +32493,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32726,8 +32506,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32737,13 +32517,13 @@ packages: '@radix-ui/react-compose-refs@1.0.0': resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 '@radix-ui/react-compose-refs@1.0.1': resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32752,7 +32532,7 @@ packages: resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32760,13 +32540,13 @@ packages: '@radix-ui/react-context@1.0.0': resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 '@radix-ui/react-context@1.0.1': resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32775,7 +32555,7 @@ packages: resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32784,7 +32564,7 @@ packages: resolution: {integrity: sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32794,8 +32574,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32806,7 +32586,7 @@ packages: resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32815,7 +32595,7 @@ packages: resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32823,16 +32603,16 @@ packages: '@radix-ui/react-dismissable-layer@1.0.3': resolution: {integrity: sha512-nXZOvFjOuHS1ovumntGV7NNoLaEp9JEvTht3MBjP44NSW5hUKj/8OnfN3+8WmB+CEhN44XaGhpHoSsUIEl5P7Q==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 '@radix-ui/react-dismissable-layer@1.0.4': resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==} peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32844,8 +32624,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32857,8 +32637,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32870,8 +32650,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32882,7 +32662,7 @@ packages: resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32891,7 +32671,7 @@ packages: resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32901,8 +32681,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32914,8 +32694,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32927,8 +32707,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32938,13 +32718,13 @@ packages: '@radix-ui/react-id@1.0.0': resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 '@radix-ui/react-id@1.0.1': resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32953,7 +32733,7 @@ packages: resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32963,8 +32743,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32976,8 +32756,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -32989,8 +32769,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33000,16 +32780,16 @@ packages: '@radix-ui/react-popper@1.1.1': resolution: {integrity: sha512-keYDcdMPNMjSC8zTsZ8wezUMiWM9Yj14wtF3s0PTIs9srnEPC9Kt2Gny1T3T81mmSeyDjZxsD9N5WCwNNb712w==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 '@radix-ui/react-popper@1.1.2': resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==} peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33021,8 +32801,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33034,8 +32814,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33045,16 +32825,16 @@ packages: '@radix-ui/react-portal@1.0.2': resolution: {integrity: sha512-swu32idoCW7KA2VEiUZGBSu9nB6qwGdV6k6HYhUoOo3M1FFpD+VgLzUqtt3mwL1ssz7r2x8MggpLSQach2Xy/Q==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 '@radix-ui/react-portal@1.0.3': resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==} peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33066,8 +32846,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33079,8 +32859,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33090,16 +32870,16 @@ packages: '@radix-ui/react-presence@1.0.0': resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 '@radix-ui/react-presence@1.0.1': resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33111,8 +32891,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33122,16 +32902,16 @@ packages: '@radix-ui/react-primitive@1.0.2': resolution: {integrity: sha512-zY6G5Qq4R8diFPNwtyoLRZBxzu1Z+SXMlfYpChN7Dv8gvmx9X3qhDqiLWvKseKVJMuedFeU/Sa0Sy/Ia+t06Dw==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 '@radix-ui/react-primitive@1.0.3': resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33143,8 +32923,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33156,8 +32936,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33169,8 +32949,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33182,8 +32962,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33195,8 +32975,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33208,8 +32988,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33221,8 +33001,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33234,8 +33014,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33247,8 +33027,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33258,13 +33038,13 @@ packages: '@radix-ui/react-slot@1.0.1': resolution: {integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 '@radix-ui/react-slot@1.0.2': resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33273,7 +33053,7 @@ packages: resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33282,7 +33062,7 @@ packages: resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33292,8 +33072,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33305,8 +33085,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33318,8 +33098,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33331,8 +33111,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33344,8 +33124,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33355,16 +33135,16 @@ packages: '@radix-ui/react-tooltip@1.0.5': resolution: {integrity: sha512-cDKVcfzyO6PpckZekODJZDe5ZxZ2fCZlzKzTmPhe4mX9qTHRfLcKgqb0OKf22xLwDequ2tVleim+ZYx3rabD5w==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 '@radix-ui/react-tooltip@1.0.7': resolution: {integrity: sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==} peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33374,13 +33154,13 @@ packages: '@radix-ui/react-use-callback-ref@1.0.0': resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 '@radix-ui/react-use-callback-ref@1.0.1': resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33389,7 +33169,7 @@ packages: resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33397,13 +33177,13 @@ packages: '@radix-ui/react-use-controllable-state@1.0.0': resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 '@radix-ui/react-use-controllable-state@1.0.1': resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33412,7 +33192,7 @@ packages: resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33421,7 +33201,7 @@ packages: resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33429,13 +33209,13 @@ packages: '@radix-ui/react-use-escape-keydown@1.0.2': resolution: {integrity: sha512-DXGim3x74WgUv+iMNCF+cAo8xUHHeqvjx8zs7trKf+FkQKPQXLk2sX7Gx1ysH7Q76xCpZuxIJE7HLPxRE+Q+GA==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 '@radix-ui/react-use-escape-keydown@1.0.3': resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33444,7 +33224,7 @@ packages: resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33452,13 +33232,13 @@ packages: '@radix-ui/react-use-layout-effect@1.0.0': resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 '@radix-ui/react-use-layout-effect@1.0.1': resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33467,7 +33247,7 @@ packages: resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33476,7 +33256,7 @@ packages: resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33485,7 +33265,7 @@ packages: resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33493,13 +33273,13 @@ packages: '@radix-ui/react-use-rect@1.0.0': resolution: {integrity: sha512-TB7pID8NRMEHxb/qQJpvSt3hQU4sqNPM1VCTjTRjEOa7cEop/QMuq8S6fb/5Tsz64kqSvB9WnwsDHtjnrM9qew==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 '@radix-ui/react-use-rect@1.0.1': resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33508,7 +33288,7 @@ packages: resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33516,13 +33296,13 @@ packages: '@radix-ui/react-use-size@1.0.0': resolution: {integrity: sha512-imZ3aYcoYCKhhgNpkNDh/aTiU05qw9hX+HHI1QDBTyIlcFjgeFlKKySNGMwTp7nYFLQg/j0VA2FmCY4WPDDHMg==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 '@radix-ui/react-use-size@1.0.1': resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33531,7 +33311,7 @@ packages: resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} peerDependencies: '@types/react': 18.3.11 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33539,16 +33319,16 @@ packages: '@radix-ui/react-visually-hidden@1.0.2': resolution: {integrity: sha512-qirnJxtYn73HEk1rXL12/mXnu2rwsNHDID10th2JGtdK25T9wX+mxRmGt7iPSahw512GbZOc0syZX1nLQGoEOg==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 '@radix-ui/react-visually-hidden@1.0.3': resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33560,8 +33340,8 @@ packages: peerDependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -33580,44 +33360,40 @@ packages: '@react-aria/focus@3.21.3': resolution: {integrity: sha512-FsquWvjSCwC2/sBk4b+OqJyONETUIXQ2vM0YdPAuC+QFQh2DT6TIBo6dOZVSezlhudDla69xFBd6JvCFq1AbUw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react: 19.2.1 + react-dom: 19.2.1 '@react-aria/interactions@3.26.0': resolution: {integrity: sha512-AAEcHiltjfbmP1i9iaVw34Mb7kbkiHpYdqieWufldh4aplWgsF11YQZOfaCJW4QoR2ML4Zzoa9nfFwLXA52R7Q==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react: 19.2.1 + react-dom: 19.2.1 '@react-aria/ssr@3.9.10': resolution: {integrity: sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==} engines: {node: '>= 12'} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react: 19.2.1 '@react-aria/utils@3.32.0': resolution: {integrity: sha512-/7Rud06+HVBIlTwmwmJa2W8xVtgxgzm0+kLbuFooZRzKDON6hhozS1dOMR/YLMxyJOaYOTpImcP4vRR9gL1hEg==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-email/render@0.0.12': - resolution: {integrity: sha512-S8WRv/PqECEi6x0QJBj0asnAb5GFtJaHlnByxLETLkgJjc76cxMYDH4r9wdbuJ4sjkcbpwP3LPnVzwS+aIjT7g==} - engines: {node: '>=18.0.0'} + react: 19.2.1 + react-dom: 19.2.1 '@react-leaflet/core@2.1.0': resolution: {integrity: sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg==} peerDependencies: leaflet: ^1.9.0 - react: ^18.0.0 - react-dom: ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@react-leaflet/core@3.0.0': resolution: {integrity: sha512-3EWmekh4Nz+pGcr+xjf0KNyYfC3U2JjnkWsh0zcqaexYqmmB5ZhH37kz41JXGmKzpaMZCnPofBBm64i+YrEvGQ==} peerDependencies: leaflet: ^1.9.0 - react: ^19.0.0 - react-dom: ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@react-native-async-storage/async-storage@2.2.0': resolution: {integrity: sha512-gvRvjR5JAaUZF8tv2Kcq/Gbt3JHwbKFYfmb445rhOj6NUMx3qPLixmDx5pZAyb9at1bYvJ4/eTUipU5aki45xw==} @@ -33628,13 +33404,13 @@ packages: resolution: {integrity: sha512-70WGaH3PKYASi4BThuEEKMkyAgE9k7VytBqmgPRx3MzJx9/MkspwqJGmn3QLCgHLIFUgF1pit2mWICbRJ3T3lg==} deprecated: 'Async Storage has moved to new organization: https://github.com/react-native-async-storage/async-storage' peerDependencies: - react: ^16.8 + react: 19.2.1 react-native: '>=0.59' '@react-native-community/hooks@3.1.0': resolution: {integrity: sha512-4TqJGeUHUq65tSVQB2zAm0/kMueD9lpzUREZGSGCaIwAxdFTauRS0TN6RM5dtzwR7uWcQj3LOJpDpNB7ulSCfA==} peerDependencies: - react: '>=17.0.2' + react: 19.2.1 react-native: '>=0.65' '@react-native-community/netinfo@11.4.1': @@ -33645,7 +33421,7 @@ packages: '@react-native-community/push-notification-ios@1.12.0': resolution: {integrity: sha512-nu6ctimVlK4E3id3QHs9yZJ4vCP5UG3lRaBvSboJZ2IWU0XROcIJnNVIXsSH7C3hTlb84lNwPWir3y/TxRj0oA==} peerDependencies: - react: '>=16.6.3' + react: 19.2.1 react-native: '>=0.58.4' '@react-native-firebase/analytics@18.9.0': @@ -33662,7 +33438,7 @@ packages: resolution: {integrity: sha512-kMY4HVWxfz0YjQ5n9oyW9uifI5CkQfLfj2FEeQrI9mCwaCNuRw04x9Yc8LeFpew7NPEDVfty7tlL3WEjDpvNEw==} peerDependencies: expo: '>=47.0.0' - react: '*' + react: 19.2.1 react-native: '*' peerDependenciesMeta: expo: @@ -33672,7 +33448,7 @@ packages: resolution: {integrity: sha512-sYVDkDxlOyQaDO/A0yVqbTha32dVapHlzS054RPY+RM5m0vARMsevJ9d543kH+Cdbp1RKMHIgDjhlB+APaNdhw==} peerDependencies: expo: '>=47.0.0' - react: '*' + react: 19.2.1 react-native: '*' peerDependenciesMeta: expo: @@ -33782,7 +33558,7 @@ packages: engines: {node: '>=18'} peerDependencies: '@types/react': 18.3.11 - react: '*' + react: 19.2.1 react-native: '*' peerDependenciesMeta: '@types/react': @@ -33792,7 +33568,7 @@ packages: resolution: {integrity: sha512-024FWdHp3ZsE5rP8tmGI4vh+1z3wg8u8E9Frep8eeGoYo1h9rQhvgofQDGxknmrKsb7t8o8Dim+IZSvl57cPFQ==} peerDependencies: '@react-navigation/native': ^7.1.26 - react: '>= 18.2.0' + react: 19.2.1 react-native: '*' react-native-safe-area-context: '>= 4.0.0' react-native-screens: '>= 4.0.0' @@ -33800,13 +33576,13 @@ packages: '@react-navigation/core@7.13.7': resolution: {integrity: sha512-k2ABo3250vq1ovOh/iVwXS6Hwr5PVRGXoPh/ewVFOOuEKTvOx9i//OBzt8EF+HokBxS2HBRlR2b+aCOmscRqBw==} peerDependencies: - react: '>= 18.2.0' + react: 19.2.1 '@react-navigation/drawer@7.7.10': resolution: {integrity: sha512-FGYU5Ebd2whTa4Z+RBCxnWqmyWIQGTJ7PAAhk2RjlVrEXLU0HaFR5JGmEHuNm/Cm9xX3xCwOxYZiA0Xi/DeyAA==} peerDependencies: '@react-navigation/native': ^7.1.26 - react: '>= 18.2.0' + react: 19.2.1 react-native: '*' react-native-gesture-handler: '>= 2.0.0' react-native-reanimated: '>= 2.0.0' @@ -33818,7 +33594,7 @@ packages: peerDependencies: '@react-native-masked-view/masked-view': '>= 0.2.0' '@react-navigation/native': ^7.1.26 - react: '>= 18.2.0' + react: 19.2.1 react-native: '*' react-native-safe-area-context: '>= 4.0.0' peerDependenciesMeta: @@ -33829,7 +33605,7 @@ packages: resolution: {integrity: sha512-C/mNPhI0Pnerl7C2cB+6fAkdgSmfKECMERrbyfjx3P6JmEuTC54o+GV1c62FUmlRaRUassVHbtw4EeaY2uLh0g==} peerDependencies: '@react-navigation/native': ^7.1.26 - react: '>= 18.2.0' + react: 19.2.1 react-native: '*' react-native-safe-area-context: '>= 4.0.0' react-native-screens: '>= 4.0.0' @@ -33837,7 +33613,7 @@ packages: '@react-navigation/native@7.1.26': resolution: {integrity: sha512-RhKmeD0E2ejzKS6z8elAfdfwShpcdkYY8zJzvHYLq+wv183BBcElTeyMLcIX6wIn7QutXeI92Yi21t7aUWfqNQ==} peerDependencies: - react: '>= 18.2.0' + react: 19.2.1 react-native: '*' '@react-navigation/routers@7.5.3': @@ -33847,7 +33623,7 @@ packages: resolution: {integrity: sha512-Zs8W2k9AGltBVkUw0QXU97rTDLbfTikCWA3fstzpjVDVTXp+h0irXm1MTnAl79D3B1wcyZasUIwMZdyUqwMT6g==} peerDependencies: '@react-navigation/native': ^7.1.26 - react: '>= 18.2.0' + react: 19.2.1 react-native: '*' react-native-gesture-handler: '>= 2.0.0' react-native-safe-area-context: '>= 4.0.0' @@ -33856,34 +33632,34 @@ packages: '@react-spring/animated@10.0.3': resolution: {integrity: sha512-7MrxADV3vaUADn2V9iYhaIL6iOWRx9nCJjYrsk2AHD2kwPr6fg7Pt0v+deX5RnCDmCKNnD6W5fasiyM8D+wzJQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 '@react-spring/animated@9.7.5': resolution: {integrity: sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 '@react-spring/core@10.0.3': resolution: {integrity: sha512-D4DwNO68oohDf/0HG2G0Uragzb9IA1oXblxrd6MZAcBcUQG2EHUWXewjdECMPLNmQvlYVyyBRH6gPxXM5DX7DQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 '@react-spring/core@9.7.5': resolution: {integrity: sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 '@react-spring/konva@10.0.3': resolution: {integrity: sha512-nA1VoC94RnGY4jhhuOln+ZSXOjfBdvwnyBcVt4ojq2JRcqNTmYv+ftfo1V3qAJlDccucdjAWlJbkQEQ9bVVcQg==} peerDependencies: konva: '>=2.6' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 react-konva: ^19 '@react-spring/native@10.0.3': resolution: {integrity: sha512-ypfKsfqn+Ll3LeZCp+noFBJdJOVomIfnGjpQzpXibrfqWlPgl0Ckj9sy+U3fLGPyrbbCSw9KLvsgSwZwDCScKA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 react-native: '>=0.78' '@react-spring/rafz@10.0.3': @@ -33895,25 +33671,25 @@ packages: '@react-spring/shared@10.0.3': resolution: {integrity: sha512-geCal66nrkaQzUVhPkGomylo+Jpd5VPK8tPMEDevQEfNSWAQP15swHm+MCRG4wVQrQlTi9lOzKzpRoTL3CA84Q==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 '@react-spring/shared@9.7.5': resolution: {integrity: sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 '@react-spring/three@10.0.3': resolution: {integrity: sha512-hZP7ChF/EwnWn+H2xuzAsRRfQdhquoBTI1HKgO6X9V8tcVCuR69qJmsA9N00CA4Nzx0bo/zwBtqONmi55Ffm5w==} peerDependencies: '@react-three/fiber': '>=6.0' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 three: '>=0.126' '@react-spring/three@9.7.5': resolution: {integrity: sha512-RxIsCoQfUqOS3POmhVHa1wdWS0wyHAUway73uRLp3GAL5U2iYVNdnzQsep6M2NZ994BlW8TcKuMtQHUqOsy6WA==} peerDependencies: '@react-three/fiber': '>=6.0' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 three: '>=0.126' '@react-spring/types@10.0.3': @@ -33925,14 +33701,14 @@ packages: '@react-spring/web@10.0.3': resolution: {integrity: sha512-ndU+kWY81rHsT7gTFtCJ6mrVhaJ6grFmgTnENipzmKqot4HGf5smPNK+cZZJqoGeDsj9ZsiWPW4geT/NyD484A==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@react-spring/zdog@10.0.3': resolution: {integrity: sha512-YCJPhPGdLLiUnM++u/1qd/7b5p70zZWdPhDOBC8TAr/zlQABZR4ivYlv5JAiS/oPLSFAwlTGFkTxD4M1sDVd0g==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 react-zdog: '>=1.0' zdog: '>=1.0' @@ -33942,14 +33718,14 @@ packages: '@react-stately/utils@3.11.0': resolution: {integrity: sha512-8LZpYowJ9eZmmYLpudbo/eclIRnbhWIJZ994ncmlKlouNzKohtM8qTC6B1w1pwUbiwGdUoyzLuQbeaIor5Dvcw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react: 19.2.1 '@react-three/drei@9.122.0': resolution: {integrity: sha512-SEO/F/rBCTjlLez7WAlpys+iGe9hty4rNgjZvgkQeXFSiwqD4Hbk/wNHMAbdd8vprO2Aj81mihv4dF5bC7D0CA==} peerDependencies: '@react-three/fiber': ^8 - react: ^18 - react-dom: ^18 + react: 19.2.1 + react-dom: 19.2.1 three: '>=0.137' peerDependenciesMeta: react-dom: @@ -33962,8 +33738,8 @@ packages: expo-asset: '>=8.4' expo-file-system: '>=11.0' expo-gl: '>=11.0' - react: '>=18 <19' - react-dom: '>=18 <19' + react: 19.2.1 + react-dom: 19.2.1 react-native: '>=0.64' three: '>=0.133' peerDependenciesMeta: @@ -33984,54 +33760,49 @@ packages: resolution: {integrity: sha512-7P25LOSToH/I6b3UipNK17IIFlX4FDUmWcaomfwu82+CzhXTOz8Fcc1ZXEZ7vFA/5Fr/2peNlXgXZJvoa+aCdA==} peerDependencies: '@react-three/fiber': ^8.0 - react: ^18.0 + react: 19.2.1 three: '>= 0.138.0' '@react-types/shared@3.32.1': resolution: {integrity: sha512-famxyD5emrGGpFuUlgOP6fVW2h/ZaF405G5KDi3zPHzyjAWys/8W6NAVJtNbkCkhedmvL0xOhvt8feGXyXaw5w==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react: 19.2.1 '@reactflow/background@11.3.14': resolution: {integrity: sha512-Gewd7blEVT5Lh6jqrvOgd4G6Qk17eGKQfsDXgyRSqM+CTwDqRldG2LsWN4sNeno6sbqVIC2fZ+rAUBFA9ZEUDA==} peerDependencies: - react: '>=17' - react-dom: '>=17' + react: 19.2.1 + react-dom: 19.2.1 '@reactflow/controls@11.2.14': resolution: {integrity: sha512-MiJp5VldFD7FrqaBNIrQ85dxChrG6ivuZ+dcFhPQUwOK3HfYgX2RHdBua+gx+40p5Vw5It3dVNp/my4Z3jF0dw==} peerDependencies: - react: '>=17' - react-dom: '>=17' + react: 19.2.1 + react-dom: 19.2.1 '@reactflow/core@11.11.4': resolution: {integrity: sha512-H4vODklsjAq3AMq6Np4LE12i1I4Ta9PrDHuBR9GmL8uzTt2l2jh4CiQbEMpvMDcp7xi4be0hgXj+Ysodde/i7Q==} peerDependencies: - react: '>=17' - react-dom: '>=17' + react: 19.2.1 + react-dom: 19.2.1 '@reactflow/minimap@11.7.14': resolution: {integrity: sha512-mpwLKKrEAofgFJdkhwR5UQ1JYWlcAAL/ZU/bctBkuNTT1yqV+y0buoNVImsRehVYhJwffSWeSHaBR5/GJjlCSQ==} peerDependencies: - react: '>=17' - react-dom: '>=17' + react: 19.2.1 + react-dom: 19.2.1 '@reactflow/node-resizer@2.2.14': resolution: {integrity: sha512-fwqnks83jUlYr6OHcdFEedumWKChTHRGw/kbCxj0oqBd+ekfs+SIp4ddyNU0pdx96JIm5iNFS0oNrmEiJbbSaA==} peerDependencies: - react: '>=17' - react-dom: '>=17' + react: 19.2.1 + react-dom: 19.2.1 '@reactflow/node-toolbar@1.3.14': resolution: {integrity: sha512-rbynXQnH/xFNu4P9H+hVqlEUafDCkEoCy0Dg9mG22Sg+rY/0ck6KkrAQrYrTgXusd+cEJOMK0uOOFCK2/5rSGQ==} peerDependencies: - react: '>=17' - react-dom: '>=17' - - '@redis/bloom@1.2.0': - resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==} - peerDependencies: - '@redis/client': ^1.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@redis/bloom@5.10.0': resolution: {integrity: sha512-doIF37ob+l47n0rkpRNgU8n4iacBlKM9xLiP1LtTZTvz8TloJB8qx/MgvhMhKdYG+CvCY2aPBnN2706izFn/4A==} @@ -34039,46 +33810,22 @@ packages: peerDependencies: '@redis/client': ^5.10.0 - '@redis/client@1.6.1': - resolution: {integrity: sha512-/KCsg3xSlR+nCK8/8ZYSknYxvXHwubJrU82F3Lm1Fp6789VQ0/3RJKfsmRXjqfaTA++23CvC3hqmqe/2GEt6Kw==} - engines: {node: '>=14'} - '@redis/client@5.10.0': resolution: {integrity: sha512-JXmM4XCoso6C75Mr3lhKA3eNxSzkYi3nCzxDIKY+YOszYsJjuKbFgVtguVPbLMOttN4iu2fXoc2BGhdnYhIOxA==} engines: {node: '>= 18'} - '@redis/graph@1.1.1': - resolution: {integrity: sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==} - peerDependencies: - '@redis/client': ^1.0.0 - - '@redis/json@1.0.7': - resolution: {integrity: sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==} - peerDependencies: - '@redis/client': ^1.0.0 - '@redis/json@5.10.0': resolution: {integrity: sha512-B2G8XlOmTPUuZtD44EMGbtoepQG34RCDXLZbjrtON1Djet0t5Ri7/YPXvL9aomXqP8lLTreaprtyLKF4tmXEEA==} engines: {node: '>= 18'} peerDependencies: '@redis/client': ^5.10.0 - '@redis/search@1.2.0': - resolution: {integrity: sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==} - peerDependencies: - '@redis/client': ^1.0.0 - '@redis/search@5.10.0': resolution: {integrity: sha512-3SVcPswoSfp2HnmWbAGUzlbUPn7fOohVu2weUQ0S+EMiQi8jwjL+aN2p6V3TI65eNfVsJ8vyPvqWklm6H6esmg==} engines: {node: '>= 18'} peerDependencies: '@redis/client': ^5.10.0 - '@redis/time-series@1.1.0': - resolution: {integrity: sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==} - peerDependencies: - '@redis/client': ^1.0.0 - '@redis/time-series@5.10.0': resolution: {integrity: sha512-cPkpddXH5kc/SdRhF0YG0qtjL+noqFT0AcHbQ6axhsPsO7iqPi1cjxgdkE9TNeKiBUUdCaU1DbqkR/LzbzPBhg==} engines: {node: '>= 18'} @@ -34088,7 +33835,7 @@ packages: '@reduxjs/toolkit@2.11.0': resolution: {integrity: sha512-hBjYg0aaRL1O2Z0IqWhnTLytnjDIxekmRxm1snsHjHaKVmIF1HiImWqsq+PuEbn6zdMlkIj9WofK1vR8jjx+Xw==} peerDependencies: - react: ^16.9.0 || ^17.0.0 || ^18 || ^19 + react: 19.2.1 react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 peerDependenciesMeta: react: @@ -34107,8 +33854,8 @@ packages: peerDependencies: expo: '>=47.0.0' mapbox-gl: ^2.9.0 - react: '>=17.0.0' - react-dom: '>= 17.0.0' + react: 19.2.1 + react-dom: 19.2.1 react-native: '>=0.69' peerDependenciesMeta: expo: @@ -34310,9 +34057,6 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@selderee/plugin-htmlparser2@0.11.0': - resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - '@semantic-release/changelog@6.0.3': resolution: {integrity: sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==} engines: {node: '>=14.17'} @@ -34448,7 +34192,7 @@ packages: hasBin: true peerDependencies: expo: '>=49.0.0' - react: '>=17.0.0' + react: 19.2.1 react-native: '>=0.65.0' peerDependenciesMeta: expo: @@ -34458,7 +34202,7 @@ packages: resolution: {integrity: sha512-Bri314LnSVm16K3JATgn3Zsq6Uj3M/nIjdUb3nggBw0BMlFWMsyFjUCfmCio5d80KJK/lUjOIxRjzu79M6jOzQ==} engines: {node: '>=8'} peerDependencies: - react: 15.x || 16.x || 17.x || 18.x + react: 19.2.1 '@sentry/replay@7.119.1': resolution: {integrity: sha512-4da+ruMEipuAZf35Ybt2StBdV1S+oJbSVccGpnl9w6RoeQoloT4ztR6ML3UcFDTXeTPT1FnHWDCyOfST0O7XMw==} @@ -34483,9 +34227,21 @@ packages: '@shikijs/engine-oniguruma@1.29.2': resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} + '@shikijs/engine-oniguruma@3.20.0': + resolution: {integrity: sha512-Yx3gy7xLzM0ZOjqoxciHjA7dAt5tyzJE3L4uQoM83agahy+PlW244XJSrmJRSBvGYELDhYXPacD4R/cauV5bzQ==} + + '@shikijs/langs@3.20.0': + resolution: {integrity: sha512-le+bssCxcSHrygCWuOrYJHvjus6zhQ2K7q/0mgjiffRbkhM4o1EWu2m+29l0yEsHDbWaWPNnDUTRVVBvBBeKaA==} + + '@shikijs/themes@3.20.0': + resolution: {integrity: sha512-U1NSU7Sl26Q7ErRvJUouArxfM2euWqq1xaSrbqMu2iqa+tSp0D1Yah8216sDYbdDHw4C8b75UpE65eWorm2erQ==} + '@shikijs/types@1.29.2': resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} + '@shikijs/types@3.20.0': + resolution: {integrity: sha512-lhYAATn10nkZcBQ0BlzSbJA3wcmL5MXUUF8d2Zzon6saZDlToKaiRX60n2+ZaHJCmXEcZRWNzn+k9vplr8Jhsw==} + '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -34493,7 +34249,7 @@ packages: resolution: {integrity: sha512-8QDIBKSU7XB3Lc1kAv4jSFddTQK8AE+1AEoJnQLNllsiex1gufLQ8kN7rs9zii+iboSY8tYKT7ocV+5cE2Exdw==} hasBin: true peerDependencies: - react: '>=18.0 <19.0.0' + react: 19.2.1 react-native: '>=0.64 <0.78.0' react-native-reanimated: '>=2.0.0' peerDependenciesMeta: @@ -34511,6 +34267,30 @@ packages: '@sideway/pinpoint@2.0.0': resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + '@sigstore/bundle@4.0.0': + resolution: {integrity: sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/core@3.1.0': + resolution: {integrity: sha512-o5cw1QYhNQ9IroioJxpzexmPjfCe7gzafd2RY3qnMpxr4ZEja+Jad/U8sgFpaue6bOaF+z7RVkyKVV44FN+N8A==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/protobuf-specs@0.5.0': + resolution: {integrity: sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@sigstore/sign@4.1.0': + resolution: {integrity: sha512-Vx1RmLxLGnSUqx/o5/VsCjkuN5L7y+vxEEwawvc7u+6WtX2W4GNa7b9HEjmcRWohw/d6BpATXmvOwc78m+Swdg==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/tuf@4.0.1': + resolution: {integrity: sha512-OPZBg8y5Vc9yZjmWCHrlWPMBqW5yd8+wFNl+thMdtcWz3vjVSoJQutF8YkrzI0SLGnkuFof4HSsWUhXrf219Lw==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@sigstore/verify@3.1.0': + resolution: {integrity: sha512-mNe0Iigql08YupSOGv197YdHpPPr+EzDZmfCgMc7RPNaZTw5aLN01nBl6CHJOh3BGtnMIj83EeN4butBchc8Ag==} + engines: {node: ^20.17.0 || >=22.9.0} + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -34580,8 +34360,8 @@ packages: resolution: {integrity: sha512-RvNCcOjNbzl5uQ2TZsbTJ+A+5ptoWMwnyd/W4lKzeXFToIwebeaZiuntcP0usmhZHj1LH9H1T9WN6Bt1B/DLyg==} engines: {node: '>= 18', npm: '>= 8.6.0'} - '@smithy/abort-controller@4.2.11': - resolution: {integrity: sha512-Hj4WoYWMJnSpM6/kchsm4bUNTL9XiSyhvoMb2KIq4VJzyDt7JpGHUZHkVNPZVC7YE1tf8tPeVauxpFBKGW4/KQ==} + '@smithy/abort-controller@4.2.7': + resolution: {integrity: sha512-rzMY6CaKx2qxrbYbqjXWS0plqEy7LOdKHS0bg4ixJ6aoGDPNUcLWk/FRNuCILh7GKLG9TFUXYYeQQldMBBwuyw==} engines: {node: '>=18.0.0'} '@smithy/abort-controller@4.2.8': @@ -34592,116 +34372,108 @@ packages: resolution: {integrity: sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ==} engines: {node: '>=18.0.0'} - '@smithy/chunked-blob-reader-native@4.2.3': - resolution: {integrity: sha512-jA5k5Udn7Y5717L86h4EIv06wIr3xn8GM1qHRi/Nf31annXcXHJjBKvgztnbn2TxH3xWrPBfgwHsOwZf0UmQWw==} - engines: {node: '>=18.0.0'} - '@smithy/chunked-blob-reader@5.2.0': resolution: {integrity: sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==} engines: {node: '>=18.0.0'} - '@smithy/chunked-blob-reader@5.2.2': - resolution: {integrity: sha512-St+kVicSyayWQca+I1rGitaOEH6uKgE8IUWoYnnEX26SWdWQcL6LvMSD19Lg+vYHKdT9B2Zuu7rd3i6Wnyb/iw==} - engines: {node: '>=18.0.0'} - - '@smithy/config-resolver@4.4.10': - resolution: {integrity: sha512-IRTkd6ps0ru+lTWnfnsbXzW80A8Od8p3pYiZnW98K2Hb20rqfsX7VTlfUwhrcOeSSy68Gn9WBofwPuw3e5CCsg==} + '@smithy/config-resolver@4.4.5': + resolution: {integrity: sha512-HAGoUAFYsUkoSckuKbCPayECeMim8pOu+yLy1zOxt1sifzEbrsRpYa+mKcMdiHKMeiqOibyPG0sFJnmaV/OGEg==} engines: {node: '>=18.0.0'} '@smithy/config-resolver@4.4.6': resolution: {integrity: sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ==} engines: {node: '>=18.0.0'} - '@smithy/core@3.22.0': - resolution: {integrity: sha512-6vjCHD6vaY8KubeNw2Fg3EK0KLGQYdldG4fYgQmA0xSW0dJ8G2xFhSOdrlUakWVoP5JuWHtFODg3PNd/DN3FDA==} + '@smithy/core@3.20.0': + resolution: {integrity: sha512-WsSHCPq/neD5G/MkK4csLI5Y5Pkd9c1NMfpYEKeghSGaD4Ja1qLIohRQf2D5c1Uy5aXp76DeKHkzWZ9KAlHroQ==} engines: {node: '>=18.0.0'} - '@smithy/core@3.23.9': - resolution: {integrity: sha512-1Vcut4LEL9HZsdpI0vFiRYIsaoPwZLjAxnVQDUMQK8beMS+EYPLDQCXtbzfxmM5GzSgjfe2Q9M7WaXwIMQllyQ==} + '@smithy/core@3.22.0': + resolution: {integrity: sha512-6vjCHD6vaY8KubeNw2Fg3EK0KLGQYdldG4fYgQmA0xSW0dJ8G2xFhSOdrlUakWVoP5JuWHtFODg3PNd/DN3FDA==} engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@4.2.11': - resolution: {integrity: sha512-lBXrS6ku0kTj3xLmsJW0WwqWbGQ6ueooYyp/1L9lkyT0M02C+DWwYwc5aTyXFbRaK38ojALxNixg+LxKSHZc0g==} + '@smithy/credential-provider-imds@4.2.7': + resolution: {integrity: sha512-CmduWdCiILCRNbQWFR0OcZlUPVtyE49Sr8yYL0rZQ4D/wKxiNzBNS/YHemvnbkIWj623fplgkexUd/c9CAKdoA==} engines: {node: '>=18.0.0'} '@smithy/credential-provider-imds@4.2.8': resolution: {integrity: sha512-FNT0xHS1c/CPN8upqbMFP83+ul5YgdisfCfkZ86Jh2NSmnqw/AJ6x5pEogVCTVvSm7j9MopRU89bmDelxuDMYw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-codec@4.2.11': - resolution: {integrity: sha512-Sf39Ml0iVX+ba/bgMPxaXWAAFmHqYLTmbjAPfLPLY8CrYkRDEqZdUsKC1OwVMCdJXfAt0v4j49GIJ8DoSYAe6w==} + '@smithy/eventstream-codec@4.2.7': + resolution: {integrity: sha512-DrpkEoM3j9cBBWhufqBwnbbn+3nf1N9FP6xuVJ+e220jbactKuQgaZwjwP5CP1t+O94brm2JgVMD2atMGX3xIQ==} engines: {node: '>=18.0.0'} '@smithy/eventstream-codec@4.2.8': resolution: {integrity: sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-browser@4.2.11': - resolution: {integrity: sha512-3rEpo3G6f/nRS7fQDsZmxw/ius6rnlIpz4UX6FlALEzz8JoSxFmdBt0SZnthis+km7sQo6q5/3e+UJcuQivoXA==} + '@smithy/eventstream-serde-browser@4.2.7': + resolution: {integrity: sha512-ujzPk8seYoDBmABDE5YqlhQZAXLOrtxtJLrbhHMKjBoG5b4dK4i6/mEU+6/7yXIAkqOO8sJ6YxZl+h0QQ1IJ7g==} engines: {node: '>=18.0.0'} '@smithy/eventstream-serde-browser@4.2.8': resolution: {integrity: sha512-MTfQT/CRQz5g24ayXdjg53V0mhucZth4PESoA5IhvaWVDTOQLfo8qI9vzqHcPsdd2v6sqfTYqF5L/l+pea5Uyw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-config-resolver@4.3.11': - resolution: {integrity: sha512-XeNIA8tcP/GDWnnKkO7qEm/bg0B/bP9lvIXZBXcGZwZ+VYM8h8k9wuDvUODtdQ2Wcp2RcBkPTCSMmaniVHrMlA==} + '@smithy/eventstream-serde-config-resolver@4.3.7': + resolution: {integrity: sha512-x7BtAiIPSaNaWuzm24Q/mtSkv+BrISO/fmheiJ39PKRNH3RmH2Hph/bUKSOBOBC9unqfIYDhKTHwpyZycLGPVQ==} engines: {node: '>=18.0.0'} '@smithy/eventstream-serde-config-resolver@4.3.8': resolution: {integrity: sha512-ah12+luBiDGzBruhu3efNy1IlbwSEdNiw8fOZksoKoWW1ZHvO/04MQsdnws/9Aj+5b0YXSSN2JXKy/ClIsW8MQ==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-node@4.2.11': - resolution: {integrity: sha512-fzbCh18rscBDTQSCrsp1fGcclLNF//nJyhjldsEl/5wCYmgpHblv5JSppQAyQI24lClsFT0wV06N1Porn0IsEw==} + '@smithy/eventstream-serde-node@4.2.7': + resolution: {integrity: sha512-roySCtHC5+pQq5lK4be1fZ/WR6s/AxnPaLfCODIPArtN2du8s5Ot4mKVK3pPtijL/L654ws592JHJ1PbZFF6+A==} engines: {node: '>=18.0.0'} '@smithy/eventstream-serde-node@4.2.8': resolution: {integrity: sha512-cYpCpp29z6EJHa5T9WL0KAlq3SOKUQkcgSoeRfRVwjGgSFl7Uh32eYGt7IDYCX20skiEdRffyDpvF2efEZPC0A==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-universal@4.2.11': - resolution: {integrity: sha512-MJ7HcI+jEkqoWT5vp+uoVaAjBrmxBtKhZTeynDRG/seEjJfqyg3SiqMMqyPnAMzmIfLaeJ/uiuSDP/l9AnMy/Q==} + '@smithy/eventstream-serde-universal@4.2.7': + resolution: {integrity: sha512-QVD+g3+icFkThoy4r8wVFZMsIP08taHVKjE6Jpmz8h5CgX/kk6pTODq5cht0OMtcapUx+xrPzUTQdA+TmO0m1g==} engines: {node: '>=18.0.0'} '@smithy/eventstream-serde-universal@4.2.8': resolution: {integrity: sha512-iJ6YNJd0bntJYnX6s52NC4WFYcZeKrPUr1Kmmr5AwZcwCSzVpS7oavAmxMR7pMq7V+D1G4s9F5NJK0xwOsKAlQ==} engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@5.3.13': - resolution: {integrity: sha512-U2Hcfl2s3XaYjikN9cT4mPu8ybDbImV3baXR0PkVlC0TTx808bRP3FaPGAzPtB8OByI+JqJ1kyS+7GEgae7+qQ==} + '@smithy/fetch-http-handler@5.3.8': + resolution: {integrity: sha512-h/Fi+o7mti4n8wx1SR6UHWLaakwHRx29sizvp8OOm7iqwKGFneT06GCSFhml6Bha5BT6ot5pj3CYZnCHhGC2Rg==} engines: {node: '>=18.0.0'} '@smithy/fetch-http-handler@5.3.9': resolution: {integrity: sha512-I4UhmcTYXBrct03rwzQX1Y/iqQlzVQaPxWjCjula++5EmWq9YGBrx6bbGqluGc1f0XEfhSkiY4jhLgbsJUMKRA==} engines: {node: '>=18.0.0'} - '@smithy/hash-blob-browser@4.2.12': - resolution: {integrity: sha512-1wQE33DsxkM/waftAhCH9VtJbUGyt1PJ9YRDpOu+q9FUi73LLFUZ2fD8A61g2mT1UY9k7b99+V1xZ41Rz4SHRQ==} + '@smithy/hash-blob-browser@4.2.8': + resolution: {integrity: sha512-07InZontqsM1ggTCPSRgI7d8DirqRrnpL7nIACT4PW0AWrgDiHhjGZzbAE5UtRSiU0NISGUYe7/rri9ZeWyDpw==} engines: {node: '>=18.0.0'} '@smithy/hash-blob-browser@4.2.9': resolution: {integrity: sha512-m80d/iicI7DlBDxyQP6Th7BW/ejDGiF0bgI754+tiwK0lgMkcaIBgvwwVc7OFbY4eUzpGtnig52MhPAEJ7iNYg==} engines: {node: '>=18.0.0'} - '@smithy/hash-node@4.2.11': - resolution: {integrity: sha512-T+p1pNynRkydpdL015ruIoyPSRw9e/SQOWmSAMmmprfswMrd5Ow5igOWNVlvyVFZlxXqGmyH3NQwfwy8r5Jx0A==} + '@smithy/hash-node@4.2.7': + resolution: {integrity: sha512-PU/JWLTBCV1c8FtB8tEFnY4eV1tSfBc7bDBADHfn1K+uRbPgSJ9jnJp0hyjiFN2PMdPzxsf1Fdu0eo9fJ760Xw==} engines: {node: '>=18.0.0'} '@smithy/hash-node@4.2.8': resolution: {integrity: sha512-7ZIlPbmaDGxVoxErDZnuFG18WekhbA/g2/i97wGj+wUBeS6pcUeAym8u4BXh/75RXWhgIJhyC11hBzig6MljwA==} engines: {node: '>=18.0.0'} - '@smithy/hash-stream-node@4.2.11': - resolution: {integrity: sha512-hQsTjwPCRY8w9GK07w1RqJi3e+myh0UaOWBBhZ1UMSDgofH/Q1fEYzU1teaX6HkpX/eWDdm7tAGR0jBPlz9QEQ==} + '@smithy/hash-stream-node@4.2.7': + resolution: {integrity: sha512-ZQVoAwNYnFMIbd4DUc517HuwNelJUY6YOzwqrbcAgCnVn+79/OK7UjwA93SPpdTOpKDVkLIzavWm/Ck7SmnDPQ==} engines: {node: '>=18.0.0'} '@smithy/hash-stream-node@4.2.8': resolution: {integrity: sha512-v0FLTXgHrTeheYZFGhR+ehX5qUm4IQsjAiL9qehad2cyjMWcN2QG6/4mSwbSgEQzI7jwfoXj7z4fxZUx/Mhj2w==} engines: {node: '>=18.0.0'} - '@smithy/invalid-dependency@4.2.11': - resolution: {integrity: sha512-cGNMrgykRmddrNhYy1yBdrp5GwIgEkniS7k9O1VLB38yxQtlvrxpZtUVvo6T4cKpeZsriukBuuxfJcdZQc/f/g==} + '@smithy/invalid-dependency@4.2.7': + resolution: {integrity: sha512-ncvgCr9a15nPlkhIUx3CU4d7E7WEuVJOV7fS7nnK2hLtPK9tYRBkMHQbhXU1VvvKeBm/O0x26OEoBq+ngFpOEQ==} engines: {node: '>=18.0.0'} '@smithy/invalid-dependency@4.2.8': @@ -34716,12 +34488,8 @@ packages: resolution: {integrity: sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==} engines: {node: '>=18.0.0'} - '@smithy/is-array-buffer@4.2.2': - resolution: {integrity: sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==} - engines: {node: '>=18.0.0'} - - '@smithy/md5-js@4.2.11': - resolution: {integrity: sha512-350X4kGIrty0Snx2OWv7rPM6p6vM7RzryvFs6B/56Cux3w3sChOb3bymo5oidXJlPcP9fIRxGUCk7GqpiSOtng==} + '@smithy/md5-js@4.2.7': + resolution: {integrity: sha512-Wv6JcUxtOLTnxvNjDnAiATUsk8gvA6EeS8zzHig07dotpByYsLot+m0AaQEniUBjx97AC41MQR4hW0baraD1Xw==} engines: {node: '>=18.0.0'} '@smithy/md5-js@4.2.8': @@ -34732,136 +34500,136 @@ packages: resolution: {integrity: sha512-df41cMk8D/Aa8JRhraZPbeHYUJ012ivOTp9kOs95amfMdRvgNFWz9/qBFbpnTEbsyvFtYfF4HjZ0bgzrkguECQ==} engines: {node: '>=18.0.0'} - '@smithy/middleware-content-length@4.2.11': - resolution: {integrity: sha512-UvIfKYAKhCzr4p6jFevPlKhQwyQwlJ6IeKLDhmV1PlYfcW3RL4ROjNEDtSik4NYMi9kDkH7eSwyTP3vNJ/u/Dw==} + '@smithy/middleware-content-length@4.2.7': + resolution: {integrity: sha512-GszfBfCcvt7kIbJ41LuNa5f0wvQCHhnGx/aDaZJCCT05Ld6x6U2s0xsc/0mBFONBZjQJp2U/0uSJ178OXOwbhg==} engines: {node: '>=18.0.0'} '@smithy/middleware-content-length@4.2.8': resolution: {integrity: sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A==} engines: {node: '>=18.0.0'} + '@smithy/middleware-endpoint@4.4.1': + resolution: {integrity: sha512-gpLspUAoe6f1M6H0u4cVuFzxZBrsGZmjx2O9SigurTx4PbntYa4AJ+o0G0oGm1L2oSX6oBhcGHwrfJHup2JnJg==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-endpoint@4.4.12': resolution: {integrity: sha512-9JMKHVJtW9RysTNjcBZQHDwB0p3iTP6B1IfQV4m+uCevkVd/VuLgwfqk5cnI4RHcp4cPwoIvxQqN4B1sxeHo8Q==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.4.23': - resolution: {integrity: sha512-UEFIejZy54T1EJn2aWJ45voB7RP2T+IRzUqocIdM6GFFa5ClZncakYJfcYnoXt3UsQrZZ9ZRauGm77l9UCbBLw==} + '@smithy/middleware-retry@4.4.17': + resolution: {integrity: sha512-MqbXK6Y9uq17h+4r0ogu/sBT6V/rdV+5NvYL7ZV444BKfQygYe8wAhDrVXagVebN6w2RE0Fm245l69mOsPGZzg==} engines: {node: '>=18.0.0'} '@smithy/middleware-retry@4.4.29': resolution: {integrity: sha512-bmTn75a4tmKRkC5w61yYQLb3DmxNzB8qSVu9SbTYqW6GAL0WXO2bDZuMAn/GJSbOdHEdjZvWxe+9Kk015bw6Cg==} engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.4.40': - resolution: {integrity: sha512-YhEMakG1Ae57FajERdHNZ4ShOPIY7DsgV+ZoAxo/5BT0KIe+f6DDU2rtIymNNFIj22NJfeeI6LWIifrwM0f+rA==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-serde@4.2.12': - resolution: {integrity: sha512-W9g1bOLui7Xn5FABRVS0o3rXL0gfN37d/8I/W7i0N7oxjx9QecUmXEMSUMADTODwdtka9cN43t5BI2CodLJpng==} + '@smithy/middleware-serde@4.2.8': + resolution: {integrity: sha512-8rDGYen5m5+NV9eHv9ry0sqm2gI6W7mc1VSFMtn6Igo25S507/HaOX9LTHAS2/J32VXD0xSzrY0H5FJtOMS4/w==} engines: {node: '>=18.0.0'} '@smithy/middleware-serde@4.2.9': resolution: {integrity: sha512-eMNiej0u/snzDvlqRGSN3Vl0ESn3838+nKyVfF2FKNXFbi4SERYT6PR392D39iczngbqqGG0Jl1DlCnp7tBbXQ==} engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@4.2.11': - resolution: {integrity: sha512-s+eenEPW6RgliDk2IhjD2hWOxIx1NKrOHxEwNUaUXxYBxIyCcDfNULZ2Mu15E3kwcJWBedTET/kEASPV1A1Akg==} + '@smithy/middleware-stack@4.2.7': + resolution: {integrity: sha512-bsOT0rJ+HHlZd9crHoS37mt8qRRN/h9jRve1SXUhVbkRzu0QaNYZp1i1jha4n098tsvROjcwfLlfvcFuJSXEsw==} engines: {node: '>=18.0.0'} '@smithy/middleware-stack@4.2.8': resolution: {integrity: sha512-w6LCfOviTYQjBctOKSwy6A8FIkQy7ICvglrZFl6Bw4FmcQ1Z420fUtIhxaUZZshRe0VCq4kvDiPiXrPZAe8oRA==} engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@4.3.11': - resolution: {integrity: sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg==} + '@smithy/node-config-provider@4.3.7': + resolution: {integrity: sha512-7r58wq8sdOcrwWe+klL9y3bc4GW1gnlfnFOuL7CXa7UzfhzhxKuzNdtqgzmTV+53lEp9NXh5hY/S4UgjLOzPfw==} engines: {node: '>=18.0.0'} '@smithy/node-config-provider@4.3.8': resolution: {integrity: sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg==} engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.4.14': - resolution: {integrity: sha512-DamSqaU8nuk0xTJDrYnRzZndHwwRnyj/n/+RqGGCcBKB4qrQem0mSDiWdupaNWdwxzyMU91qxDmHOCazfhtO3A==} + '@smithy/node-http-handler@4.4.7': + resolution: {integrity: sha512-NELpdmBOO6EpZtWgQiHjoShs1kmweaiNuETUpuup+cmm/xJYjT4eUjfhrXRP4jCOaAsS3c3yPsP3B+K+/fyPCQ==} engines: {node: '>=18.0.0'} '@smithy/node-http-handler@4.4.8': resolution: {integrity: sha512-q9u+MSbJVIJ1QmJ4+1u+cERXkrhuILCBDsJUBAW1MPE6sFonbCNaegFuwW9ll8kh5UdyY3jOkoOGlc7BesoLpg==} engines: {node: '>=18.0.0'} - '@smithy/property-provider@4.2.11': - resolution: {integrity: sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg==} + '@smithy/property-provider@4.2.7': + resolution: {integrity: sha512-jmNYKe9MGGPoSl/D7JDDs1C8b3dC8f/w78LbaVfoTtWy4xAd5dfjaFG9c9PWPihY4ggMQNQSMtzU77CNgAJwmA==} engines: {node: '>=18.0.0'} '@smithy/property-provider@4.2.8': resolution: {integrity: sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w==} engines: {node: '>=18.0.0'} - '@smithy/protocol-http@5.3.11': - resolution: {integrity: sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ==} + '@smithy/protocol-http@5.3.7': + resolution: {integrity: sha512-1r07pb994I20dD/c2seaZhoCuNYm0rWrvBxhCQ70brNh11M5Ml2ew6qJVo0lclB3jMIXirD4s2XRXRe7QEi0xA==} engines: {node: '>=18.0.0'} '@smithy/protocol-http@5.3.8': resolution: {integrity: sha512-QNINVDhxpZ5QnP3aviNHQFlRogQZDfYlCkQT+7tJnErPQbDhysondEjhikuANxgMsZrkGeiAxXy4jguEGsDrWQ==} engines: {node: '>=18.0.0'} - '@smithy/querystring-builder@4.2.11': - resolution: {integrity: sha512-7spdikrYiljpket6u0up2Ck2mxhy7dZ0+TDd+S53Dg2DHd6wg+YNJrTCHiLdgZmEXZKI7LJZcwL3721ZRDFiqA==} + '@smithy/querystring-builder@4.2.7': + resolution: {integrity: sha512-eKONSywHZxK4tBxe2lXEysh8wbBdvDWiA+RIuaxZSgCMmA0zMgoDpGLJhnyj+c0leOQprVnXOmcB4m+W9Rw7sg==} engines: {node: '>=18.0.0'} '@smithy/querystring-builder@4.2.8': resolution: {integrity: sha512-Xr83r31+DrE8CP3MqPgMJl+pQlLLmOfiEUnoyAlGzzJIrEsbKsPy1hqH0qySaQm4oWrCBlUqRt+idEgunKB+iw==} engines: {node: '>=18.0.0'} - '@smithy/querystring-parser@4.2.11': - resolution: {integrity: sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ==} + '@smithy/querystring-parser@4.2.7': + resolution: {integrity: sha512-3X5ZvzUHmlSTHAXFlswrS6EGt8fMSIxX/c3Rm1Pni3+wYWB6cjGocmRIoqcQF9nU5OgGmL0u7l9m44tSUpfj9w==} engines: {node: '>=18.0.0'} '@smithy/querystring-parser@4.2.8': resolution: {integrity: sha512-vUurovluVy50CUlazOiXkPq40KGvGWSdmusa3130MwrR1UNnNgKAlj58wlOe61XSHRpUfIIh6cE0zZ8mzKaDPA==} engines: {node: '>=18.0.0'} - '@smithy/service-error-classification@4.2.11': - resolution: {integrity: sha512-HkMFJZJUhzU3HvND1+Yw/kYWXp4RPDLBWLcK1n+Vqw8xn4y2YiBhdww8IxhkQjP/QlZun5bwm3vcHc8AqIU3zw==} + '@smithy/service-error-classification@4.2.7': + resolution: {integrity: sha512-YB7oCbukqEb2Dlh3340/8g8vNGbs/QsNNRms+gv3N2AtZz9/1vSBx6/6tpwQpZMEJFs7Uq8h4mmOn48ZZ72MkA==} engines: {node: '>=18.0.0'} '@smithy/service-error-classification@4.2.8': resolution: {integrity: sha512-mZ5xddodpJhEt3RkCjbmUQuXUOaPNTkbMGR0bcS8FE0bJDLMZlhmpgrvPNCYglVw5rsYTpSnv19womw9WWXKQQ==} engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@4.4.3': - resolution: {integrity: sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg==} + '@smithy/shared-ini-file-loader@4.4.2': + resolution: {integrity: sha512-M7iUUff/KwfNunmrgtqBfvZSzh3bmFgv/j/t1Y1dQ+8dNo34br1cqVEqy6v0mYEgi0DkGO7Xig0AnuOaEGVlcg==} engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@4.4.6': - resolution: {integrity: sha512-IB/M5I8G0EeXZTHsAxpx51tMQ5R719F3aq+fjEB6VtNcCHDc0ajFDIGDZw+FW9GxtEkgTduiPpjveJdA/CX7sw==} + '@smithy/shared-ini-file-loader@4.4.3': + resolution: {integrity: sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg==} engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.3.11': - resolution: {integrity: sha512-V1L6N9aKOBAN4wEHLyqjLBnAz13mtILU0SeDrjOaIZEeN6IFa6DxwRt1NNpOdmSpQUfkBj0qeD3m6P77uzMhgQ==} + '@smithy/signature-v4@5.3.7': + resolution: {integrity: sha512-9oNUlqBlFZFOSdxgImA6X5GFuzE7V2H7VG/7E70cdLhidFbdtvxxt81EHgykGK5vq5D3FafH//X+Oy31j3CKOg==} engines: {node: '>=18.0.0'} '@smithy/signature-v4@5.3.8': resolution: {integrity: sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg==} engines: {node: '>=18.0.0'} + '@smithy/smithy-client@4.10.2': + resolution: {integrity: sha512-D5z79xQWpgrGpAHb054Fn2CCTQZpog7JELbVQ6XAvXs5MNKWf28U9gzSBlJkOyMl9LA1TZEjRtwvGXfP0Sl90g==} + engines: {node: '>=18.0.0'} + '@smithy/smithy-client@4.11.1': resolution: {integrity: sha512-SERgNg5Z1U+jfR6/2xPYjSEHY1t3pyTHC/Ma3YQl6qWtmiL42bvNId3W/oMUWIwu7ekL2FMPdqAmwbQegM7HeQ==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.12.3': - resolution: {integrity: sha512-7k4UxjSpHmPN2AxVhvIazRSzFQjWnud3sOsXcFStzagww17j1cFQYqTSiQ8xuYK3vKLR1Ni8FzuT3VlKr3xCNw==} + '@smithy/types@4.11.0': + resolution: {integrity: sha512-mlrmL0DRDVe3mNrjTcVcZEgkFmufITfUAPBEA+AHYiIeYyJebso/He1qLbP3PssRe22KUzLRpQSdBPbXdgZ2VA==} engines: {node: '>=18.0.0'} '@smithy/types@4.12.0': resolution: {integrity: sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw==} engines: {node: '>=18.0.0'} - '@smithy/types@4.13.0': - resolution: {integrity: sha512-COuLsZILbbQsdrwKQpkkpyep7lCsByxwj7m0Mg5v66/ZTyenlfBc40/QFQ5chO0YN/PNEH1Bi3fGtfXPnYNeDw==} - engines: {node: '>=18.0.0'} - - '@smithy/url-parser@4.2.11': - resolution: {integrity: sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing==} + '@smithy/url-parser@4.2.7': + resolution: {integrity: sha512-/RLtVsRV4uY3qPWhBDsjwahAtt3x2IsMGnP5W1b2VZIe+qgCqkLxI1UOHDZp1Q1QSOrdOR32MF3Ph2JfWT1VHg==} engines: {node: '>=18.0.0'} '@smithy/url-parser@4.2.8': @@ -34872,26 +34640,14 @@ packages: resolution: {integrity: sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==} engines: {node: '>=18.0.0'} - '@smithy/util-base64@4.3.2': - resolution: {integrity: sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ==} - engines: {node: '>=18.0.0'} - '@smithy/util-body-length-browser@4.2.0': resolution: {integrity: sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==} engines: {node: '>=18.0.0'} - '@smithy/util-body-length-browser@4.2.2': - resolution: {integrity: sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ==} - engines: {node: '>=18.0.0'} - '@smithy/util-body-length-node@4.2.1': resolution: {integrity: sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==} engines: {node: '>=18.0.0'} - '@smithy/util-body-length-node@4.2.3': - resolution: {integrity: sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==} - engines: {node: '>=18.0.0'} - '@smithy/util-buffer-from@2.2.0': resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} @@ -34900,60 +34656,48 @@ packages: resolution: {integrity: sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==} engines: {node: '>=18.0.0'} - '@smithy/util-buffer-from@4.2.2': - resolution: {integrity: sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q==} - engines: {node: '>=18.0.0'} - '@smithy/util-config-provider@4.2.0': resolution: {integrity: sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==} engines: {node: '>=18.0.0'} - '@smithy/util-config-provider@4.2.2': - resolution: {integrity: sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ==} + '@smithy/util-defaults-mode-browser@4.3.16': + resolution: {integrity: sha512-/eiSP3mzY3TsvUOYMeL4EqUX6fgUOj2eUOU4rMMgVbq67TiRLyxT7Xsjxq0bW3OwuzK009qOwF0L2OgJqperAQ==} engines: {node: '>=18.0.0'} '@smithy/util-defaults-mode-browser@4.3.28': resolution: {integrity: sha512-/9zcatsCao9h6g18p/9vH9NIi5PSqhCkxQ/tb7pMgRFnqYp9XUOyOlGPDMHzr8n5ih6yYgwJEY2MLEobUgi47w==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@4.3.39': - resolution: {integrity: sha512-ui7/Ho/+VHqS7Km2wBw4/Ab4RktoiSshgcgpJzC4keFPs6tLJS4IQwbeahxQS3E/w98uq6E1mirCH/id9xIXeQ==} + '@smithy/util-defaults-mode-node@4.2.19': + resolution: {integrity: sha512-3a4+4mhf6VycEJyHIQLypRbiwG6aJvbQAeRAVXydMmfweEPnLLabRbdyo/Pjw8Rew9vjsh5WCdhmDaHkQnhhhA==} engines: {node: '>=18.0.0'} '@smithy/util-defaults-mode-node@4.2.31': resolution: {integrity: sha512-JTvoApUXA5kbpceI2vuqQzRjeTbLpx1eoa5R/YEZbTgtxvIB7AQZxFJ0SEyfCpgPCyVV9IT7we+ytSeIB3CyWA==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@4.2.42': - resolution: {integrity: sha512-QDA84CWNe8Akpj15ofLO+1N3Rfg8qa2K5uX0y6HnOp4AnRYRgWrKx/xzbYNbVF9ZsyJUYOfcoaN3y93wA/QJ2A==} + '@smithy/util-endpoints@3.2.7': + resolution: {integrity: sha512-s4ILhyAvVqhMDYREeTS68R43B1V5aenV5q/V1QpRQJkCXib5BPRo4s7uNdzGtIKxaPHCfU/8YkvPAEvTpxgspg==} engines: {node: '>=18.0.0'} '@smithy/util-endpoints@3.2.8': resolution: {integrity: sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw==} engines: {node: '>=18.0.0'} - '@smithy/util-endpoints@3.3.2': - resolution: {integrity: sha512-+4HFLpE5u29AbFlTdlKIT7jfOzZ8PDYZKTb3e+AgLz986OYwqTourQ5H+jg79/66DB69Un1+qKecLnkZdAsYcA==} - engines: {node: '>=18.0.0'} - '@smithy/util-hex-encoding@4.2.0': resolution: {integrity: sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==} engines: {node: '>=18.0.0'} - '@smithy/util-hex-encoding@4.2.2': - resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} - engines: {node: '>=18.0.0'} - - '@smithy/util-middleware@4.2.11': - resolution: {integrity: sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw==} + '@smithy/util-middleware@4.2.7': + resolution: {integrity: sha512-i1IkpbOae6NvIKsEeLLM9/2q4X+M90KV3oCFgWQI4q0Qz+yUZvsr+gZPdAEAtFhWQhAHpTsJO8DRJPuwVyln+w==} engines: {node: '>=18.0.0'} '@smithy/util-middleware@4.2.8': resolution: {integrity: sha512-PMqfeJxLcNPMDgvPbbLl/2Vpin+luxqTGPpW3NAQVLbRrFRzTa4rNAASYeIGjRV9Ytuhzny39SpyU04EQreF+A==} engines: {node: '>=18.0.0'} - '@smithy/util-retry@4.2.11': - resolution: {integrity: sha512-XSZULmL5x6aCTTii59wJqKsY1l3eMIAomRAccW7Tzh9r8s7T/7rdo03oektuH5jeYRlJMPcNP92EuRDvk9aXbw==} + '@smithy/util-retry@4.2.7': + resolution: {integrity: sha512-SvDdsQyF5CIASa4EYVT02LukPHVzAgUA4kMAuZ97QJc2BpAqZfA4PINB8/KOoCXEw9tsuv/jQjMeaHFvxdLNGg==} engines: {node: '>=18.0.0'} '@smithy/util-retry@4.2.8': @@ -34964,18 +34708,14 @@ packages: resolution: {integrity: sha512-jbqemy51UFSZSp2y0ZmRfckmrzuKww95zT9BYMmuJ8v3altGcqjwoV1tzpOwuHaKrwQrCjIzOib499ymr2f98g==} engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.5.17': - resolution: {integrity: sha512-793BYZ4h2JAQkNHcEnyFxDTcZbm9bVybD0UV/LEWmZ5bkTms7JqjfrLMi2Qy0E5WFcCzLwCAPgcvcvxoeALbAQ==} + '@smithy/util-stream@4.5.8': + resolution: {integrity: sha512-ZnnBhTapjM0YPGUSmOs0Mcg/Gg87k503qG4zU2v/+Js2Gu+daKOJMeqcQns8ajepY8tgzzfYxl6kQyZKml6O2w==} engines: {node: '>=18.0.0'} '@smithy/util-uri-escape@4.2.0': resolution: {integrity: sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==} engines: {node: '>=18.0.0'} - '@smithy/util-uri-escape@4.2.2': - resolution: {integrity: sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw==} - engines: {node: '>=18.0.0'} - '@smithy/util-utf8@2.3.0': resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} engines: {node: '>=14.0.0'} @@ -34984,12 +34724,8 @@ packages: resolution: {integrity: sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==} engines: {node: '>=18.0.0'} - '@smithy/util-utf8@4.2.2': - resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-waiter@4.2.11': - resolution: {integrity: sha512-x7Rh2azQPs3XxbvCzcttRErKKvLnbZfqRf/gOjw2pb+ZscX88e5UkRPCB67bVnsFHxayvMvmePfKTqsRb+is1A==} + '@smithy/util-waiter@4.2.7': + resolution: {integrity: sha512-vHJFXi9b7kUEpHWUCY3Twl+9NPOZvQ0SAi+Ewtn48mbiJk4JY9MZmKQjGB4SCvVb9WPiSphZJYY6RIbs+grrzw==} engines: {node: '>=18.0.0'} '@smithy/util-waiter@4.2.8': @@ -35000,10 +34736,6 @@ packages: resolution: {integrity: sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==} engines: {node: '>=18.0.0'} - '@smithy/uuid@1.1.2': - resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} - engines: {node: '>=18.0.0'} - '@so-ric/colorspace@1.1.6': resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==} @@ -35043,7 +34775,80 @@ packages: '@stitches/react@1.2.8': resolution: {integrity: sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==} peerDependencies: - react: '>= 16.3.0' + react: 19.2.1 + + '@stoplight/better-ajv-errors@1.0.3': + resolution: {integrity: sha512-0p9uXkuB22qGdNfy3VeEhxkU5uwvp/KrBTAbrLBURv6ilxIVwanKwjMc41lQfIVgPGcOkmLbTolfFrSsueu7zA==} + engines: {node: ^12.20 || >= 14.13} + peerDependencies: + ajv: '>=8' + + '@stoplight/json-ref-readers@1.2.2': + resolution: {integrity: sha512-nty0tHUq2f1IKuFYsLM4CXLZGHdMn+X/IwEUIpeSOXt0QjMUbL0Em57iJUDzz+2MkWG83smIigNZ3fauGjqgdQ==} + engines: {node: '>=8.3.0'} + + '@stoplight/json-ref-resolver@3.1.6': + resolution: {integrity: sha512-YNcWv3R3n3U6iQYBsFOiWSuRGE5su1tJSiX6pAPRVk7dP0L7lqCteXGzuVRQ0gMZqUl8v1P0+fAKxF6PLo9B5A==} + engines: {node: '>=8.3.0'} + + '@stoplight/json@3.21.7': + resolution: {integrity: sha512-xcJXgKFqv/uCEgtGlPxy3tPA+4I+ZI4vAuMJ885+ThkTHFVkC+0Fm58lA9NlsyjnkpxFh4YiQWpH+KefHdbA0A==} + engines: {node: '>=8.3.0'} + + '@stoplight/ordered-object-literal@1.0.5': + resolution: {integrity: sha512-COTiuCU5bgMUtbIFBuyyh2/yVVzlr5Om0v5utQDgBCuQUOPgU1DwoffkTfg4UBQOvByi5foF4w4T+H9CoRe5wg==} + engines: {node: '>=8'} + + '@stoplight/path@1.3.2': + resolution: {integrity: sha512-lyIc6JUlUA8Ve5ELywPC8I2Sdnh1zc1zmbYgVarhXIp9YeAB0ReeqmGEOWNtlHkbP2DAA1AL65Wfn2ncjK/jtQ==} + engines: {node: '>=8'} + + '@stoplight/spectral-core@1.20.0': + resolution: {integrity: sha512-5hBP81nCC1zn1hJXL/uxPNRKNcB+/pEIHgCjPRpl/w/qy9yC9ver04tw1W0l/PMiv0UeB5dYgozXVQ4j5a6QQQ==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} + + '@stoplight/spectral-formats@1.8.2': + resolution: {integrity: sha512-c06HB+rOKfe7tuxg0IdKDEA5XnjL2vrn/m/OVIIxtINtBzphZrOgtRn7epQ5bQF5SWp84Ue7UJWaGgDwVngMFw==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} + + '@stoplight/spectral-functions@1.10.1': + resolution: {integrity: sha512-obu8ZfoHxELOapfGsCJixKZXZcffjg+lSoNuttpmUFuDzVLT3VmH8QkPXfOGOL5Pz80BR35ClNAToDkdnYIURg==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} + + '@stoplight/spectral-parsers@1.0.5': + resolution: {integrity: sha512-ANDTp2IHWGvsQDAY85/jQi9ZrF4mRrA5bciNHX+PUxPr4DwS6iv4h+FVWJMVwcEYdpyoIdyL+SRmHdJfQEPmwQ==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} + + '@stoplight/spectral-ref-resolver@1.0.5': + resolution: {integrity: sha512-gj3TieX5a9zMW29z3mBlAtDOCgN3GEc1VgZnCVlr5irmR4Qi5LuECuFItAq4pTn5Zu+sW5bqutsCH7D4PkpyAA==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} + + '@stoplight/spectral-rulesets@1.22.0': + resolution: {integrity: sha512-l2EY2jiKKLsvnPfGy+pXC0LeGsbJzcQP5G/AojHgf+cwN//VYxW1Wvv4WKFx/CLmLxc42mJYF2juwWofjWYNIQ==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} + + '@stoplight/spectral-runtime@1.1.4': + resolution: {integrity: sha512-YHbhX3dqW0do6DhiPSgSGQzr6yQLlWybhKwWx0cqxjMwxej3TqLv3BXMfIUYFKKUqIwH4Q2mV8rrMM8qD2N0rQ==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} + + '@stoplight/types@13.20.0': + resolution: {integrity: sha512-2FNTv05If7ib79VPDA/r9eUet76jewXFH2y2K5vuge6SXbRHtWBhcaRmu+6QpF4/WRNoJj5XYRSwLGXDxysBGA==} + engines: {node: ^12.20 || >=14.13} + + '@stoplight/types@13.6.0': + resolution: {integrity: sha512-dzyuzvUjv3m1wmhPfq82lCVYGcXG0xUYgqnWfCq3PCVR4BKFhjdkHrnJ+jIDoMKvXb05AZP/ObQF6+NpDo29IQ==} + engines: {node: ^12.20 || >=14.13} + + '@stoplight/types@14.1.1': + resolution: {integrity: sha512-/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==} + engines: {node: ^12.20 || >=14.13} + + '@stoplight/yaml-ast-parser@0.0.50': + resolution: {integrity: sha512-Pb6M8TDO9DtSVla9yXSTAxmo9GVEouq5P40DWXdOie69bXogZTkgvopCq+yEvTMA0F6PEvdJmbtTV3ccIp11VQ==} + + '@stoplight/yaml@4.3.0': + resolution: {integrity: sha512-JZlVFE6/dYpP9tQmV0/ADfn32L9uFarHWxfcRhReKUnljz1ZiUM5zpX+PH8h5CJs6lao3TuFqnPm9IJJCEkE2w==} + engines: {node: '>=10.8'} '@storybook/addon-actions@8.6.14': resolution: {integrity: sha512-mDQxylxGGCQSK7tJPkD144J8jWh9IU9ziJMHfB84PKpI/V5ZgqMDnpr2bssTrUaGDqU5e1/z8KcRF+Melhs9pQ==} @@ -35078,8 +34883,8 @@ packages: '@storybook/addon-interactions@7.5.3': resolution: {integrity: sha512-gD3cU8sYSM/mdbA9ooYIb4c689JkDsJbZ17vfYJ5RjNkSmqKehybdpZOfkj27sVIyFtmscSi75t+pzK4Pv4rZw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: react: optional: true @@ -35094,7 +34899,7 @@ packages: '@storybook/addon-links@10.1.10': resolution: {integrity: sha512-SVKFDb14mne16QMGkmOEk+T4NLvCuFJJ1ecebQ01cPiG5gM72LhzYkAro717Aizd6owyMqcWs0Rsfwl09qi5zA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 storybook: ^10.1.10 peerDependenciesMeta: react: @@ -35128,14 +34933,14 @@ packages: '@storybook/blocks@7.5.3': resolution: {integrity: sha512-Z8yF820v78clQWkwG5OA5qugbQn7rtutq9XCsd03NDB+IEfDaTFQAZG8gs62ZX2ZaXAJsqJSr/mL9oURzXto2A==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@storybook/blocks@8.6.14': resolution: {integrity: sha512-rBMHAfA39AGHgkrDze4RmsnQTMw1ND5fGWobr9pDcJdnDKWQWNRD7Nrlxj0gFlN3n4D9lEZhWGdFrCbku7FVAQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 storybook: ^8.6.14 peerDependenciesMeta: react: @@ -35167,8 +34972,8 @@ packages: '@storybook/components@7.5.3': resolution: {integrity: sha512-M3+cjvEsDGLUx8RvK5wyF6/13LNlUnKbMgiDE8Sxk/v/WPpyhOAIh/B8VmrU1psahS61Jd4MTkFmLf1cWau1vw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@storybook/core-common@7.5.3': resolution: {integrity: sha512-WGMwjtVUxUzFwQz7Mgs0gLuNebIGNV55dCdZgurx2/y6QOkJ2v8D0b3iL+xKMV4B5Nwoc2DsM418Y+Hy3UQd+w==} @@ -35217,14 +35022,14 @@ packages: resolution: {integrity: sha512-hcFZIjW8yQz8O8//2WTIXylm5Xsgc+lW9ISLgUk1xGmptIJQRdlhVIXCpSyLrQaaRiyhQRaVg7l3BD9S216BHw==} engines: {node: '>=14.0.0'} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react: 19.2.1 + react-dom: 19.2.1 '@storybook/icons@2.0.1': resolution: {integrity: sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@storybook/instrumenter@7.5.3': resolution: {integrity: sha512-p6b+/6ohTCKxWn00bXT8KBqVjXUOxeILnJtLlG83USLQCpI+XVkpmK57HYuydqEwy/1XjG+4S4ntPk9VVz3u7w==} @@ -35237,15 +35042,15 @@ packages: '@storybook/manager-api@7.5.3': resolution: {integrity: sha512-d8mVLr/5BEG4bAS2ZeqYTy/aX4jPEpZHdcLaWoB4mAM+PAL9wcWsirUyApKtDVYLITJf/hd8bb2Dm2ok6E45gA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@storybook/nextjs@10.1.10': resolution: {integrity: sha512-GQ1MUOEJO0mDvtjMb2P1zr573N06U6XZvqI/Ik6R0JuFcdp/wZSU4g/A448Ok6nI02P1mNMN8RKRc1aNvK9Flw==} peerDependencies: next: ^14.1.0 || ^15.0.0 || ^16.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 storybook: ^10.1.10 typescript: '*' webpack: ^5.0.0 @@ -35261,8 +35066,8 @@ packages: '@storybook/preset-react-webpack@10.1.10': resolution: {integrity: sha512-rO72bA4SgTKn9O08k9v4T116ZE7kB5Vd00pPmqA1IGiFWdASqbh02SzduN9p3iM06YL8EptmRucN/jctPLe10g==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 storybook: ^10.1.10 typescript: '*' peerDependenciesMeta: @@ -35281,37 +35086,37 @@ packages: '@storybook/react-dom-shim@10.0.6': resolution: {integrity: sha512-UdPSWwgo7WQg8vWIxT379pwrC2uFZX9u12Enap8//zVCJNZYHmjTLbV2P+pQ4zD0UFcqcBljptJEbu7FUMYx+A==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 storybook: ^10.0.6 '@storybook/react-dom-shim@10.1.10': resolution: {integrity: sha512-9pmUbEr1MeMHg9TG0c2jVUfHWr2AA86vqZGphY/nT6mbe/rGyWtBl5EnFLrz6WpI8mo3h+Kxs6p2oiuIYieRtw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 storybook: ^10.1.10 '@storybook/react-dom-shim@8.6.14': resolution: {integrity: sha512-0hixr3dOy3f3M+HBofp3jtMQMS+sqzjKNgl7Arfuj3fvjmyXOks/yGjDImySR4imPtEllvPZfhiQNlejheaInw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react: 19.2.1 + react-dom: 19.2.1 storybook: ^8.6.14 '@storybook/react-vite@10.0.6': resolution: {integrity: sha512-zDnOk89LDOpN0yhTCYRb8bkm6LdchGMfcCxKLQhEnSmkMmPwXsj/CADUc1Oipqih7D0JR/gxuadx+3y41znmSg==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 storybook: ^10.0.6 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 '@storybook/react@10.0.6': resolution: {integrity: sha512-17SMthmwPDzX6Ex5MNnXhDS8DirGyo2I9g8VV/VtnXFWIl2r/+ZSAHjAM4NG0Tv3qia7l/jQxwL1YKk9qVRZxw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 storybook: ^10.0.6 typescript: '>= 4.9.x' peerDependenciesMeta: @@ -35321,8 +35126,8 @@ packages: '@storybook/react@10.1.10': resolution: {integrity: sha512-9Rpr8/wX0p5/EaulrxpqrjKjhGaA/Ab9HgxzTqs2Shz0gvMAQHoiRnTEp7RCCkP49ruFYnIp0yGRSovu03LakQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 storybook: ^10.1.10 typescript: '>= 4.9.x' peerDependenciesMeta: @@ -35332,8 +35137,8 @@ packages: '@storybook/router@7.5.3': resolution: {integrity: sha512-/iNYCFore7R5n6eFHbBYoB0P2/sybTVpA+uXTNUd3UEt7Ro6CEslTaFTEiH2RVQwOkceBp/NpyWon74xZuXhMg==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@storybook/test@8.6.14': resolution: {integrity: sha512-GkPNBbbZmz+XRdrhMtkxPotCLOQ1BaGNp/gFZYdGDk2KmUWBKmvc5JxxOhtoXM2703IzNFlQHSSNnhrDZYuLlw==} @@ -35347,8 +35152,8 @@ packages: '@storybook/theming@7.5.3': resolution: {integrity: sha512-Cjmthe1MAk0z4RKCZ7m72gAD8YD0zTAH97z5ryM1Qv84QXjiCQ143fGOmYz1xEQdNFpOThPcwW6FEccLHTkVcg==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@storybook/types@7.5.3': resolution: {integrity: sha512-iu5W0Kdd6nysN5CPkY4GRl+0BpxRTdSfBIJak7mb6xCIHSB5t1tw4BOuqMQ5EgpikRY3MWJ4gY647QkWBX3MNQ==} @@ -35642,18 +35447,18 @@ packages: resolution: {integrity: sha512-jTGnr/DBlzV/UYqU+b8bZWECBuqh3Q3g7Ih50IktZkvmwTUsidQhhl2JyknNYVZkl5AgMfPAywNKZLTI82wmlA==} peerDependencies: '@tanstack/react-query': ^5.90.12 - react: ^18 || ^19 + react: 19.2.1 '@tanstack/react-query@5.90.12': resolution: {integrity: sha512-graRZspg7EoEaw0a8faiUASCyJrqjKPdqJ9EwuDRUF9mEYJ1YPczI9H+/agJ0mOJkPCJDk0lsz5QTrLZ/jQ2rg==} peerDependencies: - react: ^18 || ^19 + react: 19.2.1 '@tanstack/react-virtual@3.13.13': resolution: {integrity: sha512-4o6oPMDvQv+9gMi8rE6gWmsOjtUZUYIJHv7EB+GblyYdi8U6OqLl8rhHWIUZSL1dUU2dPwTdTgybCKf9EjIrQg==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@tanstack/virtual-core@3.13.13': resolution: {integrity: sha512-uQFoSdKKf5S8k51W5t7b2qpfkyIbdHMzAn+AMQvHPxKUPeo1SsGaA4JRISQT87jm28b7z8OEqPcg1IOZagQHcA==} @@ -35737,7 +35542,7 @@ packages: See migration guide: https://callstack.github.io/react-native-testing-library/docs/migration/jest-matchers peerDependencies: - react: '>=16.0.0' + react: 19.2.1 react-native: '>=0.59' react-test-renderer: '>=16.0.0' @@ -35746,7 +35551,7 @@ packages: engines: {node: '>=18'} peerDependencies: jest: '>=29.0.0' - react: '>=18.2.0' + react: 19.2.1 react-native: '>=0.71' react-test-renderer: '>=18.2.0' peerDependenciesMeta: @@ -35757,15 +35562,15 @@ packages: resolution: {integrity: sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==} engines: {node: '>=12'} peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@testing-library/react@14.3.1': resolution: {integrity: sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==} engines: {node: '>=14'} peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 '@testing-library/react@16.3.0': resolution: {integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==} @@ -35774,8 +35579,8 @@ packages: '@testing-library/dom': ^10.0.0 '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -35798,7 +35603,7 @@ packages: resolution: {integrity: sha512-iw1La4tbRaWKBgz+J9b1ydxv+kgt+7n04ZgD8HSeDJodLsLAxbXj/gLif5f2vyMa98ommBQ73ztBe8zOzGq5YQ==} engines: {node: '>=18'} peerDependencies: - graphql: 16.12.0 + graphql: ^16.0.0 '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} @@ -35813,8 +35618,8 @@ packages: '@tremor/react@3.18.7': resolution: {integrity: sha512-nmqvf/1m0GB4LXc7v2ftdfSLoZhy5WLrhV6HNf0SOriE6/l8WkYeWuhQq8QsBjRi94mUIKLJ/VC3/Y/pj6VubQ==} peerDependencies: - react: ^18.0.0 - react-dom: '>=16.6.0' + react: 19.2.1 + react-dom: 19.2.1 '@tsconfig/node10@1.0.12': resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} @@ -35828,6 +35633,14 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@tufjs/canonical-json@2.0.0': + resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@tufjs/models@4.1.0': + resolution: {integrity: sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==} + engines: {node: ^20.17.0 || >=22.9.0} + '@turf/along@6.5.0': resolution: {integrity: sha512-LLyWQ0AARqJCmMcIEAXF4GEu8usmd4Kbz3qk1Oy5HoRNpZX47+i5exQtmIWKdqJ1MMhW26fCTXgpsEs5zgJ5gw==} @@ -35846,9 +35659,6 @@ packages: '@turf/area@7.3.1': resolution: {integrity: sha512-9nSiwt4zB5QDMcSoTxF28WpK1f741MNKcpUJDiHVRX08CZ4qfGWGV9ZIPQ8TVEn5RE4LyYkFuQ47Z9pdEUZE9Q==} - '@turf/area@7.3.3': - resolution: {integrity: sha512-FT66TCxUec+3RsCCyO1kWP57/tiEWEqYfpIs5n44dup401Cne/E+xunahEWxMfP/HSUxfcRQqrjH5vEulLrNoA==} - '@turf/bbox-clip@6.5.0': resolution: {integrity: sha512-F6PaIRF8WMp8EmgU/Ke5B1Y6/pia14UAYB5TiBC668w5rVVjy5L8rTm/m2lEkkDMHlzoP9vNY4pxpNthE7rLcQ==} @@ -36134,9 +35944,6 @@ packages: '@turf/helpers@7.3.1': resolution: {integrity: sha512-zkL34JVhi5XhsuMEO0MUTIIFEJ8yiW1InMu4hu/oRqamlY4mMoZql0viEmH6Dafh/p+zOl8OYvMJ3Vm3rFshgg==} - '@turf/helpers@7.3.3': - resolution: {integrity: sha512-9Ias0L1GuZPIzO6sk8jraTEuLJye6n9LYNEdw69ZGOQ6C1IigjxkPW49zmn21aTv1z27vxdVLSS3r+78DB2QnQ==} - '@turf/hex-grid@6.5.0': resolution: {integrity: sha512-Ln3tc2tgZT8etDOldgc6e741Smg1CsMKAz1/Mlel+MEL5Ynv2mhx3m0q4J9IB1F3a4MNjDeVvm8drAaf9SF33g==} @@ -36266,9 +36073,6 @@ packages: '@turf/meta@7.3.1': resolution: {integrity: sha512-NWsfOE5RVtWpLQNkfOF/RrYvLRPwwruxhZUV0UFIzHqfiRJ50aO9Y6uLY4bwCUe2TumLJQSR4yaoA72Rmr2mnQ==} - '@turf/meta@7.3.3': - resolution: {integrity: sha512-Tz1j4h70iFB5SebWWoVv/uL59x4aOngXU+d1xQDXzOCn/O6txnreGVGMcYU362c5F06yqZx38H9UFTQ553lK0w==} - '@turf/midpoint@6.5.0': resolution: {integrity: sha512-MyTzV44IwmVI6ec9fB2OgZ53JGNlgOpaYl9ArKoF49rXpL84F9rNATndbe0+MQIhdkw8IlzA6xVP4lZzfMNVCw==} @@ -36548,6 +36352,9 @@ packages: '@types/aws-lambda@8.10.122': resolution: {integrity: sha512-vBkIh9AY22kVOCEKo5CJlyCgmSWvasC+SWUxL/x/vOwRobMpI/HG1xp/Ae3AqmSiZeLUbOhW0FCD3ZjqqUxmXw==} + '@types/aws-lambda@8.10.159': + resolution: {integrity: sha512-SAP22WSGNN12OQ8PlCzGzRCZ7QDCwI85dQZbmpz7+mAk+L7j+wI7qnvmdKh+o7A5LaOp6QnOZ2NJphAZQTTHQg==} + '@types/aws-lambda@8.10.160': resolution: {integrity: sha512-uoO4QVQNWFPJMh26pXtmtrRfGshPUSpMZGUyUQY20FhfHEElEBOPKgVmFs1z+kbpyBsRs2JnoOPT7++Z4GA9pA==} @@ -36612,6 +36419,9 @@ packages: '@types/compression@1.8.1': resolution: {integrity: sha512-kCFuWS0ebDbmxs0AXYn6e2r2nrGAb5KwQhknjSPSPgJcGd8+HVSILlUyFhGqML2gk39HcG7D1ydW9/qpYkN00Q==} + '@types/config@3.3.5': + resolution: {integrity: sha512-itq2HtXQBrNUKwMNZnb9mBRE3T99VYCdl1gjST9rq+9kFaB1iMMGuDeZnP88qid73DnpAMKH9ZolqDpS1Lz7+w==} + '@types/connect-redis@0.0.22': resolution: {integrity: sha512-NZYbwgAfzhx8Ju6Bv3W+w5mUW2W3KMC5IOMqa6WXvHg7/Jyhv6jWdpHTm0M6B7ZvbUnmqA3ko00TN+8OrsPPLA==} @@ -36630,7 +36440,7 @@ packages: '@types/cookie-parser@1.4.10': resolution: {integrity: sha512-B4xqkqfZ8Wek+rCOeRxsjMS9OgvzebEzzLYw7NHYuvzb7IdxOkI0ZHGgeEBX4PUM7QGVvNSK60T3OvWj3YfBRg==} peerDependencies: - '@types/express': '*' + '@types/express': 4.17.21 '@types/cookiejar@2.1.5': resolution: {integrity: sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==} @@ -36778,6 +36588,9 @@ packages: '@types/d3-shape@1.3.12': resolution: {integrity: sha512-8oMzcd4+poSLGgV0R1Q1rOlx/xdmozS4Xab7np0eamFFUYq71AU9pOCJEFnkXW2aI/oXdVYJzw6pssbSut7Z9Q==} + '@types/d3-shape@3.1.7': + resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==} + '@types/d3-shape@3.1.8': resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==} @@ -36845,6 +36658,9 @@ packages: '@types/elliptic@6.4.18': resolution: {integrity: sha512-UseG6H5vjRiNpQvrhy4VF/JXdA3V/Fp5amvveaL+fs28BZ6xIKJBPnUPRlEaZpysD9MbpfaLi8lbl7PGUAkpWw==} + '@types/es-aggregate-error@1.0.6': + resolution: {integrity: sha512-qJ7LIFp06h1QE1aVxbVd+zJP2wdaugYXYfd6JxsyRMrYHaxb6itXPogW2tz+ylUJ1n1b+JF1PHyYCfYHm0dvUg==} + '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} @@ -36874,33 +36690,14 @@ packages: '@types/express-rate-limit@5.1.3': resolution: {integrity: sha512-H+TYy3K53uPU2TqPGFYaiWc2xJV6+bIFkDd/Ma2/h67Pa6ARk9kWE0p/K9OH1Okm0et9Sfm66fmXoAxsH2PHXg==} - '@types/express-serve-static-core@4.17.31': - resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} - '@types/express-serve-static-core@4.19.6': resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} - '@types/express-serve-static-core@5.1.1': - resolution: {integrity: sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==} - '@types/express-session@1.18.2': resolution: {integrity: sha512-k+I0BxwVXsnEU2hV77cCobC08kIsn4y44C3gC0b46uxZVMaXA04lSPgRLR/bSL2w0t0ShJiG8o4jPzRG/nscFg==} - '@types/express@4.17.14': - resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} - - '@types/express@4.17.18': - resolution: {integrity: sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==} - - '@types/express@4.17.25': - resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} - - '@types/express@5.0.6': - resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} - - '@types/fast-json-stable-stringify@2.1.2': - resolution: {integrity: sha512-vsxcbfLDdjytnCnHXtinE40Xl46Wr7l/VGRGt7ewJwCPMKEHOdEsTxXX8xwgoR7cbc+6dE8SB4jlMrOV2zAg7g==} - deprecated: This is a stub types definition. fast-json-stable-stringify provides its own type definitions, so you do not need this installed. + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} '@types/figlet@1.7.0': resolution: {integrity: sha512-KwrT7p/8Eo3Op/HBSIwGXOsTZKYiM9NpWRBJ5sVjWP/SmlS+oxxRvJht/FNAtliJvja44N3ul1yATgohnVBV0Q==} @@ -37102,9 +36899,6 @@ packages: '@types/mime-types@2.1.4': resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==} - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/minimatch@3.0.5': resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} @@ -37168,20 +36962,35 @@ packages: '@types/node@20.19.27': resolution: {integrity: sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==} + '@types/node@20.19.30': + resolution: {integrity: sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g==} + + '@types/node@22.19.3': + resolution: {integrity: sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==} + '@types/node@22.19.7': resolution: {integrity: sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==} '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} + '@types/node@24.10.1': + resolution: {integrity: sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==} + '@types/node@24.10.9': resolution: {integrity: sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==} '@types/node@25.0.10': resolution: {integrity: sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==} - '@types/node@25.3.5': - resolution: {integrity: sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==} + '@types/node@25.0.3': + resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==} + + '@types/node@25.0.9': + resolution: {integrity: sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==} + + '@types/node@25.1.0': + resolution: {integrity: sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA==} '@types/nodemailer@6.4.21': resolution: {integrity: sha512-Eix+sb/Nj28MNnWvO2X1OLrk5vuD4C9SMnb2Vf4itWnxphYeSceqkFX7IdmxTzn+dvmnNz7paMbg4Uc60wSfJg==} @@ -37355,15 +37164,9 @@ packages: '@types/semver@7.7.1': resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} - '@types/send@0.17.6': - resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} - '@types/send@1.2.1': resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} - '@types/serve-static@1.15.10': - resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} - '@types/serve-static@2.2.0': resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} @@ -37460,6 +37263,9 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + '@types/urijs@1.19.26': + resolution: {integrity: sha512-wkXrVzX5yoqLnndOwFsieJA7oKM8cNkOKJtf/3vVGSUFkWDKZvFHpIl9Pvqb/T9UsawBBFMTTD8xu7sK5MWuvg==} + '@types/use-sync-external-store@0.0.6': resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} @@ -37503,8 +37309,8 @@ packages: '@types/whatwg-url@11.0.5': resolution: {integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==} - '@types/whatwg-url@8.2.2': - resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} + '@types/whatwg-url@13.0.0': + resolution: {integrity: sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==} '@types/ws@7.4.7': resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} @@ -37961,7 +37767,7 @@ packages: '@use-gesture/react@10.3.1': resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==} peerDependencies: - react: '>= 16.8.0' + react: 19.2.1 '@vaadin/a11y-base@24.9.10': resolution: {integrity: sha512-76KNDhKn8zyqzWwNWx0BcYNQXtEdoq0FgMR7vYz8qSj4zGvu8wf0GuQavTI7Nnia8pk0jRqT2/NZrJR3YLCLJQ==} @@ -38010,8 +37816,8 @@ packages: resolution: {integrity: sha512-FwvH822oxEjWYOr+pP2L8hpv+7cZB2UsQbHHHT0ryrkvvqzmTgt7qHDhamv0EobKw86e1I+B4ojENdJ5G5BkyQ==} peerDependencies: mapbox-gl: '>=3.5.0' - react: '>=16.3.0' - react-dom: '>=16.3.0' + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: mapbox-gl: optional: true @@ -38020,8 +37826,8 @@ packages: resolution: {integrity: sha512-PkAK/gp3mUfhCLhUuc+4gc3PN9zCtVGxTF2hB6R5R5yYUw+hdg84OZ770U5MU4tPMTCG6fbduExuIW6RRKN6qQ==} peerDependencies: maplibre-gl: '>=4.0.0' - react: '>=16.3.0' - react-dom: '>=16.3.0' + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: maplibre-gl: optional: true @@ -38029,28 +37835,28 @@ packages: '@visx/annotation@3.12.0': resolution: {integrity: sha512-ZH6Y4jfrb47iEUV9O2itU9TATE5IPzhs5qvP6J7vmv26qkqwDcuE7xN3S3l9R70WjyEKGbpO8js4EijA3FJWkA==} peerDependencies: - react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/axis@3.12.0': resolution: {integrity: sha512-8MoWpfuaJkhm2Yg+HwyytK8nk+zDugCqTT/tRmQX7gW4LYrHYLXFUXOzbDyyBakCVaUbUaAhVFxpMASJiQKf7A==} peerDependencies: - react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/bounds@3.12.0': resolution: {integrity: sha512-peAlNCUbYaaZ0IO6c1lDdEAnZv2iGPDiLIM8a6gu7CaMhtXZJkqrTh+AjidNcIqITktrICpGxJE/Qo9D099dvQ==} peerDependencies: - react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 - react-dom: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 + react-dom: 19.2.1 '@visx/brush@3.12.0': resolution: {integrity: sha512-ceqQe/IlIi9X9FT/DuiO6b3l5YAGnux/aQMX8M1gvLdz4T8pXIW8nDv1OhqbZ7lmbQEUEEM9IexOkR9ix7pL+Q==} peerDependencies: - react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/clip-path@3.12.0': resolution: {integrity: sha512-pjpjyoQ15lhOrgpDhxfWKAxC4IswzREHGOHhrdWtxQbPoGzVZvFH8HHvwRi4afL11uYDO10z235MDnaDwP8GnQ==} peerDependencies: - react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/curve@3.12.0': resolution: {integrity: sha512-Ng1mefXIzoIoAivw7dJ+ZZYYUbfuwXgZCgQynShr6ZIVw7P4q4HeQfJP3W24ON+1uCSrzoycHSXRelhR9SBPcw==} @@ -38058,12 +37864,12 @@ packages: '@visx/delaunay@3.12.0': resolution: {integrity: sha512-bc8UCJ3l5G6lGnQt5AUo8GIZTm16vKpJycb/6IWHTDeBv4hJL0uahG5QKhy1d08T0cFtYQ3qv/xp5LQkwFxfsw==} peerDependencies: - react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/drag@3.12.0': resolution: {integrity: sha512-LXOoPVw//YPjpYhDJYBsCYDuv1QimsXjDV98duH0aCy4V94ediXMQpe2wHq4pnlDobLEB71FjOZMFrbFmqtERg==} peerDependencies: - react: ^16.8.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/event@3.12.0': resolution: {integrity: sha512-9Lvw6qJ0Fi+y1vsC1WspfdIKCxHTb7oy59Uql1uBdPGT8zChP0vuxW0jQNQRDbKgoefj4pCXAFi8+MF1mEtVTw==} @@ -38071,47 +37877,47 @@ packages: '@visx/geo@3.12.0': resolution: {integrity: sha512-/74NMEqGrAGXOKIdvuLsarUNs5liTjUs3XrgLb4UbSDMoo2itgQN6tCZuIxFKMdEBahfJl+s6pEVPLur5bH4vg==} peerDependencies: - react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/glyph@3.12.0': resolution: {integrity: sha512-E9ST9MoPNyXQzjZxYYAGXT4CbBpnB90Qhx8UvUUM2/n/SZUNeH+m6UiB/CzT0jGK2b0lPHF91mlOiQ8JXBRhYg==} peerDependencies: - react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/gradient@3.12.0': resolution: {integrity: sha512-QRatjjdUEPbcp4pqRca1JlChpAnmmIAO3r3ZscLK7D1xEIANlIjzjl3uNgrmseYmBAYyPCcJH8Zru07R97ovOg==} peerDependencies: - react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/grid@3.12.0': resolution: {integrity: sha512-L4ex2ooSYhwNIxJ3XFIKRhoSvEGjPc2Y3YCrtNB4TV5Ofdj4q0UMOsxfrH23Pr8HSHuQhb6VGMgYoK0LuWqDmQ==} peerDependencies: - react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/group@3.12.0': resolution: {integrity: sha512-Dye8iS1alVXPv7nj/7M37gJe6sSKqJLH7x6sEWAsRQ9clI0kFvjbKcKgF+U3aAVQr0NCohheFV+DtR8trfK/Ag==} peerDependencies: - react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/heatmap@3.12.0': resolution: {integrity: sha512-+YhXHfMvwQOMf9xMd15FUOoiKqf84o1UF0zsmnNsCC75MqFMpjvzc3DeoC37fi69iBIKchU8DjhVubvCE9N4jA==} peerDependencies: - react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/hierarchy@3.12.0': resolution: {integrity: sha512-+X1HOeLEOODxjAD7ixrWJ4KCVei4wFe8ra3dYU0uZ14RdPPgUeiuyBfdeXWZuAHM6Ix9qrryneatQjkC3h4mvA==} peerDependencies: - react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/legend@3.12.0': resolution: {integrity: sha512-Tr6hdauEDXRXVNeNgIQ9JtCCrxn8Fbr8UCVlO9XsSxenk2hBC/2PIY5QPzpnKFEEEuH/C8vhj8T0JfFZV+D9zQ==} peerDependencies: - react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/marker@3.12.0': resolution: {integrity: sha512-11aCWC13+PqbAatNgMVcm33J8PRNdyGiDbfMfwUXt5/FS2XLs2e1fjfhIwAxmCCLZ13FYlabrc1qnjnhwXbTVQ==} peerDependencies: - react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/mock-data@3.12.0': resolution: {integrity: sha512-HI8LKdO3sU2tIBv16ZYRTc2JYsu0Ai/hQc7YUOBqbjhXUW993iCBe98pAgEdHDrSWqK2yvXY4En5ceBTAP34Jw==} @@ -38119,12 +37925,12 @@ packages: '@visx/network@3.12.0': resolution: {integrity: sha512-mVWF9TQVpe6Qz95IJ+Pm+FB6xhdjzFGRKK7/qQFhjRloIJqVZkChAiBIua04Ux8BeyCt37wdFgQKFl6C2u3DXA==} peerDependencies: - react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/pattern@3.12.0': resolution: {integrity: sha512-ZkNA/2TkULNiiY4cw2IkuQcQRp9zI3SQ0/JoZMQ+UmUvY5RNBcsdTmic7649egHq0FRYCbY0DDQVJicccW5JUg==} peerDependencies: - react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/point@3.12.0': resolution: {integrity: sha512-I6UrHoJAEVbx3RORQNupgTiX5EzjuZpiwLPxn8L2mI5nfERotPKi1Yus12Cq2WtXqEBR/WgqTnoImlqOXBykcA==} @@ -38133,17 +37939,17 @@ packages: resolution: {integrity: sha512-ehtmjFrUQx3g0mZ684M4LgI9UfQ84ZWD/m9tKfvXhEm1Vl8D4AjaZ4af1tTOg9S7vk2VlpxvVOVN7+t5pu0nSA==} peerDependencies: '@react-spring/web': ^9.4.5 - react: ^16.3.0-0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 '@visx/responsive@3.12.0': resolution: {integrity: sha512-GV1BTYwAGlk/K5c9vH8lS2syPnTuIqEacI7L6LRPbsuaLscXMNi+i9fZyzo0BWvAdtRV8v6Urzglo++lvAXT1Q==} peerDependencies: - react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/sankey@3.12.0': resolution: {integrity: sha512-B3zIUejzv8ySGmcgJhqiy616llauT0CwvL7wWyTh2z3eCBkFOlPVF85NBrQq823w/0DkwoX8+LmLpKyelh6Vpw==} peerDependencies: - react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/scale@3.12.0': resolution: {integrity: sha512-+ubijrZ2AwWCsNey0HGLJ0YKNeC/XImEFsr9rM+Uef1CM3PNM43NDdNTrdBejSlzRq0lcfQPWYMYQFSlkLcPOg==} @@ -38151,23 +37957,23 @@ packages: '@visx/shape@3.12.0': resolution: {integrity: sha512-/1l0lrpX9tPic6SJEalryBKWjP/ilDRnQA+BGJTI1tj7i23mJ/J0t4nJHyA1GrL4QA/bM/qTJ35eyz5dEhJc4g==} peerDependencies: - react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/text@3.12.0': resolution: {integrity: sha512-0rbDYQlbuKPhBqXkkGYKFec1gQo05YxV45DORzr6hCyaizdJk1G+n9VkuKSHKBy1vVQhBA0W3u/WXd7tiODQPA==} peerDependencies: - react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/threshold@3.12.0': resolution: {integrity: sha512-HpbJbFBKaFOM7FiMiOQwZhQAoDtd5+xSUZRlZ3U7N7TF3S2oVKIBRNlMakhcu0eick7UNvmCl7ZTW2lI65IX4g==} peerDependencies: - react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/tooltip@3.12.0': resolution: {integrity: sha512-pWhsYhgl0Shbeqf80qy4QCB6zpq6tQtMQQxKlh3UiKxzkkfl+Metaf9p0/S0HexNi4vewOPOo89xWx93hBeh3A==} peerDependencies: - react: ^16.8.0-0 || ^17.0.0-0 || ^18.0.0-0 - react-dom: ^16.8.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 + react-dom: 19.2.1 '@visx/vendor@3.12.0': resolution: {integrity: sha512-SVO+G0xtnL9dsNpGDcjCgoiCnlB3iLSM9KLz1sLbSrV7RaVXwY3/BTm2X9OWN1jH2a9M+eHt6DJ6sE6CXm4cUg==} @@ -38175,28 +37981,28 @@ packages: '@visx/visx@3.12.0': resolution: {integrity: sha512-Lx8XKFUz8eyaR07jdUWcMcPYRp+sfrd3OsGw8uFIuZeAJ0hF6Ni7f7TVvyW1W5chlvCrL4/MGQTCjN/A8o3UZQ==} peerDependencies: - react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/voronoi@3.12.0': resolution: {integrity: sha512-U3HWu6g5UjQchFDq8k/A4U9WrlN+80rAFPdGOUvIGOueQw9RmlZlNaeg8IJcQr2yk1s4O/VSpt3nR82zdINWMw==} peerDependencies: - react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/wordcloud@3.12.0': resolution: {integrity: sha512-TAo9w1Z65ddRM1OPmrELXNvDSOYf4MRO0+VAIX5FNFAc8v4FNmTJriSWc+A/FIZL+1svDOKnDP9SwF86NX4Alg==} peerDependencies: - react: ^16.8.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@visx/xychart@3.12.0': resolution: {integrity: sha512-itJ7qvj/STpVmHesVyo2vPOataBM1mgSaf9R6/s4Bpe340wZldfCJ+IqRcNgdtbBagz1Hlr/sRnla4tWE2yw9A==} peerDependencies: '@react-spring/web': ^9.4.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 '@visx/zoom@3.12.0': resolution: {integrity: sha512-JmxkOROPkjnMEdFGnnSKLo5BkFHgOkLe/N5KkWR02cA5bE+bmEkfAh7DJfrtVsPkqSPvwGH1TrMWWthJwoivPA==} peerDependencies: - react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 + react: 19.2.1 '@vitejs/plugin-react@4.7.0': resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} @@ -38547,14 +38353,6 @@ packages: abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - abbrev@2.0.0: - resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - abbrev@3.0.1: - resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} - engines: {node: ^18.17.0 || >=20.5.0} - abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -38667,6 +38465,19 @@ packages: resolution: {integrity: sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==} engines: {node: '>=18'} + ajv-draft-04@1.0.0: + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-errors@3.0.0: + resolution: {integrity: sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==} + peerDependencies: + ajv: ^8.0.1 + ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -38702,9 +38513,6 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - ajv@8.18.0: - resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} - amqplib@0.10.9: resolution: {integrity: sha512-jwSftI4QjS3mizvnSnOrPGYiUnm1vI2OP1iXeOUz5pb74Ua0nbf6nPyyTzuiCLEE3fMpaJORXh2K/TQ08H5xGA==} engines: {node: '>=10'} @@ -38741,26 +38549,10 @@ packages: engines: {'0': node >= 0.8.0} hasBin: true - ansi-regex@2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} - engines: {node: '>=0.10.0'} - ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} - engines: {node: '>=12'} - - ansi-styles@2.2.1: - resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} - engines: {node: '>=0.10.0'} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -38796,7 +38588,7 @@ packages: engines: {node: '>=6.0'} deprecated: The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details. peerDependencies: - graphql: 16.12.0 + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 apollo-datasource@0.10.0: resolution: {integrity: sha512-wrLhuoM2MtA0KA0+3qyioe0H2FjAxjTvuFOlNCk6WberA887m0MQlWULZImCWTkKuN+zEAMerHfxN+F+W8+lBA==} @@ -38812,12 +38604,12 @@ packages: resolution: {integrity: sha512-bezL9ItUWUGHTm1bI/XzIgiiZbhXpsC7uxk4UxFPmcVJwJsDc3ayZ99oXxAaK+3Rbg/IoqrHckA6CwmkCsbaSA==} engines: {node: '>=6'} peerDependencies: - graphql: 16.12.0 + graphql: ^14.2.1 || ^15.0.0 apollo-link@1.2.14: resolution: {integrity: sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==} peerDependencies: - graphql: 16.12.0 + graphql: ^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0 apollo-reporting-protobuf@0.8.0: resolution: {integrity: sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg==} @@ -38837,14 +38629,14 @@ packages: engines: {node: '>=6'} deprecated: The `apollo-server-core` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. peerDependencies: - graphql: 16.12.0 + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 apollo-server-core@3.13.0: resolution: {integrity: sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg==} engines: {node: '>=12.0'} deprecated: The `apollo-server-core` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. peerDependencies: - graphql: 16.12.0 + graphql: ^15.3.0 || ^16.0.0 apollo-server-env@3.2.0: resolution: {integrity: sha512-V+kO5e6vUo2JwqV1/Ng71ZE3J6x1hCOC+nID2/++bCYl0/fPY9iLChbBNSgN/uoFcjhgmBchOv+m4o0Nie/TFQ==} @@ -38861,14 +38653,14 @@ packages: engines: {node: '>=6'} deprecated: The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. peerDependencies: - graphql: 16.12.0 + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 apollo-server-errors@3.3.1: resolution: {integrity: sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==} engines: {node: '>=12.0'} deprecated: The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. peerDependencies: - graphql: 16.12.0 + graphql: ^15.3.0 || ^16.0.0 apollo-server-express@3.13.0: resolution: {integrity: sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g==} @@ -38876,59 +38668,59 @@ packages: deprecated: The `apollo-server-express` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. peerDependencies: express: '>=4.21.0' - graphql: 16.12.0 + graphql: ^15.3.0 || ^16.0.0 apollo-server-plugin-base@0.14.0: resolution: {integrity: sha512-nTNSFuBhZURGjtWptdVqwemYUOdsvABj/GSKzeNvepiEubiv4N0rt4Gvy1inHDiMbo98wQTdF/7XohNcB9A77g==} engines: {node: '>=6'} deprecated: The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. peerDependencies: - graphql: 16.12.0 + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 apollo-server-plugin-base@3.7.2: resolution: {integrity: sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==} engines: {node: '>=12.0'} deprecated: The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. peerDependencies: - graphql: 16.12.0 + graphql: ^15.3.0 || ^16.0.0 apollo-server-testing@2.25.3: resolution: {integrity: sha512-EELtuDk1dn//fNxeYELuwwAy8bvhV9d60WhZfs3JrXqpzRDZhJmyyGqlMoHmkvCqK/mCOkc4hL54tM9rrFhU5Q==} engines: {node: '>=6'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 apollo-server-types@0.10.0: resolution: {integrity: sha512-LsB3epw1X3Co/HGiKHCGtzWG35J59gG8Ypx0p22+wgdM9AVDm1ylsNGZy+osNIVJc1lUJf3nF5kZ90vA866K/w==} engines: {node: '>=6'} deprecated: The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. peerDependencies: - graphql: 16.12.0 + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 apollo-server-types@3.8.0: resolution: {integrity: sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==} engines: {node: '>=12.0'} deprecated: The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. peerDependencies: - graphql: 16.12.0 + graphql: ^15.3.0 || ^16.0.0 apollo-server@3.13.0: resolution: {integrity: sha512-hgT/MswNB5G1r+oBhggVX4Fjw53CFLqG15yB5sN+OrYkCVWF5YwPbJWHfSWa7699JMEXJGaoVfFzcvLZK0UlDg==} deprecated: The `apollo-server` package is part of Apollo Server v2 and v3, which are now end-of-life (as of October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details. peerDependencies: - graphql: 16.12.0 + graphql: ^15.3.0 || ^16.0.0 apollo-tracing@0.16.0: resolution: {integrity: sha512-Oy8kTggB+fJ/hHXwHyMpuTl5KW7u1XetKFDErZVOobUKc2zjc/NgWiC/s7SGYZCgfLodBjvwfa6rMcvLkz7c0w==} engines: {node: '>=4.0'} deprecated: The `apollo-tracing` package is no longer part of Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#tracing for details peerDependencies: - graphql: 16.12.0 + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 apollo-utilities@1.3.4: resolution: {integrity: sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==} peerDependencies: - graphql: 16.12.0 + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 app-builder-bin@5.0.0-alpha.12: resolution: {integrity: sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==} @@ -38996,11 +38788,6 @@ packages: engines: {node: '>=10'} deprecated: This package is no longer supported. - are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -39161,6 +38948,10 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + async-exit-hook@2.0.1: resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} engines: {node: '>=0.12.0'} @@ -39172,9 +38963,6 @@ packages: async-lock@1.4.1: resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} - async-mutex@0.4.1: - resolution: {integrity: sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==} - async-mutex@0.5.0: resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==} @@ -39234,13 +39022,15 @@ packages: resolution: {integrity: sha512-yOA4wFeI7ET3v32Di/sUybQ+ttP20JHSW3mxLuNGeO0uD6PPcvLrIQXSvy/rhJOWU5JrYh7U4OHplWMmtAtjMg==} engines: {node: '>=0.11'} + avvio@8.4.0: + resolution: {integrity: sha512-CDSwaxINFy59iNwhYnkvALBwZiTydGkOecZyPkqBpABYR1KqGEsET0VOOYDwtleZSUIdeY36DC2bSZ24CO1igA==} + avvio@9.1.0: resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==} aws-sdk@2.1693.0: resolution: {integrity: sha512-cJmb8xEnVLT+R6fBS5sn/EFJiX7tUnDaPtOPZ1vFbOJtd0fnZn/Ky2XGgsvvoeliWeH7mL3TWSX5zXXGSQV6gQ==} engines: {node: '>= 10.0.0'} - deprecated: The AWS SDK for JavaScript (v2) has reached end-of-support, and no longer receives updates. Please migrate your code to use AWS SDK for JavaScript (v3). More info https://a.co/cUPnyil aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} @@ -39259,12 +39049,12 @@ packages: axios-retry@3.9.1: resolution: {integrity: sha512-8PJDLJv7qTTMMwdnbMvrLYuvB47M81wRtxQmEdV5w4rgbTXTt+vtPkXwajOfOdSyv/wZICJOC+/UhXH4aQ/R+w==} + axios@1.13.2: + resolution: {integrity: sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==} + axios@1.13.4: resolution: {integrity: sha512-1wVkUaAO6WyaYtCkcYCOx12ZgpGf9Zif+qXa4n+oYzK558YryKqiL6UWwd5DqiH3VRW0GYhTZQ/vlgJrCoNQlg==} - axios@1.13.6: - resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} - axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -39277,6 +39067,9 @@ packages: react-native-b4a: optional: true + babel-code-frame@6.26.0: + resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==} + babel-core@7.0.0-bridge.0: resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} peerDependencies: @@ -39355,6 +39148,11 @@ packages: babel-plugin-transform-flow-enums@0.0.2: resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} + babel-plugin-transform-import-meta@2.3.3: + resolution: {integrity: sha512-bbh30qz1m6ZU1ybJoNOhA2zaDvmeXMnGNBMVMDOJ1Fni4+wMBoy/j7MTRVmqAUCIcy54/rEnr9VEBsfcgbpm3Q==} + peerDependencies: + '@babel/core': ^7.10.0 + babel-preset-current-node-syntax@1.2.0: resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} peerDependencies: @@ -39458,7 +39256,6 @@ packages: basic-ftp@5.0.5: resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} - deprecated: Security vulnerability fixed in 5.2.0, please upgrade batch-cluster@13.0.0: resolution: {integrity: sha512-EreW0Vi8TwovhYUHBXXRA5tthuU2ynGsZFlboyMJHCCUXYa2AjgwnE3ubBOJs2xJLcuXFJbi6c/8pH5+FVj8Og==} @@ -39527,6 +39324,9 @@ packages: bl@5.1.0: resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + blake3@2.1.7: + resolution: {integrity: sha512-5d+TdKJvju96IyEaGJ0eO6CHbckWi+NBrCezGYM/WsnI3R03aLL2TWfsuZSh1rs0fTv/L3ps/r0vykjYurcIwA==} + blob-to-it@2.0.10: resolution: {integrity: sha512-I39vO57y+LBEIcAV7fif0sn96fYOYVqrPiOD+53MxQGv4DBgt1/HHZh0BHheWx2hVe24q5LTSXxqeV1Y3Nzkgg==} @@ -39649,14 +39449,14 @@ packages: resolution: {integrity: sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==} engines: {node: '>=0.6.19'} - bson@5.5.1: - resolution: {integrity: sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==} - engines: {node: '>=14.20.1'} - bson@6.10.4: resolution: {integrity: sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==} engines: {node: '>=16.20.1'} + bson@7.1.1: + resolution: {integrity: sha512-TtJgBB+QyOlWjrbM+8bRgH84VM/xrDjyBFgSgGrfZF4xvt6gbEDtcswm27Tn9F9TWsjQybxT8b8VpCP/oJK4Dw==} + engines: {node: '>=20.19.0'} + buf-compare@1.0.1: resolution: {integrity: sha512-Bvx4xH00qweepGc43xFvMs5BKASXTbHaHm6+kDYIK9p/4iFwjATQkmPKHQSgJZzKbAymhztRbXUf1Nqhzl73/Q==} engines: {node: '>=0.10.0'} @@ -39730,6 +39530,10 @@ packages: builder-util@26.0.11: resolution: {integrity: sha512-xNjXfsldUEe153h1DraD0XvDOpqGR0L5eKFkdReB7eFW5HqysDZFfly4rckda6y9dF39N3pkPlOblcfHKGw+uA==} + builtin-modules@1.1.1: + resolution: {integrity: sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==} + engines: {node: '>=0.10.0'} + builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} @@ -39785,6 +39589,10 @@ packages: engines: {'0': node >=0.10.0} hasBin: true + busboy@0.3.1: + resolution: {integrity: sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==} + engines: {node: '>=4.5.0'} + busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -39962,18 +39770,6 @@ packages: resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} engines: {node: '>=12'} - chalk@1.1.3: - resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} - engines: {node: '>=0.10.0'} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} - chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -40011,6 +39807,9 @@ packages: charenc@0.0.2: resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + charm@1.0.2: + resolution: {integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==} + cheap-ruler@4.0.0: resolution: {integrity: sha512-0BJa8f4t141BYKQyn9NSQt1PguFQXMXwZiA5shfoaBYHAb2fFk2RAX+tiWMoQU+Agtzt3mdt0JtuyshAXqZ+Vw==} @@ -40028,9 +39827,9 @@ packages: cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} - engines: {node: '>= 6'} + cheerio@1.1.2: + resolution: {integrity: sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==} + engines: {node: '>=20.18.1'} cheerio@1.2.0: resolution: {integrity: sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==} @@ -40113,6 +39912,9 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + cjs-module-lexer@2.1.1: + resolution: {integrity: sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ==} + cjs-module-lexer@2.2.0: resolution: {integrity: sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==} @@ -40129,10 +39931,6 @@ packages: classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - clean-css@4.2.4: - resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} - engines: {node: '>= 4.0'} - clean-css@5.3.3: resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} engines: {node: '>= 10.0'} @@ -40259,8 +40057,8 @@ packages: cmdk@1.1.1: resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - react-dom: ^18 || ^19 || ^19.0.0-rc + react: 19.2.1 + react-dom: 19.2.1 co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} @@ -40280,9 +40078,6 @@ packages: collect-v8-coverage@1.0.3: resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -40291,9 +40086,6 @@ packages: resolution: {integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==} engines: {node: '>=14.6'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -40312,9 +40104,6 @@ packages: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true - color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} - color@4.2.3: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} @@ -40339,6 +40128,9 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + command-exists@1.2.9: + resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} + command-line-args@6.0.1: resolution: {integrity: sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==} engines: {node: '>=12.20'} @@ -40432,6 +40224,9 @@ packages: resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==} engines: {node: '>=0.10.0'} + compare-versions@6.1.1: + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + complex.js@2.4.3: resolution: {integrity: sha512-UrQVSUur14tNX6tiP4y8T4w4FeJAX3bi2cIv0pu/DTLFNxoq7z2Yh83Vfzztj6Px3X/lubqQ9IrPp7Bpn6p4MQ==} @@ -40511,6 +40306,10 @@ packages: config-file-ts@0.2.8-rc1: resolution: {integrity: sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg==} + config@3.3.12: + resolution: {integrity: sha512-Vmx389R/QVM3foxqBzXO8t2tUikYZP64Q6vQxGrsMpREeJc/aWRnPRERXWsYzOHAumx/AOoILWe6nU3ZJL+6Sw==} + engines: {node: '>= 10.0.0'} + connect-redis@8.1.0: resolution: {integrity: sha512-Km0EYLDlmExF52UCss5gLGTtrukGC57G6WCC2aqEMft5Vr4xNWuM4tL+T97kWrw+vp40SXFteb6Xk/7MxgpwdA==} engines: {node: '>=18'} @@ -41319,31 +41118,6 @@ packages: resolution: {integrity: sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==} engines: {node: '>=18'} - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -41380,8 +41154,8 @@ packages: resolution: {integrity: sha512-z64COJdbwwe73bqMGTS7Y56imWwvF0TELUzcL5avG6QlEJrZ7M9Wo9ycrCBKWVgARXRAcVBiC5NdknOoFTyXBA==} peerDependencies: '@arcgis/core': ^4.0.0 - react: '>=16.3.0' - react-dom: '>=16.3.0' + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@arcgis/core': optional: true @@ -41412,6 +41186,14 @@ packages: dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + dedent@1.7.0: + resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dedent@1.7.1: resolution: {integrity: sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==} peerDependencies: @@ -41620,6 +41402,10 @@ packages: dfa@1.2.0: resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} + dicer@0.3.0: + resolution: {integrity: sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==} + engines: {node: '>=4.5.0'} + did-jwt-vc@4.0.16: resolution: {integrity: sha512-is7/e2KdLwtDP3JTnf9sLhUeBQF9AhyGjBuJAAVs5U2Uf8CBchRwDycztHQJCx1voBabVprrmAa9NJMd+qWcSA==} engines: {node: '>=18'} @@ -41637,6 +41423,10 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + diff@3.5.0: + resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} + engines: {node: '>=0.3.1'} + diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -41752,10 +41542,6 @@ packages: engines: {node: '>=12'} deprecated: Use your platform's native DOMException instead - domhandler@3.3.0: - resolution: {integrity: sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==} - engines: {node: '>= 4'} - domhandler@4.3.1: resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} engines: {node: '>= 4'} @@ -41821,11 +41607,19 @@ packages: resolution: {integrity: sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==} engines: {node: '>=0.10'} - duckdb-async@1.4.2: - resolution: {integrity: sha512-qzF144DQ/zKCva6arzvT8xY7uuWGHtrX7dxHpxuQut3hkuJqoNBz2h7SBFobKpBnZ1/+nP/UwCL+BI7o0WVKdw==} + dts-critic@3.3.11: + resolution: {integrity: sha512-HMO2f9AO7ge44YO8OK18f+cxm/IaE1CFuyNFbfJRCEbyazWj5X5wWDF6W4CGdo5Ax0ILYVfJ7L/rOwuUN1fzWw==} + engines: {node: '>=10.17.0'} + peerDependencies: + typescript: '*' - duckdb@1.4.2: - resolution: {integrity: sha512-CvVIgXKgCUJC3CfEOz7ed0XHZ9NMGERm800/2Tl5R2osgbpRa76KmrteRFNKyoRAcRREYq6tpg6u1S7fR15GHQ==} + dtslint@4.2.1: + resolution: {integrity: sha512-57mWY9osUEfS6k62ATS9RSgug1dZcuN4O31hO76u+iEexa6VUEbKoPGaA2mNtc0FQDcdTl0zEUtti79UQKSQyQ==} + engines: {node: '>=10.0.0'} + deprecated: See https://aka.ms/type-testing-tools + hasBin: true + peerDependencies: + typescript: '>= 3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.7.0-dev || >= 3.8.0-dev || >= 3.9.0-dev || >= 4.0.0-dev' dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} @@ -41859,11 +41653,6 @@ packages: ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - editorconfig@1.0.4: - resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==} - engines: {node: '>=14'} - hasBin: true - ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -41992,10 +41781,21 @@ packages: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + env-ci@11.2.0: resolution: {integrity: sha512-D5kWfzkmaOQDioPmiviWAVtKmpPT4/iJmMVQxWxMPJTFyTkdc5JQUfc5iXEeWxcOdsYTKSAiA/Age4NUOqKsRA==} engines: {node: ^18.17 || >=20.6.1} @@ -42027,10 +41827,18 @@ packages: error@7.0.2: resolution: {integrity: sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==} + es-abstract@1.24.0: + resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} + engines: {node: '>= 0.4'} + es-abstract@1.24.1: resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} engines: {node: '>= 0.4'} + es-aggregate-error@1.0.14: + resolution: {integrity: sha512-3YxX6rVb07B5TV11AV5wsL7nQCHXNwoHPsQC8S4AmBiqYhyNCJ5BRKXkXyDJvs8QzXN20NgRtxe3dEEQD9NLHA==} + engines: {node: '>= 0.4'} + es-array-method-boxes-properly@1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} @@ -42071,12 +41879,18 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} + es-toolkit@1.43.0: + resolution: {integrity: sha512-SKCT8AsWvYzBBuUqMk4NPwFlSdqLpJwmy6AP322ERn8W2YLIB6JBXnwMI2Qsh2gfphT3q7EKAxKb23cvFHFwKA==} + es-toolkit@1.44.0: resolution: {integrity: sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==} es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + es6-promise@3.3.1: + resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} + es6-promise@4.2.8: resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} @@ -42097,10 +41911,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-goat@3.0.0: - resolution: {integrity: sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==} - engines: {node: '>=10'} - escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -42307,10 +42117,6 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-scope@8.4.0: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -42327,22 +42133,6 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - - eslint@9.39.1: - resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - eslint@9.39.2: resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -42357,10 +42147,6 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -42437,6 +42223,9 @@ packages: eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + eventemitter3@5.0.4: resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} @@ -42624,6 +42413,9 @@ packages: resolution: {integrity: sha512-IE9csY7lnhxBnA8g/WI5eg/hygA6MGWJMSNfFRrBlXUciADEhS1EDB0SIsMSvzubzIlOBbVITSsypCsW717poA==} engines: {node: '>=12.17.0'} + fast-content-type-parse@1.1.0: + resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==} + fast-content-type-parse@3.0.0: resolution: {integrity: sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==} @@ -42679,6 +42471,9 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-memoize@2.5.2: + resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==} + fast-querystring@1.1.2: resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} @@ -42698,6 +42493,14 @@ packages: fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + fast-xml-parser@4.5.3: + resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} + hasBin: true + + fast-xml-parser@5.2.5: + resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} + hasBin: true + fast-xml-parser@5.3.4: resolution: {integrity: sha512-EFd6afGmXlCx8H8WTZHhAoDaWaGyuIBoZJ2mknrNxug+aZKjkp0a0dlars9Izl+jF+7Gu1/5f/2h68cQpe0IiA==} hasBin: true @@ -42708,8 +42511,11 @@ packages: fastify-plugin@5.1.0: resolution: {integrity: sha512-FAIDA8eovSt5qcDgcBvDuX/v0Cjz0ohGhENZ/wpc3y+oZCY2afZ9Baqql3g/lC+OHRnciQol4ww7tuthOb9idw==} - fastify@5.7.4: - resolution: {integrity: sha512-e6l5NsRdaEP8rdD8VR0ErJASeyaRbzXYpmkrpr2SuvuMq6Si3lvsaVy5C+7gLanEkvjpMDzBXWE5HPeb/hgTxA==} + fastify@4.29.1: + resolution: {integrity: sha512-m2kMNHIG92tSNWv+Z3UeTR9AWLLuo7KctC7mlFPtMEVrfjIhmQhkQnT9v15qA/BfVq3vvj134Y0jl9SBje3jXQ==} + + fastify@5.6.2: + resolution: {integrity: sha512-dPugdGnsvYkBlENLhCgX8yhyGCsCPrpA8lFWbTNU428l+YOnLgYHR69hzV8HWPC79n536EqzqQtvhtdaCE0dKg==} fastparallel@2.4.1: resolution: {integrity: sha512-qUmhxPgNHmvRjZKBFUNI0oZuuH9OlSIOXmJ98lhKPxMZZ7zS/Fi0wRHOihDSz0R1YiIOjxzOY4bq65YTcdBi2Q==} @@ -42792,10 +42598,6 @@ packages: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -42849,6 +42651,10 @@ packages: resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} engines: {node: '>=14.16'} + find-my-way@8.2.2: + resolution: {integrity: sha512-Dobi7gcTEq8yszimcfp/R7+owiT4WncAJ7VTTgFH1jYJ5GaG1FbhjwDG820hptN0QDFvzVY3RfCzdInvGPGzjA==} + engines: {node: '>=14'} + find-my-way@9.3.0: resolution: {integrity: sha512-eRoFWQw+Yv2tuYlK2pjFS2jGXSxSppAs3hSQjfxVKxM5amECzIgYYc1FEI8ZmhSh/Ig+FrKEz43NLRKJjYCZVg==} engines: {node: '>=20'} @@ -43052,8 +42858,8 @@ packages: resolution: {integrity: sha512-gUHGl2e4VG66jOcH0JHhuJQr6ZNwrET9g31ZG0xdXzT0CznP7fHX4P8Bcvuc4MiUB90ysNnWX2ukHRIggkl6hQ==} peerDependencies: '@emotion/is-prop-valid': '*' - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: '@emotion/is-prop-valid': optional: true @@ -43091,6 +42897,9 @@ packages: resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} engines: {node: '>=14.14'} + fs-extra@6.0.1: + resolution: {integrity: sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==} + fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -43163,11 +42972,6 @@ packages: engines: {node: '>=10'} deprecated: This package is no longer supported. - gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - gaussian@1.3.0: resolution: {integrity: sha512-rYQ0ESfB+z0t7G95nHH80Zh7Pgg9A0FUYoZqV0yPec5WJZWKIHV2MPYpiJNy8oZAeVqyKwC10WXKSCnUQ5iDVg==} engines: {node: '>= 0.6.0'} @@ -43195,10 +42999,6 @@ packages: resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} engines: {node: '>= 0.4'} - generic-pool@3.9.0: - resolution: {integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==} - engines: {node: '>= 4'} - gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -43332,7 +43132,6 @@ packages: git-raw-commits@4.0.0: resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} engines: {node: '>=16'} - deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. hasBin: true github-from-package@0.0.0: @@ -43368,10 +43167,6 @@ packages: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -43492,7 +43287,7 @@ packages: engines: {node: '>= 16.0.0'} peerDependencies: cosmiconfig-toml-loader: ^1.0.0 - graphql: 16.12.0 + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 peerDependenciesMeta: cosmiconfig-toml-loader: optional: true @@ -43501,24 +43296,19 @@ packages: resolution: {integrity: sha512-+3B2BaG8qQ8E18kzk9yiSdAa75i/hnnOwgSeAxVJctGQPvmeiLtqKOYF6HETCyRjiF7Xfsyal0HbLlxCQkgkrw==} engines: {node: '>=6.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: '*' graphql-extensions@0.16.0: resolution: {integrity: sha512-rZQc/USoEIw437BGRUwoHoLPR1LA791Ltj6axONqgKIyyx2sqIO3YT9kTbB/eIUdJBrCozp4KuUeZ09xKeQDxg==} engines: {node: '>=6.0'} deprecated: 'The `graphql-extensions` API has been removed from Apollo Server 3. Use the plugin API instead: https://www.apollographql.com/docs/apollo-server/integrations/plugins/' peerDependencies: - graphql: 16.12.0 + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 graphql-jit@0.8.7: resolution: {integrity: sha512-KGzCrsxQPfEiXOUIJCexWKiWF6ycjO89kAO6SdO8OWRGwYXbG0hsLuTnbFfMq0gj7d7/ib/Gh7jtst7FHZEEjw==} peerDependencies: - graphql: 16.12.0 - - graphql-query-complexity@1.1.0: - resolution: {integrity: sha512-6sfAX+9CgkcPeZ7UiuBwgTGA+M1FYgHrQOXvORhQGd6SiaXbNVkLDcJ9ZSvNgzyChIfH0uPFFOY3Jm4wFZ4qEA==} - peerDependencies: - graphql: 16.12.0 + graphql: '>=15' graphql-redis-subscriptions@2.7.0: resolution: {integrity: sha512-IK4uCKx1UNhkcnG9lIqFWz9PpltSbuM8RygwGoB/e1HZMuKpAGeqqfHFeLKkQjjubvk4tAdUdx48AUkTAXJ17Q==} @@ -43528,24 +43318,24 @@ packages: graphql-request@6.1.0: resolution: {integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==} peerDependencies: - graphql: 16.12.0 + graphql: 14 - 16 graphql-scalars@1.25.0: resolution: {integrity: sha512-b0xyXZeRFkne4Eq7NAnL400gStGqG/Sx9VqX0A05nHyEbv57UJnWKsjNnrpVqv5e/8N1MUxkt0wwcRXbiyKcFg==} engines: {node: '>=10'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 graphql-subscriptions@2.0.0: resolution: {integrity: sha512-s6k2b8mmt9gF9pEfkxsaO1lTxaySfKoEJzEfmwguBbQ//Oq23hIXCfR1hm4kdh5hnR20RdwB+s3BCb+0duHSZA==} peerDependencies: - graphql: 16.12.0 + graphql: ^15.7.2 || ^16.0.0 graphql-tag@2.12.6: resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} engines: {node: '>=10'} peerDependencies: - graphql: 16.12.0 + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 graphql-tools@4.0.8: resolution: {integrity: sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==} @@ -43555,19 +43345,19 @@ packages: We recommend you to migrate to scoped packages such as @graphql-tools/schema, @graphql-tools/utils and etc. Check out https://www.graphql-tools.com to learn what package you should use instead peerDependencies: - graphql: 16.12.0 + graphql: ^0.13.0 || ^14.0.0 || ^15.0.0 graphql-upload-ts@2.1.2: resolution: {integrity: sha512-g0mL/55NI1MzRrTczIJw1cruIrqlUm7liQRkuGl6l9s4/j0aSuPkvZ52BS7teI43g6KXE/NeDyUotEAiTyZdHw==} engines: {node: '>=12'} peerDependencies: - graphql: 16.12.0 + graphql: '>=0.13.1' graphql-ws@5.16.2: resolution: {integrity: sha512-E1uccsZxt/96jH/OwmLPuXMACILs76pKF2i3W861LpKBCYtGIyPQGtWLuBLkND4ox1KHns70e83PS4te50nvPQ==} engines: {node: '>=10'} peerDependencies: - graphql: 16.12.0 + graphql: '>=0.11 <=16' graphql-ws@6.0.6: resolution: {integrity: sha512-zgfER9s+ftkGKUZgc0xbx8T7/HMO4AV5/YuYiFc+AtgcO5T0v8AxYYNQ+ltzuzDZgNkYJaFspm5MMYLjQzrkmw==} @@ -43575,9 +43365,9 @@ packages: peerDependencies: '@fastify/websocket': ^10 || ^11 crossws: ~0.3 - graphql: 16.12.0 + graphql: ^15.10.1 || ^16 uWebSockets.js: ^20 - ws: '>=8.17.1' + ws: '>=8.18.4' peerDependenciesMeta: '@fastify/websocket': optional: true @@ -43592,12 +43382,20 @@ packages: resolution: {integrity: sha512-QyGVvFAvGhMrzjJvhjsxsyoE+e4lNrj5f5qOsRYJuWIjyw7tHfbBvybZIwzNOGY0aB5sgA8BlVvu5hxjdKJ5tQ==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: 16.12.0 + graphql: ^15.2.0 || ^16.0.0 + + graphql@15.10.1: + resolution: {integrity: sha512-BL/Xd/T9baO6NFzoMpiMD7YUZ62R6viR5tp/MULVEnbYJXZA//kRNW7J0j1w/wXArgL0sCxhDfK5dczSKn3+cg==} + engines: {node: '>= 10.x'} graphql@16.12.0: resolution: {integrity: sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + graphql@16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + gray-matter@4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} @@ -43635,10 +43433,6 @@ packages: harmony-reflect@1.6.2: resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} - has-ansi@2.0.0: - resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} - engines: {node: '>=0.10.0'} - has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} @@ -43780,6 +43574,10 @@ packages: resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} engines: {node: ^18.17.0 || >=20.5.0} + hosted-git-info@9.0.2: + resolution: {integrity: sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==} + engines: {node: ^20.17.0 || >=22.9.0} + hpagent@1.2.0: resolution: {integrity: sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==} engines: {node: '>=14'} @@ -43806,14 +43604,6 @@ packages: html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - html-escaper@3.0.3: - resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} - - html-minifier-terser@5.1.1: - resolution: {integrity: sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==} - engines: {node: '>=6'} - hasBin: true - html-minifier-terser@6.1.0: resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} engines: {node: '>=12'} @@ -43826,10 +43616,6 @@ packages: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} - html-to-text@9.0.5: - resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} - engines: {node: '>=14'} - html-webpack-plugin@5.6.5: resolution: {integrity: sha512-4xynFbKNNk+WlzXeQQ+6YYsH2g7mpfPszQZUi3ovKlj+pDmngQ7vRXjrrmGROabmKwyQkcgcX5hqfOwHbFmK5g==} engines: {node: '>=10.13.0'} @@ -43842,21 +43628,18 @@ packages: webpack: optional: true + htmlparser2@10.0.0: + resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==} + htmlparser2@10.1.0: resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} - htmlparser2@5.0.1: - resolution: {integrity: sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==} - htmlparser2@6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} htmlparser2@8.0.2: resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} - htmlparser2@9.1.0: - resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} - htmlparser@1.7.7: resolution: {integrity: sha512-zpK66ifkT0fauyFh2Mulrq4AqGTucxGtOhZ8OjkbSfcCpkqQEI8qRkY0tSQSJNAQ4HUZkgWaU4fK4EH6SVH9PQ==} engines: {node: '>=0.1.33'} @@ -43891,7 +43674,7 @@ packages: resolution: {integrity: sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==} engines: {node: '>=12.0.0'} peerDependencies: - '@types/express': ^4.17.13 + '@types/express': 4.17.21 peerDependenciesMeta: '@types/express': optional: true @@ -43916,6 +43699,9 @@ packages: resolution: {integrity: sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==} engines: {node: '>=0.10'} + http2-client@1.3.5: + resolution: {integrity: sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==} + http2-wrapper@1.0.3: resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} engines: {node: '>=10.19.0'} @@ -44002,6 +43788,10 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.1: + resolution: {integrity: sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==} + engines: {node: '>=0.10.0'} + iconv-lite@0.7.2: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} @@ -44069,6 +43859,9 @@ packages: immer@11.1.0: resolution: {integrity: sha512-dlzb07f5LDY+tzs+iLCSXV2yuhaYfezqyZQc+n6baLECWkOMEWxkECAOnXL0ba7lsA25fM9b2jtzpu/uxo1a7g==} + immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + immutable@3.7.6: resolution: {integrity: sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==} engines: {node: '>=0.8.0'} @@ -44101,13 +43894,12 @@ packages: import-in-the-middle@1.7.1: resolution: {integrity: sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg==} + import-in-the-middle@2.0.1: + resolution: {integrity: sha512-bruMpJ7xz+9jwGzrwEhWgvRrlKRYCRDBrfU+ur3FcasYXLJDxTruJ//8g2Noj+QFyRBeqbpj8Bhn4Fbw6HjvhA==} + import-in-the-middle@2.0.6: resolution: {integrity: sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw==} - import-in-the-middle@3.0.0: - resolution: {integrity: sha512-OnGy+eYT7wVejH2XWgLRgbmzujhhVIATQH0ztIeRilwHBjTeG3pD+XnH3PKX0r9gJ0BuJmJ68q/oh9qgXnNDQg==} - engines: {node: '>=18'} - import-local@3.2.0: resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} engines: {node: '>=8'} @@ -44142,6 +43934,9 @@ packages: infer-owner@1.0.4: resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + inflected@2.1.0: + resolution: {integrity: sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==} + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -44160,32 +43955,36 @@ packages: resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ini@6.0.0: + resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} + engines: {node: ^20.17.0 || >=22.9.0} + ink-spinner@5.0.0: resolution: {integrity: sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==} engines: {node: '>=14.16'} peerDependencies: ink: '>=4.0.0' - react: '>=18.0.0' + react: 19.2.1 ink-table@3.1.0: resolution: {integrity: sha512-qxVb4DIaEaJryvF9uZGydnmP9Hkmas3DCKVpEcBYC0E4eJd3qNgNe+PZKuzgCERFe9LfAS1TNWxCr9+AU4v3YA==} peerDependencies: ink: '>=3.0.0' - react: '>=16.8.0' + react: 19.2.1 ink-text-input@6.0.0: resolution: {integrity: sha512-Fw64n7Yha5deb1rHY137zHTAbSTNelUKuB5Kkk2HACXEtwIHBCf9OH2tP/LQ9fRYTl1F0dZgbW0zPnZk6FA9Lw==} engines: {node: '>=18'} peerDependencies: ink: '>=5' - react: '>=18' + react: 19.2.1 ink@5.2.1: resolution: {integrity: sha512-BqcUyWrG9zq5HIwW6JcfFHsIYebJkWWb4fczNah1goUO0vv5vneIlfwuS85twyJ5hYR/y18FlAYUxrO9ChIWVg==} engines: {node: '>=18'} peerDependencies: '@types/react': 18.3.11 - react: '>=18.0.0' + react: 19.2.1 react-devtools-core: ^4.19.1 peerDependenciesMeta: '@types/react': @@ -44262,6 +44061,10 @@ packages: resolution: {integrity: sha512-C6uC+kleiIMmjViJINWk80sOQw5lEzse1ZmvD+S/s8p8CWapftSaC+kocGTx6xrbrJ4WmYQGC08ffHLr6ToR6Q==} engines: {node: '>=12.22.0'} + ioredis@5.9.2: + resolution: {integrity: sha512-tAAg/72/VxOUW7RQSX1pIxJVucYKcjFjfvj60L57jrZpYCHC3XN0WCQ3sNYL4Gmvv+7GPvTAjc+KSdeNuE8oWQ==} + engines: {node: '>=12.22.0'} + ip-address@10.0.1: resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} engines: {node: '>= 12'} @@ -44705,6 +44508,10 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + iso-639-1@3.1.5: resolution: {integrity: sha512-gXkz5+KN7HrG0Q5UGqSMO2qB9AsbEeyLP54kF1YrMsIxmu+g4BdB7rflReZTSTZGpfj8wywu6pfPBCylPIzGQA==} engines: {node: '>=6.0'} @@ -44721,17 +44528,13 @@ packages: resolution: {integrity: sha512-RYUf/JC4ldWz/oi2BVs8a1XIprQ71q6eQPBwySaF5Apu0KMyf2gIpElbCyPh2OEmRT+FYw1GOKSdkv7jw2KLxw==} engines: {node: '>=18.0.0'} - isomorphic-dompurify@2.35.0: - resolution: {integrity: sha512-a9+LQqylQCU8f1zmsYmg2tfrbdY2YS/Hc+xntcq/mDI2MY3Q108nq8K23BWDIg6YGC5JsUMC15fj2ZMqCzt/+A==} - engines: {node: '>=20.19.5'} - isomorphic-unfetch@3.1.0: resolution: {integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==} isomorphic-ws@5.0.0: resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} peerDependencies: - ws: '>=8.17.1' + ws: '>=8.18.4' isomorphic.js@0.2.5: resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==} @@ -44739,7 +44542,7 @@ packages: isows@1.0.7: resolution: {integrity: sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==} peerDependencies: - ws: '>=8.17.1' + ws: '>=8.18.4' isstream@0.1.2: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} @@ -44885,12 +44688,12 @@ packages: its-fine@1.2.5: resolution: {integrity: sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA==} peerDependencies: - react: '>=18.0' + react: 19.2.1 its-fine@2.0.0: resolution: {integrity: sha512-KLViCmWx94zOvpLwSlsx6yOCeMhZYaxrJV87Po5k/FoZzcPSahvK5qJ7fYhS61sZi5ikmh2S3Hz55A2l3U69ng==} peerDependencies: - react: ^19.0.0 + react: 19.2.1 jaeger-client@3.19.0: resolution: {integrity: sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==} @@ -45282,15 +45085,6 @@ packages: jquery@3.7.1: resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==} - js-beautify@1.15.4: - resolution: {integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==} - engines: {node: '>=14'} - hasBin: true - - js-cookie@3.0.5: - resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} - engines: {node: '>=14'} - js-message@1.0.7: resolution: {integrity: sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==} engines: {node: '>=0.6.0'} @@ -45302,6 +45096,9 @@ packages: js-sha3@0.8.0: resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + js-tokens@3.0.2: + resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -45426,6 +45223,10 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-parse-even-better-errors@5.0.0: + resolution: {integrity: sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==} + engines: {node: ^20.17.0 || >=22.9.0} + json-schema-ref-resolver@1.0.1: resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==} @@ -45480,6 +45281,9 @@ packages: engines: {node: '>=6'} hasBin: true + jsonc-parser@2.2.1: + resolution: {integrity: sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==} + jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} @@ -45496,10 +45300,18 @@ packages: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} + jsonpath-plus@10.3.0: + resolution: {integrity: sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==} + engines: {node: '>=18.0.0'} + hasBin: true + jsonpointer@5.0.1: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} + jsonschema@1.5.0: + resolution: {integrity: sha512-K+A9hhqbn0f3pJX17Q/7H6yQfD/5OXgdrR5UE12gMXCiN9D5Xq2o5mddV2QEcX/bjla99ASsAAQUyMCCRWAEhw==} + jsonwebtoken@9.0.2: resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} engines: {node: '>=12', npm: '>=6'} @@ -45529,11 +45341,6 @@ packages: jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} - juice@10.0.1: - resolution: {integrity: sha512-ZhJT1soxJCkOiO55/mz8yeBKTAJhRzX9WBO+16ZTqNTONnnVlUPyVBIzQ7lDRjaBdTbid+bAnyIon/GM3yp4cA==} - engines: {node: '>=10.0.0'} - hasBin: true - jwa@1.4.2: resolution: {integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==} @@ -45677,17 +45484,14 @@ packages: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} - leac@0.6.0: - resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} - leaflet@1.9.4: resolution: {integrity: sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==} leva@0.9.36: resolution: {integrity: sha512-mzzxZzpPdN1bugl6LXCLgK5PS4rU1NdRX7CWnXjVelK49OP8bdoMHhDDweo/uWIk4UHgwpO1sj9CD5Dai+Pvrg==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react: 19.2.1 + react-dom: 19.2.1 level-supports@4.0.1: resolution: {integrity: sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==} @@ -45714,6 +45518,10 @@ packages: engines: {node: '>=16'} hasBin: true + libnpmpublish@11.1.3: + resolution: {integrity: sha512-NVPTth/71cfbdYHqypcO9Lt5WFGTzFEcx81lWd7GDJIgZ95ERdYHGUfCtFejHCyqodKsQkNEx2JCkMpreDty/A==} + engines: {node: ^20.17.0 || >=22.9.0} + libp2p@1.9.4: resolution: {integrity: sha512-OCMQqJ0Po8jhgb4CilWhI5EWhppn9ENdhg63PQL8Yi1tk2rOwJJt+NBec85AU18zBc0jv7Q6SgQRkzCefAuyIQ==} @@ -45726,6 +45534,9 @@ packages: lie@3.3.0: resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + light-my-request@5.14.0: + resolution: {integrity: sha512-aORPWntbpH5esaYpGOOmri0OHDOe3wC5M2MQxZ9dvMLZm6DnaAn0kJlcbU9hwsQgLzmZyReKwFwwPkR+nHu5kA==} + light-my-request@6.6.0: resolution: {integrity: sha512-CHYbu8RtboSIoVsHZ6Ye4cj4Aw/yg2oAFimlF7mNvfDV192LR7nDiKtSIfCuLT7KokPSTn/9kfVLm5OGN0A28A==} @@ -46011,6 +45822,9 @@ packages: lodash.isboolean@3.0.3: resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + lodash.isempty@4.4.0: + resolution: {integrity: sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg==} + lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. @@ -46048,6 +45862,9 @@ packages: lodash.mergewith@4.6.2: resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + lodash.omitby@4.6.0: + resolution: {integrity: sha512-5OrRcIVR75M288p4nbI2WLAf3ndw2GD9fyNv3Bc15+WCxJDdZ4lYndSxGd7hnG6PVjiJTeJE2dHEGhIuKGicIQ==} + lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} @@ -46063,6 +45880,9 @@ packages: lodash.throttle@4.1.1: resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + lodash.topath@4.5.2: + resolution: {integrity: sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==} + lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} @@ -46075,12 +45895,12 @@ packages: lodash.uniqby@4.7.0: resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} + lodash.uniqwith@4.5.0: + resolution: {integrity: sha512-7lYL8bLopMoy4CTICbxygAUq6CdRJ36vFc80DucPueUee+d5NBRxz3FdT9Pes/HEx5mPoT9jwnsEJWz1N7uq7Q==} + lodash.upperfirst@4.3.1: resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - lodash@4.17.23: resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} @@ -46112,6 +45932,9 @@ packages: resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} engines: {node: '>= 12.0.0'} + loglevel-plugin-prefix@0.8.4: + resolution: {integrity: sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==} + loglevel@1.9.2: resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} engines: {node: '>= 0.6.0'} @@ -46160,6 +45983,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.4: + resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} + engines: {node: 20 || >=22} + lru-cache@11.2.5: resolution: {integrity: sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==} engines: {node: 20 || >=22} @@ -46185,19 +46012,19 @@ packages: lucide-react-native@0.469.0: resolution: {integrity: sha512-r3FRoWGymkSoFzZ2JeDHyHzs3IdS9EFbG/uTKMZCR5VtrYq81yhXGu768aqHrMBXYiJeSHGSd7ogzJDPoUdYCg==} peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 + react: 19.2.1 react-native: '*' react-native-svg: ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 lucide-react@0.344.0: resolution: {integrity: sha512-6YyBnn91GB45VuVT96bYCOKElbJzUHqp65vX8cDcu55MQL9T969v4dhGClpljamuI/+KMO9P6w9Acq1CVQGvIQ==} peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 + react: 19.2.1 lucide-react@0.554.0: resolution: {integrity: sha512-St+z29uthEJVx0Is7ellNkgTEhaeSoA42I7JjOCBCrc5X6LYMGSv0P/2uS5HDLTExP5tpiqRD2PyUEOS6s9UXA==} peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} @@ -46304,7 +46131,7 @@ packages: resolution: {integrity: sha512-7mG/1feQ0TX5I7YyMZVDgCC/y2I3CiEhIRQIhyov9nGBP5eoVrOXXHuL5ZP8GRfxVZKRiXWJgwXkb9It+nQZfQ==} engines: {node: '>= 10'} peerDependencies: - react: '>= 0.14.0' + react: 19.2.1 peerDependenciesMeta: react: optional: true @@ -46430,9 +46257,6 @@ packages: memory-pager@1.5.0: resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} - mensch@0.3.4: - resolution: {integrity: sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==} - meow@12.1.1: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} @@ -46445,7 +46269,7 @@ packages: resolution: {integrity: sha512-X4IJ4kL1ySKhen7/PHzrAiu+96xIVzxQoGDENdab/SbS36Z9qbngyES6mXbDGGvVhL+4ehxBo22Yg4GMFc6Umw==} engines: {node: ^20.9.0 || >=22.0.0} peerDependencies: - graphql: 16.12.0 + graphql: ^16.0.0 merge-deep@3.0.3: resolution: {integrity: sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==} @@ -46751,9 +46575,9 @@ packages: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - minimatch@9.0.1: - resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} - engines: {node: '>=16 || 14 >=14.17'} + minimatch@6.2.0: + resolution: {integrity: sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==} + engines: {node: '>=10'} minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} @@ -46834,105 +46658,6 @@ packages: resolution: {integrity: sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==} engines: {node: '>=0.10.0'} - mjml-accordion@4.18.0: - resolution: {integrity: sha512-9PUmy2JxIOGgAaVHvgVYX21nVAo3o/+wJckTTF/YTLGAqB+nm+44buxRzaXxVk7qXRwbCNfE8c8mlGVNh7vB1g==} - - mjml-body@4.18.0: - resolution: {integrity: sha512-34AwX70/7NkRIajPsa5j6NySRiNrlLatTKhiLwTVFiVtrEFlfCcbeMNmdVixI3Ldvs8209ZC6euaAnXDRyR1zw==} - - mjml-button@4.18.0: - resolution: {integrity: sha512-ZsWMI0j7EcFCMqbqdVwMWhmsVc03FhmypWXokKopGhwySn4IAB4AOURonRmFrO7k6sDeQ+iJ9QtTu7jA+S8wmg==} - - mjml-carousel@4.18.0: - resolution: {integrity: sha512-wY4g1CHCOoVSZuar7CLFon/qkPbICu71IT+6pa4BDwkAiaAMAemZPyy+a+iIUgdc8kHgSuHGsGf6PQzBSMWRZA==} - - mjml-cli@4.18.0: - resolution: {integrity: sha512-N6CnA4o/q/VRnGPxTzvVnjAEcF7WUVVQGYfS9SPAp0qwyf7RysMmewdS9yN8GwXwZV6L2sKdn+3ANNi2FNsJ7w==} - hasBin: true - - mjml-column@4.18.0: - resolution: {integrity: sha512-0QZ1whxbHUmJaRT8tW+wmr3fWZ/kpsHKAd24c7Z/N1Otm/U2G0T/FFEFJ6cB25X6ZN0K40QZ8L9gdLfiSVuRbA==} - - mjml-core@4.18.0: - resolution: {integrity: sha512-yey72LszXvIo5p0R6DB+YU8er/nP2wPsqpLKQCB0H8vG0WRT1sbSUvnCUOkKGn7subuyWDTdzHKbQO3XYIOmvg==} - - mjml-divider@4.18.0: - resolution: {integrity: sha512-FmGUVJqi4RYroh7y85vDx0aUKZgECkxHtMQ4pkLGQbZ2g93/Qt0Ek88DVCNJ5XwUAQQkE/TvrGMLHp3CIqpQ9Q==} - - mjml-group@4.18.0: - resolution: {integrity: sha512-28ABkXsKljBqj7XCC8GkQ94xz8HEU2XTyD+9LTlkDafzGp/MGJb8DcLh/7IkxCwqkQWyeMiDNLf1djsQ909Vxw==} - - mjml-head-attributes@4.18.0: - resolution: {integrity: sha512-nLzix1wrMnojE0RPGhk4iKqSRwHKjie2EPzgKT7CDzfqN+Ref03E5Q19x3cQTLgxvq3C3CnvCQBfnhoS3Eakug==} - - mjml-head-breakpoint@4.18.0: - resolution: {integrity: sha512-k6rwff+7i+vTQYJ/CjBfE20qNqPaW60IRH2x2oEPuCzmwDmoVWOcplJIuotSqIAdfwF9hLkICknisp1BpczVlQ==} - - mjml-head-font@4.18.0: - resolution: {integrity: sha512-ao8HB5nf+Dmxw4GO6lMMOlnj1lNZONai0GC9RobrZgPlghZw6hpURWGpkON7pQcy6XnOHwYwkV7Go/npzA2i7w==} - - mjml-head-html-attributes@4.18.0: - resolution: {integrity: sha512-xaQE1rthe0RrNotwEr71X1tE+QQ489Yc0ynMm3oNMrohDI/TaCeazx8GAHPMM7VLduDA8D4A5wkZ6PuEvlJu4w==} - - mjml-head-preview@4.18.0: - resolution: {integrity: sha512-2JvYqhbLyU/+Te6/1AXxzTNoHYCDYhXOVZP7wMvU4t7K34pXqyRUNO405atyHUY1MRafrl6RJ8cIx0x5vUX7PA==} - - mjml-head-style@4.18.0: - resolution: {integrity: sha512-nEwDHkAqY3Fm7QWeAZc/a7MakZpXh6THfrE8/AWrfpgzTHrD/wihNUc09ztNpr6z/K1+JWgQfSF2BRc+X3P46g==} - - mjml-head-title@4.18.0: - resolution: {integrity: sha512-0Hm8o50rPMUQLSCOOa4D4pz9NajmCDccLvBYE4fwKdeUXjSJ6bwAYeMpveel8oNZMDUVJ4Hx+PskisEGHMHM2w==} - - mjml-head@4.18.0: - resolution: {integrity: sha512-DS0adpIAsVMDIk2DOsHzjg+RNjQU0fF8jiVP9BmdRHVGrLPmpL9wIHZk2KvsKvZe7VaXXBijFt3DZ5/CQ/+D7Q==} - - mjml-hero@4.18.0: - resolution: {integrity: sha512-rujm0ROM4QGWw77vnl3NaVaCKXrT4xTSHeAnkHKiY5AuRf6HPTgEtutq5pdel/y6Q9GrmxvN3HRESum7tpJCJw==} - - mjml-image@4.18.0: - resolution: {integrity: sha512-e09NkoYwvzMcTv7V6H5doWD6Te2E1y2EvOLQJoXKVdQpDwyBWGdfnZke0scJGdA58HLAB+0mLYogpLwmfLaP5Q==} - - mjml-migrate@4.18.0: - resolution: {integrity: sha512-qfNCgW9zhJIsbPyXFA5RT/WY4mlje3N0WhHHOsHc0nY89Q01DenyslUy9nLLGXwi4K5FHS58oCjwWbMhwDcj1w==} - hasBin: true - - mjml-navbar@4.18.0: - resolution: {integrity: sha512-uho/MS2tfNAe+V9u2X7NoCco34MDbdp30ETA8009Qo1VCP/D8lZ+s69WGRPu6hvN/Y2pzBgZly++CMg3qFZqBQ==} - - mjml-parser-xml@4.18.0: - resolution: {integrity: sha512-sHSsZg4afY1heThuJzxa1Kvfh/QzB7/9P5fFUHeVnnxb07ZTXnhXWA6YbobdND5/l9+5yjN5/UgqDZm3tIT4Uw==} - - mjml-preset-core@4.18.0: - resolution: {integrity: sha512-x3l8vMVtsaqM/jauMeZIN7HFD2t5A28J4U0o4849yIlRxiWguLFV5l3BL8Byol+YLkoLuT9PjaZs9RYv+FGfeg==} - - mjml-raw@4.18.0: - resolution: {integrity: sha512-F/kViAwXm3ccPP52kw++/mHQbcYbYYxC8JH15TZxH8GLVZkX5CGKgcBrHhDK7WoIlfEIsVRZ6IZdlHjH8vgyxw==} - - mjml-section@4.18.0: - resolution: {integrity: sha512-bB8My9zvIEkTOxej+TrjEeaeRT0lsypGeRADtdrRZXeqUClkkuCnCXlsNKSLGT8ZRqjUqWRc5z8ubDOvGk2+Gg==} - - mjml-social@4.18.0: - resolution: {integrity: sha512-iAQc9g59L6L3VHDd55BxeIvk/zHkxflxmvuyYyOOvpmmKAvUBC//ULfpxiiM4yupofsThqFfrO+wc8d4kTRkbQ==} - - mjml-spacer@4.18.0: - resolution: {integrity: sha512-FK/0f5IBiONgaRpwNBs7G8EbLdAbmYqcIfHR8O8tP4LipAChLQKHO9vX3vrRMGLBZZNTESLObcFSVWmA40Mfpw==} - - mjml-table@4.18.0: - resolution: {integrity: sha512-vJysCPUL3CHcsQDAFpW+skzBtY0RYsmMBYswI4WX0B05GLKlOjXqpYOwcmAupWeGoBVL5r/t28ynu2PqnOlN3w==} - - mjml-text@4.18.0: - resolution: {integrity: sha512-hBLmF3JgveUKktKQFWHqHAr7qr92j1CxAvq7mtpDUgiWgyPFzqRX8mUsFYgZ7DmRxG4UE+Kzpt8/YFd9+E98lw==} - - mjml-validator@4.18.0: - resolution: {integrity: sha512-JmpWAsNTUlAxJOz2zHYfF8Vod8OzM3Qp5JXtrVw5tivZQzq88ZfqVGuqsas51z0pp1/ilfD4lC17YGfGwKGyhA==} - - mjml-wrapper@4.18.0: - resolution: {integrity: sha512-TZeOvLjIhXEK60rjWNiYhEYNlv5GKYahE+96ifcT5OGkWkRA0DsQDfp+6VI32OS5VxsfKq2h/UdERPlQijjpAQ==} - - mjml@4.18.0: - resolution: {integrity: sha512-rQM4aqFRrNvV1k733e8hJSopBjZvoSdBpRYzNTMAN+As0jqJsO5eN0wTT2IFtfe4PREzzu5b06RkPiUQdd0IIg==} - hasBin: true - mjolnir.js@3.0.0: resolution: {integrity: sha512-siX3YCG7N2HnmN1xMH3cK4JkUZJhbkhRFJL+G5N1vH0mh1t5088rJknIoqDFWDIU6NPGvRRgLnYW3ZHjSMEBLA==} @@ -46977,46 +46702,23 @@ packages: moment@2.30.1: resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} - monaco-editor@0.52.2: - resolution: {integrity: sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==} - monaco-editor@0.55.1: resolution: {integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==} - mongodb-connection-string-url@2.6.0: - resolution: {integrity: sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==} - mongodb-connection-string-url@3.0.2: resolution: {integrity: sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==} - mongodb-memory-server-core@9.1.1: - resolution: {integrity: sha512-5toYR4A7DfV5k+Qf6L9FG86baID2rPP/JYwp8TPrdm8ZzfTfyHTwQwa2BzVpSwmLoVW5gXN0znYmXiE68mImMg==} - engines: {node: '>=14.20.1'} + mongodb-connection-string-url@7.0.1: + resolution: {integrity: sha512-h0AZ9A7IDVwwHyMxmdMXKy+9oNlF0zFoahHiX3vQ8e3KFcSP3VmsmfvtRSuLPxmyv2vjIDxqty8smTgie/SNRQ==} + engines: {node: '>=20.19.0'} - mongodb-memory-server@9.1.1: - resolution: {integrity: sha512-ZOHOdb7//sBR2ea1lPHDPRaw8oO2MIfMdF+z82/KnzfNZ6yY6igR48cfG8u+QArKJQFsA392GMMHSevfPWsrRA==} - engines: {node: '>=14.20.1'} + mongodb-memory-server-core@11.0.1: + resolution: {integrity: sha512-IcIb2S9Xf7Lmz43Z1ZujMqNg7PU5Q7yn+4wOnu7l6pfeGPkEmlqzV1hIbroVx8s4vXhPB1oMGC1u8clW7aj3Xw==} + engines: {node: '>=20.19.0'} - mongodb@5.9.2: - resolution: {integrity: sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==} - engines: {node: '>=14.20.1'} - peerDependencies: - '@aws-sdk/credential-providers': ^3.188.0 - '@mongodb-js/zstd': ^1.0.0 - kerberos: ^1.0.0 || ^2.0.0 - mongodb-client-encryption: '>=2.3.0 <3' - snappy: ^7.2.2 - peerDependenciesMeta: - '@aws-sdk/credential-providers': - optional: true - '@mongodb-js/zstd': - optional: true - kerberos: - optional: true - mongodb-client-encryption: - optional: true - snappy: - optional: true + mongodb-memory-server@11.0.1: + resolution: {integrity: sha512-nUlKovSJZBh7q5hPsewFRam9H66D08Ne18nyknkNalfXMPtK1Og3kOcuqQhcX88x/pghSZPIJHrLbxNFW3OWiw==} + engines: {node: '>=20.19.0'} mongodb@6.20.0: resolution: {integrity: sha512-Tl6MEIU3K4Rq3TSHd+sZQqRBoGlFsOgNrH5ltAcFBV62Re3Fd+FcaVf8uSEQFOJ51SDowDVttBTONMfoYWrWlQ==} @@ -47045,6 +46747,33 @@ packages: socks: optional: true + mongodb@7.0.0: + resolution: {integrity: sha512-vG/A5cQrvGGvZm2mTnCSz1LUcbOPl83hfB6bxULKQ8oFZauyox/2xbZOoGNl+64m8VBrETkdGCDBdOsCr3F3jg==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@aws-sdk/credential-providers': ^3.806.0 + '@mongodb-js/zstd': ^7.0.0 + gcp-metadata: ^7.0.1 + kerberos: ^7.0.0 + mongodb-client-encryption: '>=7.0.0 <7.1.0' + snappy: ^7.3.2 + socks: ^2.8.6 + peerDependenciesMeta: + '@aws-sdk/credential-providers': + optional: true + '@mongodb-js/zstd': + optional: true + gcp-metadata: + optional: true + kerberos: + optional: true + mongodb-client-encryption: + optional: true + snappy: + optional: true + socks: + optional: true + mongoose@8.20.4: resolution: {integrity: sha512-o4ABeT3IEk1Z4dGt3XjHJ0x9OjyWvakC1+btPpzWqCovqyidKGdbB05/g87cdh7AuWXFQKHOxt+L/OZOBps4hw==} engines: {node: '>=16.20.1'} @@ -47080,12 +46809,6 @@ packages: resolution: {integrity: sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==} engines: {node: '>=14.0.0'} - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -47209,6 +46932,11 @@ packages: nano-time@1.0.0: resolution: {integrity: sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@5.1.6: resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} engines: {node: ^18 || >=20} @@ -47289,18 +47017,27 @@ packages: neo4j-driver-bolt-connection@5.28.2: resolution: {integrity: sha512-dEX06iNPEo9iyCb0NssxJeA3REN+H+U/Y0MdAjJBEoil4tGz5PxBNZL6/+noQnu2pBJT5wICepakXCrN3etboA==} + neo4j-driver-bolt-connection@5.28.3: + resolution: {integrity: sha512-wqHBYcU0FVRDmdsoZ+Fk0S/InYmu9/4BT6fPYh45Jimg/J7vQBUcdkiHGU7nop7HRb1ZgJmL305mJb6g5Bv35Q==} + neo4j-driver-bolt-connection@6.0.1: resolution: {integrity: sha512-1KyG73TO+CwnYJisdHD0sjUw9yR+P5q3JFcmVPzsHT4/whzCjuXSMpmY4jZcHH2PdY2cBUq4l/6WcDiPMxW2UA==} neo4j-driver-core@5.28.2: resolution: {integrity: sha512-fBMk4Ox379oOz4FcfdS6ZOxsTEypjkcAelNm9LcWQZ981xCdOnGMzlWL+qXECvL0qUwRfmZxoqbDlJzuzFrdvw==} + neo4j-driver-core@5.28.3: + resolution: {integrity: sha512-Jk+hAmjFmO5YzVH/U7FyKXigot9zmIfLz6SZQy0xfr4zfTE/S8fOYFOGqKQTHBE86HHOWH2RbTslbxIb+XtU2g==} + neo4j-driver-core@6.0.1: resolution: {integrity: sha512-5I2KxICAvcHxnWdJyDqwu8PBAQvWVTlQH2ve3VQmtVdJScPqWhpXN1PiX5IIl+cRF3pFpz9GQF53B5n6s0QQUQ==} neo4j-driver@5.28.2: resolution: {integrity: sha512-nix4Canllf7Tl4FZL9sskhkKYoCp40fg7VsknSRTRgbm1JaE2F1Ej/c2nqlM06nqh3WrkI0ww3taVB+lem7w7w==} + neo4j-driver@5.28.3: + resolution: {integrity: sha512-k7c0wEh3HoONv1v5AyLp9/BDAbYHJhz2TZvzWstSEU3g3suQcXmKEaYBfrK2UMzxcy3bCT0DrnfRbzsOW5G/Ag==} + neo4j-driver@6.0.1: resolution: {integrity: sha512-8DDF2MwEJNz7y7cp97x4u8fmVIP4CWS8qNBxdwxTG0fWtsS+2NdeC+7uXwmmuFOpHvkfXqv63uWY73bfDtOH8Q==} engines: {node: '>=18.0.0'} @@ -47332,8 +47069,8 @@ packages: '@opentelemetry/api': ^1.1.0 '@playwright/test': ^1.51.1 babel-plugin-react-compiler: '*' - react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': @@ -47364,6 +47101,10 @@ packages: ngraph.random@1.2.0: resolution: {integrity: sha512-4EUeAGbB2HWX9njd6bP6tciN6ByJfoaAvmVL9QTaZSeXrW46eNGA9GajiXiPBbvFqxUWFkEbyo6x5qsACUuVfA==} + nimma@0.2.3: + resolution: {integrity: sha512-1ZOI8J+1PKKGceo/5CT5GfQOG6H8I2BencSK06YarZ2wXwH37BSSUWldqJmMJYA5JfqDqffxDXynt6f11AyKcA==} + engines: {node: ^12.20 || >=14.13} + nkeys.js@1.1.0: resolution: {integrity: sha512-tB/a0shZL5UZWSwsoeyqfTszONTt4k2YS0tuQioMOD180+MbombYVgzDUYHlx+gejYK6rgf08n/2Df99WY0Sxg==} engines: {node: '>=10.0.0'} @@ -47375,6 +47116,10 @@ packages: resolution: {integrity: sha512-W8NVHjO/LCTNA64yxAPHV/K47LpGYcVzgKd3Q0n6owhwvD0Dgoterc25R4rnZbckJEb6Loxz1f5QMuJpJnbSyQ==} engines: {node: '>= 10.13'} + nock@14.0.10: + resolution: {integrity: sha512-Q7HjkpyPeLa0ZVZC5qpxBt5EyLczFJ91MEewQiIi9taWuA0KB/MDJlUWtON+7dGouVdADTQsf9RA7TZk6D8VMw==} + engines: {node: '>=18.20.0 <20 || >=20.12.1'} + node-abi@2.30.1: resolution: {integrity: sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==} @@ -47397,9 +47142,6 @@ packages: node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-addon-api@8.5.0: resolution: {integrity: sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==} engines: {node: ^18 || ^20 || >= 21} @@ -47432,6 +47174,10 @@ packages: resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} engines: {node: '>=18'} + node-fetch-h2@2.3.0: + resolution: {integrity: sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==} + engines: {node: 4.x || >=6.0.0} + node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -47448,11 +47194,6 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-gyp@9.4.1: - resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} - engines: {node: ^12.13 || ^14.13 || >=16} - hasBin: true - node-html-parser@6.1.13: resolution: {integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==} @@ -47478,6 +47219,9 @@ packages: peerDependencies: webpack: '>=5' + node-readfiles@0.2.0: + resolution: {integrity: sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==} + node-releases@2.0.27: resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} @@ -47511,16 +47255,6 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} hasBin: true - nopt@7.2.1: - resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - nopt@8.1.0: - resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true - normalize-package-data@6.0.2: resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} engines: {node: ^16.14.0 || >=18.0.0} @@ -47548,6 +47282,26 @@ packages: notepack.io@3.0.1: resolution: {integrity: sha512-TKC/8zH5pXIAMVQio2TvVDTtPRX+DJPHDqjRbxogtFiByHyzKmy96RA0JtCQJ+WouyyL4A10xomQzgbUT+1jCg==} + npm-install-checks@8.0.0: + resolution: {integrity: sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-normalize-package-bin@5.0.0: + resolution: {integrity: sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-package-arg@13.0.2: + resolution: {integrity: sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-pick-manifest@11.0.3: + resolution: {integrity: sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-registry-fetch@19.1.1: + resolution: {integrity: sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==} + engines: {node: ^20.17.0 || >=22.9.0} + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -47642,11 +47396,6 @@ packages: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} deprecated: This package is no longer supported. - npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -47674,6 +47423,22 @@ packages: nwsapi@2.2.23: resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} + oas-kit-common@1.0.8: + resolution: {integrity: sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==} + + oas-linter@3.2.2: + resolution: {integrity: sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==} + + oas-resolver@2.5.6: + resolution: {integrity: sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==} + hasBin: true + + oas-schema-walker@1.1.5: + resolution: {integrity: sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==} + + oas-validator@5.0.8: + resolution: {integrity: sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==} + oauth-sign@0.9.0: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} @@ -47830,7 +47595,7 @@ packages: resolution: {integrity: sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==} hasBin: true peerDependencies: - ws: '>=8.17.1' + ws: '>=8.18.4' zod: ^3.23.8 peerDependenciesMeta: ws: @@ -47842,7 +47607,7 @@ packages: resolution: {integrity: sha512-F1Lvs5BoVvmZtzkUEVyh8mDQPPFolq4F+xdsx/DO8Hee8YF3IGAlZqUIsF+DVGhqf4aU0a3bTghsxB6OIsRy1g==} hasBin: true peerDependencies: - ws: '>=8.17.1' + ws: '>=8.18.4' zod: ^3.25 || ^4.0 peerDependenciesMeta: ws: @@ -47901,6 +47666,11 @@ packages: resolution: {integrity: sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A==} engines: {node: '>=20'} + orval@7.20.0: + resolution: {integrity: sha512-mcq0kdn8yPvRdUnzAm1T04naZOM3njbLDLNfnhP9KTk6gOgxJYHha2C3TdddOIVFwpaR4burCHlx5Jq63DtSbA==} + engines: {node: '>=22.18.0'} + hasBin: true + os-browserify@0.3.0: resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} @@ -48094,6 +47864,9 @@ packages: parse-cache-control@1.0.1: resolution: {integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==} + parse-diff@0.11.1: + resolution: {integrity: sha512-Oq4j8LAOPOcssanQkIjxosjATBIEJhCxMCxPhMu+Ci4wdNmAEdx0O+a7gzbR2PyKXgKPvRLIN5g224+dJAsKHA==} + parse-duration@2.1.5: resolution: {integrity: sha512-/IX1KRw6zHDOOJrgIz++gvFASbFl7nc8GEXaLdD7d1t1x/GnrK6hh5Fgk8G3RLpkIEi4tsGj9pupGLWNg0EiJA==} @@ -48147,9 +47920,6 @@ packages: parsedbf@2.0.0: resolution: {integrity: sha512-WNjKn/cwgGBkXqQLif+2VMEahcRHkBRU0/RfBWZ7Vj7snRNNW63yW1mVuuHRDyXTRxuGCzAHHBcr/Fn+U/bXjQ==} - parseley@0.12.1: - resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} - parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -48254,9 +48024,6 @@ packages: resolution: {integrity: sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw==} engines: {node: '>=12', npm: '>=6'} - peberminta@0.9.0: - resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} - peek-readable@5.4.2: resolution: {integrity: sha512-peBp3qZyuS6cNIJ2akRNG1uo1WJ1d0wTxg/fxMdZ0BqCVhx242bSFHM9eNqflfJVS9SsgkzgT/1UgnsurBOTMg==} engines: {node: '>=14.16'} @@ -48271,12 +48038,24 @@ packages: resolution: {integrity: sha512-I52Gkpda6lLNZNDZVKN5sWYO2YKndI3bBwOGAHY7xC+UBYMHI3m2tWSmDGjuq/odf6zpGoFSKVUUukTEaBZocA==} engines: {node: '>=22.12.0'} + pg-cloudflare@1.2.7: + resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==} + pg-cloudflare@1.3.0: resolution: {integrity: sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==} + pg-connection-string@2.10.0: + resolution: {integrity: sha512-ur/eoPKzDx2IjPaYyXS6Y8NSblxM7X64deV2ObV57vhjsWiwLvUD6meukAzogiOsu60GO8m/3Cb6FdJsWNjwXg==} + + pg-connection-string@2.10.1: + resolution: {integrity: sha512-iNzslsoeSH2/gmDDKiyMqF64DATUCWj3YJ0wP14kqcsf2TUklwimd+66yYojKwZCA7h2yRNLGug71hCBA2a4sw==} + pg-connection-string@2.11.0: resolution: {integrity: sha512-kecgoJwhOpxYU21rZjULrmrBJ698U2RxXofKVzOn5UDj61BPj/qMb7diYUR1nLScCDbrztQFl1TaQZT0t1EtzQ==} + pg-connection-string@2.9.1: + resolution: {integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==} + pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} @@ -48316,11 +48095,19 @@ packages: typeorm: optional: true + pg-pool@3.10.1: + resolution: {integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==} + peerDependencies: + pg: '>=8.0' + pg-pool@3.11.0: resolution: {integrity: sha512-MJYfvHwtGp870aeusDh+hg9apvOe2zmpZJpyt+BMtzUWlVqbhFmMK6bOBXLBUPd7iRtIF9fZplDc7KrPN3PN7w==} peerDependencies: pg: '>=8.0' + pg-protocol@1.10.3: + resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==} + pg-protocol@1.11.0: resolution: {integrity: sha512-pfsxk2M9M3BuGgDOfuy37VNRRX3jmKgMjcvAcWqNDpZSf4cUmv8HSOl5ViRQFsfARFn0KuUQTgLxVMbNq5NW3g==} @@ -48337,6 +48124,24 @@ packages: pg-native: optional: true + pg@8.17.1: + resolution: {integrity: sha512-EIR+jXdYNSMOrpRp7g6WgQr7SaZNZfS7IzZIO0oTNEeibq956JxeD15t3Jk3zZH0KH8DmOIx38qJfQenoE8bXQ==} + engines: {node: '>= 16.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + + pg@8.17.2: + resolution: {integrity: sha512-vjbKdiBJRqzcYw1fNU5KuHyYvdJ1qpcQg1CeBrHFqV1pWgHeVR6j/+kX0E1AAXfyuLUGY1ICrN2ELKA/z2HWzw==} + engines: {node: '>= 16.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + pg@8.18.0: resolution: {integrity: sha512-xqrUDL1b9MbkydY/s+VZ6v+xiMUmOUk7SS9d/1kpyQxoJ6U9AO1oIJyUWVZojbfe5Cc/oluutcgFG4L9RDP1iQ==} engines: {node: '>= 16.0.0'} @@ -48405,9 +48210,18 @@ packages: pino-abstract-transport@3.0.0: resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} + pino-http@10.5.0: + resolution: {integrity: sha512-hD91XjgaKkSsdn8P7LaebrNzhGTdB086W3pyPihX0EzGPjq5uBJBXo4N5guqNaK6mUjg9aubMF7wDViYek9dRA==} + pino-http@11.0.0: resolution: {integrity: sha512-wqg5XIAGRRIWtTk8qPGxkbrfiwEWz1lgedVLvhLALudKXvg1/L2lTFgTGPJ4Z2e3qcRmxoFxDuSdMdMGNM6I1g==} + pino-http@8.6.1: + resolution: {integrity: sha512-J0hiJgUExtBXP2BjrK4VB305tHXS31sCmWJ9XJo2wPkLHa1NFPuW4V9wjG27PAc2fmBCigiNhQKpvrx+kntBPA==} + + pino-http@9.0.0: + resolution: {integrity: sha512-Q9QDNEz0vQmbJtMFjOVr2c9yL92vHudjmr3s3m6J1hbw3DBGFZJm3TIj9TWyynZ4GEsEA9SOtni4heRUr6lNOg==} + pino-pretty@10.3.1: resolution: {integrity: sha512-az8JbIYeN/1iLj2t0jR9DV48/LQ3RC6hZPpapKPkb84Q+yTidMCpgWxIT3N0flnBDilyBQ1luWNpOeJptjdp/g==} hasBin: true @@ -48423,6 +48237,9 @@ packages: pino-std-serializers@6.2.2: resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} + pino-std-serializers@7.0.0: + resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} + pino-std-serializers@7.1.0: resolution: {integrity: sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==} @@ -48434,6 +48251,10 @@ packages: resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} hasBin: true + pino@9.14.0: + resolution: {integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==} + hasBin: true + pino@9.9.0: resolution: {integrity: sha512-zxsRIQG9HzG+jEljmvmZupOMDUQ0Jpj0yAgE28jQvvrdYTlEaiGwelJpdndMl/MBuRr70heIj83QyqJUWaU8mQ==} hasBin: true @@ -48553,6 +48374,10 @@ packages: polylabel@1.1.0: resolution: {integrity: sha512-bxaGcA40sL3d6M4hH72Z4NdLqxpXRsCFk8AITYg6x1rn1Ei3izf00UMLklerBZTO49aPA3CYrIwVulx2Bce2pA==} + pony-cause@1.1.1: + resolution: {integrity: sha512-PxkIc/2ZpLiEzQXu5YRDOUgBlfGYBY8156HY5ZcRAwwonMk5W/MrJP2LLkG/hF7GEQzaHo2aS7ho6ZLCOvf+6g==} + engines: {node: '>=12.0.0'} + portfinder@1.0.38: resolution: {integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==} engines: {node: '>= 10.12'} @@ -48701,19 +48526,16 @@ packages: prebuild-install@5.3.0: resolution: {integrity: sha512-aaLVANlj4HgZweKttFNUVNRxDukytuIuxeK2boIMHjagNJCiVKWFsKF4tCE3ql3GbrD2tExPQ7/pwtEJcHNZeg==} engines: {node: '>=6'} - deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true prebuild-install@7.1.1: resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} engines: {node: '>=10'} - deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} - deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true prelude-ls@1.2.1: @@ -49268,31 +49090,31 @@ packages: react-colorful@5.6.1: resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react: 19.2.1 + react-dom: 19.2.1 react-composer@5.0.3: resolution: {integrity: sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA==} peerDependencies: - react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 react-cytoscapejs@2.0.0: resolution: {integrity: sha512-t3SSl1DQy7+JQjN+8QHi1anEJlM3i3aAeydHTsJwmjo/isyKK7Rs7oCvU6kZsB9NwZidzZQR21Vm2PcBLG/Tjg==} peerDependencies: cytoscape: ^3.2.19 - react: '>=15.0.0' + react: 19.2.1 react-d3-tree@3.6.6: resolution: {integrity: sha512-E9ByUdeqvlxLlF9BSL7KWQH3ikYHtHO+g1rAPcVgj6mu92tjRUCan2AWxoD4eTSzzAATf8BZtf+CXGSoSd6ioQ==} peerDependencies: - react: 16.x || 17.x || 18.x || 19.x - react-dom: 16.x || 17.x || 18.x || 19.x + react: 19.2.1 + react-dom: 19.2.1 react-day-picker@8.10.1: resolution: {integrity: sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==} peerDependencies: date-fns: ^2.28.0 || ^3.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 react-devtools-core@5.3.2: resolution: {integrity: sha512-crr9HkVrDiJ0A4zot89oS0Cgv0Oa4OG1Em4jit3P3ZxZSKPMYyMjfwMqgcJna9o625g8oN87rBm8SWWrSTBZxg==} @@ -49310,32 +49132,22 @@ packages: resolution: {integrity: sha512-+NRMYs2DyTP4/tqWz371Oo50JqmWltR1h2gcdgUMAWZJIAvrd0/SqlCfx7tpzpl/s36rzw6qH2MjoNrxtRNYhA==} engines: {node: ^20.9.0 || >=22} - react-dom@18.2.0: - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 - - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - react-dom@19.2.1: resolution: {integrity: sha512-ibrK8llX2a4eOskq1mXKu/TGZj9qzomO+sNfO98M6d9zIPOEhlBkMkBUBLd1vgS0gQsLDBzA+8jJBVXDnfHmJg==} peerDependencies: - react: ^19.2.1 + react: 19.2.1 react-draggable@4.5.0: resolution: {integrity: sha512-VC+HBLEZ0XJxnOxVAZsdRi8rD04Iz3SiiKOoYzamjylUcju/hP9np/aZdLHf/7WOD268WMoNJMvYfB5yAK45cw==} peerDependencies: - react: '>= 16.3.0' - react-dom: '>= 16.3.0' + react: 19.2.1 + react-dom: 19.2.1 react-dropzone@12.1.0: resolution: {integrity: sha512-iBYHA1rbopIvtzokEX4QubO6qk5IF/x3BtKGu74rF2JkQDXnwC4uO/lHKpaw4PJIV6iIAYOlwLv2FpiGyqHNog==} engines: {node: '>= 10.13'} peerDependencies: - react: '>= 16.8' + react: 19.2.1 react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} @@ -49344,50 +49156,50 @@ packages: resolution: {integrity: sha512-Xv5IIk+hsZmB3F2ibja/t6j/b0/1T9dtFOQacTUoLpgzRHrO6wPu1GtQ2LfRqI/imgtaapnXUgQaE8g8enPo5w==} engines: {node: '>=12'} peerDependencies: - react: '*' + react: 19.2.1 react-freeze@1.0.4: resolution: {integrity: sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA==} engines: {node: '>=10'} peerDependencies: - react: '>=17.0.0' + react: 19.2.1 react-globe.gl@2.37.0: resolution: {integrity: sha512-nN1FDOJBhFvWfKrOY0SnkDuA8wk9FSTBN0HFfAdTqqcFM5R+OXBIxK0BM6t8n3oNVYpEJVxEzjYFwLyk4BC7Cw==} engines: {node: '>=12'} peerDependencies: - react: '*' + react: 19.2.1 react-grid-layout@1.5.3: resolution: {integrity: sha512-KaG6IbjD6fYhagUtIvOzhftXG+ViKZjCjADe86X1KHl7C/dsBN2z0mi14nbvZKTkp0RKiil9RPcJBgq3LnoA8g==} peerDependencies: - react: '>= 16.3.0' - react-dom: '>= 16.3.0' + react: 19.2.1 + react-dom: 19.2.1 react-hook-form@7.68.0: resolution: {integrity: sha512-oNN3fjrZ/Xo40SWlHf1yCjlMK417JxoSJVUXQjGdvdRCU07NTFei1i1f8ApUAts+IVh14e4EdakeLEA+BEAs/Q==} engines: {node: '>=18.0.0'} peerDependencies: - react: ^16.8.0 || ^17 || ^18 || ^19 + react: 19.2.1 react-hot-toast@2.6.0: resolution: {integrity: sha512-bH+2EBMZ4sdyou/DPrfgIouFpcRLCJ+HoCA32UoAYHn6T3Ur5yfcDCeSr5mwldl6pFOsiocmrXMuoCJ1vV8bWg==} engines: {node: '>=10'} peerDependencies: - react: '>=16' - react-dom: '>=16' + react: 19.2.1 + react-dom: 19.2.1 react-hotkeys-hook@5.2.1: resolution: {integrity: sha512-xbKh6zJxd/vJHT4Bw4+0pBD662Fk20V+VFhLqciCg+manTVO4qlqRqiwFOYelfHN9dBvWj9vxaPkSS26ZSIJGg==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react: 19.2.1 + react-dom: 19.2.1 react-i18next@15.7.4: resolution: {integrity: sha512-nyU8iKNrI5uDJch0z9+Y5XEr34b0wkyYj3Rp+tfbahxtlswxSCjcUL9H0nqXo9IR3/t5Y5PKIA3fx3MfUyR9Xw==} peerDependencies: i18next: '>= 23.4.0' - react: '>= 16.8.0' + react: 19.2.1 react-dom: '*' react-native: '*' typescript: ^5 @@ -49402,8 +49214,8 @@ packages: react-intersection-observer@10.0.0: resolution: {integrity: sha512-JJRgcnFQoVXmbE5+GXr1OS1NDD1gHk0HyfpLcRf0575IbJz+io8yzs4mWVlfaqOQq1FiVjLvuYAdEEcrrCfveg==} peerDependencies: - react: ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: react-dom: optional: true @@ -49424,28 +49236,28 @@ packages: resolution: {integrity: sha512-kifAF4ZPD77qZKc4CKLmozq6GY1sBzPEJTIJb0wWFK6HsePJatK3jXplZn2eeAt3x67CDozgi7/rO8fNQ/AL7A==} engines: {node: '>=12'} peerDependencies: - react: '>=16.13.1' + react: 19.2.1 react-konva@19.2.1: resolution: {integrity: sha512-sqZWCzQGpdMrU5aeunR0oxUY8UeCPbU8gnAYxMtAn6BT4coeSpiATKOctsoxRu6F56TAcF+s0c6Lul9ansNqQA==} peerDependencies: konva: ^8.0.1 || ^7.2.5 || ^9.0.0 || ^10.0.0 - react: ^19.2.0 - react-dom: ^19.2.0 + react: 19.2.1 + react-dom: 19.2.1 react-leaflet@4.2.1: resolution: {integrity: sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==} peerDependencies: leaflet: ^1.9.0 - react: ^18.0.0 - react-dom: ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 react-leaflet@5.0.0: resolution: {integrity: sha512-CWbTpr5vcHw5bt9i4zSlPEVQdTVcML390TjeDG0cK59z1ylexpqC6M1PJFjV8jD7CF+ACBFsLIDs6DRMoLEofw==} peerDependencies: leaflet: ^1.9.0 - react: ^19.0.0 - react-dom: ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 react-lifecycles-compat@3.0.4: resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} @@ -49455,8 +49267,8 @@ packages: peerDependencies: mapbox-gl: '>=1.13.0' maplibre-gl: '>=1.13.0 <5.0.0' - react: '>=16.3.0' - react-dom: '>=16.3.0' + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: mapbox-gl: optional: true @@ -49468,33 +49280,26 @@ packages: peerDependencies: mapbox-gl: '>=1.13.0' maplibre-gl: '>=1.13.0' - react: '>=16.3.0' - react-dom: '>=16.3.0' + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: mapbox-gl: optional: true maplibre-gl: optional: true - react-monaco-editor@0.56.2: - resolution: {integrity: sha512-Tp5U3QF9h92Cuf0eIhGd8Jyef8tPMlEJC2Dk1GeuR/hj6WoFn8AgjVX/2dv+3l5DvpMUpAECcFarc3eFKTBZ5w==} - peerDependencies: - '@types/react': 18.3.11 - monaco-editor: ^0.52.0 - react: '>=16 <= 18' - react-monaco-editor@0.59.0: resolution: {integrity: sha512-SggqfZCdUauNk7GI0388bk5n25zYsQ1ai1i+VhxAgwbCH+MTGl7L1fBNTJ6V+oXeUApf+bpzikprHJEZm9J/zA==} peerDependencies: monaco-editor: ^0.52.0 - react: '>=16.8.0 <20.0.0' - react-dom: '>=16.8.0 <20.0.0' + react: 19.2.1 + react-dom: 19.2.1 react-native-audio-recorder-player@3.6.14: resolution: {integrity: sha512-F6SvHbuLvsbhBytR4+vaGIL6LFqC1cnB+SX3v191aHNvGDt63BX56w/Y19nIzxaLnG0b0vbxx/UZ1nzIvDyqWA==} deprecated: This package has been deprecated. Please use react-native-nitro-sound instead. peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-background-fetch@4.2.8: @@ -49514,14 +49319,14 @@ packages: react-native-clusterer@1.3.0: resolution: {integrity: sha512-MW1DbjeLRJVhkurF4g8fXKfGYF/bdGLcdMGi9aU2wDI0Mu6l2A5aQzAx3VkVcRx8eNnlGHsI46S8gFb1sp284g==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-css-interop@0.2.1: resolution: {integrity: sha512-B88f5rIymJXmy1sNC/MhTkb3xxBej1KkuAt7TiT9iM7oXz3RM8Bn+7GUrfR02TvSgKm4cg2XiSuLEKYfKwNsjA==} engines: {node: '>=18'} peerDependencies: - react: '>=18' + react: 19.2.1 react-native: '*' react-native-reanimated: '>=3.6.2' react-native-safe-area-context: '*' @@ -49542,7 +49347,7 @@ packages: resolution: {integrity: sha512-Vcofv9wfB0j67zawFjfq9WQPMMzXxOZL9kBmvWDpjVuEcVK73ndRmlXHlkeFl5ZHVsv4Zb6oZYhqm9u5omJOPA==} deprecated: the package was renamed, follow migration instructions at https://shorturl.at/QYT4t peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-windows: '*' peerDependenciesMeta: @@ -49557,7 +49362,7 @@ packages: react-native-drawer-layout@4.2.1: resolution: {integrity: sha512-liwRJ7ynRU/ogRlUdiK1Yoi1VzUSq2Vu/RU+UgqlMB3XduslZ1DZg/mTX0f1uCEV2dJ4ec+1fRa3OlIierfyZg==} peerDependencies: - react: '>= 18.2.0' + react: 19.2.1 react-native: '*' react-native-gesture-handler: '>= 2.0.0' react-native-reanimated: '>= 2.0.0' @@ -49565,7 +49370,7 @@ packages: react-native-fast-image@8.6.3: resolution: {integrity: sha512-Sdw4ESidXCXOmQ9EcYguNY2swyoWmx53kym2zRsvi+VeFCHEdkO+WG1DK+6W81juot40bbfLNhkc63QnWtesNg==} peerDependencies: - react: ^17 || ^18 + react: 19.2.1 react-native: '>=0.60.0' react-native-fetch-api@3.0.0: @@ -49586,19 +49391,19 @@ packages: react-native-gesture-handler@2.30.0: resolution: {integrity: sha512-5YsnKHGa0X9C8lb5oCnKm0fLUPM6CRduvUUw2Bav4RIj/C3HcFh4RIUnF8wgG6JQWCL1//gRx4v+LVWgcIQdGA==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-image-picker@7.2.3: resolution: {integrity: sha512-zKIZUlQNU3EtqizsXSH92zPeve4vpUrsqHu2kkpCxWE9TZhJFZBb+irDsBOY8J21k0+Edgt06TMQGJ+iPUIXyA==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-is-edge-to-edge@1.2.1: resolution: {integrity: sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-keychain@8.2.0: @@ -49612,7 +49417,7 @@ packages: resolution: {integrity: sha512-kWibDz6wLLQ0685gOEFz5jdzm4miD7PMeVdtZV7ilgftDcusC2iy7SueBJpHF0LKCoOSa1BEUiKqpx1dBMSNpA==} engines: {node: '>= 20.19.4'} peerDependencies: - react: '>= 18.3.1' + react: 19.2.1 react-native: '>= 0.76.0' react-native-web: '>= 0.11' peerDependenciesMeta: @@ -49622,19 +49427,19 @@ packages: react-native-mmkv@2.12.2: resolution: {integrity: sha512-6058Aq0p57chPrUutLGe9fYoiDVDNMU2PKV+lLFUJ3GhoHvUrLdsS1PDSCLr00yqzL4WJQ7TTzH+V8cpyrNcfg==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '>=0.71.0' react-native-mmkv@3.3.3: resolution: {integrity: sha512-GMsfOmNzx0p5+CtrCFRVtpOOMYNJXuksBVARSQrCFaZwjUyHJdQzcN900GGaFFNTxw2fs8s5Xje//RDKj9+PZA==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-paper@5.14.5: resolution: {integrity: sha512-eaIH5bUQjJ/mYm4AkI6caaiyc7BcHDwX6CqNDi6RIxfxfWxROsHpll1oBuwn/cFvknvA8uEAkqLk/vzVihI3AQ==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-safe-area-context: '*' @@ -49646,7 +49451,7 @@ packages: react-native-permissions@2.2.2: resolution: {integrity: sha512-ihf4shQDSX5Oo9ChQXb9kr13mmyyNem5MaEvOpr3dCjhBOBWyEMztXm9/uPK1Qg5PsNpaYLa1KpcPZDCw87LXg==} peerDependencies: - react: '>=16.8.6' + react: 19.2.1 react-native: '>=0.60.0' react-native-push-notification@8.1.1: @@ -49663,20 +49468,20 @@ packages: react-native-reanimated@4.2.1: resolution: {integrity: sha512-/NcHnZMyOvsD/wYXug/YqSKw90P9edN0kEPL5lP4PFf1aQ4F1V7MKe/E0tvfkXKIajy3Qocp5EiEnlcrK/+BZg==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-worklets: '>=0.7.0' react-native-safe-area-context@5.6.2: resolution: {integrity: sha512-4XGqMNj5qjUTYywJqpdWZ9IG8jgkS3h06sfVjfw5yZQZfWnRFXczi0GnYyFyCc2EBps/qFmoCH8fez//WumdVg==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-screens@4.19.0: resolution: {integrity: sha512-qSDAO3AL5bti0Ri7KZRSVmWlhDr8MV86N5GruiKVQfEL7Zx2nUi3Dl62lqHUAD/LnDvOPuDDsMHCfIpYSv3hPQ==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-share@12.2.1: @@ -49691,20 +49496,20 @@ packages: react-native-svg-charts@5.4.0: resolution: {integrity: sha512-5TaIGSihJaHCGFj32Tc07hZrqqTpvdyAx89PIrW2nLf2tijd61+3UE3jtsiHOvfeAyDgSTWjv6s9qG9d2di7Pw==} peerDependencies: - react: '>=16.0.0-alpha.12' + react: 19.2.1 react-native: '>=0.46.0' react-native-svg: ^6.2.1||^7.0.3 react-native-svg@15.15.1: resolution: {integrity: sha512-ZUD1xwc3Hwo4cOmOLumjJVoc7lEf9oQFlHnLmgccLC19fNm6LVEdtB+Cnip6gEi0PG3wfvVzskViEtrySQP8Fw==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-toast-message@2.3.3: resolution: {integrity: sha512-4IIUHwUPvKHu4gjD0Vj2aGQzqPATiblL1ey8tOqsxOWRPGGu52iIbL8M/mCz4uyqecvPdIcMY38AfwRuUADfQQ==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-vector-icons@10.3.0: @@ -49716,7 +49521,7 @@ packages: resolution: {integrity: sha512-g1/neOyjSqn1kaAa2FxI/qp5KzNvPcF0bnQw6NntfbxH6tm0+8WFZszlgb5OV+iYlB6lFUztCbDtyz5IpL47OA==} peerDependencies: '@shopify/react-native-skia': '*' - react: '*' + react: 19.2.1 react-native: '*' react-native-reanimated: '*' react-native-worklets-core: '*' @@ -49731,14 +49536,14 @@ packages: react-native-webview@13.16.0: resolution: {integrity: sha512-Nh13xKZWW35C0dbOskD7OX01nQQavOzHbCw9XoZmar4eXCo7AvrYJ0jlUfRVVIJzqINxHlpECYLdmAdFsl9xDA==} peerDependencies: - react: '*' + react: 19.2.1 react-native: '*' react-native-worklets@0.7.1: resolution: {integrity: sha512-KNsvR48ULg73QhTlmwPbdJLPsWcyBotrGPsrDRDswb5FYpQaJEThUKc2ncXE4UM5dn/ewLoQHjSjLaKUVPxPhA==} peerDependencies: '@babel/core': '*' - react: '*' + react: 19.2.1 react-native: '*' react-native@0.76.9: @@ -49747,7 +49552,7 @@ packages: hasBin: true peerDependencies: '@types/react': 18.3.11 - react: ^18.2.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -49755,7 +49560,7 @@ packages: react-query@3.39.3: resolution: {integrity: sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 react-dom: '*' react-native: '*' peerDependenciesMeta: @@ -49768,25 +49573,25 @@ packages: resolution: {integrity: sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==} engines: {node: '>=0.10.0'} peerDependencies: - react: ^18.0.0 + react: 19.2.1 react-reconciler@0.29.2: resolution: {integrity: sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==} engines: {node: '>=0.10.0'} peerDependencies: - react: ^18.3.1 + react: 19.2.1 react-reconciler@0.33.0: resolution: {integrity: sha512-KetWRytFv1epdpJc3J4G75I4WrplZE5jOL7Yq0p34+OVOKF4Se7WrdIdVC45XsSSmUTlht2FM/fM1FZb1mfQeA==} engines: {node: '>=0.10.0'} peerDependencies: - react: ^19.2.0 + react: 19.2.1 react-redux@9.2.0: resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==} peerDependencies: '@types/react': 18.3.11 - react: ^18.0 || ^19 + react: 19.2.1 redux: ^5.0.0 peerDependenciesMeta: '@types/react': @@ -49815,7 +49620,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': 18.3.11 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -49825,7 +49630,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': 18.3.11 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -49835,7 +49640,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': 18.3.11 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -49843,21 +49648,21 @@ packages: react-resizable@3.0.5: resolution: {integrity: sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==} peerDependencies: - react: '>= 16.3' + react: 19.2.1 react-router-dom@7.13.0: resolution: {integrity: sha512-5CO/l5Yahi2SKC6rGZ+HDEjpjkGaG/ncEP7eWFTvFxbHP8yeeI0PxTDjimtpXYlR3b3i9/WIL4VJttPrESIf2g==} engines: {node: '>=20.0.0'} peerDependencies: - react: '>=18' - react-dom: '>=18' + react: 19.2.1 + react-dom: 19.2.1 react-router@7.13.0: resolution: {integrity: sha512-PZgus8ETambRT17BUm/LL8lX3Of+oiLaPuVTRH3l1eLvSPpKO3AvhAEb5N7ihAFZQrYDqkvvWfFh9p0z9VsjLw==} engines: {node: '>=20.0.0'} peerDependencies: - react: '>=18' - react-dom: '>=18' + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: react-dom: optional: true @@ -49865,26 +49670,26 @@ packages: react-smooth@4.0.4: resolution: {integrity: sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 react-speech-recognition@4.0.1: resolution: {integrity: sha512-0fIqzLtfY8vuYA6AmJVK7qiabZx0oFKOO+rbiBgFI3COWVGREy0A+gdU16hWXmFebeyrI8JsOLYsWk6WaHUXRw==} peerDependencies: - react: '>=16.8.0' + react: 19.2.1 react-spring@10.0.3: resolution: {integrity: sha512-opangIUqCLmkf7+AJZAlM4fLlvzdzWOG/yqAzylKjUoe97Tsjgouz1PsDLu6C9uckvcaMfb4wS/VXiU6dULz5A==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 react-style-singleton@2.2.3: resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} engines: {node: '>=10'} peerDependencies: '@types/react': 18.3.11 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -49893,36 +49698,36 @@ packages: resolution: {integrity: sha512-E40/hBiP5rCNwkeBN1vRP+xow1X0pndinO+z3h7HLsHyjztbyjfzNWNKuAsJj+7DLam9iT4AaaOZnueCU+Nplg==} engines: {node: '>= 16.20.2'} peerDependencies: - react: '>= 0.14.0' + react: 19.2.1 react-test-renderer@19.2.3: resolution: {integrity: sha512-TMR1LnSFiWZMJkCgNf5ATSvAheTT2NvKIwiVwdBPHxjBI7n/JbWd4gaZ16DVd9foAXdvDz+sB5yxZTwMjPRxpw==} peerDependencies: - react: ^19.2.3 + react: 19.2.1 react-transition-group@4.4.5: resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} peerDependencies: - react: '>=16.6.0' - react-dom: '>=16.6.0' + react: 19.2.1 + react-dom: 19.2.1 react-transition-state@2.3.1: resolution: {integrity: sha512-Z48el73x+7HUEM131dof9YpcQ5IlM4xB+pKWH/lX3FhxGfQaNTZa16zb7pWkC/y5btTZzXfCtglIJEGc57giOw==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react: 19.2.1 + react-dom: 19.2.1 react-use-gesture@9.1.3: resolution: {integrity: sha512-CdqA2SmS/fj3kkS2W8ZU8wjTbVBAIwDWaRprX7OKaj7HlGwBasGEFggmk5qNklknqk9zK/h8D355bEJFTpqEMg==} deprecated: This package is no longer maintained. Please use @use-gesture/react instead peerDependencies: - react: '>= 16.8.0' + react: 19.2.1 react-use-measure@2.1.7: resolution: {integrity: sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg==} peerDependencies: - react: '>=16.13' - react-dom: '>=16.13' + react: 19.2.1 + react-dom: 19.2.1 peerDependenciesMeta: react-dom: optional: true @@ -49930,38 +49735,30 @@ packages: react-virtualized-auto-sizer@1.0.26: resolution: {integrity: sha512-CblNyiNVw2o+hsa5/49NH2ogGxZ+t+3aweRvNSq7TVjDIlwk7ir4lencEg5HxHeSzwNarSkNkiu0qJSOXtxm5A==} peerDependencies: - react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 react-virtualized@9.22.6: resolution: {integrity: sha512-U5j7KuUQt3AaMatlMJ0UJddqSiX+Km0YJxSqbAzIiGw5EmNz0khMyqP2hzgu4+QUtm+QPIrxzUX4raJxmVJnHg==} peerDependencies: - react: ^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 react-window-infinite-loader@2.0.0: resolution: {integrity: sha512-dioOyvShGheEqqFHcPNKCixCOc2evwb2VEt9sitfJfTZ1hir8m6b8W0CNBvcUj+8Y8IeWu4yb88DI7k88aYTQQ==} peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 react-window@2.2.3: resolution: {integrity: sha512-gTRqQYC8ojbiXyd9duYFiSn2TJw0ROXCgYjenOvNKITWzK0m0eCvkUsEUM08xvydkMh7ncp+LE0uS3DeNGZxnQ==} peerDependencies: - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 react-zdog@1.2.2: resolution: {integrity: sha512-Ix7ALha91aOEwiHuxumCeYbARS5XNpc/w0v145oGkM6poF/CvhKJwzLhM5sEZbtrghMA+psAhOJkCTzJoseicA==} - react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - react@19.2.1: resolution: {integrity: sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw==} engines: {node: '>=0.10.0'} @@ -49969,8 +49766,8 @@ packages: reactflow@11.11.4: resolution: {integrity: sha512-70FOtJkUWH3BAOsN+LU9lCrKoKbtOPnz2uq0CV2PLdNSwxTXOhCbsZr50GmZ+Rtw3jx8Uv7/vBFtCGixLfd4Og==} peerDependencies: - react: '>=17' - react-dom: '>=17' + react: 19.2.1 + react-dom: 19.2.1 read-binary-file-arch@1.0.6: resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==} @@ -50041,22 +49838,22 @@ packages: resolution: {integrity: sha512-hlLJMhPQfv4/3NBSAyq3gzGg4h2v69RJh6KU7b3pXYNNAELs9kEoXOjbkxdXpALqKBoVmVptGfLpxdaVYqjmXQ==} engines: {node: '>=14'} peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + react: 19.2.1 + react-dom: 19.2.1 recharts@2.15.4: resolution: {integrity: sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==} engines: {node: '>=14'} peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 recharts@3.6.0: resolution: {integrity: sha512-L5bjxvQRAe26RlToBAziKUB7whaGKEwD3znoM6fz3DrTowCIC/FnJYnuq1GEzB8Zv2kdTfaxQfi5GoH0tBinyg==} engines: {node: '>=18'} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 + react-dom: 19.2.1 react-is: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 redent@3.0.0: @@ -50074,9 +49871,6 @@ packages: resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} engines: {node: '>=4'} - redis@4.7.1: - resolution: {integrity: sha512-S1bJDnqLftzHXHP8JsT5II/CtHWQrASX5K96REjWjlmWKrviSOLWmM7QnRLstAWsu1VBBV1ffV6DzCvxNP0UJQ==} - redis@5.10.0: resolution: {integrity: sha512-0/Y+7IEiTgVGPrLFKy8oAEArSyEJkU0zvgV5xyi9NzNQ+SLZmyFbUsWIbgPcd4UdUh00opXGKlXJwMmsis5Byw==} engines: {node: '>= 18'} @@ -50102,6 +49896,9 @@ packages: refractor@5.0.0: resolution: {integrity: sha512-QXOrHQF5jOpjjLfiNk5GFnWhRXvxjUVnlFxkeDmewR5sXkr3iM46Zo+CnRR8B+MDVqkULW4EcLVcRBNOPXHosw==} + reftools@1.1.9: + resolution: {integrity: sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==} + regenerate-unicode-properties@10.2.2: resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} engines: {node: '>=4'} @@ -50138,7 +49935,7 @@ packages: resolution: {integrity: sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw==} peerDependencies: '@types/react': 18.3.11 - react: '*' + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -50269,6 +50066,10 @@ packages: resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} engines: {node: '>=0.12'} + ret@0.4.3: + resolution: {integrity: sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==} + engines: {node: '>=10'} + ret@0.5.0: resolution: {integrity: sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==} engines: {node: '>=10'} @@ -50482,9 +50283,15 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} + safe-regex2@3.1.0: + resolution: {integrity: sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==} + safe-regex2@5.0.0: resolution: {integrity: sha512-YwJwe5a51WlK7KbOJREPdjNrpViQBI3p4T50lfwPuDhZnE3XGVTlGvi+aolc5+RvxDD6bnUmjVsU9n1eboLUYw==} + safe-stable-stringify@1.1.1: + resolution: {integrity: sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==} + safe-stable-stringify@2.5.0: resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} @@ -50522,6 +50329,9 @@ packages: sax@1.2.1: resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} + sax@1.4.3: + resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==} + sax@1.4.4: resolution: {integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==} engines: {node: '>=11.0.0'} @@ -50580,9 +50390,6 @@ packages: seedrandom@3.0.5: resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} - selderee@0.11.0: - resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} - selfsigned@2.4.1: resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} engines: {node: '>=10'} @@ -50742,6 +50549,24 @@ packages: shimmer@1.2.1: resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} + should-equal@2.0.0: + resolution: {integrity: sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==} + + should-format@3.0.3: + resolution: {integrity: sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==} + + should-type-adaptors@1.1.0: + resolution: {integrity: sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==} + + should-type@1.4.0: + resolution: {integrity: sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==} + + should-util@1.0.1: + resolution: {integrity: sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==} + + should@13.2.3: + resolution: {integrity: sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==} + shpjs@6.2.0: resolution: {integrity: sha512-8cR/RKYHQepmVyBMtzZQ+1bnSbWrtLXS6aoEJmpUlOSHtSUddterebVxYmIWq2g9kOEX9jm2kjHiikyPX7cNQA==} @@ -50781,9 +50606,17 @@ packages: signedsource@1.0.0: resolution: {integrity: sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==} + sigstore@4.1.0: + resolution: {integrity: sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==} + engines: {node: ^20.17.0 || >=22.9.0} + simple-concat@1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + simple-eval@1.0.1: + resolution: {integrity: sha512-LH7FpTAkeD+y5xQC4fzS+tFtaNlvt3Ib1zKzvhjv/Y+cioV4zIuw4IZr2yhRLu67CWL7FR9/6KXKnjRoZTvGGQ==} + engines: {node: '>=12'} + simple-get@2.8.2: resolution: {integrity: sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==} @@ -50858,9 +50691,6 @@ packages: resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} - slick@1.12.2: - resolution: {integrity: sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==} - smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -51206,6 +51036,10 @@ packages: resolution: {integrity: sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew==} engines: {node: '>=4.0.0'} + streamsearch@0.1.2: + resolution: {integrity: sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA==} + engines: {node: '>=0.8.0'} + streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} @@ -51367,9 +51201,8 @@ packages: strip-literal@3.1.0: resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} - stripe@15.12.0: - resolution: {integrity: sha512-slTbYS1WhRJXVB8YXU8fgHizkUrM9KJyrw4Dd8pLEwzKHYyQTIE46EePC2MVbSDZdE24o1GdNtzmJV4PrPpmJA==} - engines: {node: '>=12.*'} + strnum@1.1.2: + resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} strnum@2.1.2: resolution: {integrity: sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==} @@ -51408,7 +51241,7 @@ packages: peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + react: 19.2.1 peerDependenciesMeta: '@babel/core': optional: true @@ -51421,7 +51254,7 @@ packages: peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + react: 19.2.1 peerDependenciesMeta: '@babel/core': optional: true @@ -51438,7 +51271,7 @@ packages: resolution: {integrity: sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw==} deprecated: The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md peerDependencies: - graphql: 16.12.0 + graphql: '>=0.10.0' sucrase@3.35.1: resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} @@ -51488,10 +51321,6 @@ packages: resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} engines: {node: '>=18'} - supports-color@2.0.0: - resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} - engines: {node: '>=0.8.0'} - supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -51515,7 +51344,7 @@ packages: suspend-react@0.1.3: resolution: {integrity: sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==} peerDependencies: - react: '>=17.0' + react: 19.2.1 svg-arc-to-cubic-bezier@3.2.0: resolution: {integrity: sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==} @@ -51538,6 +51367,10 @@ packages: peerDependencies: express: '>=4.21.0' + swagger2openapi@7.0.8: + resolution: {integrity: sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==} + hasBin: true + swap-case@2.0.2: resolution: {integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==} @@ -51570,6 +51403,9 @@ packages: resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} engines: {node: ^14.18.0 || >=16.0.0} + tabbable@6.3.0: + resolution: {integrity: sha512-EIHvdY5bPLuWForiR/AN2Bxngzpuwn1is4asboytXtpTgsArc+WmSJKVLlhdh71u7jFcryDqB2A8lQvj78MkyQ==} + tabbable@6.4.0: resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} @@ -51624,7 +51460,6 @@ packages: tar@7.5.7: resolution: {integrity: sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==} engines: {node: '>=18'} - deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me tdigest@0.1.2: resolution: {integrity: sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==} @@ -51686,11 +51521,6 @@ packages: uglify-js: optional: true - terser@4.8.1: - resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==} - engines: {node: '>=6.0.0'} - hasBin: true - terser@5.44.1: resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} engines: {node: '>=10'} @@ -51726,9 +51556,6 @@ packages: text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - texture-compressor@1.0.2: resolution: {integrity: sha512-dStVgoaQ11mA5htJ+RzZ51ZxIZqNOgWKAIvtjLrW1AliQQLCmrDqNzQZ8Jh91YealQ95DXt4MEduLzJmbs6lig==} hasBin: true @@ -51919,9 +51746,16 @@ packages: title-case@3.0.3: resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} + tldts-core@6.1.86: + resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} + tldts-core@7.0.19: resolution: {integrity: sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==} + tldts@6.1.86: + resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} + hasBin: true + tldts@7.0.19: resolution: {integrity: sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==} hasBin: true @@ -51979,6 +51813,14 @@ packages: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + + tough-cookie@5.1.2: + resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} + engines: {node: '>=16'} + tough-cookie@6.0.0: resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} engines: {node: '>=16'} @@ -52046,6 +51888,12 @@ packages: peerDependencies: typescript: '>=4.2.0' + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + ts-api-utils@2.4.0: resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} engines: {node: '>=18.12'} @@ -52142,6 +51990,16 @@ packages: '@swc/wasm': optional: true + tsconfck@2.1.2: + resolution: {integrity: sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==} + engines: {node: ^14.13.1 || ^16 || >=18} + hasBin: true + peerDependencies: + typescript: ^4.3.5 || ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + tsconfig-paths-webpack-plugin@4.2.0: resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==} engines: {node: '>=10.13.0'} @@ -52174,6 +52032,13 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tslint@5.14.0: + resolution: {integrity: sha512-IUla/ieHVnB8Le7LdQFRGlVJid2T/gaJe5VkjzRVSRR6pA2ODYrnfR1hmxi+5+au9l50jBwpbBL34txgv4NnTQ==} + engines: {node: '>=4.8.0'} + hasBin: true + peerDependencies: + typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev' + tsscmp@1.0.6: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} @@ -52197,6 +52062,11 @@ packages: typescript: optional: true + tsutils@2.29.0: + resolution: {integrity: sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==} + peerDependencies: + typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev' + tsutils@3.21.0: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -52211,6 +52081,10 @@ packages: tty-browserify@0.0.1: resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==} + tuf-js@4.1.0: + resolution: {integrity: sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==} + engines: {node: ^20.17.0 || >=22.9.0} + tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -52528,6 +52402,18 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + typedoc-plugin-coverage@4.0.2: + resolution: {integrity: sha512-mfn0e7NCqB8x2PfvhXrtmd7KWlsNf1+B2N9y8gR/jexXBLrXl/0e+b2HdG5HaTXGi7i0t2pyQY2VRmq7gtdEHQ==} + engines: {node: '>= 18'} + peerDependencies: + typedoc: 0.28.x + + typedoc-plugin-markdown@4.9.0: + resolution: {integrity: sha512-9Uu4WR9L7ZBgAl60N/h+jqmPxxvnC9nQAlnnO/OujtG2ubjnKTVUFY1XDhcMY+pCqlX3N2HsQM2QTYZIU9tJuw==} + engines: {node: '>= 18'} + peerDependencies: + typedoc: 0.28.x + typedoc@0.27.9: resolution: {integrity: sha512-/z585740YHURLl9DN2jCWe6OW7zKYm6VoQ93H0sxZ1cwHQEQrUn5BJrEnkWhfzUdyO+BLGjnKUZ9iz9hKloFDw==} engines: {node: '>= 18'} @@ -52535,6 +52421,13 @@ packages: peerDependencies: typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x + typedoc@0.28.15: + resolution: {integrity: sha512-mw2/2vTL7MlT+BVo43lOsufkkd2CJO4zeOSuWQQsiXoV2VuEn7f6IZp2jsUDPmBMABpgR0R5jlcJ2OGEFYmkyg==} + engines: {node: '>= 18', pnpm: '>= 10'} + hasBin: true + peerDependencies: + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x + typescript-eslint@8.50.0: resolution: {integrity: sha512-Q1/6yNUmCpH94fbgMUMg2/BSAr/6U7GBk61kZTv1/asghQOWOjTlp9K8mixS5NcJmm2creY+UFfGeW/+OcA64A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -52554,11 +52447,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -52655,9 +52543,6 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - undici-types@7.18.2: - resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - undici@5.29.0: resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} engines: {node: '>=14.0'} @@ -52666,6 +52551,14 @@ packages: resolution: {integrity: sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==} engines: {node: '>=18.17'} + undici@7.16.0: + resolution: {integrity: sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==} + engines: {node: '>=20.18.1'} + + undici@7.19.0: + resolution: {integrity: sha512-Heho1hJD81YChi+uS2RkSjcVO+EQLmLSyUlHyp7Y/wFbxQaGb4WXVKD073JytrjXJVkSZVzoE2MCSOKugFGtOQ==} + engines: {node: '>=20.18.1'} + undici@7.19.2: resolution: {integrity: sha512-4VQSpGEGsWzk0VYxyB/wVX/Q7qf9t5znLRgs0dzszr9w9Fej/8RVNQ+S20vdXSAyra/bJ7ZQfGv6ZMj7UEbzSg==} engines: {node: '>=20.18.1'} @@ -52819,6 +52712,9 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + urijs@1.19.11: + resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==} + url-join@4.0.1: resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} @@ -52847,7 +52743,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': 18.3.11 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -52856,7 +52752,7 @@ packages: resolution: {integrity: sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==} peerDependencies: '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -52864,20 +52760,20 @@ packages: use-latest-callback@0.2.6: resolution: {integrity: sha512-FvRG9i1HSo0wagmX63Vrm8SnlUU3LMM3WyZkQ76RnslpBrX694AdG4A0zQBx2B3ZifFA0yv/BaEHGBnEax5rZg==} peerDependencies: - react: '>=16.8' + react: 19.2.1 use-resize-observer@9.1.0: resolution: {integrity: sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==} peerDependencies: - react: 16.8.0 - 18 - react-dom: 16.8.0 - 18 + react: 19.2.1 + react-dom: 19.2.1 use-sidecar@1.1.3: resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} engines: {node: '>=10'} peerDependencies: '@types/react': 18.3.11 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -52885,7 +52781,7 @@ packages: use-sync-external-store@1.6.0: resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: 19.2.1 utf8-byte-length@1.0.5: resolution: {integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==} @@ -52953,13 +52849,13 @@ packages: v8n@1.5.1: resolution: {integrity: sha512-LdabyT4OffkyXFCe9UT+uMkxNBs5rcTVuZClvxQr08D5TUgo1OFKkoT65qYRCsiKBl/usHjpXvP4hHMzzDRj3A==} - valid-data-url@3.0.1: - resolution: {integrity: sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==} - engines: {node: '>=10'} - validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-name@7.0.2: + resolution: {integrity: sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==} + engines: {node: ^20.17.0 || >=22.9.0} + validator@13.15.26: resolution: {integrity: sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==} engines: {node: '>= 0.10'} @@ -52994,145 +52890,145 @@ packages: resolution: {integrity: sha512-wVC8LKrZJLiSySNuJLRCB449qZTsPiRyzLlNoJwe21y+XA/a2HJbmJSeywmo8P153aX8viKe1H8ygDsTFXQhHw==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-axis@37.3.6: resolution: {integrity: sha512-Vi0dZvgmXmnCdoqc49WckeG5cMXnl7FTtqVhXu9JweA9cgCnkZabBd5mRvAjblb3Lo4j0HZCSPKHYWUPW70qZg==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-bar@37.3.6: resolution: {integrity: sha512-jdATFRWL1LUW/yEpKWx/aId2BiU2o1pPF9+Kh1TFISBduJoI4ZqvZD90H1QK4f/z50PikqiqiDECaKoKM1jfOQ==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-box-plot@37.3.6: resolution: {integrity: sha512-GOucnD63h14ScBuISC/nd1GBTEx6gIZfLE+0P0gyeH1poBKq0trTTvpQDvAMuGR8zICfEETG3ltmUMCwRrFyUg==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-brush-container@37.3.6: resolution: {integrity: sha512-LfZ2CgX1cYAqCtYxcSB68OfZS2v0T2VLXoEArd0lCXfRBY1Gya7GacCUcuo7GoK9XOXeslx7S/U95aVutt1VLg==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-brush-line@37.3.6: resolution: {integrity: sha512-zsZJfF1fUj4F7mUoIMV+h73qoTClPA4bKM1terlYrDBD8l/c/f0KBbEotu3E1X+n4QMmDRruswaB/YUdqK5QLA==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-candlestick@37.3.6: resolution: {integrity: sha512-h/mOmkCrsWrirn4dFnpLxJPXpxT+uHxuYxnXGrAyH+YUOrVj3iKaDJlEiVlz5vy30syE5j5hzTQCMsZ/hzHNdg==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-canvas@37.3.6: resolution: {integrity: sha512-1CD4S0uZ92sUGGSIEQferEfSqd/z9EXw9G6zkzPIoJeTKFshpfqCjUkNRx9Iu9Upxt3fUpId8Qwl1YfchmbrFg==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-chart@37.3.6: resolution: {integrity: sha512-IkPo/W4AJ7bPu902TGER09OseR9ODm+FQAKfOBw4JsdEhZZ7BiG9zgd/25+x0r5EsTLu81CYGQVkBa+ZazcOlA==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-core@37.3.6: resolution: {integrity: sha512-aFgO6KokxPbUCPznZP5UPhOdI22pMuwDXKDt6eoQOnkVim66Ia+K95TQar2nwVKGYV5j26aKVf/n9blwphGJRw==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-create-container@37.3.6: resolution: {integrity: sha512-Uf5bFQvqUsXCjqpvBW4LhrdrHkM6dBqxYgub6FCsBb86f84xZQ3vY7jFkg/JfvF0oGKMoWXYYrYLC1sk+fcWVA==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-cursor-container@37.3.6: resolution: {integrity: sha512-+Oiw57d5nE+iq8As8RvepknzmNtKq1Gsc50u1X3IRd4jXtX8zqZrgXGlVZ+BP/tkLsWnGYVjKulwKBf2oaEUuw==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-errorbar@37.3.6: resolution: {integrity: sha512-WGAv/qizOlfmwKv+Yfxr4q6pDgTfloNQwi3Z3M0h8povjMZt74tHYkvi/TASSRYr3zv5kjUqUJ28qAyGMWwryQ==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-group@37.3.6: resolution: {integrity: sha512-kgy/Azl5BxwlJAV0KDPGypv35TMrOD1J2ZxnJW2Wyyq+e8i0GGBIv5MoBzou64BRsDlS9V0CYRIjnkHgrBpB5w==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-histogram@37.3.6: resolution: {integrity: sha512-K4d43MpXHYnGCLEMzfRpJ+lCRRDKALPi/juxfMGVzBPzSMgjC8h9x6hKdxaejiTd/E04UdzNO7J24plL3Uz8rA==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-legend@37.3.6: resolution: {integrity: sha512-vRRrhj3/ENqKVLdaBMzEmR83N6BOjox1bthYT1eJjN2H5SIK35bxn30IkiV/Pz3y627EqZe4TAWaxc0jiJlCiA==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-line@37.3.6: resolution: {integrity: sha512-Ke817uf/qFbN9jU7Dba7CrcHXYO5wAZuKKnyeHJmLDeQeFST0773xejnIuC+dBgZipjFr4KIbSd+VcUafFNE1g==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-pie@37.3.6: resolution: {integrity: sha512-tvdgAZ/HQWlo3KDDe0XAVbizHuaNMbgkkiF7zfA7Ww+3bHSs+0P9dsDtK2xP365D8gBCOv8pWmuzvKRhzNbqeA==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-polar-axis@37.3.6: resolution: {integrity: sha512-RpFsCkzHezJq5P+C/wtVdjEHX25JIFsSgs6qYSnfr/hayaFbWgK5HhRFpriQm5hg61cx47WxAOLyHvzf0nasvw==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-scatter@37.3.6: resolution: {integrity: sha512-fp95zMTPXgW1cmTowzDXhn+KxePMVDrzU0lotsHQMdBV7eB+ioXdu9hORlx4VHmMYg2ihsGwRTF+VAZ7rGxphA==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-selection-container@37.3.6: resolution: {integrity: sha512-gd3qODDlBtLEJM7+2jCXk2YcLBUmIpYEEHswytMhwc6zihxXipGBUHRulhLj/I05mKay2gaOAg5ewiJHd4Awgw==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-shared-events@37.3.6: resolution: {integrity: sha512-ygrbOtzLUTbtKebacZKyQRekhSAROnAvMkVI/PKsAGsz0ClY9P7qDEJG7eTUUygjO6ax0tI6WNE6JogQzeD1gw==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-stack@37.3.6: resolution: {integrity: sha512-ldod04RdqGJGH5p5eWXCofdTkbhZqIp3iwW7NpxSbMDLs8zPQIVvDFVtuJgMwQiC5vnIpbhMmxVeFbr8m64ZKA==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-tooltip@37.3.6: resolution: {integrity: sha512-vqaJS9noauOqDDBBAV9Ln9duOY/i17h1DCfCPAqhwPFyvFbwKvAub9zPTeYWAm/14VvWX5O/0yekFCVbcC7hjg==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-vendor@36.9.2: resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} @@ -53144,25 +53040,25 @@ packages: resolution: {integrity: sha512-qAAG0rMuK7A4EoJ4cyUk5wNdOW+HuCXNKPOko+hYK6wWOYXJvFhiglYyA85a695YyAXECc6JyJS/crm4IOEFag==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-voronoi@37.3.6: resolution: {integrity: sha512-Q+1FWHp8IAbmDL9pGWS0y0N4Cb5qmD9OOgxoxCfIDsLlhGvd6LddhRoknWsN7WnreaK+XiwjSfQkdMTCZ4hdhQ==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory-zoom-container@37.3.6: resolution: {integrity: sha512-AGL+k20mI44OL5b0VgIxlmnNSefIoFmbbim5NraPmIxbtns9qQW/56ivIncJcYomBungIx99gUpsEpcQaMNHgQ==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 victory@37.3.6: resolution: {integrity: sha512-CZ1vjvra0R1U3T2dMI4EsjI8Ng+JmQ2ox/EweSzjkTnHfW/Vn5ylryadawDiYjDMcBvABjO3uODsIlSEm4d/Sw==} engines: {node: '>=18.0.0'} peerDependencies: - react: '>=16.6.0' + react: 19.2.1 vis-data@8.0.3: resolution: {integrity: sha512-jhnb6rJNqkKR1Qmlay0VuDXY9ZlvAnYN1udsrP4U+krgZEq7C0yNSKdZqmnCe13mdnf9AdVcdDGFOzy2mpPoqw==} @@ -53583,10 +53479,6 @@ packages: weald@1.1.1: resolution: {integrity: sha512-PaEQShzMCz8J/AD2N3dJMc1hTZWkJeLKS2NMeiVkV5KDHwgZe7qXLEzyodsT/SODxWDdXJJqocuwf3kHzcXhSQ==} - web-resource-inliner@6.0.1: - resolution: {integrity: sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==} - engines: {node: '>=10.0.0'} - web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -53735,6 +53627,10 @@ packages: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} + which-typed-array@1.1.19: + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + engines: {node: '>= 0.4'} + which-typed-array@1.1.20: resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} engines: {node: '>= 0.4'} @@ -53748,6 +53644,11 @@ packages: engines: {node: '>= 8'} hasBin: true + which@6.0.0: + resolution: {integrity: sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + whois@2.16.1: resolution: {integrity: sha512-gCxr+knAuXzsHJlHaIi8bCZoRU9anysyKbo0mgjAkkanNdOvUhBZShgG/ckcpKryDUVs2cH684MU+wOLjBYlAA==} hasBin: true @@ -54117,6 +54018,10 @@ packages: yauzl@2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + yauzl@3.2.0: + resolution: {integrity: sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==} + engines: {node: '>=12'} + yjs@13.6.28: resolution: {integrity: sha512-EgnDOXs8+hBVm6mq3/S89Kiwzh5JRbn7w2wXwbrMRyKy/8dOFsLvuIfC+x19ZdtaDc0tA9rQmdZzbqqNHG44wA==} engines: {node: '>=16.0.0', npm: '>=8.0.0'} @@ -54181,11 +54086,6 @@ packages: peerDependencies: zod: ^3.25 || ^4 - zod-to-json-schema@3.25.1: - resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} - peerDependencies: - zod: ^3.25 || ^4 - zod-validation-error@4.0.2: resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} engines: {node: '>=18.0.0'} @@ -54195,17 +54095,14 @@ packages: zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - zod@3.24.1: - resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} - zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} zod@4.2.1: resolution: {integrity: sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw==} - zone.js@0.11.8: - resolution: {integrity: sha512-82bctBg2hKcEJ21humWIkXRlLBBmrc3nN7DFh5LGGhcyycO2S7FN8NmdvlcKaGFDNVL4/9kFLmwmInTavdJERA==} + zod@4.3.6: + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} zone.js@0.16.0: resolution: {integrity: sha512-LqLPpIQANebrlxY6jKcYKdgN5DTXyyHAKnnWWjE5pPfEQ4n7j5zn7mOEEpwNZVKGqx3kKKmvplEmoBrvpgROTA==} @@ -54217,7 +54114,7 @@ packages: resolution: {integrity: sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==} engines: {node: '>=12.7.0'} peerDependencies: - react: '>=16.8' + react: 19.2.1 peerDependenciesMeta: react: optional: true @@ -54228,7 +54125,7 @@ packages: peerDependencies: '@types/react': 18.3.11 immer: '>=9.0.6' - react: '>=16.8' + react: 19.2.1 peerDependenciesMeta: '@types/react': optional: true @@ -54243,7 +54140,7 @@ packages: peerDependencies: '@types/react': 18.3.11 immer: '>=9.0.6' - react: '>=18.0.0' + react: 19.2.1 use-sync-external-store: '>=1.2.0' peerDependenciesMeta: '@types/react': @@ -54355,13 +54252,18 @@ snapshots: formdata-node: 4.4.1 node-fetch: 3.3.2 - '@apideck/better-ajv-errors@0.3.6(ajv@8.18.0)': + '@apideck/better-ajv-errors@0.3.6(ajv@8.17.1)': dependencies: - ajv: 8.18.0 + ajv: 8.17.1 json-schema: 0.4.0 jsonpointer: 5.0.1 leven: 3.1.0 + '@apidevtools/json-schema-ref-parser@14.0.1': + dependencies: + '@types/json-schema': 7.0.15 + js-yaml: 4.1.1 + '@apidevtools/json-schema-ref-parser@9.1.2': dependencies: '@jsdevtools/ono': 7.1.3 @@ -54383,11 +54285,21 @@ snapshots: openapi-types: 12.1.3 z-schema: 5.0.5 + '@apidevtools/swagger-parser@12.1.0(openapi-types@12.1.3)': + dependencies: + '@apidevtools/json-schema-ref-parser': 14.0.1 + '@apidevtools/openapi-schemas': 2.1.0 + '@apidevtools/swagger-methods': 3.0.2 + ajv: 8.17.1 + ajv-draft-04: 1.0.0(ajv@8.17.1) + call-me-maybe: 1.0.2 + openapi-types: 12.1.3 + '@apollo/cache-control-types@1.0.3(graphql@16.12.0)': dependencies: graphql: 16.12.0 - '@apollo/client@3.13.9(@types/react@18.3.11)(graphql-ws@5.16.2(graphql@16.12.0))(graphql@16.12.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(subscriptions-transport-ws@0.9.19(graphql@16.12.0))': + '@apollo/client@3.13.9(@types/react@18.3.11)(graphql-ws@5.16.2(graphql@16.12.0))(graphql@16.12.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(subscriptions-transport-ws@0.9.19(graphql@16.12.0))': dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.12.0) '@wry/caches': 1.0.1 @@ -54398,15 +54310,15 @@ snapshots: hoist-non-react-statics: 3.3.2 optimism: 0.18.1 prop-types: 15.8.1 - rehackt: 0.1.0(@types/react@18.3.11)(react@18.3.1) + rehackt: 0.1.0(@types/react@18.3.11)(react@19.2.1) symbol-observable: 4.0.0 ts-invariant: 0.10.3 tslib: 2.8.1 zen-observable-ts: 1.2.5 optionalDependencies: graphql-ws: 5.16.2(graphql@16.12.0) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) subscriptions-transport-ws: 0.9.19(graphql@16.12.0) transitivePeerDependencies: - '@types/react' @@ -54483,7 +54395,15 @@ snapshots: '@apollo/utils.logger': 2.0.1 graphql: 16.12.0 - '@apollo/server@4.11.3(graphql@16.12.0)': + '@apollo/server-gateway-interface@2.0.0(graphql@16.12.0)': + dependencies: + '@apollo/usage-reporting-protobuf': 4.1.1 + '@apollo/utils.fetcher': 3.1.0 + '@apollo/utils.keyvaluecache': 4.0.0 + '@apollo/utils.logger': 3.0.0 + graphql: 16.12.0 + + '@apollo/server@4.12.2(graphql@16.12.0)': dependencies: '@apollo/cache-control-types': 1.0.3(graphql@16.12.0) '@apollo/server-gateway-interface': 1.1.1(graphql@16.12.0) @@ -54496,11 +54416,11 @@ snapshots: '@apollo/utils.usagereporting': 2.1.0(graphql@16.12.0) '@apollo/utils.withrequired': 2.0.1 '@graphql-tools/schema': 9.0.19(graphql@16.12.0) - '@types/express': 4.17.25 + '@types/express': 4.17.21 '@types/express-serve-static-core': 4.19.6 '@types/node-fetch': 2.6.13 async-retry: 1.3.3 - cors: 2.8.6 + cors: 2.8.5 express: 5.2.1 graphql: 16.12.0 loglevel: 1.9.2 @@ -54513,6 +54433,32 @@ snapshots: transitivePeerDependencies: - supports-color + '@apollo/server@5.2.0(graphql@16.12.0)': + dependencies: + '@apollo/cache-control-types': 1.0.3(graphql@16.12.0) + '@apollo/server-gateway-interface': 2.0.0(graphql@16.12.0) + '@apollo/usage-reporting-protobuf': 4.1.1 + '@apollo/utils.createhash': 3.0.1 + '@apollo/utils.fetcher': 3.1.0 + '@apollo/utils.isnodelike': 3.0.0 + '@apollo/utils.keyvaluecache': 4.0.0 + '@apollo/utils.logger': 3.0.0 + '@apollo/utils.usagereporting': 2.1.0(graphql@16.12.0) + '@apollo/utils.withrequired': 3.0.0 + '@graphql-tools/schema': 10.0.30(graphql@16.12.0) + async-retry: 1.3.3 + body-parser: 2.2.1 + cors: 2.8.6 + finalhandler: 2.1.1 + graphql: 16.12.0 + loglevel: 1.9.2 + lru-cache: 11.2.4 + negotiator: 1.0.0 + uuid: 11.1.0 + whatwg-mimetype: 4.0.0 + transitivePeerDependencies: + - supports-color + '@apollo/usage-reporting-protobuf@4.1.1': dependencies: '@apollo/protobufjs': 1.2.7 @@ -54522,18 +54468,31 @@ snapshots: '@apollo/utils.isnodelike': 2.0.1 sha.js: 2.4.12 + '@apollo/utils.createhash@3.0.1': + dependencies: + '@apollo/utils.isnodelike': 3.0.0 + sha.js: 2.4.12 + '@apollo/utils.dropunuseddefinitions@1.1.0(graphql@16.12.0)': dependencies: graphql: 16.12.0 + '@apollo/utils.dropunuseddefinitions@1.1.0(graphql@16.9.0)': + dependencies: + graphql: 16.9.0 + '@apollo/utils.dropunuseddefinitions@2.0.1(graphql@16.12.0)': dependencies: graphql: 16.12.0 '@apollo/utils.fetcher@2.0.1': {} + '@apollo/utils.fetcher@3.1.0': {} + '@apollo/utils.isnodelike@2.0.1': {} + '@apollo/utils.isnodelike@3.0.0': {} + '@apollo/utils.keyvaluecache@1.0.2': dependencies: '@apollo/utils.logger': 1.0.1 @@ -54544,14 +54503,25 @@ snapshots: '@apollo/utils.logger': 2.0.1 lru-cache: 7.18.3 + '@apollo/utils.keyvaluecache@4.0.0': + dependencies: + '@apollo/utils.logger': 3.0.0 + lru-cache: 11.2.4 + '@apollo/utils.logger@1.0.1': {} '@apollo/utils.logger@2.0.1': {} + '@apollo/utils.logger@3.0.0': {} + '@apollo/utils.printwithreducedwhitespace@1.1.0(graphql@16.12.0)': dependencies: graphql: 16.12.0 + '@apollo/utils.printwithreducedwhitespace@1.1.0(graphql@16.9.0)': + dependencies: + graphql: 16.9.0 + '@apollo/utils.printwithreducedwhitespace@2.0.1(graphql@16.12.0)': dependencies: graphql: 16.12.0 @@ -54560,6 +54530,10 @@ snapshots: dependencies: graphql: 16.12.0 + '@apollo/utils.removealiases@1.0.0(graphql@16.9.0)': + dependencies: + graphql: 16.9.0 + '@apollo/utils.removealiases@2.0.1(graphql@16.12.0)': dependencies: graphql: 16.12.0 @@ -54569,6 +54543,11 @@ snapshots: graphql: 16.12.0 lodash.sortby: 4.7.0 + '@apollo/utils.sortast@1.1.0(graphql@16.9.0)': + dependencies: + graphql: 16.9.0 + lodash.sortby: 4.7.0 + '@apollo/utils.sortast@2.0.1(graphql@16.12.0)': dependencies: graphql: 16.12.0 @@ -54578,6 +54557,10 @@ snapshots: dependencies: graphql: 16.12.0 + '@apollo/utils.stripsensitiveliterals@1.2.0(graphql@16.9.0)': + dependencies: + graphql: 16.9.0 + '@apollo/utils.stripsensitiveliterals@2.0.1(graphql@16.12.0)': dependencies: graphql: 16.12.0 @@ -54592,6 +54575,16 @@ snapshots: '@apollo/utils.stripsensitiveliterals': 1.2.0(graphql@16.12.0) graphql: 16.12.0 + '@apollo/utils.usagereporting@1.0.1(graphql@16.9.0)': + dependencies: + '@apollo/usage-reporting-protobuf': 4.1.1 + '@apollo/utils.dropunuseddefinitions': 1.1.0(graphql@16.9.0) + '@apollo/utils.printwithreducedwhitespace': 1.1.0(graphql@16.9.0) + '@apollo/utils.removealiases': 1.0.0(graphql@16.9.0) + '@apollo/utils.sortast': 1.1.0(graphql@16.9.0) + '@apollo/utils.stripsensitiveliterals': 1.2.0(graphql@16.9.0) + graphql: 16.9.0 + '@apollo/utils.usagereporting@2.1.0(graphql@16.12.0)': dependencies: '@apollo/usage-reporting-protobuf': 4.1.1 @@ -54604,10 +54597,16 @@ snapshots: '@apollo/utils.withrequired@2.0.1': {} + '@apollo/utils.withrequired@3.0.0': {} + '@apollographql/apollo-tools@0.5.4(graphql@16.12.0)': dependencies: graphql: 16.12.0 + '@apollographql/apollo-tools@0.5.4(graphql@16.9.0)': + dependencies: + graphql: 16.9.0 + '@apollographql/graphql-playground-html@1.6.27': dependencies: xss: 1.0.15 @@ -54618,10 +54617,10 @@ snapshots: '@apollographql/graphql-upload-8-fork@8.1.4(graphql@16.12.0)': dependencies: - '@types/express': 4.17.25 + '@types/express': 4.17.21 '@types/fs-capacitor': 2.0.0 '@types/koa': 2.13.9 - busboy: 1.6.0 + busboy: 0.3.1 fs-capacitor: 2.0.4 graphql: 16.12.0 http-errors: 1.7.3 @@ -54658,10 +54657,10 @@ snapshots: '@babel/generator': 7.29.0 '@babel/parser': 7.29.0 '@babel/runtime': 7.28.4 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.6 '@babel/types': 7.29.0 babel-preset-fbjs: 3.4.0(@babel/core@7.28.5) - chalk: 4.1.2 + chalk: 5.6.2 fb-watchman: 2.0.2 fbjs: 3.0.5 glob: 13.0.0 @@ -54680,7 +54679,7 @@ snapshots: '@babel/generator': 7.29.0 '@babel/parser': 7.29.0 '@babel/runtime': 7.28.4 - chalk: 4.1.2 + chalk: 5.6.2 fb-watchman: 2.0.2 graphql: 16.12.0 immutable: 3.7.6 @@ -54693,9 +54692,14 @@ snapshots: dependencies: node-fetch: 3.3.2 - '@as-integrations/express4@1.1.2(@apollo/server@4.11.3(graphql@16.12.0))(express@5.2.1)': + '@as-integrations/express4@1.1.2(@apollo/server@4.12.2(graphql@16.12.0))(express@5.2.1)': + dependencies: + '@apollo/server': 4.12.2(graphql@16.12.0) + express: 5.2.1 + + '@as-integrations/express4@1.1.2(@apollo/server@5.2.0(graphql@16.12.0))(express@5.2.1)': dependencies: - '@apollo/server': 4.11.3(graphql@16.12.0) + '@apollo/server': 5.2.0(graphql@16.12.0) express: 5.2.1 '@asamuzakjp/css-color@3.2.0': @@ -54712,7 +54716,7 @@ snapshots: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - lru-cache: 11.2.5 + lru-cache: 11.2.4 '@asamuzakjp/dom-selector@2.0.2': dependencies: @@ -54726,27 +54730,31 @@ snapshots: bidi-js: 1.0.3 css-tree: 3.1.0 is-potential-custom-element-name: 1.0.1 - lru-cache: 11.2.5 + lru-cache: 11.2.4 '@asamuzakjp/nwsapi@2.3.9': {} + '@asyncapi/specs@6.10.0': + dependencies: + '@types/json-schema': 7.0.15 + '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.1 + '@aws-sdk/types': 3.957.0 tslib: 2.8.1 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.1 + '@aws-sdk/types': 3.957.0 tslib: 2.8.1 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.1 + '@aws-sdk/types': 3.957.0 '@aws-sdk/util-locate-window': 3.957.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -54756,7 +54764,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.1 + '@aws-sdk/types': 3.957.0 '@aws-sdk/util-locate-window': 3.957.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -54764,7 +54772,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.1 + '@aws-sdk/types': 3.957.0 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -54773,7 +54781,7 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.973.1 + '@aws-sdk/types': 3.957.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -54792,30 +54800,30 @@ snapshots: '@aws-sdk/util-endpoints': 3.957.0 '@aws-sdk/util-user-agent-browser': 3.957.0 '@aws-sdk/util-user-agent-node': 3.957.0 - '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 - '@smithy/fetch-http-handler': 5.3.9 - '@smithy/hash-node': 4.2.8 - '@smithy/invalid-dependency': 4.2.8 - '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 - '@smithy/middleware-serde': 4.2.9 - '@smithy/middleware-stack': 4.2.8 - '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 - '@smithy/util-endpoints': 3.2.8 - '@smithy/util-middleware': 4.2.8 - '@smithy/util-retry': 4.2.8 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: @@ -54840,34 +54848,34 @@ snapshots: '@aws-sdk/util-endpoints': 3.957.0 '@aws-sdk/util-user-agent-browser': 3.957.0 '@aws-sdk/util-user-agent-node': 3.957.0 - '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 - '@smithy/eventstream-serde-browser': 4.2.8 - '@smithy/eventstream-serde-config-resolver': 4.3.8 - '@smithy/eventstream-serde-node': 4.2.8 - '@smithy/fetch-http-handler': 5.3.9 - '@smithy/hash-node': 4.2.8 - '@smithy/invalid-dependency': 4.2.8 - '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 - '@smithy/middleware-serde': 4.2.9 - '@smithy/middleware-stack': 4.2.8 - '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/eventstream-serde-browser': 4.2.7 + '@smithy/eventstream-serde-config-resolver': 4.3.7 + '@smithy/eventstream-serde-node': 4.2.7 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 - '@smithy/util-endpoints': 3.2.8 - '@smithy/util-middleware': 4.2.8 - '@smithy/util-retry': 4.2.8 - '@smithy/util-stream': 4.5.10 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 + '@smithy/util-stream': 4.5.8 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: @@ -54888,12 +54896,57 @@ snapshots: '@aws-sdk/util-endpoints': 3.957.0 '@aws-sdk/util-user-agent-browser': 3.957.0 '@aws-sdk/util-user-agent-node': 3.957.0 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-compression': 4.3.16 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.7 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-cost-explorer@3.978.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/credential-provider-node': 3.972.3 + '@aws-sdk/middleware-host-header': 3.972.2 + '@aws-sdk/middleware-logger': 3.972.2 + '@aws-sdk/middleware-recursion-detection': 3.972.2 + '@aws-sdk/middleware-user-agent': 3.972.4 + '@aws-sdk/region-config-resolver': 3.972.2 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.972.0 + '@aws-sdk/util-user-agent-browser': 3.972.2 + '@aws-sdk/util-user-agent-node': 3.972.2 '@smithy/config-resolver': 4.4.6 '@smithy/core': 3.22.0 '@smithy/fetch-http-handler': 5.3.9 '@smithy/hash-node': 4.2.8 '@smithy/invalid-dependency': 4.2.8 - '@smithy/middleware-compression': 4.3.16 '@smithy/middleware-content-length': 4.2.8 '@smithy/middleware-endpoint': 4.4.12 '@smithy/middleware-retry': 4.4.29 @@ -54914,26 +54967,119 @@ snapshots: '@smithy/util-middleware': 4.2.8 '@smithy/util-retry': 4.2.8 '@smithy/util-utf8': 4.2.0 - '@smithy/util-waiter': 4.2.8 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-cost-explorer@3.978.0': + '@aws-sdk/client-dynamodb@3.958.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.5 - '@aws-sdk/credential-provider-node': 3.972.4 - '@aws-sdk/middleware-host-header': 3.972.3 - '@aws-sdk/middleware-logger': 3.972.3 - '@aws-sdk/middleware-recursion-detection': 3.972.3 - '@aws-sdk/middleware-user-agent': 3.972.5 - '@aws-sdk/region-config-resolver': 3.972.3 + '@aws-sdk/core': 3.957.0 + '@aws-sdk/credential-provider-node': 3.958.0 + '@aws-sdk/dynamodb-codec': 3.957.0(@aws-sdk/client-dynamodb@3.958.0) + '@aws-sdk/middleware-endpoint-discovery': 3.957.0 + '@aws-sdk/middleware-host-header': 3.957.0 + '@aws-sdk/middleware-logger': 3.957.0 + '@aws-sdk/middleware-recursion-detection': 3.957.0 + '@aws-sdk/middleware-user-agent': 3.957.0 + '@aws-sdk/region-config-resolver': 3.957.0 + '@aws-sdk/types': 3.957.0 + '@aws-sdk/util-endpoints': 3.957.0 + '@aws-sdk/util-user-agent-browser': 3.957.0 + '@aws-sdk/util-user-agent-node': 3.957.0 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.7 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-ec2@3.958.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.957.0 + '@aws-sdk/credential-provider-node': 3.958.0 + '@aws-sdk/middleware-host-header': 3.957.0 + '@aws-sdk/middleware-logger': 3.957.0 + '@aws-sdk/middleware-recursion-detection': 3.957.0 + '@aws-sdk/middleware-sdk-ec2': 3.957.0 + '@aws-sdk/middleware-user-agent': 3.957.0 + '@aws-sdk/region-config-resolver': 3.957.0 + '@aws-sdk/types': 3.957.0 + '@aws-sdk/util-endpoints': 3.957.0 + '@aws-sdk/util-user-agent-browser': 3.957.0 + '@aws-sdk/util-user-agent-node': 3.957.0 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.7 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-ec2@3.979.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/credential-provider-node': 3.972.3 + '@aws-sdk/middleware-host-header': 3.972.2 + '@aws-sdk/middleware-logger': 3.972.2 + '@aws-sdk/middleware-recursion-detection': 3.972.2 + '@aws-sdk/middleware-sdk-ec2': 3.972.4 + '@aws-sdk/middleware-user-agent': 3.972.4 + '@aws-sdk/region-config-resolver': 3.972.2 '@aws-sdk/types': 3.973.1 '@aws-sdk/util-endpoints': 3.972.0 - '@aws-sdk/util-user-agent-browser': 3.972.3 - '@aws-sdk/util-user-agent-node': 3.972.3 + '@aws-sdk/util-user-agent-browser': 3.972.2 + '@aws-sdk/util-user-agent-node': 3.972.2 '@smithy/config-resolver': 4.4.6 '@smithy/core': 3.22.0 '@smithy/fetch-http-handler': 5.3.9 @@ -54959,18 +55105,17 @@ snapshots: '@smithy/util-middleware': 4.2.8 '@smithy/util-retry': 4.2.8 '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.8 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-dynamodb@3.958.0': + '@aws-sdk/client-glue@3.958.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 '@aws-sdk/core': 3.957.0 '@aws-sdk/credential-provider-node': 3.958.0 - '@aws-sdk/dynamodb-codec': 3.957.0(@aws-sdk/client-dynamodb@3.958.0) - '@aws-sdk/middleware-endpoint-discovery': 3.957.0 '@aws-sdk/middleware-host-header': 3.957.0 '@aws-sdk/middleware-logger': 3.957.0 '@aws-sdk/middleware-recursion-detection': 3.957.0 @@ -54980,83 +55125,36 @@ snapshots: '@aws-sdk/util-endpoints': 3.957.0 '@aws-sdk/util-user-agent-browser': 3.957.0 '@aws-sdk/util-user-agent-node': 3.957.0 - '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 - '@smithy/fetch-http-handler': 5.3.9 - '@smithy/hash-node': 4.2.8 - '@smithy/invalid-dependency': 4.2.8 - '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 - '@smithy/middleware-serde': 4.2.9 - '@smithy/middleware-stack': 4.2.8 - '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 - '@smithy/util-base64': 4.3.0 - '@smithy/util-body-length-browser': 4.2.0 - '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 - '@smithy/util-endpoints': 3.2.8 - '@smithy/util-middleware': 4.2.8 - '@smithy/util-retry': 4.2.8 - '@smithy/util-utf8': 4.2.0 - '@smithy/util-waiter': 4.2.8 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/client-ec2@3.979.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.5 - '@aws-sdk/credential-provider-node': 3.972.4 - '@aws-sdk/middleware-host-header': 3.972.3 - '@aws-sdk/middleware-logger': 3.972.3 - '@aws-sdk/middleware-recursion-detection': 3.972.3 - '@aws-sdk/middleware-sdk-ec2': 3.972.4 - '@aws-sdk/middleware-user-agent': 3.972.5 - '@aws-sdk/region-config-resolver': 3.972.3 - '@aws-sdk/types': 3.973.1 - '@aws-sdk/util-endpoints': 3.972.0 - '@aws-sdk/util-user-agent-browser': 3.972.3 - '@aws-sdk/util-user-agent-node': 3.972.3 - '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 - '@smithy/fetch-http-handler': 5.3.9 - '@smithy/hash-node': 4.2.8 - '@smithy/invalid-dependency': 4.2.8 - '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 - '@smithy/middleware-serde': 4.2.9 - '@smithy/middleware-stack': 4.2.8 - '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 - '@smithy/util-endpoints': 3.2.8 - '@smithy/util-middleware': 4.2.8 - '@smithy/util-retry': 4.2.8 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 '@smithy/util-utf8': 4.2.0 - '@smithy/util-waiter': 4.2.8 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-glue@3.958.0': + '@aws-sdk/client-iam@3.958.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 @@ -55071,36 +55169,37 @@ snapshots: '@aws-sdk/util-endpoints': 3.957.0 '@aws-sdk/util-user-agent-browser': 3.957.0 '@aws-sdk/util-user-agent-node': 3.957.0 - '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 - '@smithy/fetch-http-handler': 5.3.9 - '@smithy/hash-node': 4.2.8 - '@smithy/invalid-dependency': 4.2.8 - '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 - '@smithy/middleware-serde': 4.2.9 - '@smithy/middleware-stack': 4.2.8 - '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 - '@smithy/util-endpoints': 3.2.8 - '@smithy/util-middleware': 4.2.8 - '@smithy/util-retry': 4.2.8 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.7 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-iam@3.958.0': + '@aws-sdk/client-kms@3.958.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 @@ -55115,51 +55214,50 @@ snapshots: '@aws-sdk/util-endpoints': 3.957.0 '@aws-sdk/util-user-agent-browser': 3.957.0 '@aws-sdk/util-user-agent-node': 3.957.0 - '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 - '@smithy/fetch-http-handler': 5.3.9 - '@smithy/hash-node': 4.2.8 - '@smithy/invalid-dependency': 4.2.8 - '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 - '@smithy/middleware-serde': 4.2.9 - '@smithy/middleware-stack': 4.2.8 - '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 - '@smithy/util-endpoints': 3.2.8 - '@smithy/util-middleware': 4.2.8 - '@smithy/util-retry': 4.2.8 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 '@smithy/util-utf8': 4.2.0 - '@smithy/util-waiter': 4.2.8 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-kms@3.958.0': + '@aws-sdk/client-pricing@3.978.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.957.0 - '@aws-sdk/credential-provider-node': 3.958.0 - '@aws-sdk/middleware-host-header': 3.957.0 - '@aws-sdk/middleware-logger': 3.957.0 - '@aws-sdk/middleware-recursion-detection': 3.957.0 - '@aws-sdk/middleware-user-agent': 3.957.0 - '@aws-sdk/region-config-resolver': 3.957.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-endpoints': 3.957.0 - '@aws-sdk/util-user-agent-browser': 3.957.0 - '@aws-sdk/util-user-agent-node': 3.957.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/credential-provider-node': 3.972.3 + '@aws-sdk/middleware-host-header': 3.972.2 + '@aws-sdk/middleware-logger': 3.972.2 + '@aws-sdk/middleware-recursion-detection': 3.972.2 + '@aws-sdk/middleware-user-agent': 3.972.4 + '@aws-sdk/region-config-resolver': 3.972.2 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.972.0 + '@aws-sdk/util-user-agent-browser': 3.972.2 + '@aws-sdk/util-user-agent-node': 3.972.2 '@smithy/config-resolver': 4.4.6 '@smithy/core': 3.22.0 '@smithy/fetch-http-handler': 5.3.9 @@ -55189,21 +55287,22 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-pricing@3.978.0': + '@aws-sdk/client-rds@3.978.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.5 - '@aws-sdk/credential-provider-node': 3.972.4 - '@aws-sdk/middleware-host-header': 3.972.3 - '@aws-sdk/middleware-logger': 3.972.3 - '@aws-sdk/middleware-recursion-detection': 3.972.3 - '@aws-sdk/middleware-user-agent': 3.972.5 - '@aws-sdk/region-config-resolver': 3.972.3 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/credential-provider-node': 3.972.3 + '@aws-sdk/middleware-host-header': 3.972.2 + '@aws-sdk/middleware-logger': 3.972.2 + '@aws-sdk/middleware-recursion-detection': 3.972.2 + '@aws-sdk/middleware-sdk-rds': 3.972.4 + '@aws-sdk/middleware-user-agent': 3.972.4 + '@aws-sdk/region-config-resolver': 3.972.2 '@aws-sdk/types': 3.973.1 '@aws-sdk/util-endpoints': 3.972.0 - '@aws-sdk/util-user-agent-browser': 3.972.3 - '@aws-sdk/util-user-agent-node': 3.972.3 + '@aws-sdk/util-user-agent-browser': 3.972.2 + '@aws-sdk/util-user-agent-node': 3.972.2 '@smithy/config-resolver': 4.4.6 '@smithy/core': 3.22.0 '@smithy/fetch-http-handler': 5.3.9 @@ -55229,112 +55328,127 @@ snapshots: '@smithy/util-middleware': 4.2.8 '@smithy/util-retry': 4.2.8 '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.8 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-rds@3.978.0': + '@aws-sdk/client-s3@3.958.0': dependencies: + '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.5 - '@aws-sdk/credential-provider-node': 3.972.4 - '@aws-sdk/middleware-host-header': 3.972.3 - '@aws-sdk/middleware-logger': 3.972.3 - '@aws-sdk/middleware-recursion-detection': 3.972.3 - '@aws-sdk/middleware-sdk-rds': 3.972.4 - '@aws-sdk/middleware-user-agent': 3.972.5 - '@aws-sdk/region-config-resolver': 3.972.3 - '@aws-sdk/types': 3.973.1 - '@aws-sdk/util-endpoints': 3.972.0 - '@aws-sdk/util-user-agent-browser': 3.972.3 - '@aws-sdk/util-user-agent-node': 3.972.3 - '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 - '@smithy/fetch-http-handler': 5.3.9 - '@smithy/hash-node': 4.2.8 - '@smithy/invalid-dependency': 4.2.8 - '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 - '@smithy/middleware-serde': 4.2.9 - '@smithy/middleware-stack': 4.2.8 - '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 + '@aws-sdk/core': 3.957.0 + '@aws-sdk/credential-provider-node': 3.958.0 + '@aws-sdk/middleware-bucket-endpoint': 3.957.0 + '@aws-sdk/middleware-expect-continue': 3.957.0 + '@aws-sdk/middleware-flexible-checksums': 3.957.0 + '@aws-sdk/middleware-host-header': 3.957.0 + '@aws-sdk/middleware-location-constraint': 3.957.0 + '@aws-sdk/middleware-logger': 3.957.0 + '@aws-sdk/middleware-recursion-detection': 3.957.0 + '@aws-sdk/middleware-sdk-s3': 3.957.0 + '@aws-sdk/middleware-ssec': 3.957.0 + '@aws-sdk/middleware-user-agent': 3.957.0 + '@aws-sdk/region-config-resolver': 3.957.0 + '@aws-sdk/signature-v4-multi-region': 3.957.0 + '@aws-sdk/types': 3.957.0 + '@aws-sdk/util-endpoints': 3.957.0 + '@aws-sdk/util-user-agent-browser': 3.957.0 + '@aws-sdk/util-user-agent-node': 3.957.0 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/eventstream-serde-browser': 4.2.7 + '@smithy/eventstream-serde-config-resolver': 4.3.7 + '@smithy/eventstream-serde-node': 4.2.7 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-blob-browser': 4.2.8 + '@smithy/hash-node': 4.2.7 + '@smithy/hash-stream-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/md5-js': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 - '@smithy/util-endpoints': 3.2.8 - '@smithy/util-middleware': 4.2.8 - '@smithy/util-retry': 4.2.8 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 + '@smithy/util-stream': 4.5.8 '@smithy/util-utf8': 4.2.0 - '@smithy/util-waiter': 4.2.8 + '@smithy/util-waiter': 4.2.7 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-s3@3.1004.0': + '@aws-sdk/client-s3@3.962.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.18 - '@aws-sdk/credential-provider-node': 3.972.18 - '@aws-sdk/middleware-bucket-endpoint': 3.972.7 - '@aws-sdk/middleware-expect-continue': 3.972.7 - '@aws-sdk/middleware-flexible-checksums': 3.973.4 - '@aws-sdk/middleware-host-header': 3.972.7 - '@aws-sdk/middleware-location-constraint': 3.972.7 - '@aws-sdk/middleware-logger': 3.972.7 - '@aws-sdk/middleware-recursion-detection': 3.972.7 - '@aws-sdk/middleware-sdk-s3': 3.972.18 - '@aws-sdk/middleware-ssec': 3.972.7 - '@aws-sdk/middleware-user-agent': 3.972.19 - '@aws-sdk/region-config-resolver': 3.972.7 - '@aws-sdk/signature-v4-multi-region': 3.996.6 - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-endpoints': 3.996.4 - '@aws-sdk/util-user-agent-browser': 3.972.7 - '@aws-sdk/util-user-agent-node': 3.973.4 - '@smithy/config-resolver': 4.4.10 - '@smithy/core': 3.23.9 - '@smithy/eventstream-serde-browser': 4.2.11 - '@smithy/eventstream-serde-config-resolver': 4.3.11 - '@smithy/eventstream-serde-node': 4.2.11 - '@smithy/fetch-http-handler': 5.3.13 - '@smithy/hash-blob-browser': 4.2.12 - '@smithy/hash-node': 4.2.11 - '@smithy/hash-stream-node': 4.2.11 - '@smithy/invalid-dependency': 4.2.11 - '@smithy/md5-js': 4.2.11 - '@smithy/middleware-content-length': 4.2.11 - '@smithy/middleware-endpoint': 4.4.23 - '@smithy/middleware-retry': 4.4.40 - '@smithy/middleware-serde': 4.2.12 - '@smithy/middleware-stack': 4.2.11 - '@smithy/node-config-provider': 4.3.11 - '@smithy/node-http-handler': 4.4.14 - '@smithy/protocol-http': 5.3.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.39 - '@smithy/util-defaults-mode-node': 4.2.42 - '@smithy/util-endpoints': 3.3.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-retry': 4.2.11 - '@smithy/util-stream': 4.5.17 - '@smithy/util-utf8': 4.2.2 - '@smithy/util-waiter': 4.2.11 + '@aws-sdk/core': 3.957.0 + '@aws-sdk/credential-provider-node': 3.962.0 + '@aws-sdk/middleware-bucket-endpoint': 3.957.0 + '@aws-sdk/middleware-expect-continue': 3.957.0 + '@aws-sdk/middleware-flexible-checksums': 3.957.0 + '@aws-sdk/middleware-host-header': 3.957.0 + '@aws-sdk/middleware-location-constraint': 3.957.0 + '@aws-sdk/middleware-logger': 3.957.0 + '@aws-sdk/middleware-recursion-detection': 3.957.0 + '@aws-sdk/middleware-sdk-s3': 3.957.0 + '@aws-sdk/middleware-ssec': 3.957.0 + '@aws-sdk/middleware-user-agent': 3.957.0 + '@aws-sdk/region-config-resolver': 3.957.0 + '@aws-sdk/signature-v4-multi-region': 3.957.0 + '@aws-sdk/types': 3.957.0 + '@aws-sdk/util-endpoints': 3.957.0 + '@aws-sdk/util-user-agent-browser': 3.957.0 + '@aws-sdk/util-user-agent-node': 3.957.0 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/eventstream-serde-browser': 4.2.7 + '@smithy/eventstream-serde-config-resolver': 4.3.7 + '@smithy/eventstream-serde-node': 4.2.7 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-blob-browser': 4.2.8 + '@smithy/hash-node': 4.2.7 + '@smithy/hash-stream-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/md5-js': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 + '@smithy/util-stream': 4.5.8 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.7 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -55414,30 +55528,30 @@ snapshots: '@aws-sdk/util-endpoints': 3.957.0 '@aws-sdk/util-user-agent-browser': 3.957.0 '@aws-sdk/util-user-agent-node': 3.957.0 - '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 - '@smithy/fetch-http-handler': 5.3.9 - '@smithy/hash-node': 4.2.8 - '@smithy/invalid-dependency': 4.2.8 - '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 - '@smithy/middleware-serde': 4.2.9 - '@smithy/middleware-stack': 4.2.8 - '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 - '@smithy/util-endpoints': 3.2.8 - '@smithy/util-middleware': 4.2.8 - '@smithy/util-retry': 4.2.8 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: @@ -55504,30 +55618,30 @@ snapshots: '@aws-sdk/util-endpoints': 3.957.0 '@aws-sdk/util-user-agent-browser': 3.957.0 '@aws-sdk/util-user-agent-node': 3.957.0 - '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 - '@smithy/fetch-http-handler': 5.3.9 - '@smithy/hash-node': 4.2.8 - '@smithy/invalid-dependency': 4.2.8 - '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 - '@smithy/middleware-serde': 4.2.9 - '@smithy/middleware-stack': 4.2.8 - '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 - '@smithy/util-endpoints': 3.2.8 - '@smithy/util-middleware': 4.2.8 - '@smithy/util-retry': 4.2.8 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: @@ -55548,30 +55662,30 @@ snapshots: '@aws-sdk/util-endpoints': 3.957.0 '@aws-sdk/util-user-agent-browser': 3.957.0 '@aws-sdk/util-user-agent-node': 3.957.0 - '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 - '@smithy/fetch-http-handler': 5.3.9 - '@smithy/hash-node': 4.2.8 - '@smithy/invalid-dependency': 4.2.8 - '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 - '@smithy/middleware-serde': 4.2.9 - '@smithy/middleware-stack': 4.2.8 - '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 - '@smithy/util-endpoints': 3.2.8 - '@smithy/util-middleware': 4.2.8 - '@smithy/util-retry': 4.2.8 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: @@ -55593,31 +55707,31 @@ snapshots: '@aws-sdk/util-endpoints': 3.957.0 '@aws-sdk/util-user-agent-browser': 3.957.0 '@aws-sdk/util-user-agent-node': 3.957.0 - '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 - '@smithy/fetch-http-handler': 5.3.9 - '@smithy/hash-node': 4.2.8 - '@smithy/invalid-dependency': 4.2.8 - '@smithy/md5-js': 4.2.8 - '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 - '@smithy/middleware-serde': 4.2.9 - '@smithy/middleware-stack': 4.2.8 - '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/md5-js': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 - '@smithy/util-endpoints': 3.2.8 - '@smithy/util-middleware': 4.2.8 - '@smithy/util-retry': 4.2.8 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: @@ -55637,6 +55751,49 @@ snapshots: '@aws-sdk/util-endpoints': 3.957.0 '@aws-sdk/util-user-agent-browser': 3.957.0 '@aws-sdk/util-user-agent-node': 3.957.0 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.975.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/middleware-host-header': 3.972.2 + '@aws-sdk/middleware-logger': 3.972.2 + '@aws-sdk/middleware-recursion-detection': 3.972.2 + '@aws-sdk/middleware-user-agent': 3.972.4 + '@aws-sdk/region-config-resolver': 3.972.2 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.972.0 + '@aws-sdk/util-user-agent-browser': 3.972.2 + '@aws-sdk/util-user-agent-node': 3.972.2 '@smithy/config-resolver': 4.4.6 '@smithy/core': 3.22.0 '@smithy/fetch-http-handler': 5.3.9 @@ -55724,30 +55881,30 @@ snapshots: '@aws-sdk/util-endpoints': 3.957.0 '@aws-sdk/util-user-agent-browser': 3.957.0 '@aws-sdk/util-user-agent-node': 3.957.0 - '@smithy/config-resolver': 4.4.6 - '@smithy/core': 3.22.0 - '@smithy/fetch-http-handler': 5.3.9 - '@smithy/hash-node': 4.2.8 - '@smithy/invalid-dependency': 4.2.8 - '@smithy/middleware-content-length': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/middleware-retry': 4.4.29 - '@smithy/middleware-serde': 4.2.9 - '@smithy/middleware-stack': 4.2.8 - '@smithy/node-config-provider': 4.3.8 - '@smithy/node-http-handler': 4.4.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.28 - '@smithy/util-defaults-mode-node': 4.2.31 - '@smithy/util-endpoints': 3.2.8 - '@smithy/util-middleware': 4.2.8 - '@smithy/util-retry': 4.2.8 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: @@ -55757,6 +55914,22 @@ snapshots: dependencies: '@aws-sdk/types': 3.957.0 '@aws-sdk/xml-builder': 3.957.0 + '@smithy/core': 3.20.0 + '@smithy/node-config-provider': 4.3.7 + '@smithy/property-provider': 4.2.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/signature-v4': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/core@3.973.4': + dependencies: + '@aws-sdk/types': 3.973.1 + '@aws-sdk/xml-builder': 3.972.2 '@smithy/core': 3.22.0 '@smithy/node-config-provider': 4.3.8 '@smithy/property-provider': 4.2.8 @@ -55769,22 +55942,6 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/core@3.973.18': - dependencies: - '@aws-sdk/types': 3.973.5 - '@aws-sdk/xml-builder': 3.972.10 - '@smithy/core': 3.23.9 - '@smithy/node-config-provider': 4.3.11 - '@smithy/property-provider': 4.2.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/signature-v4': 5.3.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - '@aws-sdk/core@3.973.5': dependencies: '@aws-sdk/types': 3.973.1 @@ -55801,30 +55958,30 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/crc64-nvme@3.972.0': + '@aws-sdk/crc64-nvme@3.957.0': dependencies: - '@smithy/types': 4.12.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/crc64-nvme@3.972.4': + '@aws-sdk/crc64-nvme@3.972.0': dependencies: - '@smithy/types': 4.13.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 '@aws-sdk/credential-provider-env@3.957.0': dependencies: '@aws-sdk/core': 3.957.0 '@aws-sdk/types': 3.957.0 - '@smithy/property-provider': 4.2.8 - '@smithy/types': 4.12.0 + '@smithy/property-provider': 4.2.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.972.16': + '@aws-sdk/credential-provider-env@3.972.2': dependencies: - '@aws-sdk/core': 3.973.18 - '@aws-sdk/types': 3.973.5 - '@smithy/property-provider': 4.2.11 - '@smithy/types': 4.13.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 '@aws-sdk/credential-provider-env@3.972.3': @@ -55839,6 +55996,19 @@ snapshots: dependencies: '@aws-sdk/core': 3.957.0 '@aws-sdk/types': 3.957.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/node-http-handler': 4.4.7 + '@smithy/property-provider': 4.2.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/util-stream': 4.5.8 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-http@3.972.4': + dependencies: + '@aws-sdk/core': 3.973.4 + '@aws-sdk/types': 3.973.1 '@smithy/fetch-http-handler': 5.3.9 '@smithy/node-http-handler': 4.4.8 '@smithy/property-provider': 4.2.8 @@ -55848,19 +56018,6 @@ snapshots: '@smithy/util-stream': 4.5.10 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.972.18': - dependencies: - '@aws-sdk/core': 3.973.18 - '@aws-sdk/types': 3.973.5 - '@smithy/fetch-http-handler': 5.3.13 - '@smithy/node-http-handler': 4.4.14 - '@smithy/property-provider': 4.2.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/util-stream': 4.5.17 - tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.972.5': dependencies: '@aws-sdk/core': 3.973.5 @@ -55885,29 +56042,48 @@ snapshots: '@aws-sdk/credential-provider-web-identity': 3.958.0 '@aws-sdk/nested-clients': 3.958.0 '@aws-sdk/types': 3.957.0 - '@smithy/credential-provider-imds': 4.2.8 - '@smithy/property-provider': 4.2.8 - '@smithy/shared-ini-file-loader': 4.4.3 - '@smithy/types': 4.12.0 + '@smithy/credential-provider-imds': 4.2.7 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-ini@3.972.17': + '@aws-sdk/credential-provider-ini@3.962.0': dependencies: - '@aws-sdk/core': 3.973.18 - '@aws-sdk/credential-provider-env': 3.972.16 - '@aws-sdk/credential-provider-http': 3.972.18 - '@aws-sdk/credential-provider-login': 3.972.17 - '@aws-sdk/credential-provider-process': 3.972.16 - '@aws-sdk/credential-provider-sso': 3.972.17 - '@aws-sdk/credential-provider-web-identity': 3.972.17 - '@aws-sdk/nested-clients': 3.996.7 - '@aws-sdk/types': 3.973.5 - '@smithy/credential-provider-imds': 4.2.11 - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 + '@aws-sdk/core': 3.957.0 + '@aws-sdk/credential-provider-env': 3.957.0 + '@aws-sdk/credential-provider-http': 3.957.0 + '@aws-sdk/credential-provider-login': 3.962.0 + '@aws-sdk/credential-provider-process': 3.957.0 + '@aws-sdk/credential-provider-sso': 3.958.0 + '@aws-sdk/credential-provider-web-identity': 3.958.0 + '@aws-sdk/nested-clients': 3.958.0 + '@aws-sdk/types': 3.957.0 + '@smithy/credential-provider-imds': 4.2.7 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-ini@3.972.2': + dependencies: + '@aws-sdk/core': 3.973.4 + '@aws-sdk/credential-provider-env': 3.972.2 + '@aws-sdk/credential-provider-http': 3.972.4 + '@aws-sdk/credential-provider-login': 3.972.2 + '@aws-sdk/credential-provider-process': 3.972.2 + '@aws-sdk/credential-provider-sso': 3.972.2 + '@aws-sdk/credential-provider-web-identity': 3.972.2 + '@aws-sdk/nested-clients': 3.975.0 + '@aws-sdk/types': 3.973.1 + '@smithy/credential-provider-imds': 4.2.8 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -55936,23 +56112,36 @@ snapshots: '@aws-sdk/core': 3.957.0 '@aws-sdk/nested-clients': 3.958.0 '@aws-sdk/types': 3.957.0 - '@smithy/property-provider': 4.2.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/shared-ini-file-loader': 4.4.3 - '@smithy/types': 4.12.0 + '@smithy/property-provider': 4.2.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-login@3.972.17': + '@aws-sdk/credential-provider-login@3.962.0': dependencies: - '@aws-sdk/core': 3.973.18 - '@aws-sdk/nested-clients': 3.996.7 - '@aws-sdk/types': 3.973.5 - '@smithy/property-provider': 4.2.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 + '@aws-sdk/core': 3.957.0 + '@aws-sdk/nested-clients': 3.958.0 + '@aws-sdk/types': 3.957.0 + '@smithy/property-provider': 4.2.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-login@3.972.2': + dependencies: + '@aws-sdk/core': 3.973.4 + '@aws-sdk/nested-clients': 3.975.0 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -55979,27 +56168,44 @@ snapshots: '@aws-sdk/credential-provider-sso': 3.958.0 '@aws-sdk/credential-provider-web-identity': 3.958.0 '@aws-sdk/types': 3.957.0 - '@smithy/credential-provider-imds': 4.2.8 - '@smithy/property-provider': 4.2.8 - '@smithy/shared-ini-file-loader': 4.4.3 - '@smithy/types': 4.12.0 + '@smithy/credential-provider-imds': 4.2.7 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.972.18': + '@aws-sdk/credential-provider-node@3.962.0': dependencies: - '@aws-sdk/credential-provider-env': 3.972.16 - '@aws-sdk/credential-provider-http': 3.972.18 - '@aws-sdk/credential-provider-ini': 3.972.17 - '@aws-sdk/credential-provider-process': 3.972.16 - '@aws-sdk/credential-provider-sso': 3.972.17 - '@aws-sdk/credential-provider-web-identity': 3.972.17 - '@aws-sdk/types': 3.973.5 - '@smithy/credential-provider-imds': 4.2.11 - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 + '@aws-sdk/credential-provider-env': 3.957.0 + '@aws-sdk/credential-provider-http': 3.957.0 + '@aws-sdk/credential-provider-ini': 3.962.0 + '@aws-sdk/credential-provider-process': 3.957.0 + '@aws-sdk/credential-provider-sso': 3.958.0 + '@aws-sdk/credential-provider-web-identity': 3.958.0 + '@aws-sdk/types': 3.957.0 + '@smithy/credential-provider-imds': 4.2.7 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-node@3.972.3': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.2 + '@aws-sdk/credential-provider-http': 3.972.4 + '@aws-sdk/credential-provider-ini': 3.972.2 + '@aws-sdk/credential-provider-process': 3.972.2 + '@aws-sdk/credential-provider-sso': 3.972.2 + '@aws-sdk/credential-provider-web-identity': 3.972.2 + '@aws-sdk/types': 3.973.1 + '@smithy/credential-provider-imds': 4.2.8 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -56025,18 +56231,18 @@ snapshots: dependencies: '@aws-sdk/core': 3.957.0 '@aws-sdk/types': 3.957.0 - '@smithy/property-provider': 4.2.8 - '@smithy/shared-ini-file-loader': 4.4.3 - '@smithy/types': 4.12.0 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-process@3.972.16': + '@aws-sdk/credential-provider-process@3.972.2': dependencies: - '@aws-sdk/core': 3.973.18 - '@aws-sdk/types': 3.973.5 - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 '@aws-sdk/credential-provider-process@3.972.3': @@ -56054,22 +56260,22 @@ snapshots: '@aws-sdk/core': 3.957.0 '@aws-sdk/token-providers': 3.958.0 '@aws-sdk/types': 3.957.0 - '@smithy/property-provider': 4.2.8 - '@smithy/shared-ini-file-loader': 4.4.3 - '@smithy/types': 4.12.0 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-sso@3.972.17': + '@aws-sdk/credential-provider-sso@3.972.2': dependencies: - '@aws-sdk/core': 3.973.18 - '@aws-sdk/nested-clients': 3.996.7 - '@aws-sdk/token-providers': 3.1004.0 - '@aws-sdk/types': 3.973.5 - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 + '@aws-sdk/client-sso': 3.975.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/token-providers': 3.975.0 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -56092,21 +56298,21 @@ snapshots: '@aws-sdk/core': 3.957.0 '@aws-sdk/nested-clients': 3.958.0 '@aws-sdk/types': 3.957.0 - '@smithy/property-provider': 4.2.8 - '@smithy/shared-ini-file-loader': 4.4.3 - '@smithy/types': 4.12.0 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.972.17': + '@aws-sdk/credential-provider-web-identity@3.972.2': dependencies: - '@aws-sdk/core': 3.973.18 - '@aws-sdk/nested-clients': 3.996.7 - '@aws-sdk/types': 3.973.5 - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/nested-clients': 3.975.0 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -56127,9 +56333,9 @@ snapshots: dependencies: '@aws-sdk/client-dynamodb': 3.958.0 '@aws-sdk/core': 3.957.0 - '@smithy/core': 3.22.0 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 + '@smithy/core': 3.20.0 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 '@smithy/util-base64': 4.3.0 tslib: 2.8.1 @@ -56141,16 +56347,16 @@ snapshots: '@aws-sdk/eventstream-handler-node@3.957.0': dependencies: '@aws-sdk/types': 3.957.0 - '@smithy/eventstream-codec': 4.2.8 - '@smithy/types': 4.12.0 + '@smithy/eventstream-codec': 4.2.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/lib-storage@3.980.0(@aws-sdk/client-s3@3.1004.0)': + '@aws-sdk/lib-storage@3.958.0(@aws-sdk/client-s3@3.958.0)': dependencies: - '@aws-sdk/client-s3': 3.1004.0 - '@smithy/abort-controller': 4.2.8 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/smithy-client': 4.11.1 + '@aws-sdk/client-s3': 3.958.0 + '@smithy/abort-controller': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/smithy-client': 4.10.2 buffer: 5.6.0 events: 3.3.0 stream-browserify: 3.0.0 @@ -56167,6 +56373,16 @@ snapshots: stream-browserify: 3.0.0 tslib: 2.8.1 + '@aws-sdk/middleware-bucket-endpoint@3.957.0': + dependencies: + '@aws-sdk/types': 3.957.0 + '@aws-sdk/util-arn-parser': 3.957.0 + '@smithy/node-config-provider': 4.3.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + '@smithy/util-config-provider': 4.2.0 + tslib: 2.8.1 + '@aws-sdk/middleware-bucket-endpoint@3.972.3': dependencies: '@aws-sdk/types': 3.973.1 @@ -56177,30 +56393,27 @@ snapshots: '@smithy/util-config-provider': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-bucket-endpoint@3.972.7': - dependencies: - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-arn-parser': 3.972.3 - '@smithy/node-config-provider': 4.3.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-config-provider': 4.2.2 - tslib: 2.8.1 - '@aws-sdk/middleware-endpoint-discovery@3.957.0': dependencies: '@aws-sdk/endpoint-cache': 3.957.0 '@aws-sdk/types': 3.957.0 - '@smithy/node-config-provider': 4.3.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/types': 4.12.0 + '@smithy/node-config-provider': 4.3.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@aws-sdk/middleware-eventstream@3.957.0': dependencies: '@aws-sdk/types': 3.957.0 - '@smithy/protocol-http': 5.3.8 - '@smithy/types': 4.12.0 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-expect-continue@3.957.0': + dependencies: + '@aws-sdk/types': 3.957.0 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@aws-sdk/middleware-expect-continue@3.972.3': @@ -56210,11 +56423,21 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/middleware-expect-continue@3.972.7': + '@aws-sdk/middleware-flexible-checksums@3.957.0': dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 + '@aws-crypto/crc32': 5.2.0 + '@aws-crypto/crc32c': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/core': 3.957.0 + '@aws-sdk/crc64-nvme': 3.957.0 + '@aws-sdk/types': 3.957.0 + '@smithy/is-array-buffer': 4.2.0 + '@smithy/node-config-provider': 4.3.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-stream': 4.5.8 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 '@aws-sdk/middleware-flexible-checksums@3.972.3': @@ -56234,26 +56457,16 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.973.4': + '@aws-sdk/middleware-host-header@3.957.0': dependencies: - '@aws-crypto/crc32': 5.2.0 - '@aws-crypto/crc32c': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.973.18 - '@aws-sdk/crc64-nvme': 3.972.4 - '@aws-sdk/types': 3.973.5 - '@smithy/is-array-buffer': 4.2.2 - '@smithy/node-config-provider': 4.3.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-stream': 4.5.17 - '@smithy/util-utf8': 4.2.2 + '@aws-sdk/types': 3.957.0 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.957.0': + '@aws-sdk/middleware-host-header@3.972.2': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.973.1 '@smithy/protocol-http': 5.3.8 '@smithy/types': 4.12.0 tslib: 2.8.1 @@ -56265,11 +56478,10 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.972.7': + '@aws-sdk/middleware-location-constraint@3.957.0': dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 + '@aws-sdk/types': 3.957.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@aws-sdk/middleware-location-constraint@3.972.3': @@ -56278,15 +56490,15 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/middleware-location-constraint@3.972.7': + '@aws-sdk/middleware-logger@3.957.0': dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/types': 4.13.0 + '@aws-sdk/types': 3.957.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.957.0': + '@aws-sdk/middleware-logger@3.972.2': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.973.1 '@smithy/types': 4.12.0 tslib: 2.8.1 @@ -56296,16 +56508,18 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.972.7': + '@aws-sdk/middleware-recursion-detection@3.957.0': dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/types': 4.13.0 + '@aws-sdk/types': 3.957.0 + '@aws/lambda-invoke-store': 0.2.2 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.957.0': + '@aws-sdk/middleware-recursion-detection@3.972.2': dependencies: - '@aws-sdk/types': 3.957.0 - '@aws/lambda-invoke-store': 0.2.3 + '@aws-sdk/types': 3.973.1 + '@aws/lambda-invoke-store': 0.2.2 '@smithy/protocol-http': 5.3.8 '@smithy/types': 4.12.0 tslib: 2.8.1 @@ -56318,12 +56532,15 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.972.7': + '@aws-sdk/middleware-sdk-ec2@3.957.0': dependencies: - '@aws-sdk/types': 3.973.5 - '@aws/lambda-invoke-store': 0.2.3 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 + '@aws-sdk/types': 3.957.0 + '@aws-sdk/util-format-url': 3.957.0 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/protocol-http': 5.3.7 + '@smithy/signature-v4': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@aws-sdk/middleware-sdk-ec2@3.972.4': @@ -56352,35 +56569,18 @@ snapshots: '@aws-sdk/core': 3.957.0 '@aws-sdk/types': 3.957.0 '@aws-sdk/util-arn-parser': 3.957.0 - '@smithy/core': 3.22.0 - '@smithy/node-config-provider': 4.3.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/signature-v4': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 + '@smithy/core': 3.20.0 + '@smithy/node-config-provider': 4.3.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/signature-v4': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 '@smithy/util-config-provider': 4.2.0 - '@smithy/util-middleware': 4.2.8 - '@smithy/util-stream': 4.5.10 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-stream': 4.5.8 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.972.18': - dependencies: - '@aws-sdk/core': 3.973.18 - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-arn-parser': 3.972.3 - '@smithy/core': 3.23.9 - '@smithy/node-config-provider': 4.3.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/signature-v4': 5.3.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/util-config-provider': 4.2.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-stream': 4.5.17 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.972.5': dependencies: '@aws-sdk/core': 3.973.5 @@ -56401,22 +56601,22 @@ snapshots: '@aws-sdk/middleware-sdk-sqs@3.957.0': dependencies: '@aws-sdk/types': 3.957.0 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 '@smithy/util-hex-encoding': 4.2.0 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-ssec@3.972.3': + '@aws-sdk/middleware-ssec@3.957.0': dependencies: - '@aws-sdk/types': 3.973.1 - '@smithy/types': 4.12.0 + '@aws-sdk/types': 3.957.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/middleware-ssec@3.972.7': + '@aws-sdk/middleware-ssec@3.972.3': dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/types': 4.13.0 + '@aws-sdk/types': 3.973.1 + '@smithy/types': 4.12.0 tslib: 2.8.1 '@aws-sdk/middleware-user-agent@3.957.0': @@ -56424,20 +56624,19 @@ snapshots: '@aws-sdk/core': 3.957.0 '@aws-sdk/types': 3.957.0 '@aws-sdk/util-endpoints': 3.957.0 - '@smithy/core': 3.22.0 - '@smithy/protocol-http': 5.3.8 - '@smithy/types': 4.12.0 + '@smithy/core': 3.20.0 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.972.19': + '@aws-sdk/middleware-user-agent@3.972.4': dependencies: - '@aws-sdk/core': 3.973.18 - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-endpoints': 3.996.4 - '@smithy/core': 3.23.9 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-retry': 4.2.11 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.972.0 + '@smithy/core': 3.22.0 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 '@aws-sdk/middleware-user-agent@3.972.5': @@ -56454,12 +56653,12 @@ snapshots: dependencies: '@aws-sdk/types': 3.957.0 '@aws-sdk/util-format-url': 3.957.0 - '@smithy/eventstream-codec': 4.2.8 - '@smithy/eventstream-serde-browser': 4.2.8 - '@smithy/fetch-http-handler': 5.3.9 - '@smithy/protocol-http': 5.3.8 - '@smithy/signature-v4': 5.3.8 - '@smithy/types': 4.12.0 + '@smithy/eventstream-codec': 4.2.7 + '@smithy/eventstream-serde-browser': 4.2.7 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/protocol-http': 5.3.7 + '@smithy/signature-v4': 5.3.7 + '@smithy/types': 4.11.0 '@smithy/util-hex-encoding': 4.2.0 tslib: 2.8.1 @@ -56477,6 +56676,49 @@ snapshots: '@aws-sdk/util-endpoints': 3.957.0 '@aws-sdk/util-user-agent-browser': 3.957.0 '@aws-sdk/util-user-agent-node': 3.957.0 + '@smithy/config-resolver': 4.4.5 + '@smithy/core': 3.20.0 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/hash-node': 4.2.7 + '@smithy/invalid-dependency': 4.2.7 + '@smithy/middleware-content-length': 4.2.7 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-retry': 4.4.17 + '@smithy/middleware-serde': 4.2.8 + '@smithy/middleware-stack': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/node-http-handler': 4.4.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.16 + '@smithy/util-defaults-mode-node': 4.2.19 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/nested-clients@3.975.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/middleware-host-header': 3.972.2 + '@aws-sdk/middleware-logger': 3.972.2 + '@aws-sdk/middleware-recursion-detection': 3.972.2 + '@aws-sdk/middleware-user-agent': 3.972.4 + '@aws-sdk/region-config-resolver': 3.972.2 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.972.0 + '@aws-sdk/util-user-agent-browser': 3.972.2 + '@aws-sdk/util-user-agent-node': 3.972.2 '@smithy/config-resolver': 4.4.6 '@smithy/core': 3.22.0 '@smithy/fetch-http-handler': 5.3.9 @@ -56549,52 +56791,17 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/nested-clients@3.996.7': + '@aws-sdk/region-config-resolver@3.957.0': dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.18 - '@aws-sdk/middleware-host-header': 3.972.7 - '@aws-sdk/middleware-logger': 3.972.7 - '@aws-sdk/middleware-recursion-detection': 3.972.7 - '@aws-sdk/middleware-user-agent': 3.972.19 - '@aws-sdk/region-config-resolver': 3.972.7 - '@aws-sdk/types': 3.973.5 - '@aws-sdk/util-endpoints': 3.996.4 - '@aws-sdk/util-user-agent-browser': 3.972.7 - '@aws-sdk/util-user-agent-node': 3.973.4 - '@smithy/config-resolver': 4.4.10 - '@smithy/core': 3.23.9 - '@smithy/fetch-http-handler': 5.3.13 - '@smithy/hash-node': 4.2.11 - '@smithy/invalid-dependency': 4.2.11 - '@smithy/middleware-content-length': 4.2.11 - '@smithy/middleware-endpoint': 4.4.23 - '@smithy/middleware-retry': 4.4.40 - '@smithy/middleware-serde': 4.2.12 - '@smithy/middleware-stack': 4.2.11 - '@smithy/node-config-provider': 4.3.11 - '@smithy/node-http-handler': 4.4.14 - '@smithy/protocol-http': 5.3.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.39 - '@smithy/util-defaults-mode-node': 4.2.42 - '@smithy/util-endpoints': 3.3.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-retry': 4.2.11 - '@smithy/util-utf8': 4.2.2 + '@aws-sdk/types': 3.957.0 + '@smithy/config-resolver': 4.4.5 + '@smithy/node-config-provider': 4.3.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - '@aws-sdk/region-config-resolver@3.957.0': + '@aws-sdk/region-config-resolver@3.972.2': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.973.1 '@smithy/config-resolver': 4.4.6 '@smithy/node-config-provider': 4.3.8 '@smithy/types': 4.12.0 @@ -56608,32 +56815,24 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/region-config-resolver@3.972.7': - dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/config-resolver': 4.4.10 - '@smithy/node-config-provider': 4.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - '@aws-sdk/s3-request-presigner@3.958.0': dependencies: '@aws-sdk/signature-v4-multi-region': 3.957.0 '@aws-sdk/types': 3.957.0 '@aws-sdk/util-format-url': 3.957.0 - '@smithy/middleware-endpoint': 4.4.12 - '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.11.1 - '@smithy/types': 4.12.0 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/protocol-http': 5.3.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@aws-sdk/signature-v4-multi-region@3.957.0': dependencies: '@aws-sdk/middleware-sdk-s3': 3.957.0 '@aws-sdk/types': 3.957.0 - '@smithy/protocol-http': 5.3.8 - '@smithy/signature-v4': 5.3.8 - '@smithy/types': 4.12.0 + '@smithy/protocol-http': 5.3.7 + '@smithy/signature-v4': 5.3.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@aws-sdk/signature-v4-multi-region@3.980.0': @@ -56645,32 +56844,23 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.996.6': - dependencies: - '@aws-sdk/middleware-sdk-s3': 3.972.18 - '@aws-sdk/types': 3.973.5 - '@smithy/protocol-http': 5.3.11 - '@smithy/signature-v4': 5.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - - '@aws-sdk/token-providers@3.1004.0': + '@aws-sdk/token-providers@3.958.0': dependencies: - '@aws-sdk/core': 3.973.18 - '@aws-sdk/nested-clients': 3.996.7 - '@aws-sdk/types': 3.973.5 - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 + '@aws-sdk/core': 3.957.0 + '@aws-sdk/nested-clients': 3.958.0 + '@aws-sdk/types': 3.957.0 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/token-providers@3.958.0': + '@aws-sdk/token-providers@3.975.0': dependencies: - '@aws-sdk/core': 3.957.0 - '@aws-sdk/nested-clients': 3.958.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/nested-clients': 3.975.0 + '@aws-sdk/types': 3.973.1 '@smithy/property-provider': 4.2.8 '@smithy/shared-ini-file-loader': 4.4.3 '@smithy/types': 4.12.0 @@ -56692,7 +56882,7 @@ snapshots: '@aws-sdk/types@3.957.0': dependencies: - '@smithy/types': 4.12.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@aws-sdk/types@3.972.0': @@ -56705,11 +56895,6 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/types@3.973.5': - dependencies: - '@smithy/types': 4.13.0 - tslib: 2.8.1 - '@aws-sdk/util-arn-parser@3.957.0': dependencies: tslib: 2.8.1 @@ -56718,16 +56903,12 @@ snapshots: dependencies: tslib: 2.8.1 - '@aws-sdk/util-arn-parser@3.972.3': - dependencies: - tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.957.0': dependencies: '@aws-sdk/types': 3.957.0 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 - '@smithy/util-endpoints': 3.2.8 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + '@smithy/util-endpoints': 3.2.7 tslib: 2.8.1 '@aws-sdk/util-endpoints@3.972.0': @@ -56746,19 +56927,11 @@ snapshots: '@smithy/util-endpoints': 3.2.8 tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.996.4': - dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - '@smithy/util-endpoints': 3.3.2 - tslib: 2.8.1 - '@aws-sdk/util-format-url@3.957.0': dependencies: '@aws-sdk/types': 3.957.0 - '@smithy/querystring-builder': 4.2.8 - '@smithy/types': 4.12.0 + '@smithy/querystring-builder': 4.2.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@aws-sdk/util-format-url@3.972.2': @@ -56775,21 +56948,21 @@ snapshots: '@aws-sdk/util-user-agent-browser@3.957.0': dependencies: '@aws-sdk/types': 3.957.0 - '@smithy/types': 4.12.0 + '@smithy/types': 4.11.0 bowser: 2.13.1 tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.972.3': + '@aws-sdk/util-user-agent-browser@3.972.2': dependencies: '@aws-sdk/types': 3.973.1 '@smithy/types': 4.12.0 bowser: 2.13.1 tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.972.7': + '@aws-sdk/util-user-agent-browser@3.972.3': dependencies: - '@aws-sdk/types': 3.973.5 - '@smithy/types': 4.13.0 + '@aws-sdk/types': 3.973.1 + '@smithy/types': 4.12.0 bowser: 2.13.1 tslib: 2.8.1 @@ -56797,6 +56970,14 @@ snapshots: dependencies: '@aws-sdk/middleware-user-agent': 3.957.0 '@aws-sdk/types': 3.957.0 + '@smithy/node-config-provider': 4.3.7 + '@smithy/types': 4.11.0 + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-node@3.972.2': + dependencies: + '@aws-sdk/middleware-user-agent': 3.972.4 + '@aws-sdk/types': 3.973.1 '@smithy/node-config-provider': 4.3.8 '@smithy/types': 4.12.0 tslib: 2.8.1 @@ -56809,32 +56990,20 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.973.4': - dependencies: - '@aws-sdk/middleware-user-agent': 3.972.19 - '@aws-sdk/types': 3.973.5 - '@smithy/node-config-provider': 4.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - '@aws-sdk/xml-builder@3.957.0': dependencies: - '@smithy/types': 4.12.0 - fast-xml-parser: 5.3.4 - tslib: 2.8.1 - - '@aws-sdk/xml-builder@3.972.10': - dependencies: - '@smithy/types': 4.13.0 - fast-xml-parser: 5.3.4 + '@smithy/types': 4.11.0 + fast-xml-parser: 5.2.5 tslib: 2.8.1 '@aws-sdk/xml-builder@3.972.2': dependencies: '@smithy/types': 4.12.0 - fast-xml-parser: 5.3.4 + fast-xml-parser: 5.2.5 tslib: 2.8.1 + '@aws/lambda-invoke-store@0.2.2': {} + '@aws/lambda-invoke-store@0.2.3': {} '@axe-core/playwright@4.11.0(playwright-core@1.58.1)': @@ -57150,26 +57319,34 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/code-frame@7.29.0': dependencies: '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/compat-data@7.28.5': {} + '@babel/compat-data@7.29.0': {} '@babel/core@7.26.10': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.26.10) - '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.26.10) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 convert-source-map: 2.0.0 debug: 4.4.3(supports-color@5.5.0) gensync: 1.0.0-beta.2 @@ -57180,15 +57357,15 @@ snapshots: '@babel/core@7.28.5': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.5) - '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3(supports-color@5.5.0) @@ -57228,10 +57405,18 @@ snapshots: '@babel/generator@7.18.2': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.28.5 '@jridgewell/gen-mapping': 0.3.13 jsesc: 2.5.2 + '@babel/generator@7.28.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + '@babel/generator@7.29.0': dependencies: '@babel/parser': 7.29.0 @@ -57244,6 +57429,14 @@ snapshots: dependencies: '@babel/types': 7.29.0 + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.28.5 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.1 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-compilation-targets@7.28.6': dependencies: '@babel/compat-data': 7.29.0 @@ -57252,28 +57445,41 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.28.5)': + '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.28.5) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': + '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.28.5) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.28.6 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -57295,7 +57501,7 @@ snapshots: '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.28.6 debug: 4.4.3(supports-color@5.5.0) lodash.debounce: 4.0.8 @@ -57306,7 +57512,7 @@ snapshots: '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.28.6 debug: 4.4.3(supports-color@5.5.0) lodash.debounce: 4.0.8 @@ -57322,24 +57528,49 @@ snapshots: '@babel/helper-member-expression-to-functions@7.28.5': dependencies: - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-imports@7.28.6': dependencies: - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.6 '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.6(@babel/core@7.26.10)': + '@babel/helper-module-transforms@7.28.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.28.6 + '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -57348,7 +57579,7 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.28.6 '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.6 transitivePeerDependencies: - supports-color @@ -57357,7 +57588,7 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-module-imports': 7.28.6 '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.6 transitivePeerDependencies: - supports-color @@ -57365,6 +57596,8 @@ snapshots: dependencies: '@babel/types': 7.29.0 + '@babel/helper-plugin-utils@7.27.1': {} + '@babel/helper-plugin-utils@7.28.6': {} '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.5)': @@ -57372,7 +57605,7 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.28.3 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -57381,31 +57614,40 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.28.3 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.28.6(@babel/core@7.28.5)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.28.6(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.6 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -57418,12 +57660,17 @@ snapshots: '@babel/helper-wrap-function@7.28.3': dependencies: - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color + '@babel/helpers@7.28.4': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + '@babel/helpers@7.28.6': dependencies: '@babel/template': 7.28.6 @@ -57431,7 +57678,11 @@ snapshots: '@babel/parser@7.18.4': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.28.5 + + '@babel/parser@7.28.5': + dependencies: + '@babel/types': 7.28.5 '@babel/parser@7.29.0': dependencies: @@ -57440,43 +57691,43 @@ snapshots: '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) transitivePeerDependencies: @@ -57485,7 +57736,7 @@ snapshots: '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.29.0) transitivePeerDependencies: @@ -57494,16 +57745,16 @@ snapshots: '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -57520,7 +57771,7 @@ snapshots: '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.5) + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color @@ -57528,8 +57779,8 @@ snapshots: '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color @@ -57558,9 +57809,9 @@ snapshots: '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.28.5)': dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.28.5 '@babel/core': 7.28.5 - '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) @@ -57588,6 +57839,12 @@ snapshots: dependencies: '@babel/core': 7.29.0 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.28.6 + optional: true + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57598,6 +57855,12 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.28.6 + optional: true + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57608,6 +57871,12 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.28.6 + optional: true + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57618,6 +57887,12 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.28.6 + optional: true + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57663,25 +57938,42 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 + optional: true '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.28.6 + optional: true '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)': dependencies: @@ -57693,6 +57985,12 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.28.6 + optional: true + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57703,6 +58001,16 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57713,6 +58021,12 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.28.6 + optional: true + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57723,6 +58037,12 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.28.6 + optional: true + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57733,6 +58053,12 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.28.6 + optional: true + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57743,6 +58069,12 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.28.6 + optional: true + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57753,6 +58085,12 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.28.6 + optional: true + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57763,6 +58101,12 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.28.6 + optional: true + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57773,6 +58117,12 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.28.6 + optional: true + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57783,6 +58133,12 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.28.6 + optional: true + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57793,6 +58149,16 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -57807,47 +58173,47 @@ snapshots: dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -57855,8 +58221,8 @@ snapshots: '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color @@ -57864,52 +58230,52 @@ snapshots: '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -57917,11 +58283,11 @@ snapshots: dependencies: '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-globals': 7.28.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.28.5) - '@babel/traverse': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -57929,39 +58295,39 @@ snapshots: dependencies: '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-globals': 7.28.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/template': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.2 '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/template': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.2 '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -57969,50 +58335,50 @@ snapshots: dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -58020,7 +58386,7 @@ snapshots: '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) transitivePeerDependencies: - supports-color @@ -58028,22 +58394,22 @@ snapshots: '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.28.5)': dependencies: @@ -58060,7 +58426,7 @@ snapshots: '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color @@ -58068,7 +58434,7 @@ snapshots: '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color @@ -58076,126 +58442,134 @@ snapshots: '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.28.5)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.28.5)': + '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -58203,91 +58577,91 @@ snapshots: dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.5)': dependencies: @@ -58300,7 +58674,7 @@ snapshots: '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color @@ -58308,7 +58682,7 @@ snapshots: '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color @@ -58316,26 +58690,26 @@ snapshots: '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -58343,8 +58717,8 @@ snapshots: dependencies: '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -58352,30 +58726,30 @@ snapshots: dependencies: '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.5)': dependencies: @@ -58408,10 +58782,10 @@ snapshots: dependencies: '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.28.5) - '@babel/types': 7.29.0 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -58419,10 +58793,10 @@ snapshots: dependencies: '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/types': 7.29.0 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -58430,45 +58804,45 @@ snapshots: dependencies: '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-runtime@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) @@ -58479,8 +58853,8 @@ snapshots: '@babel/plugin-transform-runtime@7.28.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.29.0) babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0) babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.29.0) @@ -58491,17 +58865,17 @@ snapshots: '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color @@ -58509,7 +58883,7 @@ snapshots: '@babel/plugin-transform-spread@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color @@ -58517,107 +58891,118 @@ snapshots: '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.28.5)': + '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.5) + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.28.5) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.0)': + '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.5)': + '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/preset-env@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.28.5 '@babel/core': 7.28.5 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.28.5) '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.5) @@ -58652,7 +59037,7 @@ snapshots: '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.5) '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.28.5) '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) @@ -58690,10 +59075,10 @@ snapshots: '@babel/preset-env@7.28.5(@babel/core@7.29.0)': dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.28.5 '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0) '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) @@ -58728,7 +59113,7 @@ snapshots: '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.29.0) '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.29.0) '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.0) @@ -58774,21 +59159,21 @@ snapshots: '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/types': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.28.5 esutils: 2.0.3 '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/types': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.28.5 esutils: 2.0.3 '@babel/preset-react@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.5) '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5) @@ -58830,12 +59215,42 @@ snapshots: '@babel/runtime@7.28.4': {} + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 '@babel/parser': 7.29.0 '@babel/types': 7.29.0 + '@babel/traverse@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + debug: 4.4.3(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/traverse@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.0 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + '@babel/traverse@7.29.0': dependencies: '@babel/code-frame': 7.29.0 @@ -58854,6 +59269,11 @@ snapshots: '@babel/helper-validator-identifier': 7.28.5 to-fast-properties: 2.0.0 + '@babel/types@7.28.5': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/types@7.29.0': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -58865,14 +59285,14 @@ snapshots: '@bcoe/v8-coverage@1.0.2': {} - '@bkrem/react-transition-group@1.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@bkrem/react-transition-group@1.3.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: chain-function: 1.0.1 dom-helpers: 3.4.0 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) react-lifecycles-compat: 3.0.4 warning: 3.0.0 @@ -58966,11 +59386,15 @@ snapshots: '@colors/colors@1.6.0': {} - '@commitlint/cli@19.8.1(@types/node@25.0.10)(typescript@5.9.3)': + '@commander-js/extra-typings@14.0.0(commander@14.0.3)': + dependencies: + commander: 14.0.3 + + '@commitlint/cli@19.8.1(@types/node@25.0.3)(typescript@5.9.3)': dependencies: '@commitlint/format': 19.8.1 '@commitlint/lint': 19.8.1 - '@commitlint/load': 19.8.1(@types/node@25.0.10)(typescript@5.9.3) + '@commitlint/load': 19.8.1(@types/node@25.0.3)(typescript@5.9.3) '@commitlint/read': 19.8.1 '@commitlint/types': 19.8.1 tinyexec: 1.0.2 @@ -58987,7 +59411,7 @@ snapshots: '@commitlint/config-validator@19.8.1': dependencies: '@commitlint/types': 19.8.1 - ajv: 8.18.0 + ajv: 8.17.1 '@commitlint/ensure@19.8.1': dependencies: @@ -59017,7 +59441,7 @@ snapshots: '@commitlint/rules': 19.8.1 '@commitlint/types': 19.8.1 - '@commitlint/load@19.8.1(@types/node@25.0.10)(typescript@5.9.3)': + '@commitlint/load@19.8.1(@types/node@25.0.3)(typescript@5.9.3)': dependencies: '@commitlint/config-validator': 19.8.1 '@commitlint/execute-rule': 19.8.1 @@ -59025,7 +59449,7 @@ snapshots: '@commitlint/types': 19.8.1 chalk: 5.6.2 cosmiconfig: 9.0.0(typescript@5.9.3) - cosmiconfig-typescript-loader: 6.2.0(@types/node@25.0.10)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) + cosmiconfig-typescript-loader: 6.2.0(@types/node@25.0.3)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -59125,7 +59549,7 @@ snapshots: '@cypress/xvfb@1.2.4(supports-color@8.1.1)': dependencies: - debug: 3.2.7(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) lodash.once: 4.1.1 transitivePeerDependencies: - supports-color @@ -59182,7 +59606,7 @@ snapshots: '@luma.gl/webgl': 9.2.5(@luma.gl/core@9.2.5) esri-loader: 3.7.0 - '@deck.gl/carto@9.2.5(87e66da4f47275c9c667d82e95471ef6)': + '@deck.gl/carto@9.2.5(7ytkyssjzara2nhq77k4m2lfay)': dependencies: '@carto/api-client': 0.5.23(@loaders.gl/core@4.3.4) '@deck.gl/aggregation-layers': 9.2.5(@deck.gl/core@9.2.5)(@deck.gl/layers@9.2.5(@deck.gl/core@9.2.5)(@loaders.gl/core@4.3.4)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))))(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))) @@ -59320,12 +59744,12 @@ snapshots: transitivePeerDependencies: - '@loaders.gl/core' - '@deck.gl/react@9.2.5(@deck.gl/core@9.2.5)(@deck.gl/widgets@9.2.5(@deck.gl/core@9.2.5)(@luma.gl/core@9.2.5))(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@deck.gl/react@9.2.5(@deck.gl/core@9.2.5)(@deck.gl/widgets@9.2.5(@deck.gl/core@9.2.5)(@luma.gl/core@9.2.5))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@deck.gl/core': 9.2.5 '@deck.gl/widgets': 9.2.5(@deck.gl/core@9.2.5)(@luma.gl/core@9.2.5) react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) '@deck.gl/widgets@9.2.5(@deck.gl/core@9.2.5)(@luma.gl/core@9.2.5)': dependencies: @@ -59333,6 +59757,34 @@ snapshots: '@luma.gl/core': 9.2.5 preact: 10.28.2 + '@definitelytyped/header-parser@0.2.22': + dependencies: + '@definitelytyped/typescript-versions': 0.1.10 + '@definitelytyped/utils': 0.1.10 + semver: 7.7.3 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + - supports-color + + '@definitelytyped/typescript-versions@0.1.10': {} + + '@definitelytyped/utils@0.1.10': + dependencies: + '@types/node': 25.1.0 + cachedir: 2.4.0 + charm: 1.0.2 + libnpmpublish: 11.1.3 + minimatch: 10.1.1 + npm-registry-fetch: 19.1.1 + tar: 7.5.7 + tar-stream: 3.1.7 + which: 6.0.0 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + - supports-color + '@derhuerst/http-basic@8.2.4': dependencies: caseless: 0.12.0 @@ -59361,13 +59813,13 @@ snapshots: '@elastic/transport@9.2.3': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) debug: 4.4.3(supports-color@5.5.0) hpagent: 1.2.0 ms: 2.1.3 secure-json-parse: 4.1.0 tslib: 2.8.1 - undici: 7.19.2 + undici: 7.19.0 transitivePeerDependencies: - supports-color @@ -59385,7 +59837,7 @@ snapshots: '@electron/fuses@1.8.0': dependencies: - chalk: 4.1.2 + chalk: 5.6.2 fs-extra: 9.1.0 minimist: 1.2.8 @@ -59442,7 +59894,7 @@ snapshots: dependencies: '@electron/node-gyp': https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2 '@malept/cross-spawn-promise': 2.0.0 - chalk: 4.1.2 + chalk: 5.6.2 debug: 4.4.3(supports-color@5.5.0) detect-libc: 2.1.2 fs-extra: 10.1.0 @@ -59460,7 +59912,7 @@ snapshots: '@electron/universal@2.0.1': dependencies: - '@electron/asar': 3.4.1 + '@electron/asar': 3.2.18 '@malept/cross-spawn-promise': 2.0.0 debug: 4.4.3(supports-color@5.5.0) dir-compare: 4.2.0 @@ -59499,7 +59951,7 @@ snapshots: '@emotion/babel-plugin@11.13.5': dependencies: - '@babel/helper-module-imports': 7.28.6 + '@babel/helper-module-imports': 7.27.1 '@babel/runtime': 7.28.4 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 @@ -59529,22 +59981,6 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.4 - '@emotion/babel-plugin': 11.13.5 - '@emotion/cache': 11.14.0 - '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) - '@emotion/utils': 1.4.2 - '@emotion/weak-memoize': 0.4.0 - hoist-non-react-statics: 3.3.2 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - transitivePeerDependencies: - - supports-color - '@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 @@ -59588,21 +60024,6 @@ snapshots: '@emotion/sheet@1.4.0': {} - '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.4 - '@emotion/babel-plugin': 11.13.5 - '@emotion/is-prop-valid': 1.4.0 - '@emotion/react': 11.14.0(@types/react@18.3.11)(react@18.3.1) - '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) - '@emotion/utils': 1.4.2 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - transitivePeerDependencies: - - supports-color - '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 @@ -59636,10 +60057,6 @@ snapshots: '@emotion/unitless@0.10.0': {} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)': - dependencies: - react: 18.3.1 - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.1)': dependencies: react: 19.2.1 @@ -59745,14 +60162,9 @@ snapshots: '@esbuild/win32-x64@0.27.2': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@8.57.1)': - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.9.1(eslint@9.39.1(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2(jiti@2.6.1))': dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@1.21.7))': @@ -59783,20 +60195,6 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.4.3(supports-color@5.5.0) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.1 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - '@eslint/eslintrc@3.3.3': dependencies: ajv: 6.12.6 @@ -59811,8 +60209,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.1': {} - '@eslint/js@9.39.1': {} '@eslint/js@9.39.2': {} @@ -59860,6 +60256,8 @@ snapshots: '@exodus/bytes@1.6.0': {} + '@exodus/schemasafe@1.3.0': {} + '@faker-js/faker@8.4.1': {} '@fast-csv/format@4.3.5': @@ -59885,10 +60283,16 @@ snapshots: '@fastify/accept-negotiator@2.0.1': {} + '@fastify/ajv-compiler@3.6.0': + dependencies: + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + fast-uri: 2.4.0 + '@fastify/ajv-compiler@4.0.5': dependencies: - ajv: 8.18.0 - ajv-formats: 3.0.1(ajv@8.18.0) + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) fast-uri: 3.1.0 '@fastify/busboy@2.1.1': {} @@ -59919,12 +60323,23 @@ snapshots: '@fastify/deepmerge@3.1.0': {} + '@fastify/error@3.4.1': {} + '@fastify/error@4.2.0': {} + '@fastify/fast-json-stringify-compiler@4.3.0': + dependencies: + fast-json-stringify: 5.16.1 + '@fastify/fast-json-stringify-compiler@5.0.3': dependencies: fast-json-stringify: 6.1.1 + '@fastify/formbody@7.4.0': + dependencies: + fast-querystring: 1.1.2 + fastify-plugin: 4.5.1 + '@fastify/forwarded@3.0.1': {} '@fastify/helmet@11.1.1': @@ -60382,6 +60797,10 @@ snapshots: '@floating-ui/core@0.7.3': {} + '@floating-ui/core@1.7.3': + dependencies: + '@floating-ui/utils': 0.2.10 + '@floating-ui/core@1.7.4': dependencies: '@floating-ui/utils': 0.2.10 @@ -60390,35 +60809,34 @@ snapshots: dependencies: '@floating-ui/core': 0.7.3 + '@floating-ui/dom@1.7.4': + dependencies: + '@floating-ui/core': 1.7.3 + '@floating-ui/utils': 0.2.10 + '@floating-ui/dom@1.7.5': dependencies: '@floating-ui/core': 1.7.4 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@0.7.2(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@floating-ui/react-dom@0.7.2(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@floating-ui/dom': 0.5.4 react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) use-isomorphic-layout-effect: 1.2.1(@types/react@18.3.11)(react@19.2.1) transitivePeerDependencies: - '@types/react' '@floating-ui/react-dom@1.3.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@floating-ui/dom': 1.7.5 + '@floating-ui/dom': 1.7.4 react: 19.2.1 react-dom: 19.2.1(react@19.2.1) - '@floating-ui/react-dom@2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/dom': 1.7.5 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - '@floating-ui/react-dom@2.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@floating-ui/dom': 1.7.5 + '@floating-ui/dom': 1.7.4 react: 19.2.1 react-dom: 19.2.1(react@19.2.1) @@ -60428,7 +60846,7 @@ snapshots: aria-hidden: 1.2.6 react: 19.2.1 react-dom: 19.2.1(react@19.2.1) - tabbable: 6.4.0 + tabbable: 6.3.0 '@floating-ui/react@0.26.28(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: @@ -60436,7 +60854,7 @@ snapshots: '@floating-ui/utils': 0.2.10 react: 19.2.1 react-dom: 19.2.1(react@19.2.1) - tabbable: 6.4.0 + tabbable: 6.3.0 '@floating-ui/utils@0.2.10': {} @@ -60511,6 +60929,14 @@ snapshots: '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.2 + '@gerrit0/mini-shiki@3.20.0': + dependencies: + '@shikijs/engine-oniguruma': 3.20.0 + '@shikijs/langs': 3.20.0 + '@shikijs/themes': 3.20.0 + '@shikijs/types': 3.20.0 + '@shikijs/vscode-textmate': 10.0.2 + '@google-cloud/billing@5.1.1': dependencies: google-gax: 5.0.6 @@ -60610,7 +61036,7 @@ snapshots: abort-controller: 3.0.0 async-retry: 1.3.3 duplexify: 4.1.3 - fast-xml-parser: 5.3.4 + fast-xml-parser: 4.5.3 gaxios: 6.7.1 google-auth-library: 9.15.1 html-entities: 2.6.0 @@ -60647,9 +61073,9 @@ snapshots: '@graphql-codegen/cli@5.0.7(@fastify/websocket@11.2.0)(@types/node@20.19.27)(enquirer@2.4.1)(graphql@16.12.0)(typescript@5.9.3)': dependencies: - '@babel/generator': 7.29.0 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/generator': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 '@graphql-codegen/client-preset': 4.8.3(graphql@16.12.0) '@graphql-codegen/core': 4.0.2(graphql@16.12.0) '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.12.0) @@ -60664,7 +61090,7 @@ snapshots: '@graphql-tools/url-loader': 8.0.33(@fastify/websocket@11.2.0)(@types/node@20.19.27)(graphql@16.12.0) '@graphql-tools/utils': 10.11.0(graphql@16.12.0) '@whatwg-node/fetch': 0.10.13 - chalk: 4.1.2 + chalk: 5.6.2 cosmiconfig: 8.3.6(typescript@5.9.3) debounce: 1.2.1 detect-indent: 6.1.0 @@ -60696,32 +61122,32 @@ snapshots: - uWebSockets.js - utf-8-validate - '@graphql-codegen/cli@5.0.7(@fastify/websocket@11.2.0)(@types/node@25.0.10)(enquirer@2.4.1)(graphql@16.12.0)(typescript@5.9.3)': + '@graphql-codegen/cli@5.0.7(@fastify/websocket@11.2.0)(@types/node@25.0.3)(enquirer@2.4.1)(graphql@16.12.0)(typescript@5.9.3)': dependencies: - '@babel/generator': 7.29.0 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/generator': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 '@graphql-codegen/client-preset': 4.8.3(graphql@16.12.0) '@graphql-codegen/core': 4.0.2(graphql@16.12.0) '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.12.0) '@graphql-tools/apollo-engine-loader': 8.0.27(graphql@16.12.0) '@graphql-tools/code-file-loader': 8.1.27(graphql@16.12.0) '@graphql-tools/git-loader': 8.0.31(graphql@16.12.0) - '@graphql-tools/github-loader': 8.0.22(@types/node@25.0.10)(graphql@16.12.0) + '@graphql-tools/github-loader': 8.0.22(@types/node@25.0.3)(graphql@16.12.0) '@graphql-tools/graphql-file-loader': 8.1.8(graphql@16.12.0) '@graphql-tools/json-file-loader': 8.0.25(graphql@16.12.0) '@graphql-tools/load': 8.1.7(graphql@16.12.0) - '@graphql-tools/prisma-loader': 8.0.17(@fastify/websocket@11.2.0)(@types/node@25.0.10)(graphql@16.12.0) - '@graphql-tools/url-loader': 8.0.33(@fastify/websocket@11.2.0)(@types/node@25.0.10)(graphql@16.12.0) + '@graphql-tools/prisma-loader': 8.0.17(@fastify/websocket@11.2.0)(@types/node@25.0.3)(graphql@16.12.0) + '@graphql-tools/url-loader': 8.0.33(@fastify/websocket@11.2.0)(@types/node@25.0.3)(graphql@16.12.0) '@graphql-tools/utils': 10.11.0(graphql@16.12.0) '@whatwg-node/fetch': 0.10.13 - chalk: 4.1.2 + chalk: 5.6.2 cosmiconfig: 8.3.6(typescript@5.9.3) debounce: 1.2.1 detect-indent: 6.1.0 graphql: 16.12.0 - graphql-config: 5.1.5(@fastify/websocket@11.2.0)(@types/node@25.0.10)(graphql@16.12.0)(typescript@5.9.3) - inquirer: 8.2.7(@types/node@25.0.10) + graphql-config: 5.1.5(@fastify/websocket@11.2.0)(@types/node@25.0.3)(graphql@16.12.0)(typescript@5.9.3) + inquirer: 8.2.7(@types/node@25.0.3) is-glob: 4.0.3 jiti: 1.21.7 json-to-pretty-yaml: 1.2.2 @@ -60749,9 +61175,9 @@ snapshots: '@graphql-codegen/cli@6.1.0(@fastify/websocket@11.2.0)(@types/node@20.19.27)(graphql@16.12.0)(typescript@5.9.3)': dependencies: - '@babel/generator': 7.29.0 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/generator': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 '@graphql-codegen/client-preset': 5.2.2(graphql@16.12.0) '@graphql-codegen/core': 5.0.0(graphql@16.12.0) '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.12.0) @@ -60766,7 +61192,7 @@ snapshots: '@graphql-tools/utils': 10.11.0(graphql@16.12.0) '@inquirer/prompts': 7.10.1(@types/node@20.19.27) '@whatwg-node/fetch': 0.10.13 - chalk: 4.1.2 + chalk: 5.6.2 cosmiconfig: 9.0.0(typescript@5.9.3) debounce: 2.2.0 detect-indent: 6.1.0 @@ -60799,7 +61225,7 @@ snapshots: '@graphql-codegen/client-preset@4.8.3(graphql@16.12.0)': dependencies: '@babel/helper-plugin-utils': 7.28.6 - '@babel/template': 7.28.6 + '@babel/template': 7.27.2 '@graphql-codegen/add': 5.0.3(graphql@16.12.0) '@graphql-codegen/gql-tag-operations': 4.0.17(graphql@16.12.0) '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.12.0) @@ -60815,8 +61241,8 @@ snapshots: '@graphql-codegen/client-preset@5.2.2(graphql@16.12.0)': dependencies: - '@babel/helper-plugin-utils': 7.28.6 - '@babel/template': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.2 '@graphql-codegen/add': 6.0.0(graphql@16.12.0) '@graphql-codegen/gql-tag-operations': 5.1.2(graphql@16.12.0) '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.12.0) @@ -61010,7 +61436,7 @@ snapshots: dependencies: '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.12.0) '@graphql-tools/optimize': 2.0.0(graphql@16.12.0) - '@graphql-tools/relay-operation-optimizer': 7.0.27(graphql@16.12.0) + '@graphql-tools/relay-operation-optimizer': 7.0.26(graphql@16.12.0) '@graphql-tools/utils': 10.11.0(graphql@16.12.0) auto-bind: 4.0.0 change-case-all: 1.0.15 @@ -61052,7 +61478,7 @@ snapshots: - '@graphql-inspector/loaders' - yargs - '@graphql-inspector/cli@6.0.5(@types/node@25.0.10)(graphql@16.12.0)': + '@graphql-inspector/cli@6.0.5(@types/node@25.0.3)(graphql@16.12.0)': dependencies: '@babel/core': 7.26.10 '@graphql-inspector/audit-command': 5.0.17(@graphql-inspector/config@4.0.2(graphql@16.12.0))(@graphql-inspector/loaders@4.1.0(@graphql-inspector/config@4.0.2(graphql@16.12.0))(graphql@16.12.0))(graphql@16.12.0)(yargs@17.7.2) @@ -61063,14 +61489,14 @@ snapshots: '@graphql-inspector/diff-command': 6.0.5(@graphql-inspector/config@4.0.2(graphql@16.12.0))(@graphql-inspector/loaders@4.1.0(@graphql-inspector/config@4.0.2(graphql@16.12.0))(graphql@16.12.0))(graphql@16.12.0)(yargs@17.7.2) '@graphql-inspector/docs-command': 5.0.5(@graphql-inspector/config@4.0.2(graphql@16.12.0))(@graphql-inspector/loaders@4.1.0(@graphql-inspector/config@4.0.2(graphql@16.12.0))(graphql@16.12.0))(graphql@16.12.0)(yargs@17.7.2) '@graphql-inspector/git-loader': 5.0.1(graphql@16.12.0) - '@graphql-inspector/github-loader': 5.0.1(@types/node@25.0.10)(graphql@16.12.0) + '@graphql-inspector/github-loader': 5.0.1(@types/node@25.0.3)(graphql@16.12.0) '@graphql-inspector/graphql-loader': 5.0.1(graphql@16.12.0) '@graphql-inspector/introspect-command': 5.0.17(@graphql-inspector/config@4.0.2(graphql@16.12.0))(@graphql-inspector/loaders@4.1.0(@graphql-inspector/config@4.0.2(graphql@16.12.0))(graphql@16.12.0))(graphql@16.12.0)(yargs@17.7.2) '@graphql-inspector/json-loader': 5.0.1(graphql@16.12.0) '@graphql-inspector/loaders': 4.1.0(@graphql-inspector/config@4.0.2(graphql@16.12.0))(graphql@16.12.0) '@graphql-inspector/serve-command': 5.0.7(@graphql-inspector/config@4.0.2(graphql@16.12.0))(@graphql-inspector/loaders@4.1.0(@graphql-inspector/config@4.0.2(graphql@16.12.0))(graphql@16.12.0))(graphql@16.12.0)(yargs@17.7.2) '@graphql-inspector/similar-command': 5.0.17(@graphql-inspector/config@4.0.2(graphql@16.12.0))(@graphql-inspector/loaders@4.1.0(@graphql-inspector/config@4.0.2(graphql@16.12.0))(graphql@16.12.0))(graphql@16.12.0)(yargs@17.7.2) - '@graphql-inspector/url-loader': 5.0.1(@types/node@25.0.10)(graphql@16.12.0) + '@graphql-inspector/url-loader': 5.0.1(@types/node@25.0.3)(graphql@16.12.0) '@graphql-inspector/validate-command': 5.0.17(@graphql-inspector/config@4.0.2(graphql@16.12.0))(@graphql-inspector/loaders@4.1.0(@graphql-inspector/config@4.0.2(graphql@16.12.0))(graphql@16.12.0))(graphql@16.12.0)(yargs@17.7.2) graphql: 16.12.0 tslib: 2.6.2 @@ -61153,9 +61579,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@graphql-inspector/github-loader@5.0.1(@types/node@25.0.10)(graphql@16.12.0)': + '@graphql-inspector/github-loader@5.0.1(@types/node@25.0.3)(graphql@16.12.0)': dependencies: - '@graphql-tools/github-loader': 8.0.1(@types/node@25.0.10)(graphql@16.12.0) + '@graphql-tools/github-loader': 8.0.1(@types/node@25.0.3)(graphql@16.12.0) graphql: 16.12.0 tslib: 2.6.2 transitivePeerDependencies: @@ -61199,7 +61625,7 @@ snapshots: '@graphql-inspector/logger@5.0.1': dependencies: - chalk: 4.1.2 + chalk: 5.6.2 figures: 3.2.0 log-symbols: 4.1.0 std-env: 3.7.0 @@ -61230,9 +61656,9 @@ snapshots: - '@graphql-inspector/loaders' - yargs - '@graphql-inspector/url-loader@5.0.1(@types/node@25.0.10)(graphql@16.12.0)': + '@graphql-inspector/url-loader@5.0.1(@types/node@25.0.3)(graphql@16.12.0)': dependencies: - '@graphql-tools/url-loader': 8.0.2(@types/node@25.0.10)(graphql@16.12.0) + '@graphql-tools/url-loader': 8.0.2(@types/node@25.0.3)(graphql@16.12.0) graphql: 16.12.0 tslib: 2.6.2 transitivePeerDependencies: @@ -61428,7 +61854,7 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@graphql-tools/executor-http@1.3.3(@types/node@25.0.10)(graphql@16.12.0)': + '@graphql-tools/executor-http@1.3.3(@types/node@25.0.3)(graphql@16.12.0)': dependencies: '@graphql-hive/signal': 1.0.0 '@graphql-tools/executor-common': 0.0.4(graphql@16.12.0) @@ -61438,7 +61864,7 @@ snapshots: '@whatwg-node/fetch': 0.10.13 '@whatwg-node/promise-helpers': 1.3.2 graphql: 16.12.0 - meros: 1.3.2(@types/node@25.0.10) + meros: 1.3.2(@types/node@25.0.3) tslib: 2.8.1 transitivePeerDependencies: - '@types/node' @@ -61504,10 +61930,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@graphql-tools/github-loader@8.0.1(@types/node@25.0.10)(graphql@16.12.0)': + '@graphql-tools/github-loader@8.0.1(@types/node@25.0.3)(graphql@16.12.0)': dependencies: '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/executor-http': 1.3.3(@types/node@25.0.10)(graphql@16.12.0) + '@graphql-tools/executor-http': 1.3.3(@types/node@25.0.3)(graphql@16.12.0) '@graphql-tools/graphql-tag-pluck': 8.3.26(graphql@16.12.0) '@graphql-tools/utils': 10.11.0(graphql@16.12.0) '@whatwg-node/fetch': 0.9.23 @@ -61532,9 +61958,9 @@ snapshots: - '@types/node' - supports-color - '@graphql-tools/github-loader@8.0.22(@types/node@25.0.10)(graphql@16.12.0)': + '@graphql-tools/github-loader@8.0.22(@types/node@25.0.3)(graphql@16.12.0)': dependencies: - '@graphql-tools/executor-http': 1.3.3(@types/node@25.0.10)(graphql@16.12.0) + '@graphql-tools/executor-http': 1.3.3(@types/node@25.0.3)(graphql@16.12.0) '@graphql-tools/graphql-tag-pluck': 8.3.26(graphql@16.12.0) '@graphql-tools/utils': 10.11.0(graphql@16.12.0) '@whatwg-node/fetch': 0.10.13 @@ -61582,27 +62008,27 @@ snapshots: '@graphql-tools/graphql-tag-pluck@8.3.1(graphql@16.12.0)': dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.26.10 '@babel/parser': 7.29.0 - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5) - '@babel/traverse': 7.29.0 + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.26.10) + '@babel/traverse': 7.28.6 '@babel/types': 7.29.0 '@graphql-tools/utils': 10.11.0(graphql@16.12.0) graphql: 16.12.0 - tslib: 2.8.1 + tslib: 2.6.2 transitivePeerDependencies: - supports-color '@graphql-tools/graphql-tag-pluck@8.3.19(graphql@16.12.0)': dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.26.10 '@babel/parser': 7.29.0 - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5) - '@babel/traverse': 7.29.0 + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.26.10) + '@babel/traverse': 7.28.6 '@babel/types': 7.29.0 '@graphql-tools/utils': 10.11.0(graphql@16.12.0) graphql: 16.12.0 - tslib: 2.8.1 + tslib: 2.6.2 transitivePeerDependencies: - supports-color @@ -61611,8 +62037,8 @@ snapshots: '@babel/core': 7.28.5 '@babel/parser': 7.29.0 '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5) - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 '@graphql-tools/utils': 10.11.0(graphql@16.12.0) graphql: 16.12.0 tslib: 2.8.1 @@ -61624,7 +62050,7 @@ snapshots: '@graphql-tools/utils': 10.11.0(graphql@16.12.0) graphql: 16.12.0 resolve-from: 5.0.0 - tslib: 2.8.1 + tslib: 2.6.2 '@graphql-tools/import@7.1.8(graphql@16.12.0)': dependencies: @@ -61674,12 +62100,24 @@ snapshots: graphql: 16.12.0 tslib: 2.8.1 + '@graphql-tools/merge@8.3.1(graphql@16.9.0)': + dependencies: + '@graphql-tools/utils': 8.9.0(graphql@16.9.0) + graphql: 16.9.0 + tslib: 2.8.1 + '@graphql-tools/merge@8.4.2(graphql@16.12.0)': dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.12.0) graphql: 16.12.0 tslib: 2.8.1 + '@graphql-tools/merge@8.4.2(graphql@16.9.0)': + dependencies: + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) + graphql: 16.9.0 + tslib: 2.8.1 + '@graphql-tools/merge@9.1.6(graphql@16.12.0)': dependencies: '@graphql-tools/utils': 10.11.0(graphql@16.12.0) @@ -61694,6 +62132,14 @@ snapshots: graphql: 16.12.0 tslib: 2.8.1 + '@graphql-tools/mock@8.7.20(graphql@16.9.0)': + dependencies: + '@graphql-tools/schema': 9.0.19(graphql@16.9.0) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) + fast-json-stable-stringify: 2.1.0 + graphql: 16.9.0 + tslib: 2.8.1 + '@graphql-tools/optimize@1.4.0(graphql@16.12.0)': dependencies: graphql: 16.12.0 @@ -61710,7 +62156,7 @@ snapshots: '@graphql-tools/utils': 10.11.0(graphql@16.12.0) '@types/js-yaml': 4.0.9 '@whatwg-node/fetch': 0.10.13 - chalk: 4.1.2 + chalk: 5.6.2 debug: 4.4.3(supports-color@5.5.0) dotenv: 16.6.1 graphql: 16.12.0 @@ -61732,13 +62178,13 @@ snapshots: - uWebSockets.js - utf-8-validate - '@graphql-tools/prisma-loader@8.0.17(@fastify/websocket@11.2.0)(@types/node@25.0.10)(graphql@16.12.0)': + '@graphql-tools/prisma-loader@8.0.17(@fastify/websocket@11.2.0)(@types/node@25.0.3)(graphql@16.12.0)': dependencies: - '@graphql-tools/url-loader': 8.0.33(@fastify/websocket@11.2.0)(@types/node@25.0.10)(graphql@16.12.0) + '@graphql-tools/url-loader': 8.0.33(@fastify/websocket@11.2.0)(@types/node@25.0.3)(graphql@16.12.0) '@graphql-tools/utils': 10.11.0(graphql@16.12.0) '@types/js-yaml': 4.0.9 '@whatwg-node/fetch': 0.10.13 - chalk: 4.1.2 + chalk: 5.6.2 debug: 4.4.3(supports-color@5.5.0) dotenv: 16.6.1 graphql: 16.12.0 @@ -61769,6 +62215,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@graphql-tools/relay-operation-optimizer@7.0.26(graphql@16.12.0)': + dependencies: + '@ardatan/relay-compiler': 12.0.3(graphql@16.12.0) + '@graphql-tools/utils': 10.11.0(graphql@16.12.0) + graphql: 16.12.0 + tslib: 2.8.1 + '@graphql-tools/relay-operation-optimizer@7.0.27(graphql@16.12.0)': dependencies: '@ardatan/relay-compiler': 12.0.3(graphql@16.12.0) @@ -61791,6 +62244,14 @@ snapshots: tslib: 2.8.1 value-or-promise: 1.0.11 + '@graphql-tools/schema@8.5.1(graphql@16.9.0)': + dependencies: + '@graphql-tools/merge': 8.3.1(graphql@16.9.0) + '@graphql-tools/utils': 8.9.0(graphql@16.9.0) + graphql: 16.9.0 + tslib: 2.8.1 + value-or-promise: 1.0.11 + '@graphql-tools/schema@9.0.19(graphql@16.12.0)': dependencies: '@graphql-tools/merge': 8.4.2(graphql@16.12.0) @@ -61799,12 +62260,20 @@ snapshots: tslib: 2.8.1 value-or-promise: 1.0.12 - '@graphql-tools/url-loader@8.0.2(@types/node@25.0.10)(graphql@16.12.0)': + '@graphql-tools/schema@9.0.19(graphql@16.9.0)': + dependencies: + '@graphql-tools/merge': 8.4.2(graphql@16.9.0) + '@graphql-tools/utils': 9.2.1(graphql@16.9.0) + graphql: 16.9.0 + tslib: 2.8.1 + value-or-promise: 1.0.12 + + '@graphql-tools/url-loader@8.0.2(@types/node@25.0.3)(graphql@16.12.0)': dependencies: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 10.2.23(graphql@16.12.0) '@graphql-tools/executor-graphql-ws': 1.3.7(graphql@16.12.0) - '@graphql-tools/executor-http': 1.3.3(@types/node@25.0.10)(graphql@16.12.0) + '@graphql-tools/executor-http': 1.3.3(@types/node@25.0.3)(graphql@16.12.0) '@graphql-tools/executor-legacy-ws': 1.1.24(graphql@16.12.0) '@graphql-tools/utils': 10.11.0(graphql@16.12.0) '@graphql-tools/wrap': 10.1.4(graphql@16.12.0) @@ -61843,10 +62312,10 @@ snapshots: - uWebSockets.js - utf-8-validate - '@graphql-tools/url-loader@8.0.33(@fastify/websocket@11.2.0)(@types/node@25.0.10)(graphql@16.12.0)': + '@graphql-tools/url-loader@8.0.33(@fastify/websocket@11.2.0)(@types/node@25.0.3)(graphql@16.12.0)': dependencies: '@graphql-tools/executor-graphql-ws': 2.0.7(@fastify/websocket@11.2.0)(graphql@16.12.0) - '@graphql-tools/executor-http': 1.3.3(@types/node@25.0.10)(graphql@16.12.0) + '@graphql-tools/executor-http': 1.3.3(@types/node@25.0.3)(graphql@16.12.0) '@graphql-tools/executor-legacy-ws': 1.1.24(graphql@16.12.0) '@graphql-tools/utils': 10.11.0(graphql@16.12.0) '@graphql-tools/wrap': 10.1.4(graphql@16.12.0) @@ -61919,12 +62388,23 @@ snapshots: graphql: 16.12.0 tslib: 2.8.1 + '@graphql-tools/utils@8.9.0(graphql@16.9.0)': + dependencies: + graphql: 16.9.0 + tslib: 2.8.1 + '@graphql-tools/utils@9.2.1(graphql@16.12.0)': dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.12.0) graphql: 16.12.0 tslib: 2.8.1 + '@graphql-tools/utils@9.2.1(graphql@16.9.0)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + graphql: 16.9.0 + tslib: 2.8.1 + '@graphql-tools/wrap@10.1.4(graphql@16.12.0)': dependencies: '@graphql-tools/delegate': 10.2.23(graphql@16.12.0) @@ -61943,10 +62423,18 @@ snapshots: graphql: 16.12.0 tslib: 2.8.1 + '@graphql-typed-document-node/core@3.2.0(graphql@15.10.1)': + dependencies: + graphql: 15.10.1 + '@graphql-typed-document-node/core@3.2.0(graphql@16.12.0)': dependencies: graphql: 16.12.0 + '@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)': + dependencies: + graphql: 16.9.0 + '@graphql-yoga/logger@2.0.1': dependencies: tslib: 2.8.1 @@ -62114,20 +62602,27 @@ snapshots: '@humanfs/core': 0.19.1 '@humanwhocodes/retry': 0.4.3 - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.3(supports-color@5.5.0) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} - '@humanwhocodes/retry@0.4.3': {} + '@ibm-cloud/openapi-ruleset-utilities@1.9.0': {} + + '@ibm-cloud/openapi-ruleset@1.33.6': + dependencies: + '@ibm-cloud/openapi-ruleset-utilities': 1.9.0 + '@stoplight/spectral-formats': 1.8.2 + '@stoplight/spectral-functions': 1.10.1 + '@stoplight/spectral-rulesets': 1.22.0 + chalk: 5.6.2 + inflected: 2.1.0 + jsonschema: 1.5.0 + lodash: 4.17.23 + loglevel: 1.9.2 + loglevel-plugin-prefix: 0.8.4 + minimatch: 6.2.0 + validator: 13.15.26 + '@iconify/types@2.0.0': {} '@iconify/utils@3.1.0': @@ -62337,35 +62832,35 @@ snapshots: optionalDependencies: '@types/node': 20.19.27 - '@inquirer/confirm@5.1.21(@types/node@22.19.7)': + '@inquirer/confirm@5.1.21(@types/node@22.19.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.7) - '@inquirer/type': 3.0.10(@types/node@22.19.7) + '@inquirer/core': 10.3.2(@types/node@22.19.3) + '@inquirer/type': 3.0.10(@types/node@22.19.3) optionalDependencies: - '@types/node': 22.19.7 + '@types/node': 22.19.3 optional: true - '@inquirer/confirm@5.1.21(@types/node@24.10.9)': + '@inquirer/confirm@5.1.21(@types/node@24.10.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.10.9) - '@inquirer/type': 3.0.10(@types/node@24.10.9) + '@inquirer/core': 10.3.2(@types/node@24.10.1) + '@inquirer/type': 3.0.10(@types/node@24.10.1) optionalDependencies: - '@types/node': 24.10.9 + '@types/node': 24.10.1 optional: true - '@inquirer/confirm@5.1.21(@types/node@25.0.10)': + '@inquirer/confirm@5.1.21(@types/node@25.0.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.0.10) - '@inquirer/type': 3.0.10(@types/node@25.0.10) + '@inquirer/core': 10.3.2(@types/node@25.0.3) + '@inquirer/type': 3.0.10(@types/node@25.0.3) optionalDependencies: - '@types/node': 25.0.10 + '@types/node': 25.0.3 - '@inquirer/confirm@5.1.21(@types/node@25.3.5)': + '@inquirer/confirm@5.1.21(@types/node@25.1.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.3.5) - '@inquirer/type': 3.0.10(@types/node@25.3.5) + '@inquirer/core': 10.3.2(@types/node@25.1.0) + '@inquirer/type': 3.0.10(@types/node@25.1.0) optionalDependencies: - '@types/node': 25.3.5 + '@types/node': 25.1.0 optional: true '@inquirer/confirm@6.0.3(@types/node@20.19.27)': @@ -62388,59 +62883,59 @@ snapshots: optionalDependencies: '@types/node': 20.19.27 - '@inquirer/core@10.3.2(@types/node@22.19.7)': + '@inquirer/core@10.3.2(@types/node@22.19.3)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.7) + '@inquirer/type': 3.0.10(@types/node@22.19.3) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.19.7 + '@types/node': 22.19.3 optional: true - '@inquirer/core@10.3.2(@types/node@24.10.9)': + '@inquirer/core@10.3.2(@types/node@24.10.1)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.10.9) + '@inquirer/type': 3.0.10(@types/node@24.10.1) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.10.9 + '@types/node': 24.10.1 optional: true - '@inquirer/core@10.3.2(@types/node@25.0.10)': + '@inquirer/core@10.3.2(@types/node@25.0.3)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.0.10) + '@inquirer/type': 3.0.10(@types/node@25.0.3) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.0.10 + '@types/node': 25.0.3 - '@inquirer/core@10.3.2(@types/node@25.3.5)': + '@inquirer/core@10.3.2(@types/node@25.1.0)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.3.5) + '@inquirer/type': 3.0.10(@types/node@25.1.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.3.5 + '@types/node': 25.1.0 optional: true '@inquirer/core@11.1.0(@types/node@20.19.27)': @@ -62489,21 +62984,21 @@ snapshots: '@inquirer/external-editor@1.0.3(@types/node@20.19.27)': dependencies: chardet: 2.1.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.1 optionalDependencies: '@types/node': 20.19.27 - '@inquirer/external-editor@1.0.3(@types/node@25.0.10)': + '@inquirer/external-editor@1.0.3(@types/node@25.0.3)': dependencies: chardet: 2.1.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.1 optionalDependencies: - '@types/node': 25.0.10 + '@types/node': 25.0.3 '@inquirer/external-editor@2.0.2(@types/node@20.19.27)': dependencies: chardet: 2.1.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.1 optionalDependencies: '@types/node': 20.19.27 @@ -62640,47 +63135,47 @@ snapshots: optionalDependencies: '@types/node': 20.19.27 - '@inquirer/type@3.0.10(@types/node@22.19.7)': + '@inquirer/type@3.0.10(@types/node@22.19.3)': optionalDependencies: - '@types/node': 22.19.7 + '@types/node': 22.19.3 optional: true - '@inquirer/type@3.0.10(@types/node@24.10.9)': + '@inquirer/type@3.0.10(@types/node@24.10.1)': optionalDependencies: - '@types/node': 24.10.9 + '@types/node': 24.10.1 optional: true - '@inquirer/type@3.0.10(@types/node@25.0.10)': + '@inquirer/type@3.0.10(@types/node@25.0.3)': optionalDependencies: - '@types/node': 25.0.10 + '@types/node': 25.0.3 - '@inquirer/type@3.0.10(@types/node@25.3.5)': + '@inquirer/type@3.0.10(@types/node@25.1.0)': optionalDependencies: - '@types/node': 25.3.5 + '@types/node': 25.1.0 optional: true '@inquirer/type@4.0.2(@types/node@20.19.27)': optionalDependencies: '@types/node': 20.19.27 - '@intelgraph/maestro-core@file:packages/maestro-core(@opentelemetry/core@2.6.0(@opentelemetry/api@1.9.0))(pg@8.18.0)': + '@intelgraph/maestro-core@file:packages/maestro-core(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(pg@8.16.3)': dependencies: - '@aws-sdk/client-s3': 3.1004.0 - '@aws-sdk/lib-storage': 3.980.0(@aws-sdk/client-s3@3.1004.0) + '@aws-sdk/client-s3': 3.980.0 + '@aws-sdk/lib-storage': 3.980.0(@aws-sdk/client-s3@3.980.0) '@opentelemetry/api': 1.9.0 '@opentelemetry/api-metrics': 0.33.0 - '@opentelemetry/auto-instrumentations-node': 0.67.3(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.6.0(@opentelemetry/api@1.9.0)) - '@opentelemetry/exporter-jaeger': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/auto-instrumentations-node': 0.67.3(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0)) + '@opentelemetry/exporter-jaeger': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-prometheus': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-node': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 - axios: 1.13.6 + '@opentelemetry/semantic-conventions': 1.39.0 + axios: 1.13.4 cheerio: 1.2.0 crypto: 1.0.1 events: 3.3.0 jsdom: 27.4.0(canvas@2.11.2) - pg: 8.18.0 + pg: 8.16.3 robots-txt-parser: 2.0.3 uuid: 13.0.0 transitivePeerDependencies: @@ -62697,26 +63192,12 @@ snapshots: dependencies: seedrandom: 3.0.5 - '@intelgraph/telemetry-config@file:packages/telemetry-config': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/auto-instrumentations-node': 0.40.3(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-grpc': 0.48.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-express': 0.35.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-graphql': 0.37.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-http': 0.48.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pg': 0.40.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-redis': 0.37.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-node': 0.48.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 - transitivePeerDependencies: - - supports-color - '@interactjs/types@1.10.27': {} '@ioredis/commands@1.4.0': {} + '@ioredis/commands@1.5.0': {} + '@ipld/dag-cbor@9.2.5': dependencies: cborg: 4.3.2 @@ -62733,7 +63214,7 @@ snapshots: '@isaacs/balanced-match@4.0.1': {} - '@isaacs/brace-expansion@5.0.1': + '@isaacs/brace-expansion@5.0.0': dependencies: '@isaacs/balanced-match': 4.0.1 @@ -62755,13 +63236,13 @@ snapshots: '@jest-mock/express@3.0.0': dependencies: - '@types/express': 5.0.6 + '@types/express': 4.17.21 '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 '@types/node': 20.19.27 - chalk: 4.1.2 + chalk: 5.6.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 @@ -62770,7 +63251,7 @@ snapshots: dependencies: '@jest/types': 30.2.0 '@types/node': 20.19.27 - chalk: 4.1.2 + chalk: 5.6.2 jest-message-util: 30.2.0 jest-util: 30.2.0 slash: 3.0.0 @@ -62784,7 +63265,7 @@ snapshots: '@jest/types': 29.6.3 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 @@ -62819,7 +63300,7 @@ snapshots: '@jest/types': 29.6.3 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 @@ -62854,7 +63335,7 @@ snapshots: '@jest/types': 29.6.3 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 @@ -62880,7 +63361,7 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -62889,12 +63370,47 @@ snapshots: '@jest/types': 29.6.3 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3))': + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.19.27 + ansi-escapes: 4.3.2 + chalk: 5.6.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -62924,7 +63440,7 @@ snapshots: '@jest/types': 29.6.3 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 @@ -62950,7 +63466,7 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -62959,12 +63475,12 @@ snapshots: '@jest/types': 29.6.3 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -62985,7 +63501,77 @@ snapshots: - supports-color - ts-node - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3))': + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.19.27 + ansi-escapes: 4.3.2 + chalk: 5.6.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3))': + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.19.27 + ansi-escapes: 4.3.2 + chalk: 5.6.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3))': dependencies: '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 @@ -62995,12 +63581,12 @@ snapshots: '@jest/types': 30.2.0 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 4.3.1 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3)) + jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -63021,7 +63607,7 @@ snapshots: - supports-color - ts-node - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3))': + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3))': dependencies: '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 @@ -63031,12 +63617,12 @@ snapshots: '@jest/types': 30.2.0 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 4.3.1 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) + jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -63057,7 +63643,7 @@ snapshots: - supports-color - ts-node - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3))': + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3))': dependencies: '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 @@ -63067,12 +63653,12 @@ snapshots: '@jest/types': 30.2.0 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 4.3.1 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -63093,7 +63679,7 @@ snapshots: - supports-color - ts-node - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3))': + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3))': dependencies: '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 @@ -63103,12 +63689,12 @@ snapshots: '@jest/types': 30.2.0 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 4.3.1 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)) + jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -63129,7 +63715,7 @@ snapshots: - supports-color - ts-node - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3))': + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3))': dependencies: '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 @@ -63139,12 +63725,12 @@ snapshots: '@jest/types': 30.2.0 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 4.3.1 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) + jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -63165,7 +63751,7 @@ snapshots: - supports-color - ts-node - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3))': + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3))': dependencies: '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 @@ -63175,12 +63761,12 @@ snapshots: '@jest/types': 30.2.0 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 4.3.1 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -63310,7 +63896,7 @@ snapshots: '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 '@types/node': 20.19.27 - chalk: 4.1.2 + chalk: 5.6.2 collect-v8-coverage: 1.0.3 exit: 0.1.2 glob: 13.0.0 @@ -63339,7 +63925,7 @@ snapshots: '@jest/types': 30.2.0 '@jridgewell/trace-mapping': 0.3.31 '@types/node': 20.19.27 - chalk: 4.1.2 + chalk: 5.6.2 collect-v8-coverage: 1.0.3 exit-x: 0.2.2 glob: 13.0.0 @@ -63369,7 +63955,7 @@ snapshots: '@jest/snapshot-utils@30.2.0': dependencies: '@jest/types': 30.2.0 - chalk: 4.1.2 + chalk: 5.6.2 graceful-fs: 4.2.11 natural-compare: 1.4.0 @@ -63415,11 +64001,11 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 + chalk: 5.6.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 @@ -63439,7 +64025,7 @@ snapshots: '@jest/types': 30.2.0 '@jridgewell/trace-mapping': 0.3.31 babel-plugin-istanbul: 7.0.1 - chalk: 4.1.2 + chalk: 5.6.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 @@ -63459,7 +64045,7 @@ snapshots: '@types/istanbul-reports': 3.0.4 '@types/node': 20.19.27 '@types/yargs': 16.0.11 - chalk: 4.1.2 + chalk: 5.6.2 '@jest/types@29.6.3': dependencies: @@ -63468,7 +64054,7 @@ snapshots: '@types/istanbul-reports': 3.0.4 '@types/node': 20.19.27 '@types/yargs': 17.0.35 - chalk: 4.1.2 + chalk: 5.6.2 '@jest/types@30.2.0': dependencies: @@ -63478,7 +64064,7 @@ snapshots: '@types/istanbul-reports': 3.0.4 '@types/node': 20.19.27 '@types/yargs': 17.0.35 - chalk: 4.1.2 + chalk: 5.6.2 '@josephg/resolvable@1.0.1': {} @@ -63524,6 +64110,18 @@ snapshots: '@jsdevtools/ono@7.1.3': {} + '@jsep-plugin/assignment@1.3.0(jsep@1.4.0)': + dependencies: + jsep: 1.4.0 + + '@jsep-plugin/regex@1.0.4(jsep@1.4.0)': + dependencies: + jsep: 1.4.0 + + '@jsep-plugin/ternary@1.1.4(jsep@1.4.0)': + dependencies: + jsep: 1.4.0 + '@juggle/resize-observer@3.4.0': {} '@kafkajs/confluent-schema-registry@3.9.0': @@ -63732,8 +64330,8 @@ snapshots: '@linear/sdk@22.0.0': dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.12.0) - graphql: 16.12.0 + '@graphql-typed-document-node/core': 3.2.0(graphql@15.10.1) + graphql: 15.10.1 isomorphic-unfetch: 3.1.0 '@lit-labs/ssr-dom-shim@1.5.1': {} @@ -63902,7 +64500,7 @@ snapshots: '@loaders.gl/core': 4.3.4 '@loaders.gl/loader-utils': 4.3.4(@loaders.gl/core@4.3.4) '@loaders.gl/schema': 4.3.4(@loaders.gl/core@4.3.4) - fast-xml-parser: 5.3.4 + fast-xml-parser: 4.5.3 '@loaders.gl/zip@4.3.4(@loaders.gl/core@4.3.4)': dependencies: @@ -64010,18 +64608,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@mapbox/node-pre-gyp@2.0.3': - dependencies: - consola: 3.4.2 - detect-libc: 2.1.2 - https-proxy-agent: 7.0.6 - node-fetch: 3.3.2 - nopt: 8.1.0 - semver: 7.7.3 - tar: 7.5.7 - transitivePeerDependencies: - - supports-color - '@mapbox/point-geometry@0.1.0': {} '@mapbox/point-geometry@1.1.0': {} @@ -64136,39 +64722,43 @@ snapshots: '@mixmark-io/domino@2.2.0': {} - '@modelcontextprotocol/sdk@1.26.0(zod@4.2.1)': + '@modelcontextprotocol/sdk@1.25.2(hono@4.11.7)(zod@4.3.6)': dependencies: '@hono/node-server': 1.19.9(hono@4.11.7) - ajv: 8.18.0 - ajv-formats: 3.0.1(ajv@8.18.0) + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) content-type: 1.0.5 cors: 2.8.6 cross-spawn: 7.0.6 eventsource: 3.0.7 eventsource-parser: 3.0.6 express: 5.2.1 - express-rate-limit: 8.2.1(express@5.2.1) - hono: 4.11.7 + express-rate-limit: 7.5.1(express@5.2.1) jose: 6.1.3 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 - zod: 4.2.1 - zod-to-json-schema: 3.25.1(zod@4.2.1) + zod: 4.3.6 + zod-to-json-schema: 3.25.0(zod@4.3.6) transitivePeerDependencies: + - hono - supports-color '@monaco-editor/loader@1.7.0': dependencies: state-local: 1.0.7 - '@monaco-editor/react@4.7.0(monaco-editor@0.52.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + '@monaco-editor/react@4.7.0(monaco-editor@0.55.1)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@monaco-editor/loader': 1.7.0 - monaco-editor: 0.52.2 + monaco-editor: 0.55.1 react: 19.2.1 react-dom: 19.2.1(react@19.2.1) + '@mongodb-js/saslprep@1.4.4': + dependencies: + sparse-bitfield: 3.0.3 + '@mongodb-js/saslprep@1.4.5': dependencies: sparse-bitfield: 3.0.3 @@ -64200,6 +64790,15 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true + '@mswjs/interceptors@0.39.8': + dependencies: + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/logger': 0.3.0 + '@open-draft/until': 2.1.0 + is-node-process: 1.2.0 + outvariant: 1.4.3 + strict-event-emitter: 0.5.1 + '@mswjs/interceptors@0.40.0': dependencies: '@open-draft/deferred-promise': 2.2.0 @@ -64209,17 +64808,17 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@mui/base@5.0.0-beta.42(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/base@5.0.0-beta.42(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@floating-ui/react-dom': 2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/react-dom': 2.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@mui/types': 7.4.9(@types/react@18.3.11) - '@mui/utils': 6.4.9(@types/react@18.3.11)(react@18.3.1) + '@mui/utils': 6.4.9(@types/react@18.3.11)(react@19.2.1) '@popperjs/core': 2.11.8 clsx: 2.1.1 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 18.3.11 @@ -64227,19 +64826,11 @@ snapshots: '@mui/core-downloads-tracker@7.3.6': {} - '@mui/icons-material@5.18.0(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.4 - '@mui/material': 5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - - '@mui/icons-material@7.3.6(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.11)(react@18.3.1)': + '@mui/icons-material@5.18.0(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@types/react@18.3.11)(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@mui/material': 7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 + '@mui/material': 5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + react: 19.2.1 optionalDependencies: '@types/react': 18.3.11 @@ -64251,80 +64842,59 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@mui/lab@6.0.0-dev.240424162023-9968b4889d(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/lab@6.0.0-dev.240424162023-9968b4889d(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@mui/base': 5.0.0-beta.42(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/material': 5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/system': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@mui/base': 5.0.0-beta.42(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@mui/material': 5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@mui/system': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@mui/types': 7.4.9(@types/react@18.3.11) - '@mui/utils': 6.4.9(@types/react@18.3.11)(react@18.3.1) + '@mui/utils': 6.4.9(@types/react@18.3.11)(react@19.2.1) clsx: 2.1.1 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.11)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.11)(react@19.2.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@types/react': 18.3.11 - '@mui/lab@6.0.0-dev.240424162023-9968b4889d(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/lab@6.0.0-dev.240424162023-9968b4889d(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@mui/base': 5.0.0-beta.42(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/material': 7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/system': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@mui/base': 5.0.0-beta.42(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@mui/material': 7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@mui/system': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@mui/types': 7.4.9(@types/react@18.3.11) - '@mui/utils': 6.4.9(@types/react@18.3.11)(react@18.3.1) + '@mui/utils': 6.4.9(@types/react@18.3.11)(react@19.2.1) clsx: 2.1.1 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.11)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.11)(react@19.2.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@types/react': 18.3.11 - '@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 '@mui/core-downloads-tracker': 5.18.0 - '@mui/system': 5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@mui/system': 5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@mui/types': 7.2.24(@types/react@18.3.11) - '@mui/utils': 5.17.1(@types/react@18.3.11)(react@18.3.1) - '@popperjs/core': 2.11.8 - '@types/react-transition-group': 4.4.12(@types/react@18.3.11) - clsx: 2.1.1 - csstype: 3.2.3 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 19.2.3 - react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.11)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) - '@types/react': 18.3.11 - - '@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.4 - '@mui/core-downloads-tracker': 7.3.6 - '@mui/system': 7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) - '@mui/types': 7.4.9(@types/react@18.3.11) - '@mui/utils': 7.3.6(@types/react@18.3.11)(react@18.3.1) + '@mui/utils': 5.17.1(@types/react@18.3.11)(react@19.2.1) '@popperjs/core': 2.11.8 '@types/react-transition-group': 4.4.12(@types/react@18.3.11) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) react-is: 19.2.3 - react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-transition-group: 4.4.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.11)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.11)(react@19.2.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@types/react': 18.3.11 '@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': @@ -64369,30 +64939,21 @@ snapshots: '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.1))(@types/react@19.2.7)(react@19.2.1) '@types/react': 19.2.7 - '@mui/private-theming@5.17.1(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.4 - '@mui/utils': 5.17.1(@types/react@18.3.11)(react@18.3.1) - prop-types: 15.8.1 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - - '@mui/private-theming@6.4.9(@types/react@18.3.11)(react@18.3.1)': + '@mui/private-theming@5.17.1(@types/react@18.3.11)(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@mui/utils': 6.4.9(@types/react@18.3.11)(react@18.3.1) + '@mui/utils': 5.17.1(@types/react@18.3.11)(react@19.2.1) prop-types: 15.8.1 - react: 18.3.1 + react: 19.2.1 optionalDependencies: '@types/react': 18.3.11 - '@mui/private-theming@7.3.6(@types/react@18.3.11)(react@18.3.1)': + '@mui/private-theming@6.4.9(@types/react@18.3.11)(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@mui/utils': 7.3.6(@types/react@18.3.11)(react@18.3.1) + '@mui/utils': 6.4.9(@types/react@18.3.11)(react@19.2.1) prop-types: 15.8.1 - react: 18.3.1 + react: 19.2.1 optionalDependencies: '@types/react': 18.3.11 @@ -64414,32 +64975,19 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@mui/styled-engine@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.4 - '@emotion/cache': 11.14.0 - '@emotion/serialize': 1.3.3 - csstype: 3.2.3 - prop-types: 15.8.1 - react: 18.3.1 - optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.11)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) - - '@mui/styled-engine@6.5.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(react@18.3.1)': + '@mui/styled-engine@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 - '@emotion/sheet': 1.4.0 csstype: 3.2.3 prop-types: 15.8.1 - react: 18.3.1 + react: 19.2.1 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.11)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.11)(react@19.2.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) - '@mui/styled-engine@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(react@18.3.1)': + '@mui/styled-engine@6.5.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 '@emotion/cache': 11.14.0 @@ -64447,10 +64995,10 @@ snapshots: '@emotion/sheet': 1.4.0 csstype: 3.2.3 prop-types: 15.8.1 - react: 18.3.1 + react: 19.2.1 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.11)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.11)(react@19.2.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@mui/styled-engine@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)': dependencies: @@ -64478,52 +65026,36 @@ snapshots: '@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.1) '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.1))(@types/react@19.2.7)(react@19.2.1) - '@mui/system@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1)': + '@mui/system@5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@mui/private-theming': 5.17.1(@types/react@18.3.11)(react@18.3.1) - '@mui/styled-engine': 5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(react@18.3.1) + '@mui/private-theming': 5.17.1(@types/react@18.3.11)(react@19.2.1) + '@mui/styled-engine': 5.18.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) '@mui/types': 7.2.24(@types/react@18.3.11) - '@mui/utils': 5.17.1(@types/react@18.3.11)(react@18.3.1) + '@mui/utils': 5.17.1(@types/react@18.3.11)(react@19.2.1) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 - react: 18.3.1 + react: 19.2.1 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.11)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.11)(react@19.2.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@types/react': 18.3.11 - '@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1)': + '@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@mui/private-theming': 6.4.9(@types/react@18.3.11)(react@18.3.1) - '@mui/styled-engine': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(react@18.3.1) + '@mui/private-theming': 6.4.9(@types/react@18.3.11)(react@19.2.1) + '@mui/styled-engine': 6.5.0(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) '@mui/types': 7.2.24(@types/react@18.3.11) - '@mui/utils': 6.4.9(@types/react@18.3.11)(react@18.3.1) + '@mui/utils': 6.4.9(@types/react@18.3.11)(react@19.2.1) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 - react: 18.3.1 - optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.11)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) - '@types/react': 18.3.11 - - '@mui/system@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.4 - '@mui/private-theming': 7.3.6(@types/react@18.3.11)(react@18.3.1) - '@mui/styled-engine': 7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(react@18.3.1) - '@mui/types': 7.4.9(@types/react@18.3.11) - '@mui/utils': 7.3.6(@types/react@18.3.11)(react@18.3.1) - clsx: 2.1.1 - csstype: 3.2.3 - prop-types: 15.8.1 - react: 18.3.1 + react: 19.2.1 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.11)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.11)(react@19.2.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) '@types/react': 18.3.11 '@mui/system@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1)': @@ -64574,38 +65106,26 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@mui/utils@5.17.1(@types/react@18.3.11)(react@18.3.1)': + '@mui/utils@5.17.1(@types/react@18.3.11)(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 '@mui/types': 7.2.24(@types/react@18.3.11) '@types/prop-types': 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 - react: 18.3.1 + react: 19.2.1 react-is: 19.2.3 optionalDependencies: '@types/react': 18.3.11 - '@mui/utils@6.4.9(@types/react@18.3.11)(react@18.3.1)': + '@mui/utils@6.4.9(@types/react@18.3.11)(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 '@mui/types': 7.2.24(@types/react@18.3.11) '@types/prop-types': 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 - react: 18.3.1 - react-is: 19.2.3 - optionalDependencies: - '@types/react': 18.3.11 - - '@mui/utils@7.3.6(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.4 - '@mui/types': 7.4.9(@types/react@18.3.11) - '@types/prop-types': 15.7.15 - clsx: 2.1.1 - prop-types: 15.8.1 - react: 18.3.1 + react: 19.2.1 react-is: 19.2.3 optionalDependencies: '@types/react': 18.3.11 @@ -64634,42 +65154,42 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@mui/x-data-grid@8.10.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/x-data-grid@8.10.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@mui/system@7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@mui/material': 7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/system': 7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) - '@mui/utils': 7.3.6(@types/react@18.3.11)(react@18.3.1) - '@mui/x-internals': 8.10.0(@types/react@18.3.11)(react@18.3.1) - '@mui/x-virtualizer': 0.1.2(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/material': 7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@mui/system': 7.3.6(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) + '@mui/utils': 7.3.6(@types/react@18.3.11)(react@19.2.1) + '@mui/x-internals': 8.10.0(@types/react@18.3.11)(react@19.2.1) + '@mui/x-virtualizer': 0.1.2(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) clsx: 2.1.1 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - use-sync-external-store: 1.6.0(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + use-sync-external-store: 1.6.0(react@19.2.1) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@18.3.11)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.11)(react@19.2.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@18.3.11)(react@19.2.1))(@types/react@18.3.11)(react@19.2.1) transitivePeerDependencies: - '@types/react' - '@mui/x-internals@8.10.0(@types/react@18.3.11)(react@18.3.1)': + '@mui/x-internals@8.10.0(@types/react@18.3.11)(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@mui/utils': 7.3.6(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 + '@mui/utils': 7.3.6(@types/react@18.3.11)(react@19.2.1) + react: 19.2.1 reselect: 5.1.1 - use-sync-external-store: 1.6.0(react@18.3.1) + use-sync-external-store: 1.6.0(react@19.2.1) transitivePeerDependencies: - '@types/react' - '@mui/x-virtualizer@0.1.2(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/x-virtualizer@0.1.2(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@mui/utils': 7.3.6(@types/react@18.3.11)(react@18.3.1) - '@mui/x-internals': 8.10.0(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@mui/utils': 7.3.6(@types/react@18.3.11)(react@19.2.1) + '@mui/x-internals': 8.10.0(@types/react@18.3.11)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) transitivePeerDependencies: - '@types/react' @@ -65148,11 +65668,38 @@ snapshots: dependencies: semver: 7.7.3 + '@npmcli/git@7.0.1': + dependencies: + '@npmcli/promise-spawn': 9.0.1 + ini: 6.0.0 + lru-cache: 11.2.5 + npm-pick-manifest: 11.0.3 + proc-log: 6.1.0 + promise-retry: 2.0.1 + semver: 7.7.3 + which: 6.0.0 + '@npmcli/move-file@2.0.1': dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 + '@npmcli/package-json@7.0.4': + dependencies: + '@npmcli/git': 7.0.1 + glob: 13.0.0 + hosted-git-info: 9.0.2 + json-parse-even-better-errors: 5.0.0 + proc-log: 6.1.0 + semver: 7.7.3 + validate-npm-package-license: 3.0.4 + + '@npmcli/promise-spawn@9.0.1': + dependencies: + which: 6.0.0 + + '@npmcli/redact@4.0.0': {} + '@octokit/auth-token@4.0.0': {} '@octokit/auth-token@6.0.0': {} @@ -65281,8 +65828,6 @@ snapshots: dependencies: '@octokit/openapi-types': 27.0.0 - '@one-ini/wasm@0.1.1': {} - '@op-engineering/op-sqlite@11.4.9(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)': dependencies: react: 19.2.1 @@ -65310,10 +65855,6 @@ snapshots: dependencies: '@openfeature/core': 1.9.1 - '@opentelemetry/api-logs@0.202.0': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs@0.208.0': dependencies: '@opentelemetry/api': 1.9.0 @@ -65322,10 +65863,6 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs@0.213.0': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs@0.41.2': dependencies: '@opentelemetry/api': 1.9.0 @@ -65334,10 +65871,6 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs@0.45.1': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs@0.46.0': dependencies: '@opentelemetry/api': 1.9.0 @@ -65364,8 +65897,6 @@ snapshots: '@opentelemetry/api@1.7.0': {} - '@opentelemetry/api@1.8.0': {} - '@opentelemetry/api@1.9.0': {} '@opentelemetry/auto-instrumentations-node@0.39.0(@opentelemetry/api@1.9.0)': @@ -65520,10 +66051,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/auto-instrumentations-node@0.67.3(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.6.0(@opentelemetry/api@1.9.0))': + '@opentelemetry/auto-instrumentations-node@0.67.3(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-amqplib': 0.56.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-aws-lambda': 0.61.1(@opentelemetry/api@1.9.0) @@ -65567,75 +66098,75 @@ snapshots: '@opentelemetry/instrumentation-undici': 0.19.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-winston': 0.53.0(@opentelemetry/api@1.9.0) '@opentelemetry/resource-detector-alibaba-cloud': 0.32.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-aws': 2.11.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-aws': 2.9.0(@opentelemetry/api@1.9.0) '@opentelemetry/resource-detector-azure': 0.17.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-container': 0.8.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-container': 0.8.0(@opentelemetry/api@1.9.0) '@opentelemetry/resource-detector-gcp': 0.44.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-node': 0.208.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/auto-instrumentations-node@0.71.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.6.0(@opentelemetry/api@1.9.0))': + '@opentelemetry/auto-instrumentations-node@0.69.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-amqplib': 0.60.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-aws-lambda': 0.65.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-aws-sdk': 0.68.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-bunyan': 0.58.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-cassandra-driver': 0.58.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-connect': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-cucumber': 0.29.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dataloader': 0.30.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dns': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-express': 0.61.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fastify': 0.57.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fs': 0.32.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-generic-pool': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-graphql': 0.61.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-grpc': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-hapi': 0.59.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-http': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-ioredis': 0.61.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-kafkajs': 0.22.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-knex': 0.57.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-koa': 0.61.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-lru-memoizer': 0.57.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-memcached': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongodb': 0.66.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongoose': 0.59.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql': 0.59.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql2': 0.59.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-nestjs-core': 0.59.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-net': 0.57.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-openai': 0.11.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-oracledb': 0.38.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pg': 0.65.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pino': 0.59.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-redis': 0.61.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-restify': 0.58.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-router': 0.57.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-runtime-node': 0.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-socket.io': 0.60.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-tedious': 0.32.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-undici': 0.23.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-winston': 0.57.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-alibaba-cloud': 0.33.3(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-aws': 2.13.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-azure': 0.21.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-container': 0.8.4(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-gcp': 0.48.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-node': 0.213.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/configuration@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-amqplib': 0.58.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-aws-lambda': 0.63.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-aws-sdk': 0.66.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-bunyan': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-cassandra-driver': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-connect': 0.54.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-cucumber': 0.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-dataloader': 0.28.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-dns': 0.54.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-express': 0.59.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fastify': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fs': 0.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-generic-pool': 0.54.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-graphql': 0.58.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-grpc': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-hapi': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-http': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-ioredis': 0.59.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-kafkajs': 0.20.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-knex': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-koa': 0.59.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-lru-memoizer': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-memcached': 0.54.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongodb': 0.64.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongoose': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql2': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-nestjs-core': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-net': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-openai': 0.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-oracledb': 0.36.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-pg': 0.63.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-pino': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-redis': 0.59.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-restify': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-router': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-runtime-node': 0.24.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-socket.io': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-tedious': 0.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-undici': 0.21.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-winston': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-alibaba-cloud': 0.33.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-aws': 2.11.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-azure': 0.19.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-container': 0.8.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-gcp': 0.46.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-node': 0.211.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + + '@opentelemetry/configuration@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) yaml: 2.8.2 '@opentelemetry/context-async-hooks@1.15.2(@opentelemetry/api@1.9.0)': @@ -65666,27 +66197,15 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks@2.6.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-zone-peer-dep@1.18.1(@opentelemetry/api@1.8.0)(zone.js@0.11.8)': - dependencies: - '@opentelemetry/api': 1.8.0 - zone.js: 0.11.8 - '@opentelemetry/context-zone-peer-dep@2.5.0(@opentelemetry/api@1.9.0)(zone.js@0.16.0)': dependencies: '@opentelemetry/api': 1.9.0 zone.js: 0.16.0 - '@opentelemetry/context-zone@1.18.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/context-zone-peer-dep': 1.18.1(@opentelemetry/api@1.8.0)(zone.js@0.11.8) - zone.js: 0.11.8 - transitivePeerDependencies: - - '@opentelemetry/api' - '@opentelemetry/context-zone@2.5.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/context-zone-peer-dep': 2.5.0(@opentelemetry/api@1.9.0)(zone.js@0.16.0) @@ -65709,11 +66228,6 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.18.0 - '@opentelemetry/core@1.18.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/semantic-conventions': 1.18.1 - '@opentelemetry/core@1.18.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -65739,11 +66253,6 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.25.1 - '@opentelemetry/core@1.30.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -65752,17 +66261,12 @@ snapshots: '@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.40.0 - - '@opentelemetry/core@2.6.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/exporter-jaeger@1.15.2(@opentelemetry/api@1.9.0)': dependencies: @@ -65780,20 +66284,20 @@ snapshots: '@opentelemetry/semantic-conventions': 1.28.0 jaeger-client: 3.19.0 - '@opentelemetry/exporter-jaeger@2.5.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/exporter-jaeger@2.2.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 jaeger-client: 3.19.0 - '@opentelemetry/exporter-jaeger@2.6.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/exporter-jaeger@2.5.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 jaeger-client: 3.19.0 '@opentelemetry/exporter-logs-otlp-grpc@0.208.0(@opentelemetry/api@1.9.0)': @@ -65806,15 +66310,15 @@ snapshots: '@opentelemetry/otlp-transformer': 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-logs': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-grpc@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/exporter-logs-otlp-grpc@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@grpc/grpc-js': 1.14.3 '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.211.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-logs-otlp-http@0.208.0(@opentelemetry/api@1.9.0)': dependencies: @@ -65825,14 +66329,14 @@ snapshots: '@opentelemetry/otlp-transformer': 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-logs': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-http@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/exporter-logs-otlp-http@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.213.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api-logs': 0.211.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.211.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-logs-otlp-proto@0.208.0(@opentelemetry/api@1.9.0)': dependencies: @@ -65845,16 +66349,16 @@ snapshots: '@opentelemetry/sdk-logs': 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-proto@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/exporter-logs-otlp-proto@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.213.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api-logs': 0.211.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-metrics-otlp-grpc@0.208.0(@opentelemetry/api@1.9.0)': dependencies: @@ -65868,17 +66372,17 @@ snapshots: '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-grpc@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/exporter-metrics-otlp-grpc@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@grpc/grpc-js': 1.14.3 '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-metrics-otlp-http@0.208.0(@opentelemetry/api@1.9.0)': dependencies: @@ -65889,14 +66393,14 @@ snapshots: '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-http@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/exporter-metrics-otlp-http@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-metrics-otlp-http@0.46.0(@opentelemetry/api@1.9.0)': dependencies: @@ -65917,15 +66421,15 @@ snapshots: '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-proto@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/exporter-metrics-otlp-proto@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-prometheus@0.208.0(@opentelemetry/api@1.9.0)': dependencies: @@ -65934,13 +66438,12 @@ snapshots: '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-prometheus@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/exporter-prometheus@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-prometheus@0.44.0(@opentelemetry/api@1.9.0)': dependencies: @@ -65981,16 +66484,16 @@ snapshots: '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-grpc@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/exporter-trace-otlp-grpc@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@grpc/grpc-js': 1.14.3 '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-grpc@0.41.2(@opentelemetry/api@1.9.0)': dependencies: @@ -66060,15 +66563,6 @@ snapshots: '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-http@0.213.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-http@0.41.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -66087,15 +66581,6 @@ snapshots: '@opentelemetry/resources': 1.18.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.18.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-http@0.45.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-exporter-base': 0.45.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-transformer': 0.45.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/exporter-trace-otlp-http@0.46.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -66132,14 +66617,14 @@ snapshots: '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-proto@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/exporter-trace-otlp-proto@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-proto@0.41.2(@opentelemetry/api@1.9.0)': dependencies: @@ -66236,49 +66721,49 @@ snapshots: '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/exporter-zipkin@2.6.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/exporter-zipkin@2.5.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/instrumentation-amqplib@0.33.5(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-amqplib@0.39.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-amqplib@0.56.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-amqplib@0.60.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-amqplib@0.58.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -66288,7 +66773,7 @@ snapshots: '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) '@opentelemetry/propagator-aws-xray': 1.26.2(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/aws-lambda': 8.10.122 transitivePeerDependencies: - supports-color @@ -66299,7 +66784,7 @@ snapshots: '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/propagator-aws-xray': 1.26.2(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/aws-lambda': 8.10.122 transitivePeerDependencies: - supports-color @@ -66308,16 +66793,16 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 - '@types/aws-lambda': 8.10.160 + '@opentelemetry/semantic-conventions': 1.39.0 + '@types/aws-lambda': 8.10.159 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-aws-lambda@0.65.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-aws-lambda@0.63.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@types/aws-lambda': 8.10.160 transitivePeerDependencies: - supports-color @@ -66325,48 +66810,48 @@ snapshots: '@opentelemetry/instrumentation-aws-sdk@0.36.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.45.1(@opentelemetry/api@1.9.0) '@opentelemetry/propagation-utils': 0.30.16(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-aws-sdk@0.37.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) '@opentelemetry/propagation-utils': 0.30.16(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-aws-sdk@0.43.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/propagation-utils': 0.30.16(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-aws-sdk@0.64.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-aws-sdk@0.68.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-aws-sdk@0.66.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -66405,11 +66890,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-bunyan@0.58.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-bunyan@0.56.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.213.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api-logs': 0.211.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) '@types/bunyan': 1.8.11 transitivePeerDependencies: - supports-color @@ -66418,7 +66903,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.44.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -66426,7 +66911,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -66434,7 +66919,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -66445,20 +66930,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-cassandra-driver@0.58.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-cassandra-driver@0.56.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-connect@0.32.4(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/connect': 3.4.36 transitivePeerDependencies: - supports-color @@ -66466,9 +66951,9 @@ snapshots: '@opentelemetry/instrumentation-connect@0.38.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/connect': 3.4.36 transitivePeerDependencies: - supports-color @@ -66476,19 +66961,19 @@ snapshots: '@opentelemetry/instrumentation-connect@0.52.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-connect@0.56.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-connect@0.54.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color @@ -66497,7 +66982,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.45.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -66505,7 +66990,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -66513,15 +66998,15 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-cucumber@0.29.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-cucumber@0.26.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -66529,7 +67014,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -66547,10 +67032,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-dataloader@0.30.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-dataloader@0.28.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -66565,7 +67050,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -66585,21 +67070,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-dns@0.56.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-dns@0.54.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-document-load@0.35.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.48.0(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-web': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -66616,17 +67090,17 @@ snapshots: '@opentelemetry/instrumentation-express@0.33.3(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.45.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 - '@types/express': 4.17.18 + '@opentelemetry/semantic-conventions': 1.38.0 + '@types/express': 4.17.21 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-express@0.34.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: @@ -66635,7 +67109,7 @@ snapshots: '@opentelemetry/instrumentation-express@0.35.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.48.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: @@ -66644,7 +67118,7 @@ snapshots: '@opentelemetry/instrumentation-express@0.41.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: @@ -66653,54 +67127,54 @@ snapshots: '@opentelemetry/instrumentation-express@0.57.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-express@0.61.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-express@0.59.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-fastify@0.32.6(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-fastify@0.38.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-fastify@0.53.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fastify@0.57.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-fastify@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -66714,20 +67188,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fetch@0.45.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.45.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-web': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.18.1 - transitivePeerDependencies: - - supports-color - '@opentelemetry/instrumentation-fs@0.14.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -66735,25 +67199,25 @@ snapshots: '@opentelemetry/instrumentation-fs@0.28.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fs@0.32.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-fs@0.30.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-fs@0.8.4(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -66761,7 +67225,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -66779,10 +67243,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-generic-pool@0.56.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-generic-pool@0.54.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -66821,10 +67285,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-graphql@0.61.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-graphql@0.58.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -66832,15 +67296,15 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-grpc@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-grpc@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -66871,9 +67335,9 @@ snapshots: '@opentelemetry/instrumentation-hapi@0.33.3(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/hapi__hapi': 20.0.13 transitivePeerDependencies: - supports-color @@ -66881,27 +67345,27 @@ snapshots: '@opentelemetry/instrumentation-hapi@0.40.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-hapi@0.55.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-hapi@0.59.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-hapi@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -66915,12 +67379,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-http@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-http@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 forwarded-parse: 2.1.2 transitivePeerDependencies: - supports-color @@ -66970,7 +67434,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.45.1(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/ioredis4': '@types/ioredis@4.28.10' transitivePeerDependencies: - supports-color @@ -66980,7 +67444,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/ioredis4': '@types/ioredis@4.28.10' transitivePeerDependencies: - supports-color @@ -66990,7 +67454,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -66999,16 +67463,16 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.38.2 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-ioredis@0.61.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-ioredis@0.59.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.38.2 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -67016,15 +67480,15 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-kafkajs@0.22.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-kafkajs@0.20.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -67032,7 +67496,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67040,7 +67504,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67048,24 +67512,24 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-knex@0.57.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-knex@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-koa@0.36.4(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/koa': 2.13.9 '@types/koa__router': 12.0.3 transitivePeerDependencies: @@ -67074,27 +67538,27 @@ snapshots: '@opentelemetry/instrumentation-koa@0.42.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-koa@0.57.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-koa@0.61.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-koa@0.59.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -67119,10 +67583,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-lru-memoizer@0.57.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-lru-memoizer@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -67130,7 +67594,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/memcached': 2.2.10 transitivePeerDependencies: - supports-color @@ -67139,7 +67603,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/memcached': 2.2.10 transitivePeerDependencies: - supports-color @@ -67148,16 +67612,16 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 '@types/memcached': 2.2.10 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-memcached@0.56.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-memcached@0.54.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@types/memcached': 2.2.10 transitivePeerDependencies: - supports-color @@ -67167,7 +67631,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.41.2(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67176,7 +67640,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67185,7 +67649,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67196,55 +67660,55 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongodb@0.66.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongodb@0.64.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-mongoose@0.33.4(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.45.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-mongoose@0.34.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-mongoose@0.40.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-mongoose@0.55.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongoose@0.59.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongoose@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -67252,7 +67716,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -67261,7 +67725,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -67270,16 +67734,16 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql2@0.59.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql2@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -67288,7 +67752,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/mysql': 2.15.22 transitivePeerDependencies: - supports-color @@ -67297,7 +67761,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/mysql': 2.15.22 transitivePeerDependencies: - supports-color @@ -67306,16 +67770,16 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 '@types/mysql': 2.15.27 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql@0.59.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@types/mysql': 2.15.27 transitivePeerDependencies: - supports-color @@ -67324,7 +67788,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67332,7 +67796,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67340,15 +67804,15 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-nestjs-core@0.59.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-nestjs-core@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -67356,7 +67820,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67364,7 +67828,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67372,33 +67836,33 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-net@0.57.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-net@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-openai@0.11.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-openai@0.7.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.213.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/api-logs': 0.208.0 + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-openai@0.7.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-openai@0.9.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.208.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/api-logs': 0.211.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -67406,16 +67870,16 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 '@types/oracledb': 6.5.2 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-oracledb@0.38.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-oracledb@0.36.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@types/oracledb': 6.5.2 transitivePeerDependencies: - supports-color @@ -67423,9 +67887,9 @@ snapshots: '@opentelemetry/instrumentation-pg@0.36.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.44.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) '@types/pg': 8.6.1 '@types/pg-pool': 2.0.4 @@ -67435,7 +67899,7 @@ snapshots: '@opentelemetry/instrumentation-pg@0.37.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) @@ -67469,7 +67933,7 @@ snapshots: '@opentelemetry/instrumentation-pg@0.61.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0) @@ -67478,12 +67942,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-pg@0.65.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-pg@0.63.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0) '@types/pg': 8.15.6 '@types/pg-pool': 2.0.7 @@ -67510,17 +67974,17 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.208.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-pino@0.59.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-pino@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.213.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/api-logs': 0.211.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -67529,7 +67993,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -67538,16 +68002,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.40.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-redis-4@0.49.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.202.0(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.37.0 - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67556,7 +68011,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67574,7 +68029,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67583,52 +68038,52 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.38.2 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-redis@0.61.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-redis@0.59.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.38.2 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-restify@0.34.3(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-restify@0.40.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-restify@0.54.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-restify@0.58.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-restify@0.56.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -67636,7 +68091,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67644,7 +68099,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67652,15 +68107,15 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-router@0.57.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-router@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -67671,10 +68126,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-runtime-node@0.26.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-runtime-node@0.24.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -67682,7 +68137,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.45.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67690,7 +68145,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67698,7 +68153,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color @@ -67709,10 +68164,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-socket.io@0.60.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-socket.io@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -67720,7 +68175,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color @@ -67729,16 +68184,16 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-tedious@0.32.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-tedious@0.30.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color @@ -67747,7 +68202,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color @@ -67755,39 +68210,29 @@ snapshots: '@opentelemetry/instrumentation-undici@0.19.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-undici@0.23.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-undici@0.21.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color '@opentelemetry/instrumentation-undici@0.4.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-user-interaction@0.34.1(@opentelemetry/api@1.8.0)(zone.js@0.11.8)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.46.0(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-web': 1.18.1(@opentelemetry/api@1.8.0) - zone.js: 0.11.8 - transitivePeerDependencies: - - supports-color - '@opentelemetry/instrumentation-user-interaction@0.55.0(@opentelemetry/api@1.9.0)(zone.js@0.16.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -67828,30 +68273,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-winston@0.57.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.213.0 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-xml-http-request@0.45.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/instrumentation': 0.45.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-web': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.18.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation@0.202.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-winston@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.202.0 - import-in-the-middle: 1.15.0 - require-in-the-middle: 7.5.2 + '@opentelemetry/api-logs': 0.211.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -67859,7 +68285,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.208.0 - import-in-the-middle: 2.0.6 + import-in-the-middle: 2.0.1 require-in-the-middle: 8.0.1 transitivePeerDependencies: - supports-color @@ -67873,15 +68299,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation@0.213.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.213.0 - import-in-the-middle: 3.0.0 - require-in-the-middle: 8.0.1 - transitivePeerDependencies: - - supports-color - '@opentelemetry/instrumentation@0.41.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -67915,17 +68332,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation@0.45.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@types/shimmer': 1.2.0 - import-in-the-middle: 1.4.2 - require-in-the-middle: 7.5.2 - semver: 7.7.3 - shimmer: 1.2.1 - transitivePeerDependencies: - - supports-color - '@opentelemetry/instrumentation@0.45.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -67937,17 +68343,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation@0.46.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@types/shimmer': 1.2.0 - import-in-the-middle: 1.7.1 - require-in-the-middle: 7.5.2 - semver: 7.7.3 - shimmer: 1.2.1 - transitivePeerDependencies: - - supports-color - '@opentelemetry/instrumentation@0.46.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -67959,17 +68354,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation@0.48.0(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@types/shimmer': 1.2.0 - import-in-the-middle: 1.7.1 - require-in-the-middle: 7.5.2 - semver: 7.7.3 - shimmer: 1.2.1 - transitivePeerDependencies: - - supports-color - '@opentelemetry/instrumentation@0.48.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68029,12 +68413,6 @@ snapshots: '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-transformer': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base@0.213.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base@0.41.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68045,11 +68423,6 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.18.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base@0.45.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-exporter-base@0.46.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68074,13 +68447,13 @@ snapshots: '@opentelemetry/otlp-exporter-base': 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-transformer': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/otlp-grpc-exporter-base@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@grpc/grpc-js': 1.14.3 '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.213.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.211.0(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-grpc-exporter-base@0.41.2(@opentelemetry/api@1.9.0)': dependencies: @@ -68172,17 +68545,6 @@ snapshots: '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) protobufjs: 8.0.0 - '@opentelemetry/otlp-transformer@0.213.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.213.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.6.0(@opentelemetry/api@1.9.0) - protobufjs: 7.5.4 - '@opentelemetry/otlp-transformer@0.41.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68203,16 +68565,6 @@ snapshots: '@opentelemetry/sdk-metrics': 1.18.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.18.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer@0.45.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/api-logs': 0.45.1 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-logs': 0.45.1(@opentelemetry/api-logs@0.45.1)(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-metrics': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-transformer@0.46.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68287,10 +68639,10 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-b3@2.6.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/propagator-b3@2.5.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/propagator-jaeger@1.15.2(@opentelemetry/api@1.9.0)': dependencies: @@ -68327,101 +68679,99 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-jaeger@2.6.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/propagator-jaeger@2.5.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common@0.36.2': {} - '@opentelemetry/redis-common@0.37.0': {} - '@opentelemetry/redis-common@0.38.2': {} '@opentelemetry/resource-detector-alibaba-cloud@0.28.10(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@opentelemetry/resource-detector-alibaba-cloud@0.32.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-alibaba-cloud@0.33.3(@opentelemetry/api@1.9.0)': + '@opentelemetry/resource-detector-alibaba-cloud@0.33.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/resource-detector-aws@1.12.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@opentelemetry/resource-detector-aws@2.11.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/resource-detector-aws@2.13.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/resource-detector-aws@2.9.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/resource-detector-azure@0.17.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/resource-detector-azure@0.2.12(@opentelemetry/api@1.9.0)': + '@opentelemetry/resource-detector-azure@0.19.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/resource-detector-azure@0.21.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/resource-detector-azure@0.2.12(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 '@opentelemetry/resource-detector-container@0.3.11(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 - '@opentelemetry/resource-detector-container@0.8.2(@opentelemetry/api@1.9.0)': + '@opentelemetry/resource-detector-container@0.8.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-container@0.8.4(@opentelemetry/api@1.9.0)': + '@opentelemetry/resource-detector-container@0.8.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/resource-detector-gcp@0.29.13(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.38.0 gcp-metadata: 6.1.1 transitivePeerDependencies: - supports-color @@ -68429,18 +68779,18 @@ snapshots: '@opentelemetry/resource-detector-gcp@0.44.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) gcp-metadata: 6.1.1 transitivePeerDependencies: - supports-color - '@opentelemetry/resource-detector-gcp@0.48.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/resource-detector-gcp@0.46.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - gcp-metadata: 8.1.2 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + gcp-metadata: 6.1.1 transitivePeerDependencies: - supports-color @@ -68462,12 +68812,6 @@ snapshots: '@opentelemetry/core': 1.18.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.18.0 - '@opentelemetry/resources@1.18.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.18.1 - '@opentelemetry/resources@1.18.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68498,12 +68842,6 @@ snapshots: '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.25.1 - '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68514,7 +68852,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/resources@2.5.0(@opentelemetry/api@1.9.0)': dependencies: @@ -68522,12 +68860,6 @@ snapshots: '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/resources@2.6.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/sdk-logs@0.208.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68542,14 +68874,6 @@ snapshots: '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs@0.213.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.213.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/sdk-logs@0.41.2(@opentelemetry/api-logs@0.41.2)(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68564,13 +68888,6 @@ snapshots: '@opentelemetry/core': 1.18.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.18.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs@0.45.1(@opentelemetry/api-logs@0.45.1)(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/api-logs': 0.45.1 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-logs@0.46.0(@opentelemetry/api-logs@0.46.0)(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68613,13 +68930,6 @@ snapshots: '@opentelemetry/resources': 1.18.0(@opentelemetry/api@1.9.0) lodash.merge: 4.6.2 - '@opentelemetry/sdk-metrics@1.18.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.8.0) - lodash.merge: 4.6.2 - '@opentelemetry/sdk-metrics@1.18.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68666,12 +68976,6 @@ snapshots: '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics@2.6.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-node@0.208.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68700,33 +69004,33 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/sdk-node@0.213.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/sdk-node@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.213.0 - '@opentelemetry/configuration': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/context-async-hooks': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-grpc': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-http': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-proto': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-grpc': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-proto': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-prometheus': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-grpc': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-http': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-proto': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-zipkin': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-b3': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-jaeger': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.213.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-node': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/api-logs': 0.211.0 + '@opentelemetry/configuration': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/context-async-hooks': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-grpc': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-http': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-proto': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-grpc': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-proto': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-prometheus': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-grpc': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-proto': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-zipkin': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-b3': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-jaeger': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color @@ -68840,13 +69144,6 @@ snapshots: '@opentelemetry/resources': 1.18.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.18.0 - '@opentelemetry/sdk-trace-base@1.18.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.18.1 - '@opentelemetry/sdk-trace-base@1.19.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -68875,13 +69172,6 @@ snapshots: '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.25.1 - '@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68894,7 +69184,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0)': dependencies: @@ -68903,13 +69193,6 @@ snapshots: '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/sdk-trace-base@2.6.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/sdk-trace-node@1.15.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -68977,19 +69260,12 @@ snapshots: '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-node@2.6.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/sdk-trace-node@2.5.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.6.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/sdk-trace-web@1.18.1(@opentelemetry/api@1.8.0)': - dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.18.1(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.18.1 + '@opentelemetry/context-async-hooks': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-web@2.5.0(@opentelemetry/api@1.9.0)': dependencies: @@ -69019,17 +69295,128 @@ snapshots: '@opentelemetry/semantic-conventions@1.39.0': {} - '@opentelemetry/semantic-conventions@1.40.0': {} - '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + + '@orval/angular@7.20.0(openapi-types@12.1.3)(typescript@5.9.3)': + dependencies: + '@orval/core': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + transitivePeerDependencies: + - openapi-types + - supports-color + - typescript + + '@orval/axios@7.20.0(openapi-types@12.1.3)(typescript@5.9.3)': + dependencies: + '@orval/core': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + transitivePeerDependencies: + - openapi-types + - supports-color + - typescript + + '@orval/core@7.20.0(openapi-types@12.1.3)(typescript@5.9.3)': + dependencies: + '@apidevtools/swagger-parser': 12.1.0(openapi-types@12.1.3) + '@ibm-cloud/openapi-ruleset': 1.33.6 + '@stoplight/spectral-core': 1.20.0 + acorn: 8.15.0 + chalk: 5.6.2 + compare-versions: 6.1.1 + debug: 4.4.3(supports-color@5.5.0) + esbuild: 0.27.2 + esutils: 2.0.3 + fs-extra: 11.3.3 + globby: 11.1.0 + lodash.isempty: 4.4.0 + lodash.uniq: 4.5.0 + lodash.uniqby: 4.7.0 + lodash.uniqwith: 4.5.0 + micromatch: 4.0.8 + openapi3-ts: 4.5.0 + swagger2openapi: 7.0.8 + typedoc: 0.28.15(typescript@5.9.3) + transitivePeerDependencies: + - openapi-types + - supports-color + - typescript + + '@orval/fetch@7.20.0(openapi-types@12.1.3)(typescript@5.9.3)': + dependencies: + '@orval/core': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + openapi3-ts: 4.5.0 + transitivePeerDependencies: + - openapi-types + - supports-color + - typescript + + '@orval/hono@7.20.0(openapi-types@12.1.3)(typescript@5.9.3)': + dependencies: + '@orval/core': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/zod': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + fs-extra: 11.3.3 + lodash.uniq: 4.5.0 + openapi3-ts: 4.5.0 + transitivePeerDependencies: + - openapi-types + - supports-color + - typescript + + '@orval/mcp@7.20.0(openapi-types@12.1.3)(typescript@5.9.3)': + dependencies: + '@orval/core': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/fetch': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/zod': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + openapi3-ts: 4.5.0 + transitivePeerDependencies: + - openapi-types + - supports-color + - typescript + + '@orval/mock@7.20.0(openapi-types@12.1.3)(typescript@5.9.3)': + dependencies: + '@orval/core': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + openapi3-ts: 4.5.0 + transitivePeerDependencies: + - openapi-types + - supports-color + - typescript + + '@orval/query@7.20.0(openapi-types@12.1.3)(typescript@5.9.3)': + dependencies: + '@orval/core': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/fetch': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + chalk: 5.6.2 + lodash.omitby: 4.6.0 + transitivePeerDependencies: + - openapi-types + - supports-color + - typescript + + '@orval/swr@7.20.0(openapi-types@12.1.3)(typescript@5.9.3)': + dependencies: + '@orval/core': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/fetch': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + transitivePeerDependencies: + - openapi-types + - supports-color + - typescript + + '@orval/zod@7.20.0(openapi-types@12.1.3)(typescript@5.9.3)': + dependencies: + '@orval/core': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + lodash.uniq: 4.5.0 + openapi3-ts: 4.5.0 + transitivePeerDependencies: + - openapi-types + - supports-color + - typescript '@paralleldrive/cuid2@2.3.1': dependencies: @@ -69153,7 +69540,7 @@ snapshots: '@puppeteer/browsers@2.2.3': dependencies: - debug: 4.3.4 + debug: 4.4.3(supports-color@5.5.0) extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.4.0 @@ -69199,12 +69586,12 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-arrow@1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@radix-ui/react-arrow@1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@radix-ui/react-primitive': 1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) '@radix-ui/react-arrow@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: @@ -69216,15 +69603,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) @@ -69263,18 +69641,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@19.2.1) @@ -69311,12 +69677,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.11)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.11)(react@19.2.1)': dependencies: react: 19.2.1 @@ -69341,12 +69701,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-context@1.1.2(@types/react@18.3.11)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-context@1.1.2(@types/react@18.3.11)(react@19.2.1)': dependencies: react: 19.2.1 @@ -69359,40 +69713,12 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-context@1.1.3(@types/react@18.3.11)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-context@1.1.3(@types/react@18.3.11)(react@19.2.1)': dependencies: react: 19.2.1 optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.11)(react@18.3.1) - aria-hidden: 1.2.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.2(@types/react@18.3.11)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -69422,12 +69748,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-direction@1.1.1(@types/react@18.3.11)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-direction@1.1.1(@types/react@18.3.11)(react@19.2.1)': dependencies: react: 19.2.1 @@ -69440,16 +69760,16 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-dismissable-layer@1.0.3(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@radix-ui/react-dismissable-layer@1.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-compose-refs': 1.0.0(react@19.2.1) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-use-callback-ref': 1.0.0(react@19.2.1) '@radix-ui/react-use-escape-keydown': 1.0.2(react@19.2.1) react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: @@ -69479,19 +69799,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -69505,21 +69812,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -69542,12 +69834,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-focus-guards@1.1.3(@types/react@18.3.11)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-focus-guards@1.1.3(@types/react@18.3.11)(react@19.2.1)': dependencies: react: 19.2.1 @@ -69566,17 +69852,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@19.2.1) @@ -69616,13 +69891,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-id@1.1.1(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-id@1.1.1(@types/react@18.3.11)(react@19.2.1)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@19.2.1) @@ -69639,32 +69907,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-menu@2.1.16(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.11)(react@18.3.1) - aria-hidden: 1.2.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.2(@types/react@18.3.11)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-menu@2.1.16(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -69714,21 +69956,21 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-popper@1.1.1(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@radix-ui/react-popper@1.1.1(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@floating-ui/react-dom': 0.7.2(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react@19.2.1) - '@radix-ui/react-arrow': 1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@floating-ui/react-dom': 0.7.2(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-arrow': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-compose-refs': 1.0.0(react@19.2.1) '@radix-ui/react-context': 1.0.0(react@19.2.1) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-use-callback-ref': 1.0.0(react@19.2.1) '@radix-ui/react-use-layout-effect': 1.0.0(react@19.2.1) '@radix-ui/react-use-rect': 1.0.0(react@19.2.1) '@radix-ui/react-use-size': 1.0.0(react@19.2.1) '@radix-ui/rect': 1.0.0 react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) transitivePeerDependencies: - '@types/react' @@ -69770,24 +70012,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-popper@1.2.8(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/react-dom': 2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/rect': 1.1.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-popper@1.2.8(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@floating-ui/react-dom': 2.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) @@ -69806,12 +70030,12 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-portal@1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@radix-ui/react-portal@1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@radix-ui/react-primitive': 1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) '@radix-ui/react-portal@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: @@ -69833,16 +70057,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) @@ -69853,13 +70067,13 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-presence@1.0.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@radix-ui/react-presence@1.0.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 '@radix-ui/react-compose-refs': 1.0.0(react@19.2.1) '@radix-ui/react-use-layout-effect': 1.0.0(react@19.2.1) react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: @@ -69872,16 +70086,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-presence@1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-presence@1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@19.2.1) @@ -69892,12 +70096,12 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@radix-ui/react-primitive@1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 '@radix-ui/react-slot': 1.0.1(react@19.2.1) react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: @@ -69909,15 +70113,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/react-slot': 1.2.3(@types/react@18.3.11)(react@19.2.1) @@ -69936,15 +70131,6 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@2.1.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-slot': 1.2.4(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-primitive@2.1.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/react-slot': 1.2.4(@types/react@18.3.11)(react@19.2.1) @@ -69954,16 +70140,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-progress@1.1.8(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-context': 1.1.3(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-progress@1.1.8(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/react-context': 1.1.3(@types/react@18.3.11)(react@19.2.1) @@ -69974,23 +70150,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -70055,35 +70214,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-select@2.2.6(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/number': 1.1.1 - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - aria-hidden: 1.2.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.2(@types/react@18.3.11)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-select@2.2.6(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/number': 1.1.1 @@ -70155,13 +70285,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-slot@1.2.3(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-slot@1.2.3(@types/react@18.3.11)(react@19.2.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@19.2.1) @@ -70176,13 +70299,6 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-slot@1.2.4(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-slot@1.2.4(@types/react@18.3.11)(react@19.2.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@19.2.1) @@ -70190,22 +70306,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-tabs@1.1.13(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-tabs@1.1.13(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -70222,26 +70322,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-toast@1.2.15(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-toast@1.2.15(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -70303,23 +70383,23 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-tooltip@1.0.5(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@radix-ui/react-tooltip@1.0.5(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-compose-refs': 1.0.0(react@19.2.1) '@radix-ui/react-context': 1.0.0(react@19.2.1) - '@radix-ui/react-dismissable-layer': 1.0.3(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-dismissable-layer': 1.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-id': 1.0.0(react@19.2.1) - '@radix-ui/react-popper': 1.1.1(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react@19.2.1) - '@radix-ui/react-portal': 1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1) - '@radix-ui/react-presence': 1.0.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-popper': 1.1.1(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-portal': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-presence': 1.0.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-slot': 1.0.1(react@19.2.1) '@radix-ui/react-use-controllable-state': 1.0.0(react@19.2.1) - '@radix-ui/react-visually-hidden': 1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-visually-hidden': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) transitivePeerDependencies: - '@types/react' @@ -70356,12 +70436,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.11)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.11)(react@19.2.1)': dependencies: react: 19.2.1 @@ -70382,14 +70456,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.11)(react@19.2.1)': dependencies: '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.11)(react@19.2.1) @@ -70406,13 +70472,6 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.11)(react@19.2.1)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@19.2.1) @@ -70441,13 +70500,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.11)(react@19.2.1)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.11)(react@19.2.1) @@ -70467,12 +70519,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.11)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.11)(react@19.2.1)': dependencies: react: 19.2.1 @@ -70492,12 +70538,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-use-previous@1.1.1(@types/react@18.3.11)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-use-previous@1.1.1(@types/react@18.3.11)(react@19.2.1)': dependencies: react: 19.2.1 @@ -70524,13 +70564,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-use-rect@1.1.1(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@radix-ui/rect': 1.1.1 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-use-rect@1.1.1(@types/react@18.3.11)(react@19.2.1)': dependencies: '@radix-ui/rect': 1.1.1 @@ -70552,13 +70585,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@radix-ui/react-use-size@1.1.1(@types/react@18.3.11)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.11 - '@radix-ui/react-use-size@1.1.1(@types/react@18.3.11)(react@19.2.1)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@19.2.1) @@ -70573,12 +70599,12 @@ snapshots: optionalDependencies: '@types/react': 19.2.7 - '@radix-ui/react-visually-hidden@1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@radix-ui/react-visually-hidden@1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 - '@radix-ui/react-primitive': 1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: @@ -70590,15 +70616,6 @@ snapshots: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.0 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) @@ -70654,24 +70671,11 @@ snapshots: react: 19.2.1 react-dom: 19.2.1(react@19.2.1) - '@react-email/render@0.0.12': - dependencies: - html-to-text: 9.0.5 - js-beautify: 1.15.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@react-leaflet/core@2.1.0(leaflet@1.9.4)(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@react-leaflet/core@2.1.0(leaflet@1.9.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: leaflet: 1.9.4 react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) - - '@react-leaflet/core@3.0.0(leaflet@1.9.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - leaflet: 1.9.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 19.2.1(react@19.2.1) '@react-leaflet/core@3.0.0(leaflet@1.9.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: @@ -70779,7 +70783,7 @@ snapshots: '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.5) @@ -70798,9 +70802,9 @@ snapshots: '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.28.5) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) - '@babel/template': 7.28.6 + '@babel/template': 7.27.2 '@react-native/babel-plugin-codegen': 0.76.9(@babel/preset-env@7.28.5(@babel/core@7.28.5)) babel-plugin-syntax-hermes-parser: 0.25.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.5) @@ -70830,7 +70834,7 @@ snapshots: '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.29.0) @@ -70849,9 +70853,9 @@ snapshots: '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.29.0) '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.29.0) '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) - '@babel/template': 7.28.6 + '@babel/template': 7.27.2 '@react-native/babel-plugin-codegen': 0.76.9(@babel/preset-env@7.28.5(@babel/core@7.29.0)) babel-plugin-syntax-hermes-parser: 0.25.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0) @@ -70862,7 +70866,7 @@ snapshots: '@react-native/codegen@0.76.9(@babel/preset-env@7.28.5(@babel/core@7.28.5))': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.28.5 '@babel/preset-env': 7.28.5(@babel/core@7.28.5) glob: 13.0.0 hermes-parser: 0.23.1 @@ -70876,7 +70880,7 @@ snapshots: '@react-native/codegen@0.76.9(@babel/preset-env@7.28.5(@babel/core@7.29.0))': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.28.5 '@babel/preset-env': 7.28.5(@babel/core@7.29.0) glob: 13.0.0 hermes-parser: 0.23.1 @@ -70892,7 +70896,7 @@ snapshots: dependencies: '@react-native/dev-middleware': 0.76.9 '@react-native/metro-babel-transformer': 0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5)) - chalk: 4.1.2 + chalk: 5.6.2 execa: 5.1.1 invariant: 2.2.4 metro: 0.81.5 @@ -70912,7 +70916,7 @@ snapshots: dependencies: '@react-native/dev-middleware': 0.76.9 '@react-native/metro-babel-transformer': 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0)) - chalk: 4.1.2 + chalk: 5.6.2 execa: 5.1.1 invariant: 2.2.4 metro: 0.81.5 @@ -70937,7 +70941,7 @@ snapshots: chrome-launcher: 0.15.2 chromium-edge-launcher: 0.2.0 connect: 3.7.0 - debug: 2.6.9 + debug: 4.4.3(supports-color@5.5.0) invariant: 2.2.4 nullthrows: 1.1.1 open: 7.4.2 @@ -70949,7 +70953,7 @@ snapshots: - supports-color - utf-8-validate - '@react-native/eslint-config@0.76.9(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)))(prettier@3.7.4)(typescript@5.9.3)': + '@react-native/eslint-config@0.76.9(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)))(prettier@3.7.4)(typescript@5.9.3)': dependencies: '@babel/core': 7.28.5 '@babel/eslint-parser': 7.28.5(@babel/core@7.28.5)(eslint@9.39.2(jiti@2.6.1)) @@ -70960,7 +70964,7 @@ snapshots: eslint-config-prettier: 8.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-eslint-comments: 3.2.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-ft-flow: 2.0.3(@babel/eslint-parser@7.28.5(@babel/core@7.28.5)(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)))(typescript@5.9.3) + eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)))(typescript@5.9.3) eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-hooks: 4.6.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-native: 4.1.0(eslint@9.39.2(jiti@2.6.1)) @@ -70970,7 +70974,7 @@ snapshots: - supports-color - typescript - '@react-native/eslint-config@0.76.9(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(prettier@3.7.4)(typescript@5.9.3)': + '@react-native/eslint-config@0.76.9(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)))(prettier@3.7.4)(typescript@5.9.3)': dependencies: '@babel/core': 7.28.5 '@babel/eslint-parser': 7.28.5(@babel/core@7.28.5)(eslint@9.39.2(jiti@2.6.1)) @@ -70981,7 +70985,7 @@ snapshots: eslint-config-prettier: 8.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-eslint-comments: 3.2.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-ft-flow: 2.0.3(@babel/eslint-parser@7.28.5(@babel/core@7.28.5)(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3) + eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)))(typescript@5.9.3) eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-hooks: 4.6.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-native: 4.1.0(eslint@9.39.2(jiti@2.6.1)) @@ -71075,7 +71079,7 @@ snapshots: use-latest-callback: 0.2.6(react@19.2.1) use-sync-external-store: 1.6.0(react@19.2.1) - '@react-navigation/drawer@7.7.10(af2bd9e7ac6aa06e732e4412122c380d)': + '@react-navigation/drawer@7.7.10(ydampp7fvan4qptkli3dqtftoq)': dependencies: '@react-navigation/elements': 2.9.3(@react-navigation/native@7.1.26(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native-safe-area-context@5.6.2(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) '@react-navigation/native': 7.1.26(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) @@ -71214,13 +71218,13 @@ snapshots: react: 19.2.1 three: 0.162.0 - '@react-spring/three@9.7.5(@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0))(react@19.2.1)(three@0.162.0)': + '@react-spring/three@9.7.5(@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0))(react@19.2.1)(three@0.162.0)': dependencies: '@react-spring/animated': 9.7.5(react@19.2.1) '@react-spring/core': 9.7.5(react@19.2.1) '@react-spring/shared': 9.7.5(react@19.2.1) '@react-spring/types': 9.7.5 - '@react-three/fiber': 8.18.0(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0) + '@react-three/fiber': 8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0) react: 19.2.1 three: 0.162.0 @@ -71228,15 +71232,6 @@ snapshots: '@react-spring/types@9.7.5': {} - '@react-spring/web@10.0.3(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': - dependencies: - '@react-spring/animated': 10.0.3(react@19.2.1) - '@react-spring/core': 10.0.3(react@19.2.1) - '@react-spring/shared': 10.0.3(react@19.2.1) - '@react-spring/types': 10.0.3 - react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) - '@react-spring/web@10.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@react-spring/animated': 10.0.3(react@19.2.1) @@ -71266,13 +71261,13 @@ snapshots: '@swc/helpers': 0.5.17 react: 19.2.1 - '@react-three/drei@9.122.0(@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0))(@types/react@18.3.11)(@types/three@0.162.0)(immer@11.1.0)(react-dom@18.3.1(react@19.2.1))(react@19.2.1)(three@0.162.0)(use-sync-external-store@1.6.0(react@19.2.1))': + '@react-three/drei@9.122.0(@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0))(@types/react@18.3.11)(@types/three@0.162.0)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(three@0.162.0)(use-sync-external-store@1.6.0(react@19.2.1))': dependencies: '@babel/runtime': 7.28.4 '@mediapipe/tasks-vision': 0.10.17 '@monogrid/gainmap-js': 3.4.0(three@0.162.0) - '@react-spring/three': 9.7.5(@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0))(react@19.2.1)(three@0.162.0) - '@react-three/fiber': 8.18.0(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0) + '@react-spring/three': 9.7.5(@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0))(react@19.2.1)(three@0.162.0) + '@react-three/fiber': 8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0) '@use-gesture/react': 10.3.1(react@19.2.1) camera-controls: 2.10.1(three@0.162.0) cross-env: 7.0.3 @@ -71294,14 +71289,14 @@ snapshots: utility-types: 3.11.0 zustand: 5.0.9(@types/react@18.3.11)(immer@11.1.0)(react@19.2.1)(use-sync-external-store@1.6.0(react@19.2.1)) optionalDependencies: - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) transitivePeerDependencies: - '@types/react' - '@types/three' - immer - use-sync-external-store - '@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0)': + '@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0)': dependencies: '@babel/runtime': 7.28.4 '@types/react-reconciler': 0.26.7 @@ -71311,18 +71306,18 @@ snapshots: its-fine: 1.2.5(@types/react@18.3.11)(react@19.2.1) react: 19.2.1 react-reconciler: 0.27.0(react@19.2.1) - react-use-measure: 2.1.7(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + react-use-measure: 2.1.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1) scheduler: 0.21.0 suspend-react: 0.1.3(react@19.2.1) three: 0.162.0 zustand: 3.7.2(react@19.2.1) optionalDependencies: - react-dom: 18.3.1(react@19.2.1) - react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) + react-native: 0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1) transitivePeerDependencies: - '@types/react' - '@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0)': + '@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0)': dependencies: '@babel/runtime': 7.28.4 '@types/react-reconciler': 0.26.7 @@ -71339,13 +71334,13 @@ snapshots: zustand: 3.7.2(react@19.2.1) optionalDependencies: react-dom: 19.2.1(react@19.2.1) - react-native: 0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1) + react-native: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1) transitivePeerDependencies: - '@types/react' - '@react-three/postprocessing@2.19.1(@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0))(@types/three@0.162.0)(react@19.2.1)(three@0.162.0)': + '@react-three/postprocessing@2.19.1(@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0))(@types/three@0.162.0)(react@19.2.1)(three@0.162.0)': dependencies: - '@react-three/fiber': 8.18.0(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0) + '@react-three/fiber': 8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.28.5(@babel/core@7.29.0))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0) buffer: 6.0.3 maath: 0.6.0(@types/three@0.162.0)(three@0.162.0) n8ao: 1.10.1(postprocessing@6.38.2(three@0.162.0))(three@0.162.0) @@ -71360,29 +71355,29 @@ snapshots: dependencies: react: 19.2.1 - '@reactflow/background@11.3.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@reactflow/background@11.3.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@reactflow/core': 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@reactflow/core': 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) classcat: 5.0.5 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + zustand: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@19.2.1) transitivePeerDependencies: - '@types/react' - immer - '@reactflow/controls@11.2.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@reactflow/controls@11.2.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@reactflow/core': 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@reactflow/core': 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) classcat: 5.0.5 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + zustand: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@19.2.1) transitivePeerDependencies: - '@types/react' - immer - '@reactflow/core@11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@reactflow/core@11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@types/d3': 7.4.3 '@types/d3-drag': 3.0.7 @@ -71392,110 +71387,72 @@ snapshots: d3-drag: 3.0.0 d3-selection: 3.0.0 d3-zoom: 3.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + zustand: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@19.2.1) transitivePeerDependencies: - '@types/react' - immer - '@reactflow/minimap@11.7.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@reactflow/minimap@11.7.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@reactflow/core': 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@reactflow/core': 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@types/d3-selection': 3.0.11 '@types/d3-zoom': 3.0.8 classcat: 5.0.5 d3-selection: 3.0.0 d3-zoom: 3.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + zustand: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@19.2.1) transitivePeerDependencies: - '@types/react' - immer - '@reactflow/node-resizer@2.2.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@reactflow/node-resizer@2.2.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@reactflow/core': 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@reactflow/core': 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) classcat: 5.0.5 d3-drag: 3.0.0 d3-selection: 3.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + zustand: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@19.2.1) transitivePeerDependencies: - '@types/react' - immer - '@reactflow/node-toolbar@1.3.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@reactflow/node-toolbar@1.3.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@reactflow/core': 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@reactflow/core': 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) classcat: 5.0.5 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + zustand: 4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@19.2.1) transitivePeerDependencies: - '@types/react' - immer - '@redis/bloom@1.2.0(@redis/client@1.6.1)': - dependencies: - '@redis/client': 1.6.1 - '@redis/bloom@5.10.0(@redis/client@5.10.0)': dependencies: '@redis/client': 5.10.0 - '@redis/client@1.6.1': - dependencies: - cluster-key-slot: 1.1.2 - generic-pool: 3.9.0 - yallist: 4.0.0 - '@redis/client@5.10.0': dependencies: cluster-key-slot: 1.1.2 - '@redis/graph@1.1.1(@redis/client@1.6.1)': - dependencies: - '@redis/client': 1.6.1 - - '@redis/json@1.0.7(@redis/client@1.6.1)': - dependencies: - '@redis/client': 1.6.1 - '@redis/json@5.10.0(@redis/client@5.10.0)': dependencies: '@redis/client': 5.10.0 - '@redis/search@1.2.0(@redis/client@1.6.1)': - dependencies: - '@redis/client': 1.6.1 - '@redis/search@5.10.0(@redis/client@5.10.0)': dependencies: '@redis/client': 5.10.0 - '@redis/time-series@1.1.0(@redis/client@1.6.1)': - dependencies: - '@redis/client': 1.6.1 - '@redis/time-series@5.10.0(@redis/client@5.10.0)': dependencies: '@redis/client': 5.10.0 - '@reduxjs/toolkit@2.11.0(react-redux@9.2.0(@types/react@18.3.11)(react@18.3.1)(redux@5.0.1))(react@18.3.1)': - dependencies: - '@standard-schema/spec': 1.1.0 - '@standard-schema/utils': 0.3.0 - immer: 11.1.0 - redux: 5.0.1 - redux-thunk: 3.1.0(redux@5.0.1) - reselect: 5.1.1 - optionalDependencies: - react: 18.3.1 - react-redux: 9.2.0(@types/react@18.3.11)(react@18.3.1)(redux@5.0.1) - '@reduxjs/toolkit@2.11.0(react-redux@9.2.0(@types/react@18.3.11)(react@19.2.1)(redux@5.0.1))(react@19.2.1)': dependencies: '@standard-schema/spec': 1.1.0 @@ -71536,7 +71493,7 @@ snapshots: '@rollup/plugin-babel@5.3.1(@babel/core@7.28.5)(@types/babel__core@7.20.5)(rollup@2.79.2)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-module-imports': 7.28.6 + '@babel/helper-module-imports': 7.27.1 '@rollup/pluginutils': 3.1.0(rollup@2.79.2) rollup: 2.79.2 optionalDependencies: @@ -71687,11 +71644,6 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@selderee/plugin-htmlparser2@0.11.0': - dependencies: - domhandler: 5.0.3 - selderee: 0.11.0 - '@semantic-release/changelog@6.0.3(semantic-release@24.2.9(typescript@5.9.3))': dependencies: '@semantic-release/error': 3.0.0 @@ -71937,11 +71889,29 @@ snapshots: '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/engine-oniguruma@3.20.0': + dependencies: + '@shikijs/types': 3.20.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.20.0': + dependencies: + '@shikijs/types': 3.20.0 + + '@shikijs/themes@3.20.0': + dependencies: + '@shikijs/types': 3.20.0 + '@shikijs/types@1.29.2': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + '@shikijs/types@3.20.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + '@shikijs/vscode-textmate@10.0.2': {} '@shopify/react-native-skia@1.12.4(react-native-reanimated@4.2.1(react-native-worklets@0.7.1(@babel/core@7.28.5)(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)': @@ -71961,6 +71931,38 @@ snapshots: '@sideway/pinpoint@2.0.0': {} + '@sigstore/bundle@4.0.0': + dependencies: + '@sigstore/protobuf-specs': 0.5.0 + + '@sigstore/core@3.1.0': {} + + '@sigstore/protobuf-specs@0.5.0': {} + + '@sigstore/sign@4.1.0': + dependencies: + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.1.0 + '@sigstore/protobuf-specs': 0.5.0 + make-fetch-happen: 15.0.3 + proc-log: 6.1.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + + '@sigstore/tuf@4.0.1': + dependencies: + '@sigstore/protobuf-specs': 0.5.0 + tuf-js: 4.1.0 + transitivePeerDependencies: + - supports-color + + '@sigstore/verify@3.1.0': + dependencies: + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.1.0 + '@sigstore/protobuf-specs': 0.5.0 + '@sinclair/typebox@0.27.8': {} '@sinclair/typebox@0.34.48': {} @@ -71999,10 +72001,10 @@ snapshots: '@slack/socket-mode': 1.3.6 '@slack/types': 2.19.0 '@slack/web-api': 6.13.0 - '@types/express': 4.17.25 + '@types/express': 4.17.21 '@types/promise.allsettled': 1.0.6 '@types/tsscmp': 1.0.2 - axios: 1.13.6 + axios: 1.13.2 express: 5.2.1 path-to-regexp: 8.3.0 promise.allsettled: 1.0.7 @@ -72055,7 +72057,7 @@ snapshots: '@slack/types': 2.19.0 '@types/is-stream': 1.1.0 '@types/node': 20.19.27 - axios: 1.13.6 + axios: 1.13.2 eventemitter3: 3.1.2 form-data: 4.0.5 is-electron: 2.2.2 @@ -72071,7 +72073,7 @@ snapshots: '@slack/types': 2.19.0 '@types/node': 20.19.27 '@types/retry': 0.12.0 - axios: 1.13.6 + axios: 1.13.2 eventemitter3: 5.0.4 form-data: 4.0.5 is-electron: 2.2.2 @@ -72086,13 +72088,13 @@ snapshots: dependencies: '@slack/types': 2.19.0 '@types/node': 20.19.27 - axios: 1.13.6 + axios: 1.13.2 transitivePeerDependencies: - debug - '@smithy/abort-controller@4.2.11': + '@smithy/abort-controller@4.2.7': dependencies: - '@smithy/types': 4.13.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/abort-controller@4.2.8': @@ -72105,26 +72107,17 @@ snapshots: '@smithy/util-base64': 4.3.0 tslib: 2.8.1 - '@smithy/chunked-blob-reader-native@4.2.3': - dependencies: - '@smithy/util-base64': 4.3.2 - tslib: 2.8.1 - '@smithy/chunked-blob-reader@5.2.0': dependencies: tslib: 2.8.1 - '@smithy/chunked-blob-reader@5.2.2': + '@smithy/config-resolver@4.4.5': dependencies: - tslib: 2.8.1 - - '@smithy/config-resolver@4.4.10': - dependencies: - '@smithy/node-config-provider': 4.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-config-provider': 4.2.2 - '@smithy/util-endpoints': 3.3.2 - '@smithy/util-middleware': 4.2.11 + '@smithy/node-config-provider': 4.3.7 + '@smithy/types': 4.11.0 + '@smithy/util-config-provider': 4.2.0 + '@smithy/util-endpoints': 3.2.7 + '@smithy/util-middleware': 4.2.7 tslib: 2.8.1 '@smithy/config-resolver@4.4.6': @@ -72136,6 +72129,19 @@ snapshots: '@smithy/util-middleware': 4.2.8 tslib: 2.8.1 + '@smithy/core@3.20.0': + dependencies: + '@smithy/middleware-serde': 4.2.8 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-stream': 4.5.8 + '@smithy/util-utf8': 4.2.0 + '@smithy/uuid': 1.1.0 + tslib: 2.8.1 + '@smithy/core@3.22.0': dependencies: '@smithy/middleware-serde': 4.2.9 @@ -72149,25 +72155,12 @@ snapshots: '@smithy/uuid': 1.1.0 tslib: 2.8.1 - '@smithy/core@3.23.9': - dependencies: - '@smithy/middleware-serde': 4.2.12 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-stream': 4.5.17 - '@smithy/util-utf8': 4.2.2 - '@smithy/uuid': 1.1.2 - tslib: 2.8.1 - - '@smithy/credential-provider-imds@4.2.11': + '@smithy/credential-provider-imds@4.2.7': dependencies: - '@smithy/node-config-provider': 4.3.11 - '@smithy/property-provider': 4.2.11 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 + '@smithy/node-config-provider': 4.3.7 + '@smithy/property-provider': 4.2.7 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 tslib: 2.8.1 '@smithy/credential-provider-imds@4.2.8': @@ -72178,11 +72171,11 @@ snapshots: '@smithy/url-parser': 4.2.8 tslib: 2.8.1 - '@smithy/eventstream-codec@4.2.11': + '@smithy/eventstream-codec@4.2.7': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.13.0 - '@smithy/util-hex-encoding': 4.2.2 + '@smithy/types': 4.11.0 + '@smithy/util-hex-encoding': 4.2.0 tslib: 2.8.1 '@smithy/eventstream-codec@4.2.8': @@ -72192,10 +72185,10 @@ snapshots: '@smithy/util-hex-encoding': 4.2.0 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@4.2.11': + '@smithy/eventstream-serde-browser@4.2.7': dependencies: - '@smithy/eventstream-serde-universal': 4.2.11 - '@smithy/types': 4.13.0 + '@smithy/eventstream-serde-universal': 4.2.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/eventstream-serde-browser@4.2.8': @@ -72204,9 +72197,9 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/eventstream-serde-config-resolver@4.3.11': + '@smithy/eventstream-serde-config-resolver@4.3.7': dependencies: - '@smithy/types': 4.13.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/eventstream-serde-config-resolver@4.3.8': @@ -72214,10 +72207,10 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/eventstream-serde-node@4.2.11': + '@smithy/eventstream-serde-node@4.2.7': dependencies: - '@smithy/eventstream-serde-universal': 4.2.11 - '@smithy/types': 4.13.0 + '@smithy/eventstream-serde-universal': 4.2.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/eventstream-serde-node@4.2.8': @@ -72226,10 +72219,10 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@4.2.11': + '@smithy/eventstream-serde-universal@4.2.7': dependencies: - '@smithy/eventstream-codec': 4.2.11 - '@smithy/types': 4.13.0 + '@smithy/eventstream-codec': 4.2.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/eventstream-serde-universal@4.2.8': @@ -72238,12 +72231,12 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/fetch-http-handler@5.3.13': + '@smithy/fetch-http-handler@5.3.8': dependencies: - '@smithy/protocol-http': 5.3.11 - '@smithy/querystring-builder': 4.2.11 - '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.2 + '@smithy/protocol-http': 5.3.7 + '@smithy/querystring-builder': 4.2.7 + '@smithy/types': 4.11.0 + '@smithy/util-base64': 4.3.0 tslib: 2.8.1 '@smithy/fetch-http-handler@5.3.9': @@ -72254,11 +72247,11 @@ snapshots: '@smithy/util-base64': 4.3.0 tslib: 2.8.1 - '@smithy/hash-blob-browser@4.2.12': + '@smithy/hash-blob-browser@4.2.8': dependencies: - '@smithy/chunked-blob-reader': 5.2.2 - '@smithy/chunked-blob-reader-native': 4.2.3 - '@smithy/types': 4.13.0 + '@smithy/chunked-blob-reader': 5.2.0 + '@smithy/chunked-blob-reader-native': 4.2.1 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/hash-blob-browser@4.2.9': @@ -72268,11 +72261,11 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/hash-node@4.2.11': + '@smithy/hash-node@4.2.7': dependencies: - '@smithy/types': 4.13.0 - '@smithy/util-buffer-from': 4.2.2 - '@smithy/util-utf8': 4.2.2 + '@smithy/types': 4.11.0 + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 '@smithy/hash-node@4.2.8': @@ -72282,10 +72275,10 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/hash-stream-node@4.2.11': + '@smithy/hash-stream-node@4.2.7': dependencies: - '@smithy/types': 4.13.0 - '@smithy/util-utf8': 4.2.2 + '@smithy/types': 4.11.0 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 '@smithy/hash-stream-node@4.2.8': @@ -72294,9 +72287,9 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/invalid-dependency@4.2.11': + '@smithy/invalid-dependency@4.2.7': dependencies: - '@smithy/types': 4.13.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/invalid-dependency@4.2.8': @@ -72312,14 +72305,10 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/is-array-buffer@4.2.2': + '@smithy/md5-js@4.2.7': dependencies: - tslib: 2.8.1 - - '@smithy/md5-js@4.2.11': - dependencies: - '@smithy/types': 4.13.0 - '@smithy/util-utf8': 4.2.2 + '@smithy/types': 4.11.0 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 '@smithy/md5-js@4.2.8': @@ -72330,21 +72319,21 @@ snapshots: '@smithy/middleware-compression@4.3.16': dependencies: - '@smithy/core': 3.22.0 + '@smithy/core': 3.20.0 '@smithy/is-array-buffer': 4.2.0 - '@smithy/node-config-provider': 4.3.8 - '@smithy/protocol-http': 5.3.8 - '@smithy/types': 4.12.0 + '@smithy/node-config-provider': 4.3.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 '@smithy/util-config-provider': 4.2.0 - '@smithy/util-middleware': 4.2.8 + '@smithy/util-middleware': 4.2.7 '@smithy/util-utf8': 4.2.0 fflate: 0.8.1 tslib: 2.8.1 - '@smithy/middleware-content-length@4.2.11': + '@smithy/middleware-content-length@4.2.7': dependencies: - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/middleware-content-length@4.2.8': @@ -72353,6 +72342,17 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 + '@smithy/middleware-endpoint@4.4.1': + dependencies: + '@smithy/core': 3.20.0 + '@smithy/middleware-serde': 4.2.8 + '@smithy/node-config-provider': 4.3.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 + '@smithy/url-parser': 4.2.7 + '@smithy/util-middleware': 4.2.7 + tslib: 2.8.1 + '@smithy/middleware-endpoint@4.4.12': dependencies: '@smithy/core': 3.22.0 @@ -72364,15 +72364,16 @@ snapshots: '@smithy/util-middleware': 4.2.8 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.4.23': + '@smithy/middleware-retry@4.4.17': dependencies: - '@smithy/core': 3.23.9 - '@smithy/middleware-serde': 4.2.12 - '@smithy/node-config-provider': 4.3.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.11 - '@smithy/util-middleware': 4.2.11 + '@smithy/node-config-provider': 4.3.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/service-error-classification': 4.2.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-retry': 4.2.7 + '@smithy/uuid': 1.1.0 tslib: 2.8.1 '@smithy/middleware-retry@4.4.29': @@ -72387,22 +72388,10 @@ snapshots: '@smithy/uuid': 1.1.0 tslib: 2.8.1 - '@smithy/middleware-retry@4.4.40': + '@smithy/middleware-serde@4.2.8': dependencies: - '@smithy/node-config-provider': 4.3.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/service-error-classification': 4.2.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-retry': 4.2.11 - '@smithy/uuid': 1.1.2 - tslib: 2.8.1 - - '@smithy/middleware-serde@4.2.12': - dependencies: - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/middleware-serde@4.2.9': @@ -72411,9 +72400,9 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/middleware-stack@4.2.11': + '@smithy/middleware-stack@4.2.7': dependencies: - '@smithy/types': 4.13.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/middleware-stack@4.2.8': @@ -72421,11 +72410,11 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/node-config-provider@4.3.11': + '@smithy/node-config-provider@4.3.7': dependencies: - '@smithy/property-provider': 4.2.11 - '@smithy/shared-ini-file-loader': 4.4.6 - '@smithy/types': 4.13.0 + '@smithy/property-provider': 4.2.7 + '@smithy/shared-ini-file-loader': 4.4.2 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/node-config-provider@4.3.8': @@ -72435,12 +72424,12 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/node-http-handler@4.4.14': + '@smithy/node-http-handler@4.4.7': dependencies: - '@smithy/abort-controller': 4.2.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/querystring-builder': 4.2.11 - '@smithy/types': 4.13.0 + '@smithy/abort-controller': 4.2.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/querystring-builder': 4.2.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/node-http-handler@4.4.8': @@ -72451,9 +72440,9 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/property-provider@4.2.11': + '@smithy/property-provider@4.2.7': dependencies: - '@smithy/types': 4.13.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/property-provider@4.2.8': @@ -72461,9 +72450,9 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/protocol-http@5.3.11': + '@smithy/protocol-http@5.3.7': dependencies: - '@smithy/types': 4.13.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/protocol-http@5.3.8': @@ -72471,10 +72460,10 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/querystring-builder@4.2.11': + '@smithy/querystring-builder@4.2.7': dependencies: - '@smithy/types': 4.13.0 - '@smithy/util-uri-escape': 4.2.2 + '@smithy/types': 4.11.0 + '@smithy/util-uri-escape': 4.2.0 tslib: 2.8.1 '@smithy/querystring-builder@4.2.8': @@ -72483,9 +72472,9 @@ snapshots: '@smithy/util-uri-escape': 4.2.0 tslib: 2.8.1 - '@smithy/querystring-parser@4.2.11': + '@smithy/querystring-parser@4.2.7': dependencies: - '@smithy/types': 4.13.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/querystring-parser@4.2.8': @@ -72493,33 +72482,33 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/service-error-classification@4.2.11': + '@smithy/service-error-classification@4.2.7': dependencies: - '@smithy/types': 4.13.0 + '@smithy/types': 4.11.0 '@smithy/service-error-classification@4.2.8': dependencies: '@smithy/types': 4.12.0 - '@smithy/shared-ini-file-loader@4.4.3': + '@smithy/shared-ini-file-loader@4.4.2': dependencies: - '@smithy/types': 4.12.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 - '@smithy/shared-ini-file-loader@4.4.6': + '@smithy/shared-ini-file-loader@4.4.3': dependencies: - '@smithy/types': 4.13.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/signature-v4@5.3.11': + '@smithy/signature-v4@5.3.7': dependencies: - '@smithy/is-array-buffer': 4.2.2 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-hex-encoding': 4.2.2 - '@smithy/util-middleware': 4.2.11 - '@smithy/util-uri-escape': 4.2.2 - '@smithy/util-utf8': 4.2.2 + '@smithy/is-array-buffer': 4.2.0 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + '@smithy/util-hex-encoding': 4.2.0 + '@smithy/util-middleware': 4.2.7 + '@smithy/util-uri-escape': 4.2.0 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 '@smithy/signature-v4@5.3.8': @@ -72533,6 +72522,16 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 + '@smithy/smithy-client@4.10.2': + dependencies: + '@smithy/core': 3.20.0 + '@smithy/middleware-endpoint': 4.4.1 + '@smithy/middleware-stack': 4.2.7 + '@smithy/protocol-http': 5.3.7 + '@smithy/types': 4.11.0 + '@smithy/util-stream': 4.5.8 + tslib: 2.8.1 + '@smithy/smithy-client@4.11.1': dependencies: '@smithy/core': 3.22.0 @@ -72543,28 +72542,18 @@ snapshots: '@smithy/util-stream': 4.5.10 tslib: 2.8.1 - '@smithy/smithy-client@4.12.3': + '@smithy/types@4.11.0': dependencies: - '@smithy/core': 3.23.9 - '@smithy/middleware-endpoint': 4.4.23 - '@smithy/middleware-stack': 4.2.11 - '@smithy/protocol-http': 5.3.11 - '@smithy/types': 4.13.0 - '@smithy/util-stream': 4.5.17 tslib: 2.8.1 '@smithy/types@4.12.0': dependencies: tslib: 2.8.1 - '@smithy/types@4.13.0': - dependencies: - tslib: 2.8.1 - - '@smithy/url-parser@4.2.11': + '@smithy/url-parser@4.2.7': dependencies: - '@smithy/querystring-parser': 4.2.11 - '@smithy/types': 4.13.0 + '@smithy/querystring-parser': 4.2.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/url-parser@4.2.8': @@ -72579,28 +72568,14 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/util-base64@4.3.2': - dependencies: - '@smithy/util-buffer-from': 4.2.2 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - '@smithy/util-body-length-browser@4.2.0': dependencies: tslib: 2.8.1 - '@smithy/util-body-length-browser@4.2.2': - dependencies: - tslib: 2.8.1 - '@smithy/util-body-length-node@4.2.1': dependencies: tslib: 2.8.1 - '@smithy/util-body-length-node@4.2.3': - dependencies: - tslib: 2.8.1 - '@smithy/util-buffer-from@2.2.0': dependencies: '@smithy/is-array-buffer': 2.2.0 @@ -72611,17 +72586,15 @@ snapshots: '@smithy/is-array-buffer': 4.2.0 tslib: 2.8.1 - '@smithy/util-buffer-from@4.2.2': - dependencies: - '@smithy/is-array-buffer': 4.2.2 - tslib: 2.8.1 - '@smithy/util-config-provider@4.2.0': dependencies: tslib: 2.8.1 - '@smithy/util-config-provider@4.2.2': + '@smithy/util-defaults-mode-browser@4.3.16': dependencies: + '@smithy/property-provider': 4.2.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/util-defaults-mode-browser@4.3.28': @@ -72631,11 +72604,14 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.3.39': + '@smithy/util-defaults-mode-node@4.2.19': dependencies: - '@smithy/property-provider': 4.2.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 + '@smithy/config-resolver': 4.4.5 + '@smithy/credential-provider-imds': 4.2.7 + '@smithy/node-config-provider': 4.3.7 + '@smithy/property-provider': 4.2.7 + '@smithy/smithy-client': 4.10.2 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/util-defaults-mode-node@4.2.31': @@ -72648,14 +72624,10 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.2.42': + '@smithy/util-endpoints@3.2.7': dependencies: - '@smithy/config-resolver': 4.4.10 - '@smithy/credential-provider-imds': 4.2.11 - '@smithy/node-config-provider': 4.3.11 - '@smithy/property-provider': 4.2.11 - '@smithy/smithy-client': 4.12.3 - '@smithy/types': 4.13.0 + '@smithy/node-config-provider': 4.3.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/util-endpoints@3.2.8': @@ -72664,23 +72636,13 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/util-endpoints@3.3.2': - dependencies: - '@smithy/node-config-provider': 4.3.11 - '@smithy/types': 4.13.0 - tslib: 2.8.1 - '@smithy/util-hex-encoding@4.2.0': dependencies: tslib: 2.8.1 - '@smithy/util-hex-encoding@4.2.2': + '@smithy/util-middleware@4.2.7': dependencies: - tslib: 2.8.1 - - '@smithy/util-middleware@4.2.11': - dependencies: - '@smithy/types': 4.13.0 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/util-middleware@4.2.8': @@ -72688,10 +72650,10 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/util-retry@4.2.11': + '@smithy/util-retry@4.2.7': dependencies: - '@smithy/service-error-classification': 4.2.11 - '@smithy/types': 4.13.0 + '@smithy/service-error-classification': 4.2.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/util-retry@4.2.8': @@ -72711,25 +72673,21 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/util-stream@4.5.17': + '@smithy/util-stream@4.5.8': dependencies: - '@smithy/fetch-http-handler': 5.3.13 - '@smithy/node-http-handler': 4.4.14 - '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.2 - '@smithy/util-buffer-from': 4.2.2 - '@smithy/util-hex-encoding': 4.2.2 - '@smithy/util-utf8': 4.2.2 + '@smithy/fetch-http-handler': 5.3.8 + '@smithy/node-http-handler': 4.4.7 + '@smithy/types': 4.11.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-hex-encoding': 4.2.0 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 '@smithy/util-uri-escape@4.2.0': dependencies: tslib: 2.8.1 - '@smithy/util-uri-escape@4.2.2': - dependencies: - tslib: 2.8.1 - '@smithy/util-utf8@2.3.0': dependencies: '@smithy/util-buffer-from': 2.2.0 @@ -72740,15 +72698,10 @@ snapshots: '@smithy/util-buffer-from': 4.2.0 tslib: 2.8.1 - '@smithy/util-utf8@4.2.2': + '@smithy/util-waiter@4.2.7': dependencies: - '@smithy/util-buffer-from': 4.2.2 - tslib: 2.8.1 - - '@smithy/util-waiter@4.2.11': - dependencies: - '@smithy/abort-controller': 4.2.11 - '@smithy/types': 4.13.0 + '@smithy/abort-controller': 4.2.7 + '@smithy/types': 4.11.0 tslib: 2.8.1 '@smithy/util-waiter@4.2.8': @@ -72761,10 +72714,6 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/uuid@1.1.2': - dependencies: - tslib: 2.8.1 - '@so-ric/colorspace@1.1.6': dependencies: color: 5.0.3 @@ -72810,6 +72759,155 @@ snapshots: dependencies: react: 19.2.1 + '@stoplight/better-ajv-errors@1.0.3(ajv@8.17.1)': + dependencies: + ajv: 8.17.1 + jsonpointer: 5.0.1 + leven: 3.1.0 + + '@stoplight/json-ref-readers@1.2.2': + dependencies: + node-fetch: 3.3.2 + tslib: 1.14.1 + + '@stoplight/json-ref-resolver@3.1.6': + dependencies: + '@stoplight/json': 3.21.7 + '@stoplight/path': 1.3.2 + '@stoplight/types': 13.20.0 + '@types/urijs': 1.19.26 + dependency-graph: 0.11.0 + fast-memoize: 2.5.2 + immer: 9.0.21 + lodash: 4.17.23 + tslib: 2.8.1 + urijs: 1.19.11 + + '@stoplight/json@3.21.7': + dependencies: + '@stoplight/ordered-object-literal': 1.0.5 + '@stoplight/path': 1.3.2 + '@stoplight/types': 13.20.0 + jsonc-parser: 2.2.1 + lodash: 4.17.23 + safe-stable-stringify: 1.1.1 + + '@stoplight/ordered-object-literal@1.0.5': {} + + '@stoplight/path@1.3.2': {} + + '@stoplight/spectral-core@1.20.0': + dependencies: + '@stoplight/better-ajv-errors': 1.0.3(ajv@8.17.1) + '@stoplight/json': 3.21.7 + '@stoplight/path': 1.3.2 + '@stoplight/spectral-parsers': 1.0.5 + '@stoplight/spectral-ref-resolver': 1.0.5 + '@stoplight/spectral-runtime': 1.1.4 + '@stoplight/types': 13.6.0 + '@types/es-aggregate-error': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-errors: 3.0.0(ajv@8.17.1) + ajv-formats: 2.1.1(ajv@8.17.1) + es-aggregate-error: 1.0.14 + jsonpath-plus: 10.3.0 + lodash: 4.17.23 + lodash.topath: 4.5.2 + minimatch: 3.1.2 + nimma: 0.2.3 + pony-cause: 1.1.1 + simple-eval: 1.0.1 + tslib: 2.8.1 + + '@stoplight/spectral-formats@1.8.2': + dependencies: + '@stoplight/json': 3.21.7 + '@stoplight/spectral-core': 1.20.0 + '@types/json-schema': 7.0.15 + tslib: 2.8.1 + + '@stoplight/spectral-functions@1.10.1': + dependencies: + '@stoplight/better-ajv-errors': 1.0.3(ajv@8.17.1) + '@stoplight/json': 3.21.7 + '@stoplight/spectral-core': 1.20.0 + '@stoplight/spectral-formats': 1.8.2 + '@stoplight/spectral-runtime': 1.1.4 + ajv: 8.17.1 + ajv-draft-04: 1.0.0(ajv@8.17.1) + ajv-errors: 3.0.0(ajv@8.17.1) + ajv-formats: 2.1.1(ajv@8.17.1) + lodash: 4.17.23 + tslib: 2.8.1 + + '@stoplight/spectral-parsers@1.0.5': + dependencies: + '@stoplight/json': 3.21.7 + '@stoplight/types': 14.1.1 + '@stoplight/yaml': 4.3.0 + tslib: 2.8.1 + + '@stoplight/spectral-ref-resolver@1.0.5': + dependencies: + '@stoplight/json-ref-readers': 1.2.2 + '@stoplight/json-ref-resolver': 3.1.6 + '@stoplight/spectral-runtime': 1.1.4 + dependency-graph: 0.11.0 + tslib: 2.8.1 + + '@stoplight/spectral-rulesets@1.22.0': + dependencies: + '@asyncapi/specs': 6.10.0 + '@stoplight/better-ajv-errors': 1.0.3(ajv@8.17.1) + '@stoplight/json': 3.21.7 + '@stoplight/spectral-core': 1.20.0 + '@stoplight/spectral-formats': 1.8.2 + '@stoplight/spectral-functions': 1.10.1 + '@stoplight/spectral-runtime': 1.1.4 + '@stoplight/types': 13.20.0 + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + json-schema-traverse: 1.0.0 + leven: 3.1.0 + lodash: 4.17.23 + tslib: 2.8.1 + + '@stoplight/spectral-runtime@1.1.4': + dependencies: + '@stoplight/json': 3.21.7 + '@stoplight/path': 1.3.2 + '@stoplight/types': 13.20.0 + abort-controller: 3.0.0 + lodash: 4.17.23 + node-fetch: 3.3.2 + tslib: 2.8.1 + + '@stoplight/types@13.20.0': + dependencies: + '@types/json-schema': 7.0.15 + utility-types: 3.11.0 + + '@stoplight/types@13.6.0': + dependencies: + '@types/json-schema': 7.0.15 + utility-types: 3.11.0 + + '@stoplight/types@14.1.1': + dependencies: + '@types/json-schema': 7.0.15 + utility-types: 3.11.0 + + '@stoplight/yaml-ast-parser@0.0.50': {} + + '@stoplight/yaml@4.3.0': + dependencies: + '@stoplight/ordered-object-literal': 1.0.5 + '@stoplight/types': 14.1.1 + '@stoplight/yaml-ast-parser': 0.0.50 + tslib: 2.8.1 + '@storybook/addon-actions@8.6.14(storybook@10.1.10(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: '@storybook/global': 5.0.0 @@ -73147,7 +73245,7 @@ snapshots: '@types/node': 18.19.130 '@types/node-fetch': 2.6.13 '@types/pretty-hrtime': 1.0.3 - chalk: 4.1.2 + chalk: 5.6.2 esbuild: 0.27.2 esbuild-register: 3.6.0(esbuild@0.27.2) file-system-cache: 2.3.0 @@ -73517,19 +73615,20 @@ snapshots: dependencies: '@storybook/channels': 7.5.3 '@types/babel__core': 7.20.5 - '@types/express': 4.17.25 + '@types/express': 4.17.21 file-system-cache: 2.3.0 - '@strands-agents/sdk@0.1.3(ws@8.19.0)': + '@strands-agents/sdk@0.1.3(hono@4.11.7)(ws@8.19.0)': dependencies: '@aws-sdk/client-bedrock-runtime': 3.958.0 - '@modelcontextprotocol/sdk': 1.26.0(zod@4.2.1) - zod: 4.2.1 + '@modelcontextprotocol/sdk': 1.25.2(hono@4.11.7)(zod@4.3.6) + zod: 4.3.6 optionalDependencies: - openai: 6.15.0(ws@8.19.0)(zod@4.2.1) + openai: 6.15.0(ws@8.19.0)(zod@4.3.6) transitivePeerDependencies: - '@cfworker/json-schema' - aws-crt + - hono - supports-color - ws @@ -73742,12 +73841,12 @@ snapshots: postcss: 8.5.6 tailwindcss: 4.1.17 - '@tailwindcss/vite@4.1.18(vite@7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@tailwindcss/vite@4.1.18(vite@7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@tailwindcss/node': 4.1.18 '@tailwindcss/oxide': 4.1.18 tailwindcss: 4.1.18 - vite: 7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) '@tanstack/query-async-storage-persister@5.90.14': dependencies: @@ -73766,11 +73865,6 @@ snapshots: '@tanstack/react-query': 5.90.12(react@19.2.1) react: 19.2.1 - '@tanstack/react-query@5.90.12(react@18.3.1)': - dependencies: - '@tanstack/query-core': 5.90.12 - react: 18.3.1 - '@tanstack/react-query@5.90.12(react@19.2.1)': dependencies: '@tanstack/query-core': 5.90.12 @@ -73856,7 +73950,7 @@ snapshots: '@tensorflow/tfjs-data': 4.22.0(@tensorflow/tfjs-core@4.22.0)(seedrandom@3.0.5) '@tensorflow/tfjs-layers': 4.22.0(@tensorflow/tfjs-core@4.22.0) argparse: 1.0.10 - chalk: 4.1.2 + chalk: 5.6.2 core-js: 3.29.1 regenerator-runtime: 0.13.11 yargs: 16.2.0 @@ -73874,18 +73968,18 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.27.1 '@babel/runtime': 7.28.4 '@types/aria-query': 5.0.4 aria-query: 5.3.0 - chalk: 4.1.2 + chalk: 5.6.2 dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 '@testing-library/dom@10.4.1': dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.27.1 '@babel/runtime': 7.28.4 '@types/aria-query': 5.0.4 aria-query: 5.3.0 @@ -73896,22 +73990,22 @@ snapshots: '@testing-library/dom@8.20.1': dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.27.1 '@babel/runtime': 7.28.4 '@types/aria-query': 5.0.4 aria-query: 5.1.3 - chalk: 4.1.2 + chalk: 5.6.2 dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 '@testing-library/dom@9.3.4': dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.27.1 '@babel/runtime': 7.28.4 '@types/aria-query': 5.0.4 aria-query: 5.1.3 - chalk: 4.1.2 + chalk: 5.6.2 dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 @@ -73920,7 +74014,7 @@ snapshots: dependencies: '@adobe/css-tools': 4.4.4 aria-query: 5.3.2 - chalk: 3.0.0 + chalk: 5.6.2 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 lodash: 4.17.23 @@ -73937,7 +74031,7 @@ snapshots: '@testing-library/jest-native@5.4.3(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react-test-renderer@19.2.3(react@19.2.1))(react@19.2.1)': dependencies: - chalk: 4.1.2 + chalk: 5.6.2 jest-diff: 29.7.0 jest-matcher-utils: 29.7.0 pretty-format: 29.7.0 @@ -73946,7 +74040,7 @@ snapshots: react-test-renderer: 19.2.3(react@19.2.1) redent: 3.0.0 - '@testing-library/react-native@13.3.3(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react-test-renderer@19.2.3(react@19.2.1))(react@19.2.1)': + '@testing-library/react-native@13.3.3(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react-test-renderer@19.2.3(react@19.2.1))(react@19.2.1)': dependencies: jest-matcher-utils: 30.2.0 picocolors: 1.1.1 @@ -73956,9 +74050,9 @@ snapshots: react-test-renderer: 19.2.3(react@19.2.1) redent: 3.0.0 optionalDependencies: - jest: 30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) + jest: 30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) - '@testing-library/react-native@13.3.3(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react-test-renderer@19.2.3(react@19.2.1))(react@19.2.1)': + '@testing-library/react-native@13.3.3(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react-test-renderer@19.2.3(react@19.2.1))(react@19.2.1)': dependencies: jest-matcher-utils: 30.2.0 picocolors: 1.1.1 @@ -73968,23 +74062,15 @@ snapshots: react-test-renderer: 19.2.3(react@19.2.1) redent: 3.0.0 optionalDependencies: - jest: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + jest: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) - '@testing-library/react@13.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@13.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 '@testing-library/dom': 8.20.1 '@types/react-dom': 18.3.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@testing-library/react@14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.28.4 - '@testing-library/dom': 9.3.4 - '@types/react-dom': 18.3.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) '@testing-library/react@14.3.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: @@ -74052,6 +74138,13 @@ snapshots: '@tsconfig/node16@1.0.4': {} + '@tufjs/canonical-json@2.0.0': {} + + '@tufjs/models@4.1.0': + dependencies: + '@tufjs/canonical-json': 2.0.0 + minimatch: 10.1.1 + '@turf/along@6.5.0': dependencies: '@turf/bearing': 6.5.0 @@ -74098,13 +74191,6 @@ snapshots: '@types/geojson': 7946.0.16 tslib: 2.8.1 - '@turf/area@7.3.3': - dependencies: - '@turf/helpers': 7.3.3 - '@turf/meta': 7.3.3 - '@types/geojson': 7946.0.16 - tslib: 2.8.1 - '@turf/bbox-clip@6.5.0': dependencies: '@turf/helpers': 6.5.0 @@ -74790,11 +74876,6 @@ snapshots: '@types/geojson': 7946.0.16 tslib: 2.8.1 - '@turf/helpers@7.3.3': - dependencies: - '@types/geojson': 7946.0.16 - tslib: 2.8.1 - '@turf/hex-grid@6.5.0': dependencies: '@turf/distance': 6.5.0 @@ -75127,12 +75208,6 @@ snapshots: '@turf/helpers': 7.3.1 '@types/geojson': 7946.0.16 - '@turf/meta@7.3.3': - dependencies: - '@turf/helpers': 7.3.3 - '@types/geojson': 7946.0.16 - tslib: 2.8.1 - '@turf/midpoint@6.5.0': dependencies: '@turf/bearing': 6.5.0 @@ -76051,28 +76126,30 @@ snapshots: '@types/aws-lambda@8.10.122': {} + '@types/aws-lambda@8.10.159': {} + '@types/aws-lambda@8.10.160': {} '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.28.5 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.28.5 '@types/bcrypt@5.0.2': dependencies: @@ -76139,12 +76216,14 @@ snapshots: '@types/compression@1.8.1': dependencies: - '@types/express': 4.17.25 + '@types/express': 4.17.21 '@types/node': 20.19.27 + '@types/config@3.3.5': {} + '@types/connect-redis@0.0.22': dependencies: - '@types/express': 4.17.25 + '@types/express': 4.17.21 '@types/express-session': 1.18.2 '@types/node': 20.19.27 '@types/redis': 2.8.32 @@ -76166,20 +76245,16 @@ snapshots: dependencies: '@types/node': 20.19.27 - '@types/cookie-parser@1.4.10(@types/express@4.17.25)': - dependencies: - '@types/express': 4.17.25 - - '@types/cookie-parser@1.4.10(@types/express@5.0.6)': + '@types/cookie-parser@1.4.10(@types/express@4.17.21)': dependencies: - '@types/express': 5.0.6 + '@types/express': 4.17.21 '@types/cookiejar@2.1.5': {} '@types/cookies@0.9.2': dependencies: '@types/connect': 3.4.38 - '@types/express': 4.17.25 + '@types/express': 4.17.21 '@types/keygrip': 1.0.6 '@types/node': 20.19.27 @@ -76197,7 +76272,7 @@ snapshots: '@types/csurf@1.11.5': dependencies: - '@types/express-serve-static-core': 5.1.1 + '@types/express-serve-static-core': 4.19.6 '@types/cytoscape@3.31.0': dependencies: @@ -76314,6 +76389,10 @@ snapshots: dependencies: '@types/d3-path': 1.0.11 + '@types/d3-shape@3.1.7': + dependencies: + '@types/d3-path': 3.1.1 + '@types/d3-shape@3.1.8': dependencies: '@types/d3-path': 3.1.1 @@ -76369,7 +76448,7 @@ snapshots: '@types/d3-scale': 4.0.9 '@types/d3-scale-chromatic': 3.1.0 '@types/d3-selection': 3.0.11 - '@types/d3-shape': 3.1.8 + '@types/d3-shape': 3.1.7 '@types/d3-time': 3.0.4 '@types/d3-time-format': 4.0.3 '@types/d3-timer': 3.0.2 @@ -76411,6 +76490,10 @@ snapshots: dependencies: '@types/bn.js': 5.2.0 + '@types/es-aggregate-error@1.0.6': + dependencies: + '@types/node': 20.19.27 + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 @@ -76432,7 +76515,7 @@ snapshots: '@types/express-fileupload@1.5.1': dependencies: '@types/busboy': 1.5.4 - '@types/express': 4.17.25 + '@types/express': 4.17.21 '@types/express-jwt@7.4.4': dependencies: @@ -76444,13 +76527,7 @@ snapshots: '@types/express-rate-limit@5.1.3': dependencies: - '@types/express': 4.17.25 - - '@types/express-serve-static-core@4.17.31': - dependencies: - '@types/node': 20.19.27 - '@types/qs': 6.14.0 - '@types/range-parser': 1.2.7 + '@types/express': 4.17.21 '@types/express-serve-static-core@4.19.6': dependencies: @@ -76459,48 +76536,17 @@ snapshots: '@types/range-parser': 1.2.7 '@types/send': 1.2.1 - '@types/express-serve-static-core@5.1.1': - dependencies: - '@types/node': 20.19.27 - '@types/qs': 6.14.0 - '@types/range-parser': 1.2.7 - '@types/send': 1.2.1 - '@types/express-session@1.18.2': dependencies: - '@types/express': 4.17.25 - - '@types/express@4.17.14': - dependencies: - '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 4.19.6 - '@types/qs': 6.14.0 - '@types/serve-static': 2.2.0 - - '@types/express@4.17.18': - dependencies: - '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 4.19.6 - '@types/qs': 6.14.0 - '@types/serve-static': 2.2.0 + '@types/express': 4.17.21 - '@types/express@4.17.25': + '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.6 '@types/express-serve-static-core': 4.19.6 '@types/qs': 6.14.0 - '@types/serve-static': 1.15.10 - - '@types/express@5.0.6': - dependencies: - '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 5.1.1 '@types/serve-static': 2.2.0 - '@types/fast-json-stable-stringify@2.1.2': - dependencies: - fast-json-stable-stringify: 2.1.0 - '@types/figlet@1.7.0': {} '@types/find-cache-dir@3.2.1': {} @@ -76734,8 +76780,6 @@ snapshots: '@types/mime-types@2.1.4': {} - '@types/mime@1.3.5': {} - '@types/minimatch@3.0.5': {} '@types/minimatch@5.1.2': {} @@ -76752,7 +76796,7 @@ snapshots: '@types/multer@1.4.13': dependencies: - '@types/express': 4.17.25 + '@types/express': 4.17.21 '@types/murmurhash3js-revisited@3.0.3': {} @@ -76812,6 +76856,14 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@20.19.30': + dependencies: + undici-types: 6.21.0 + + '@types/node@22.19.3': + dependencies: + undici-types: 6.21.0 + '@types/node@22.19.7': dependencies: undici-types: 6.21.0 @@ -76820,6 +76872,10 @@ snapshots: dependencies: undici-types: 6.19.8 + '@types/node@24.10.1': + dependencies: + undici-types: 7.16.0 + '@types/node@24.10.9': dependencies: undici-types: 7.16.0 @@ -76828,9 +76884,17 @@ snapshots: dependencies: undici-types: 7.16.0 - '@types/node@25.3.5': + '@types/node@25.0.3': dependencies: - undici-types: 7.18.2 + undici-types: 7.16.0 + + '@types/node@25.0.9': + dependencies: + undici-types: 7.16.0 + + '@types/node@25.1.0': + dependencies: + undici-types: 7.16.0 '@types/nodemailer@6.4.21': dependencies: @@ -76894,7 +76958,7 @@ snapshots: '@types/pg@8.16.0': dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.30 pg-protocol: 1.11.0 pg-types: 2.2.0 @@ -77043,21 +77107,10 @@ snapshots: '@types/semver@7.7.1': {} - '@types/send@0.17.6': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 20.19.27 - '@types/send@1.2.1': dependencies: '@types/node': 20.19.27 - '@types/serve-static@1.15.10': - dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 20.19.27 - '@types/send': 0.17.6 - '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 @@ -77128,7 +77181,7 @@ snapshots: '@types/swagger-ui-express@4.1.8': dependencies: - '@types/express': 4.17.25 + '@types/express': 4.17.21 '@types/serve-static': 2.2.0 '@types/tar-stream@2.2.3': @@ -77166,13 +77219,15 @@ snapshots: '@types/unist@2.0.11': {} + '@types/urijs@1.19.26': {} + '@types/use-sync-external-store@0.0.6': {} '@types/uuid@10.0.0': {} '@types/uuid@11.0.0': dependencies: - uuid: 11.1.0 + uuid: 13.0.0 '@types/uuid@9.0.1': {} @@ -77199,9 +77254,8 @@ snapshots: dependencies: '@types/webidl-conversions': 7.0.3 - '@types/whatwg-url@8.2.2': + '@types/whatwg-url@13.0.0': dependencies: - '@types/node': 20.19.27 '@types/webidl-conversions': 7.0.3 '@types/ws@7.4.7': @@ -77257,24 +77311,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -77311,22 +77347,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.50.0 - '@typescript-eslint/type-utils': 8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.50.0 - eslint: 9.39.1(jiti@2.6.1) - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/eslint-plugin@8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -77338,7 +77358,7 @@ snapshots: eslint: 9.39.2(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -77354,27 +77374,11 @@ snapshots: eslint: 9.39.2(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.53.1 - '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.53.1 - eslint: 9.39.2(jiti@2.6.1) - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -77404,19 +77408,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.3(supports-color@5.5.0) - eslint: 8.57.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@7.18.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 @@ -77443,18 +77434,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.50.0 - '@typescript-eslint/types': 8.50.0 - '@typescript-eslint/typescript-estree': 8.50.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.50.0 - debug: 4.4.3(supports-color@5.5.0) - eslint: 9.39.1(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.50.0 @@ -77479,18 +77458,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.53.1 - '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.53.1 - debug: 4.4.3(supports-color@5.5.0) - eslint: 9.39.2(jiti@2.6.1) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.53.1 @@ -77505,7 +77472,7 @@ snapshots: '@typescript-eslint/project-service@8.50.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.50.1(typescript@5.9.3) '@typescript-eslint/types': 8.53.1 debug: 4.4.3(supports-color@5.5.0) typescript: 5.9.3 @@ -77521,15 +77488,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.53.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.8.3) - '@typescript-eslint/types': 8.53.1 - debug: 4.4.3(supports-color@5.5.0) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/project-service@8.53.1(typescript@5.9.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.9.3) @@ -77577,10 +77535,6 @@ snapshots: dependencies: typescript: 5.9.3 - '@typescript-eslint/tsconfig-utils@8.53.1(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - '@typescript-eslint/tsconfig-utils@8.53.1(typescript@5.9.3)': dependencies: typescript: 5.9.3 @@ -77597,18 +77551,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.9.3) - debug: 4.4.3(supports-color@5.5.0) - eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/type-utils@7.18.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) @@ -77633,18 +77575,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@typescript-eslint/types': 8.50.0 - '@typescript-eslint/typescript-estree': 8.50.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - debug: 4.4.3(supports-color@5.5.0) - eslint: 9.39.1(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/type-utils@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.50.0 @@ -77652,7 +77582,7 @@ snapshots: '@typescript-eslint/utils': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3(supports-color@5.5.0) eslint: 9.39.2(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -77669,18 +77599,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) - debug: 4.4.3(supports-color@5.5.0) - eslint: 9.39.2(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/type-utils@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.53.1 @@ -77759,7 +77677,7 @@ snapshots: minimatch: 9.0.5 semver: 7.7.3 tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -77779,21 +77697,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.53.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/project-service': 8.53.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.8.3) - '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/visitor-keys': 8.53.1 - debug: 4.4.3(supports-color@5.5.0) - minimatch: 9.0.5 - semver: 7.7.3 - tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.53.1(typescript@5.9.3)': dependencies: '@typescript-eslint/project-service': 8.53.1(typescript@5.9.3) @@ -77838,17 +77741,6 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) - eslint: 8.57.1 - transitivePeerDependencies: - - supports-color - - typescript - '@typescript-eslint/utils@7.18.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) @@ -77871,20 +77763,9 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.50.0 - '@typescript-eslint/types': 8.50.0 - '@typescript-eslint/typescript-estree': 8.50.0(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.50.0 '@typescript-eslint/types': 8.50.0 '@typescript-eslint/typescript-estree': 8.50.0(typescript@5.9.3) @@ -77904,28 +77785,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.53.1 - '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.53.1 - '@typescript-eslint/types': 8.53.1 - '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.8.3) - eslint: 9.39.2(jiti@2.6.1) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) @@ -78165,7 +78024,7 @@ snapshots: react: 19.2.1 react-dom: 19.2.1(react@19.2.1) - '@visx/annotation@3.12.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@visx/annotation@3.12.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@types/react': 18.3.11 '@visx/drag': 3.12.0(react@19.2.1) @@ -78174,7 +78033,7 @@ snapshots: classnames: 2.5.1 prop-types: 15.8.1 react: 19.2.1 - react-use-measure: 2.1.7(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + react-use-measure: 2.1.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1) transitivePeerDependencies: - react-dom @@ -78190,13 +78049,13 @@ snapshots: prop-types: 15.8.1 react: 19.2.1 - '@visx/bounds@3.12.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@visx/bounds@3.12.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@types/react': 18.3.11 '@types/react-dom': 18.3.0 prop-types: 15.8.1 react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) '@visx/brush@3.12.0(react@19.2.1)': dependencies: @@ -78344,9 +78203,9 @@ snapshots: '@visx/point@3.12.0': {} - '@visx/react-spring@3.12.0(@react-spring/web@10.0.3(react-dom@18.3.1(react@19.2.1))(react@19.2.1))(react@19.2.1)': + '@visx/react-spring@3.12.0(@react-spring/web@10.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(react@19.2.1)': dependencies: - '@react-spring/web': 10.0.3(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@react-spring/web': 10.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@types/react': 18.3.11 '@visx/axis': 3.12.0(react@19.2.1) '@visx/grid': 3.12.0(react@19.2.1) @@ -78413,15 +78272,15 @@ snapshots: prop-types: 15.8.1 react: 19.2.1 - '@visx/tooltip@3.12.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@visx/tooltip@3.12.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@types/react': 18.3.11 - '@visx/bounds': 3.12.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@visx/bounds': 3.12.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) classnames: 2.5.1 prop-types: 15.8.1 react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) - react-use-measure: 2.1.7(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) + react-use-measure: 2.1.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@visx/vendor@3.12.0': dependencies: @@ -78445,11 +78304,11 @@ snapshots: d3-time-format: 4.1.0 internmap: 2.0.3 - '@visx/visx@3.12.0(@react-spring/web@10.0.3(react-dom@18.3.1(react@19.2.1))(react@19.2.1))(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@visx/visx@3.12.0(@react-spring/web@10.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@visx/annotation': 3.12.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@visx/annotation': 3.12.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@visx/axis': 3.12.0(react@19.2.1) - '@visx/bounds': 3.12.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@visx/bounds': 3.12.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@visx/brush': 3.12.0(react@19.2.1) '@visx/clip-path': 3.12.0(react@19.2.1) '@visx/curve': 3.12.0 @@ -78475,10 +78334,10 @@ snapshots: '@visx/shape': 3.12.0(react@19.2.1) '@visx/text': 3.12.0(react@19.2.1) '@visx/threshold': 3.12.0(react@19.2.1) - '@visx/tooltip': 3.12.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@visx/tooltip': 3.12.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@visx/voronoi': 3.12.0(react@19.2.1) '@visx/wordcloud': 3.12.0(react@19.2.1) - '@visx/xychart': 3.12.0(@react-spring/web@10.0.3(react-dom@18.3.1(react@19.2.1))(react@19.2.1))(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@visx/xychart': 3.12.0(@react-spring/web@10.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@visx/zoom': 3.12.0(react@19.2.1) react: 19.2.1 transitivePeerDependencies: @@ -78501,22 +78360,22 @@ snapshots: d3-cloud: 1.2.8 react: 19.2.1 - '@visx/xychart@3.12.0(@react-spring/web@10.0.3(react-dom@18.3.1(react@19.2.1))(react@19.2.1))(react-dom@18.3.1(react@19.2.1))(react@19.2.1)': + '@visx/xychart@3.12.0(@react-spring/web@10.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@react-spring/web': 10.0.3(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@react-spring/web': 10.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@types/lodash': 4.17.23 '@types/react': 18.3.11 - '@visx/annotation': 3.12.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@visx/annotation': 3.12.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@visx/axis': 3.12.0(react@19.2.1) '@visx/event': 3.12.0 '@visx/glyph': 3.12.0(react@19.2.1) '@visx/grid': 3.12.0(react@19.2.1) - '@visx/react-spring': 3.12.0(@react-spring/web@10.0.3(react-dom@18.3.1(react@19.2.1))(react@19.2.1))(react@19.2.1) + '@visx/react-spring': 3.12.0(@react-spring/web@10.0.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(react@19.2.1) '@visx/responsive': 3.12.0(react@19.2.1) '@visx/scale': 3.12.0 '@visx/shape': 3.12.0(react@19.2.1) '@visx/text': 3.12.0(react@19.2.1) - '@visx/tooltip': 3.12.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@visx/tooltip': 3.12.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@visx/vendor': 3.12.0 '@visx/voronoi': 3.12.0(react@19.2.1) classnames: 2.5.1 @@ -78549,7 +78408,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.7.0(vite@5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1))': + '@vitejs/plugin-react@4.7.0(vite@5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) @@ -78557,11 +78416,11 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) @@ -78569,7 +78428,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.4.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -78585,7 +78444,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@5.1.1(vite@7.2.6(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitejs/plugin-react@5.1.1(vite@7.2.6(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) @@ -78593,11 +78452,11 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.47 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.2.6(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.2.6(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@5.1.1(vite@7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitejs/plugin-react@5.1.1(vite@7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) @@ -78605,7 +78464,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.47 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -78628,7 +78487,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.7)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1))': + '@vitest/coverage-v8@1.6.1(vitest@1.6.1(@types/node@20.19.30)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@bcoe/v8-coverage': 0.2.3 + debug: 4.4.3(supports-color@5.5.0) + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.2.0 + magic-string: 0.30.21 + magicast: 0.3.5 + picocolors: 1.1.1 + std-env: 3.10.0 + strip-literal: 2.1.1 + test-exclude: 6.0.0 + vitest: 1.6.1(@types/node@20.19.30)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1) + transitivePeerDependencies: + - supports-color + + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -78643,11 +78521,11 @@ snapshots: std-env: 3.10.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.7)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@4.0.16(vitest@4.0.16(@opentelemetry/api@1.8.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/coverage-v8@4.0.16(vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.0.16 @@ -78660,25 +78538,28 @@ snapshots: obug: 2.1.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.0.16(@opentelemetry/api@1.8.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vitest: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.7)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/coverage-v8@4.0.16(vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@22.19.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.0.18 + '@vitest/utils': 4.0.16 ast-v8-to-istanbul: 0.3.10 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.2.0 magicast: 0.5.1 obug: 2.1.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.7)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vitest: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@22.19.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + transitivePeerDependencies: + - supports-color - '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.10)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.0.18 @@ -78690,7 +78571,7 @@ snapshots: obug: 2.1.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.10)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) '@vitest/expect@1.6.1': dependencies: @@ -78747,41 +78628,41 @@ snapshots: msw: 2.12.4(@types/node@20.19.27)(typescript@5.9.3) vite: 5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(terser@5.44.1) - '@vitest/mocker@2.1.9(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(vite@5.4.21(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1))': + '@vitest/mocker@2.1.9(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(vite@5.4.21(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.4(@types/node@22.19.7)(typescript@5.9.3) - vite: 5.4.21(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1) + msw: 2.12.4(@types/node@22.19.3)(typescript@5.9.3) + vite: 5.4.21(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1) - '@vitest/mocker@2.1.9(msw@2.12.4(@types/node@24.10.9)(typescript@5.9.3))(vite@5.4.21(@types/node@24.10.9)(lightningcss@1.30.2)(terser@5.44.1))': + '@vitest/mocker@2.1.9(msw@2.12.4(@types/node@24.10.1)(typescript@5.9.3))(vite@5.4.21(@types/node@24.10.1)(lightningcss@1.30.2)(terser@5.44.1))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.4(@types/node@24.10.9)(typescript@5.9.3) - vite: 5.4.21(@types/node@24.10.9)(lightningcss@1.30.2)(terser@5.44.1) + msw: 2.12.4(@types/node@24.10.1)(typescript@5.9.3) + vite: 5.4.21(@types/node@24.10.1)(lightningcss@1.30.2)(terser@5.44.1) - '@vitest/mocker@2.1.9(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(vite@5.4.21(@types/node@25.0.10)(lightningcss@1.30.2)(terser@5.44.1))': + '@vitest/mocker@2.1.9(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(vite@5.4.21(@types/node@25.0.3)(lightningcss@1.30.2)(terser@5.44.1))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.4(@types/node@25.0.10)(typescript@5.9.3) - vite: 5.4.21(@types/node@25.0.10)(lightningcss@1.30.2)(terser@5.44.1) + msw: 2.12.4(@types/node@25.0.3)(typescript@5.9.3) + vite: 5.4.21(@types/node@25.0.3)(lightningcss@1.30.2)(terser@5.44.1) - '@vitest/mocker@2.1.9(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(vite@5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1))': + '@vitest/mocker@2.1.9(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(vite@5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.4(@types/node@25.3.5)(typescript@5.9.3) - vite: 5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1) + msw: 2.12.4(@types/node@25.1.0)(typescript@5.9.3) + vite: 5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1) '@vitest/mocker@3.2.4(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(vite@5.4.21(@types/node@20.19.27)(lightningcss@1.30.2)(terser@5.44.1))': dependencies: @@ -78801,14 +78682,14 @@ snapshots: msw: 2.12.4(@types/node@20.19.27)(typescript@5.9.3) vite: 7.2.6(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - '@vitest/mocker@3.2.4(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(vite@5.4.21(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1))': + '@vitest/mocker@3.2.4(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(vite@5.4.21(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.4(@types/node@22.19.7)(typescript@5.9.3) - vite: 5.4.21(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1) + msw: 2.12.4(@types/node@22.19.3)(typescript@5.9.3) + vite: 5.4.21(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1) '@vitest/mocker@4.0.16(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(vite@7.2.6(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: @@ -78819,41 +78700,41 @@ snapshots: msw: 2.12.4(@types/node@20.19.27)(typescript@5.9.3) vite: 7.2.6(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - '@vitest/mocker@4.0.18(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(vite@7.2.6(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@4.0.16(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(vite@7.2.6(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - '@vitest/spy': 4.0.18 + '@vitest/spy': 4.0.16 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.4(@types/node@20.19.27)(typescript@5.9.3) - vite: 7.2.6(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + msw: 2.12.4(@types/node@22.19.3)(typescript@5.9.3) + vite: 7.2.6(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - '@vitest/mocker@4.0.18(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(vite@7.2.6(@types/node@22.19.7)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@4.0.16(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(vite@7.2.6(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - '@vitest/spy': 4.0.18 + '@vitest/spy': 4.0.16 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.4(@types/node@22.19.7)(typescript@5.9.3) - vite: 7.2.6(@types/node@22.19.7)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + msw: 2.12.4(@types/node@25.0.3)(typescript@5.9.3) + vite: 7.2.6(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - '@vitest/mocker@4.0.18(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(vite@7.2.6(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@4.0.16(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(vite@7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - '@vitest/spy': 4.0.18 + '@vitest/spy': 4.0.16 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.4(@types/node@25.0.10)(typescript@5.9.3) - vite: 7.2.6(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + msw: 2.12.4(@types/node@25.1.0)(typescript@5.9.3) + vite: 7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - '@vitest/mocker@4.0.18(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(vite@7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@4.0.18(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(vite@7.2.6(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 4.0.18 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.4(@types/node@25.3.5)(typescript@5.9.3) - vite: 7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + msw: 2.12.4(@types/node@25.0.3)(typescript@5.9.3) + vite: 7.2.6(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) '@vitest/pretty-format@2.0.5': dependencies: @@ -79120,22 +79001,22 @@ snapshots: '@wix-pilot/core@3.4.2(expect@30.2.0)': dependencies: - chalk: 4.1.2 + chalk: 5.6.2 pngjs: 7.0.0 winston: 3.19.0 optionalDependencies: expect: 30.2.0 - '@wix-pilot/detox@1.0.13(@wix-pilot/core@3.4.2(expect@30.2.0))(detox@20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3))))(expect@30.2.0)': + '@wix-pilot/detox@1.0.13(@wix-pilot/core@3.4.2(expect@30.2.0))(detox@20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3))))(expect@30.2.0)': dependencies: '@wix-pilot/core': 3.4.2(expect@30.2.0) - detox: 20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3))) + detox: 20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3))) expect: 30.2.0 - '@wix-pilot/detox@1.0.13(@wix-pilot/core@3.4.2(expect@30.2.0))(detox@20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3))))(expect@30.2.0)': + '@wix-pilot/detox@1.0.13(@wix-pilot/core@3.4.2(expect@30.2.0))(detox@20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3))))(expect@30.2.0)': dependencies: '@wix-pilot/core': 3.4.2(expect@30.2.0) - detox: 20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3))) + detox: 20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3))) expect: 30.2.0 '@wry/caches@1.0.1': @@ -79195,10 +79076,6 @@ snapshots: abbrev@1.1.1: {} - abbrev@2.0.0: {} - - abbrev@3.0.1: {} - abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 @@ -79305,29 +79182,29 @@ snapshots: clean-stack: 5.3.0 indent-string: 5.0.0 - ajv-formats@2.1.1(ajv@8.17.1): + ajv-draft-04@1.0.0(ajv@8.17.1): optionalDependencies: ajv: 8.17.1 - ajv-formats@2.1.1(ajv@8.18.0): - optionalDependencies: - ajv: 8.18.0 + ajv-errors@3.0.0(ajv@8.17.1): + dependencies: + ajv: 8.17.1 - ajv-formats@3.0.1(ajv@8.17.1): + ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: ajv: 8.17.1 - ajv-formats@3.0.1(ajv@8.18.0): + ajv-formats@3.0.1(ajv@8.17.1): optionalDependencies: - ajv: 8.18.0 + ajv: 8.17.1 ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 - ajv-keywords@5.1.0(ajv@8.18.0): + ajv-keywords@5.1.0(ajv@8.17.1): dependencies: - ajv: 8.18.0 + ajv: 8.17.1 fast-deep-equal: 3.1.3 ajv@6.12.6: @@ -79351,13 +79228,6 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - ajv@8.18.0: - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.1.0 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - amqplib@0.10.9: dependencies: buffer-more-ints: 1.0.0 @@ -79383,18 +79253,8 @@ snapshots: ansi-html@0.0.9: {} - ansi-regex@2.1.1: {} - ansi-regex@5.0.1: {} - ansi-regex@6.2.2: {} - - ansi-styles@2.2.1: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -79530,6 +79390,33 @@ snapshots: uuid: 9.0.1 whatwg-mimetype: 3.0.0 + apollo-server-core@3.13.0(graphql@16.9.0): + dependencies: + '@apollo/utils.keyvaluecache': 1.0.2 + '@apollo/utils.logger': 1.0.1 + '@apollo/utils.usagereporting': 1.0.1(graphql@16.9.0) + '@apollographql/apollo-tools': 0.5.4(graphql@16.9.0) + '@apollographql/graphql-playground-html': 1.6.29 + '@graphql-tools/mock': 8.7.20(graphql@16.9.0) + '@graphql-tools/schema': 8.5.1(graphql@16.9.0) + '@josephg/resolvable': 1.0.1 + apollo-datasource: 3.3.2 + apollo-reporting-protobuf: 3.4.0 + apollo-server-env: 4.2.1 + apollo-server-errors: 3.3.1(graphql@16.9.0) + apollo-server-plugin-base: 3.7.2(graphql@16.9.0) + apollo-server-types: 3.8.0(graphql@16.9.0) + async-retry: 1.3.3 + fast-json-stable-stringify: 2.1.0 + graphql: 16.9.0 + graphql-tag: 2.12.6(graphql@16.9.0) + loglevel: 1.9.2 + lru-cache: 6.0.0 + node-abort-controller: 3.1.1 + sha.js: 2.4.12 + uuid: 9.0.1 + whatwg-mimetype: 3.0.0 + apollo-server-env@3.2.0: dependencies: node-fetch: 3.3.2 @@ -79547,13 +79434,17 @@ snapshots: dependencies: graphql: 16.12.0 + apollo-server-errors@3.3.1(graphql@16.9.0): + dependencies: + graphql: 16.9.0 + apollo-server-express@3.13.0(express@5.2.1)(graphql@16.12.0): dependencies: '@types/accepts': 1.3.7 '@types/body-parser': 1.19.2 '@types/cors': 2.8.12 - '@types/express': 4.17.14 - '@types/express-serve-static-core': 4.17.31 + '@types/express': 4.17.21 + '@types/express-serve-static-core': 4.19.6 accepts: 1.3.8 apollo-server-core: 3.13.0(graphql@16.12.0) apollo-server-types: 3.8.0(graphql@16.12.0) @@ -79565,6 +79456,24 @@ snapshots: transitivePeerDependencies: - supports-color + apollo-server-express@3.13.0(express@5.2.1)(graphql@16.9.0): + dependencies: + '@types/accepts': 1.3.7 + '@types/body-parser': 1.19.2 + '@types/cors': 2.8.12 + '@types/express': 4.17.21 + '@types/express-serve-static-core': 4.19.6 + accepts: 1.3.8 + apollo-server-core: 3.13.0(graphql@16.9.0) + apollo-server-types: 3.8.0(graphql@16.9.0) + body-parser: 1.20.4 + cors: 2.8.6 + express: 5.2.1 + graphql: 16.9.0 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + apollo-server-plugin-base@0.14.0(graphql@16.12.0): dependencies: apollo-server-types: 0.10.0(graphql@16.12.0) @@ -79575,6 +79484,11 @@ snapshots: apollo-server-types: 3.8.0(graphql@16.12.0) graphql: 16.12.0 + apollo-server-plugin-base@3.7.2(graphql@16.9.0): + dependencies: + apollo-server-types: 3.8.0(graphql@16.9.0) + graphql: 16.9.0 + apollo-server-testing@2.25.3(graphql@16.12.0): dependencies: apollo-server-core: 2.26.2(graphql@16.12.0) @@ -79598,13 +79512,21 @@ snapshots: apollo-server-env: 4.2.1 graphql: 16.12.0 - apollo-server@3.13.0(graphql@16.12.0): + apollo-server-types@3.8.0(graphql@16.9.0): dependencies: - '@types/express': 4.17.14 - apollo-server-core: 3.13.0(graphql@16.12.0) - apollo-server-express: 3.13.0(express@5.2.1)(graphql@16.12.0) + '@apollo/utils.keyvaluecache': 1.0.2 + '@apollo/utils.logger': 1.0.1 + apollo-reporting-protobuf: 3.4.0 + apollo-server-env: 4.2.1 + graphql: 16.9.0 + + apollo-server@3.13.0(graphql@16.9.0): + dependencies: + '@types/express': 4.17.21 + apollo-server-core: 3.13.0(graphql@16.9.0) + apollo-server-express: 3.13.0(express@5.2.1)(graphql@16.9.0) express: 5.2.1 - graphql: 16.12.0 + graphql: 16.9.0 transitivePeerDependencies: - supports-color @@ -79772,11 +79694,6 @@ snapshots: delegates: 1.0.0 readable-stream: 3.6.2 - are-we-there-yet@3.0.1: - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - arg@4.1.3: {} arg@5.0.2: {} @@ -79826,7 +79743,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 @@ -79846,7 +79763,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 @@ -79856,7 +79773,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 @@ -79865,14 +79782,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-shim-unscopables: 1.1.0 array.prototype.map@1.0.8: @@ -79880,7 +79797,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-array-method-boxes-properly: 1.0.0 es-object-atoms: 1.1.1 is-string: 1.1.1 @@ -79900,7 +79817,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 es-shim-unscopables: 1.1.0 @@ -79909,7 +79826,7 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 @@ -79974,16 +79891,14 @@ snapshots: astral-regex@2.0.0: {} + astring@1.9.0: {} + async-exit-hook@2.0.1: {} async-function@1.0.0: {} async-lock@1.4.1: {} - async-mutex@0.4.1: - dependencies: - tslib: 2.8.1 - async-mutex@0.5.0: dependencies: tslib: 2.8.1 @@ -80037,6 +79952,11 @@ snapshots: avsc@5.7.9: {} + avvio@8.4.0: + dependencies: + '@fastify/error': 3.4.1 + fastq: 1.20.1 + avvio@9.1.0: dependencies: '@fastify/error': 4.2.0 @@ -80068,7 +79988,7 @@ snapshots: '@babel/runtime': 7.28.4 is-retry-allowed: 2.2.0 - axios@1.13.4: + axios@1.13.2: dependencies: follow-redirects: 1.15.11(debug@4.4.3) form-data: 4.0.5 @@ -80076,7 +79996,7 @@ snapshots: transitivePeerDependencies: - debug - axios@1.13.6: + axios@1.13.4: dependencies: follow-redirects: 1.15.11(debug@4.4.3) form-data: 4.0.5 @@ -80088,6 +80008,12 @@ snapshots: b4a@1.7.3: {} + babel-code-frame@6.26.0: + dependencies: + chalk: 5.6.2 + esutils: 2.0.3 + js-tokens: 3.0.2 + babel-core@7.0.0-bridge.0(@babel/core@7.28.5): dependencies: '@babel/core': 7.28.5 @@ -80099,7 +80025,7 @@ snapshots: '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.6.3(@babel/core@7.28.5) - chalk: 4.1.2 + chalk: 5.6.2 graceful-fs: 4.2.11 slash: 3.0.0 transitivePeerDependencies: @@ -80112,11 +80038,25 @@ snapshots: '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.6.3(@babel/core@7.29.0) - chalk: 4.1.2 + chalk: 5.6.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-jest@30.2.0(@babel/core@7.26.10): + dependencies: + '@babel/core': 7.26.10 + '@jest/transform': 30.2.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 7.0.1 + babel-preset-jest: 30.2.0(@babel/core@7.26.10) + chalk: 5.6.2 graceful-fs: 4.2.11 slash: 3.0.0 transitivePeerDependencies: - supports-color + optional: true babel-jest@30.2.0(@babel/core@7.28.5): dependencies: @@ -80125,7 +80065,7 @@ snapshots: '@types/babel__core': 7.20.5 babel-plugin-istanbul: 7.0.1 babel-preset-jest: 30.2.0(@babel/core@7.28.5) - chalk: 4.1.2 + chalk: 5.6.2 graceful-fs: 4.2.11 slash: 3.0.0 transitivePeerDependencies: @@ -80138,7 +80078,7 @@ snapshots: '@types/babel__core': 7.20.5 babel-plugin-istanbul: 7.0.1 babel-preset-jest: 30.2.0(@babel/core@7.29.0) - chalk: 4.1.2 + chalk: 5.6.2 graceful-fs: 4.2.11 slash: 3.0.0 transitivePeerDependencies: @@ -80183,7 +80123,7 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.28.6 + '@babel/template': 7.27.2 '@babel/types': 7.29.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 @@ -80200,7 +80140,7 @@ snapshots: babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.5): dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.28.5 '@babel/core': 7.28.5 '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) semver: 6.3.1 @@ -80209,7 +80149,7 @@ snapshots: babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.29.0): dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.28.5 '@babel/core': 7.29.0 '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.0) semver: 6.3.1 @@ -80268,6 +80208,32 @@ snapshots: transitivePeerDependencies: - '@babel/core' + babel-plugin-transform-import-meta@2.3.3(@babel/core@7.26.10): + dependencies: + '@babel/core': 7.26.10 + '@babel/template': 7.27.2 + tslib: 2.8.1 + + babel-preset-current-node-syntax@1.2.0(@babel/core@7.26.10): + dependencies: + '@babel/core': 7.26.10 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.10) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.10) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.10) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.26.10) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.10) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.10) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.10) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.10) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.10) + optional: true + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.5): dependencies: '@babel/core': 7.28.5 @@ -80351,6 +80317,13 @@ snapshots: babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) + babel-preset-jest@30.2.0(@babel/core@7.26.10): + dependencies: + '@babel/core': 7.26.10 + babel-plugin-jest-hoist: 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.26.10) + optional: true + babel-preset-jest@30.2.0(@babel/core@7.28.5): dependencies: '@babel/core': 7.28.5 @@ -80504,6 +80477,8 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + blake3@2.1.7: {} + blob-to-it@2.0.10: dependencies: browser-readablestream-to-it: 2.0.10 @@ -80528,7 +80503,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 2.6.9 + debug: 4.4.3(supports-color@5.5.0) depd: 2.0.0 destroy: 1.2.0 http-errors: 2.0.1 @@ -80547,7 +80522,7 @@ snapshots: content-type: 1.0.5 debug: 4.4.3(supports-color@5.5.0) http-errors: 2.0.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.1 on-finished: 2.4.1 qs: 6.14.1 raw-body: 3.0.2 @@ -80683,10 +80658,10 @@ snapshots: bson@1.1.6: {} - bson@5.5.1: {} - bson@6.10.4: {} + bson@7.1.1: {} + buf-compare@1.0.1: {} buffer-alloc-unsafe@1.1.0: {} @@ -80754,7 +80729,7 @@ snapshots: builder-util-runtime@9.3.1: dependencies: debug: 4.4.3(supports-color@5.5.0) - sax: 1.4.4 + sax: 1.4.3 transitivePeerDependencies: - supports-color @@ -80764,7 +80739,7 @@ snapshots: '@types/debug': 4.1.12 app-builder-bin: 5.0.0-alpha.12 builder-util-runtime: 9.3.1 - chalk: 4.1.2 + chalk: 5.6.2 cross-spawn: 7.0.6 debug: 4.4.3(supports-color@5.5.0) fs-extra: 10.1.0 @@ -80780,6 +80755,8 @@ snapshots: transitivePeerDependencies: - supports-color + builtin-modules@1.1.1: {} + builtin-modules@3.3.0: {} builtin-status-codes@3.0.0: {} @@ -80788,7 +80765,7 @@ snapshots: dependencies: cron-parser: 4.9.0 get-port: 5.1.1 - ioredis: 5.8.2 + ioredis: 5.9.2 lodash: 4.17.23 msgpackr: 1.11.8 semver: 7.7.3 @@ -80829,13 +80806,13 @@ snapshots: bunyan-debug-stream@3.1.1(bunyan@1.8.15): dependencies: - chalk: 4.1.2 + chalk: 5.6.2 optionalDependencies: bunyan: 1.8.15 bunyan-debug-stream@3.1.1(bunyan@2.0.5): dependencies: - chalk: 4.1.2 + chalk: 5.6.2 optionalDependencies: bunyan: 2.0.5 @@ -80855,6 +80832,10 @@ snapshots: mv: 2.1.1 safe-json-stringify: 1.2.0 + busboy@0.3.1: + dependencies: + dicer: 0.3.0 + busboy@1.6.0: dependencies: streamsearch: 1.1.0 @@ -81061,26 +81042,7 @@ snapshots: chalk-template@0.4.0: dependencies: - chalk: 4.1.2 - - chalk@1.1.3: - dependencies: - ansi-styles: 2.2.1 - escape-string-regexp: 1.0.5 - has-ansi: 2.0.0 - strip-ansi: 3.0.1 - supports-color: 2.0.0 - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - chalk@3.0.0: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 + chalk: 5.6.2 chalk@4.1.2: dependencies: @@ -81131,6 +81093,10 @@ snapshots: charenc@0.0.2: {} + charm@1.0.2: + dependencies: + inherits: 2.0.4 + cheap-ruler@4.0.0: {} check-error@1.0.3: @@ -81150,15 +81116,19 @@ snapshots: domhandler: 5.0.3 domutils: 3.2.2 - cheerio@1.0.0-rc.12: + cheerio@1.1.2: dependencies: cheerio-select: 2.1.0 dom-serializer: 2.0.0 domhandler: 5.0.3 domutils: 3.2.2 - htmlparser2: 8.0.2 + encoding-sniffer: 0.2.1 + htmlparser2: 10.0.0 parse5: 7.3.0 parse5-htmlparser2-tree-adapter: 7.1.0 + parse5-parser-stream: 7.1.2 + undici: 7.16.0 + whatwg-mimetype: 4.0.0 cheerio@1.2.0: dependencies: @@ -81270,6 +81240,8 @@ snapshots: cjs-module-lexer@1.4.3: {} + cjs-module-lexer@2.1.1: {} + cjs-module-lexer@2.2.0: {} class-variance-authority@0.7.1: @@ -81288,10 +81260,6 @@ snapshots: classnames@2.5.1: {} - clean-css@4.2.4: - dependencies: - source-map: 0.6.1 - clean-css@5.3.3: dependencies: source-map: 0.6.1 @@ -81323,7 +81291,7 @@ snapshots: cli-highlight@2.1.11: dependencies: - chalk: 4.1.2 + chalk: 5.6.2 highlight.js: 10.7.3 mz: 2.7.0 parse5: 5.1.1 @@ -81425,7 +81393,7 @@ snapshots: '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@19.2.1) '@radix-ui/react-dialog': 1.1.15(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-id': 1.1.1(@types/react@18.3.11)(react@19.2.1) - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react: 19.2.1 react-dom: 19.2.1(react@19.2.1) transitivePeerDependencies: @@ -81445,10 +81413,6 @@ snapshots: collect-v8-coverage@1.0.3: {} - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -81457,8 +81421,6 @@ snapshots: dependencies: color-name: 2.1.0 - color-name@1.1.3: {} - color-name@1.1.4: {} color-name@2.1.0: {} @@ -81474,11 +81436,6 @@ snapshots: color-support@1.1.3: {} - color@3.2.1: - dependencies: - color-convert: 1.9.3 - color-string: 1.9.1 - color@4.2.3: dependencies: color-convert: 2.0.1 @@ -81501,6 +81458,8 @@ snapshots: comma-separated-tokens@2.0.3: {} + command-exists@1.2.9: {} + command-line-args@6.0.1: dependencies: array-back: 6.2.2 @@ -81567,6 +81526,8 @@ snapshots: compare-version@0.1.2: {} + compare-versions@6.1.1: {} + complex.js@2.4.3: {} component-emitter@1.3.1: {} @@ -81599,13 +81560,13 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.54.0 + mime-db: 1.52.0 compression@1.8.1: dependencies: bytes: 3.1.2 compressible: 2.0.18 - debug: 2.6.9 + debug: 4.4.3(supports-color@5.5.0) negotiator: 0.6.4 on-headers: 1.1.0 safe-buffer: 5.2.1 @@ -81650,7 +81611,7 @@ snapshots: concurrently@9.2.1: dependencies: - chalk: 4.1.2 + chalk: 5.6.2 rxjs: 7.8.2 shell-quote: 1.8.3 supports-color: 8.1.1 @@ -81659,8 +81620,8 @@ snapshots: conf@12.0.0: dependencies: - ajv: 8.18.0 - ajv-formats: 2.1.1(ajv@8.18.0) + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) atomically: 2.1.0 debounce-fn: 5.1.2 dot-prop: 8.0.2 @@ -81683,8 +81644,8 @@ snapshots: conf@14.0.0: dependencies: - ajv: 8.18.0 - ajv-formats: 3.0.1(ajv@8.18.0) + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) atomically: 2.1.0 debounce-fn: 6.0.0 dot-prop: 9.0.0 @@ -81705,13 +81666,17 @@ snapshots: glob: 13.0.0 typescript: 5.9.3 + config@3.3.12: + dependencies: + json5: 2.2.3 + connect-redis@8.1.0(express-session@1.18.2): dependencies: express-session: 1.18.2 connect@3.7.0: dependencies: - debug: 2.6.9 + debug: 4.4.3(supports-color@5.5.0) finalhandler: 1.1.2 parseurl: 1.3.3 utils-merge: 1.0.1 @@ -81840,9 +81805,9 @@ snapshots: dependencies: layout-base: 2.0.1 - cosmiconfig-typescript-loader@6.2.0(@types/node@25.0.10)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): + cosmiconfig-typescript-loader@6.2.0(@types/node@25.0.3)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): dependencies: - '@types/node': 25.0.10 + '@types/node': 25.0.3 cosmiconfig: 9.0.0(typescript@5.9.3) jiti: 2.6.1 typescript: 5.9.3 @@ -81940,7 +81905,7 @@ snapshots: create-jest@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@18.19.130)(typescript@5.9.3)): dependencies: '@jest/types': 29.6.3 - chalk: 4.1.2 + chalk: 5.6.2 exit: 0.1.2 graceful-fs: 4.2.11 jest-config: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@18.19.130)(typescript@5.9.3)) @@ -81955,7 +81920,7 @@ snapshots: create-jest@29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.11.30)(typescript@5.6.3)): dependencies: '@jest/types': 29.6.3 - chalk: 4.1.2 + chalk: 5.6.2 exit: 0.1.2 graceful-fs: 4.2.11 jest-config: 29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.11.30)(typescript@5.6.3)) @@ -81970,7 +81935,7 @@ snapshots: create-jest@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)): dependencies: '@jest/types': 29.6.3 - chalk: 4.1.2 + chalk: 5.6.2 exit: 0.1.2 graceful-fs: 4.2.11 jest-config: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) @@ -81982,13 +81947,28 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)): + create-jest@29.7.0(@types/node@20.19.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)): dependencies: '@jest/types': 29.6.3 - chalk: 4.1.2 + chalk: 5.6.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@20.19.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + create-jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)): + dependencies: + '@jest/types': 29.6.3 + chalk: 5.6.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -82000,7 +81980,7 @@ snapshots: create-jest@29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)): dependencies: '@jest/types': 29.6.3 - chalk: 4.1.2 + chalk: 5.6.2 exit: 0.1.2 graceful-fs: 4.2.11 jest-config: 29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) @@ -82012,13 +81992,43 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)): + create-jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)): dependencies: '@jest/types': 29.6.3 - chalk: 4.1.2 + chalk: 5.6.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + create-jest@29.7.0(@types/node@25.0.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)): + dependencies: + '@jest/types': 29.6.3 + chalk: 5.6.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@25.0.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + create-jest@29.7.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)): + dependencies: + '@jest/types': 29.6.3 + chalk: 5.6.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -82228,7 +82238,7 @@ snapshots: bluebird: 3.7.2 buffer: 5.7.1 cachedir: 2.4.0 - chalk: 4.1.2 + chalk: 5.6.2 check-more-types: 2.24.0 ci-info: 4.3.1 cli-cursor: 3.1.0 @@ -82717,20 +82727,6 @@ snapshots: debounce@2.2.0: {} - debug@2.6.9: - dependencies: - ms: 2.0.0 - - debug@3.2.7(supports-color@8.1.1): - dependencies: - ms: 2.1.3 - optionalDependencies: - supports-color: 8.1.1 - - debug@4.3.4: - dependencies: - ms: 2.1.2 - debug@4.3.7: dependencies: ms: 2.1.3 @@ -82755,11 +82751,11 @@ snapshots: decimal.js@10.6.0: {} - deck.gl@9.2.5(@arcgis/core@4.34.8)(@luma.gl/constants@9.2.5)(@luma.gl/gltf@9.2.5(@luma.gl/constants@9.2.5)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))(@luma.gl/webgl@9.2.5(@luma.gl/core@9.2.5))(@math.gl/web-mercator@4.1.0)(react-dom@18.3.1(react@19.2.1))(react@19.2.1): + deck.gl@9.2.5(@arcgis/core@4.34.8)(@luma.gl/constants@9.2.5)(@luma.gl/gltf@9.2.5(@luma.gl/constants@9.2.5)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))(@luma.gl/webgl@9.2.5(@luma.gl/core@9.2.5))(@math.gl/web-mercator@4.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: '@deck.gl/aggregation-layers': 9.2.5(@deck.gl/core@9.2.5)(@deck.gl/layers@9.2.5(@deck.gl/core@9.2.5)(@loaders.gl/core@4.3.4)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))))(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))) '@deck.gl/arcgis': 9.2.5(@arcgis/core@4.34.8)(@deck.gl/core@9.2.5)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/webgl@9.2.5(@luma.gl/core@9.2.5)) - '@deck.gl/carto': 9.2.5(87e66da4f47275c9c667d82e95471ef6) + '@deck.gl/carto': 9.2.5(7ytkyssjzara2nhq77k4m2lfay) '@deck.gl/core': 9.2.5 '@deck.gl/extensions': 9.2.5(@deck.gl/core@9.2.5)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))) '@deck.gl/geo-layers': 9.2.5(@deck.gl/core@9.2.5)(@deck.gl/extensions@9.2.5(@deck.gl/core@9.2.5)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))))(@deck.gl/layers@9.2.5(@deck.gl/core@9.2.5)(@loaders.gl/core@4.3.4)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))))(@deck.gl/mesh-layers@9.2.5(@deck.gl/core@9.2.5)(@loaders.gl/core@4.3.4)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/gltf@9.2.5(@luma.gl/constants@9.2.5)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@loaders.gl/core@4.3.4)(@luma.gl/constants@9.2.5)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))) @@ -82768,7 +82764,7 @@ snapshots: '@deck.gl/layers': 9.2.5(@deck.gl/core@9.2.5)(@loaders.gl/core@4.3.4)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5))) '@deck.gl/mapbox': 9.2.5(@deck.gl/core@9.2.5)(@luma.gl/constants@9.2.5)(@luma.gl/core@9.2.5)(@math.gl/web-mercator@4.1.0) '@deck.gl/mesh-layers': 9.2.5(@deck.gl/core@9.2.5)(@loaders.gl/core@4.3.4)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/gltf@9.2.5(@luma.gl/constants@9.2.5)(@luma.gl/core@9.2.5)(@luma.gl/engine@9.2.5(@luma.gl/core@9.2.5)(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)))(@luma.gl/shadertools@9.2.5(@luma.gl/core@9.2.5)) - '@deck.gl/react': 9.2.5(@deck.gl/core@9.2.5)(@deck.gl/widgets@9.2.5(@deck.gl/core@9.2.5)(@luma.gl/core@9.2.5))(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@deck.gl/react': 9.2.5(@deck.gl/core@9.2.5)(@deck.gl/widgets@9.2.5(@deck.gl/core@9.2.5)(@luma.gl/core@9.2.5))(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@deck.gl/widgets': 9.2.5(@deck.gl/core@9.2.5)(@luma.gl/core@9.2.5) '@loaders.gl/core': 4.3.4 '@luma.gl/core': 9.2.5 @@ -82776,7 +82772,7 @@ snapshots: optionalDependencies: '@arcgis/core': 4.34.8 react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) transitivePeerDependencies: - '@luma.gl/constants' - '@luma.gl/gltf' @@ -82805,6 +82801,10 @@ snapshots: dedent@0.7.0: {} + dedent@1.7.0(babel-plugin-macros@3.1.0): + optionalDependencies: + babel-plugin-macros: 3.1.0 + dedent@1.7.1(babel-plugin-macros@3.1.0): optionalDependencies: babel-plugin-macros: 3.1.0 @@ -82847,7 +82847,7 @@ snapshots: side-channel: 1.1.0 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.20 + which-typed-array: 1.1.19 deep-extend@0.6.0: {} @@ -82965,22 +82965,22 @@ snapshots: detect-node@2.1.0: {} - detox@20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3))): + detox@20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3))): dependencies: '@wix-pilot/core': 3.4.2(expect@30.2.0) - '@wix-pilot/detox': 1.0.13(@wix-pilot/core@3.4.2(expect@30.2.0))(detox@20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3))))(expect@30.2.0) + '@wix-pilot/detox': 1.0.13(@wix-pilot/core@3.4.2(expect@30.2.0))(detox@20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3))))(expect@30.2.0) ajv: 8.17.1 bunyan: 1.8.15 bunyan-debug-stream: 3.1.1(bunyan@1.8.15) caf: 15.0.1 - chalk: 4.1.2 + chalk: 5.6.2 execa: 5.1.1 find-up: 5.0.0 fs-extra: 11.3.3 funpermaproxy: 1.1.0 glob: 13.0.0 ini: 1.3.8 - jest-environment-emit: 1.2.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3))) + jest-environment-emit: 1.2.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3))) json-cycle: 1.5.0 lodash: 4.17.23 multi-sort-stream: 1.0.4 @@ -83005,7 +83005,7 @@ snapshots: yargs-parser: 21.1.1 yargs-unparser: 2.0.0 optionalDependencies: - jest: 30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) + jest: 30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) transitivePeerDependencies: - '@jest/environment' - '@jest/types' @@ -83016,22 +83016,22 @@ snapshots: - jest-environment-node - utf-8-validate - detox@20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3))): + detox@20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3))): dependencies: '@wix-pilot/core': 3.4.2(expect@30.2.0) - '@wix-pilot/detox': 1.0.13(@wix-pilot/core@3.4.2(expect@30.2.0))(detox@20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3))))(expect@30.2.0) + '@wix-pilot/detox': 1.0.13(@wix-pilot/core@3.4.2(expect@30.2.0))(detox@20.46.1(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(expect@30.2.0)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3))))(expect@30.2.0) ajv: 8.17.1 bunyan: 1.8.15 bunyan-debug-stream: 3.1.1(bunyan@1.8.15) caf: 15.0.1 - chalk: 4.1.2 + chalk: 5.6.2 execa: 5.1.1 find-up: 5.0.0 fs-extra: 11.3.3 funpermaproxy: 1.1.0 glob: 13.0.0 ini: 1.3.8 - jest-environment-emit: 1.2.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3))) + jest-environment-emit: 1.2.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3))) json-cycle: 1.5.0 lodash: 4.17.23 multi-sort-stream: 1.0.4 @@ -83056,7 +83056,7 @@ snapshots: yargs-parser: 21.1.1 yargs-unparser: 2.0.0 optionalDependencies: - jest: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + jest: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) transitivePeerDependencies: - '@jest/environment' - '@jest/types' @@ -83086,6 +83086,10 @@ snapshots: dfa@1.2.0: {} + dicer@0.3.0: + dependencies: + streamsearch: 0.1.2 + did-jwt-vc@4.0.16: dependencies: did-jwt: 8.0.18 @@ -83109,6 +83113,8 @@ snapshots: diff-sequences@29.6.3: {} + diff@3.5.0: {} + diff@4.0.2: {} diff@8.0.2: {} @@ -83268,7 +83274,7 @@ snapshots: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 - entities: 4.5.0 + entities: 2.2.0 dom-serializer@2.0.0: dependencies: @@ -83284,10 +83290,6 @@ snapshots: dependencies: webidl-conversions: 7.0.0 - domhandler@3.3.0: - dependencies: - domelementtype: 2.3.0 - domhandler@4.3.1: dependencies: domelementtype: 2.3.0 @@ -83354,20 +83356,36 @@ snapshots: nan: 2.24.0 optional: true - duckdb-async@1.4.2: + dts-critic@3.3.11(typescript@5.9.3): dependencies: - duckdb: 1.4.2 + '@definitelytyped/header-parser': 0.2.22 + command-exists: 1.2.9 + rimraf: 3.0.2 + semver: 6.3.1 + tmp: 0.2.5 + typescript: 5.9.3 + yargs: 15.4.1 transitivePeerDependencies: - - bluebird + - bare-abort-controller + - react-native-b4a - supports-color - duckdb@1.4.2: + dtslint@4.2.1(typescript@5.9.3): dependencies: - '@mapbox/node-pre-gyp': 2.0.3 - node-addon-api: 7.1.1 - node-gyp: 9.4.1 + '@definitelytyped/header-parser': 0.2.22 + '@definitelytyped/typescript-versions': 0.1.10 + '@definitelytyped/utils': 0.1.10 + dts-critic: 3.3.11(typescript@5.9.3) + fs-extra: 6.0.1 + json-stable-stringify: 1.3.0 + strip-json-comments: 2.0.1 + tslint: 5.14.0(typescript@5.9.3) + tsutils: 2.29.0(typescript@5.9.3) + typescript: 5.9.3 + yargs: 15.4.1 transitivePeerDependencies: - - bluebird + - bare-abort-controller + - react-native-b4a - supports-color dunder-proto@1.0.1: @@ -83408,13 +83426,6 @@ snapshots: dependencies: safe-buffer: 5.2.1 - editorconfig@1.0.4: - dependencies: - '@one-ini/wasm': 0.1.1 - commander: 10.0.1 - minimatch: 9.0.1 - semver: 7.7.3 - ee-first@1.1.1: {} efrt@2.7.0: {} @@ -83426,7 +83437,7 @@ snapshots: elasticsearch@16.7.3: dependencies: agentkeepalive: 3.5.3 - chalk: 1.1.3 + chalk: 5.6.2 lodash: 4.17.23 electron-builder-squirrel-windows@26.0.12(dmg-builder@26.0.12): @@ -83444,7 +83455,7 @@ snapshots: app-builder-lib: 26.0.12(dmg-builder@26.0.12)(electron-builder-squirrel-windows@26.0.12) builder-util: 26.0.11 builder-util-runtime: 9.3.1 - chalk: 4.1.2 + chalk: 5.6.2 dmg-builder: 26.0.12(electron-builder-squirrel-windows@26.0.12) fs-extra: 10.1.0 is-ci: 3.0.1 @@ -83467,7 +83478,7 @@ snapshots: '@types/fs-extra': 9.0.13 builder-util: 26.0.11 builder-util-runtime: 9.3.1 - chalk: 4.1.2 + chalk: 5.6.2 form-data: 4.0.5 fs-extra: 10.1.0 lazy-val: 1.0.5 @@ -83569,7 +83580,7 @@ snapshots: engine.io-client@6.6.4: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.3.7 engine.io-parser: 5.2.3 ws: 8.19.0 xmlhttprequest-ssl: 2.1.2 @@ -83588,7 +83599,7 @@ snapshots: base64id: 2.0.0 cookie: 1.1.1 cors: 2.8.6 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.3.7 engine.io-parser: 5.2.3 ws: 8.19.0 transitivePeerDependencies: @@ -83606,8 +83617,14 @@ snapshots: ansi-colors: 4.1.3 strip-ansi: 6.0.1 + entities@2.2.0: {} + entities@4.5.0: {} + entities@6.0.1: {} + + entities@7.0.1: {} + env-ci@11.2.0: dependencies: execa: 8.0.1 @@ -83636,6 +83653,63 @@ snapshots: string-template: 0.2.1 xtend: 4.0.2 + es-abstract@1.24.0: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-negative-zero: 2.0.3 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.19 + es-abstract@1.24.1: dependencies: array-buffer-byte-length: 1.0.2 @@ -83693,6 +83767,17 @@ snapshots: unbox-primitive: 1.1.0 which-typed-array: 1.1.20 + es-aggregate-error@1.0.14: + dependencies: + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + function-bind: 1.1.2 + globalthis: 1.0.4 + has-property-descriptors: 1.0.2 + set-function-name: 2.0.2 + es-array-method-boxes-properly@1.0.0: {} es-define-property@1.0.1: {} @@ -83716,7 +83801,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 @@ -83755,10 +83840,14 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 + es-toolkit@1.43.0: {} + es-toolkit@1.44.0: {} es6-error@4.1.1: {} + es6-promise@3.3.1: {} + es6-promise@4.2.8: {} es6-promisify@5.0.0: @@ -83803,8 +83892,6 @@ snapshots: escalade@3.2.0: {} - escape-goat@3.0.0: {} - escape-html@1.0.3: {} escape-latex@1.2.0: {} @@ -83825,13 +83912,13 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-next@16.1.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): + eslint-config-next@16.1.1(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: '@next/eslint-plugin-next': 16.1.1 eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-hooks: 7.0.1(eslint@9.39.2(jiti@2.6.1)) @@ -83853,27 +83940,19 @@ snapshots: dependencies: eslint: 9.39.2(jiti@2.6.1) - eslint-config-prettier@9.1.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-config-prettier@9.1.0(eslint@9.39.1(jiti@2.6.1)): - dependencies: - eslint: 9.39.1(jiti@2.6.1) - eslint-config-prettier@9.1.0(eslint@9.39.2(jiti@2.6.1)): dependencies: eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node@0.3.9: dependencies: - debug: 3.2.7(supports-color@8.1.1) + debug: 4.4.3(supports-color@5.5.0) is-core-module: 2.16.1 resolve: 1.22.11 transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@5.5.0) @@ -83884,28 +83963,28 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): dependencies: - debug: 3.2.7(supports-color@8.1.1) + debug: 4.4.3(supports-color@5.5.0) optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.3) - eslint: 8.57.1 + '@typescript-eslint/parser': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.2(jiti@2.6.1)): dependencies: - debug: 3.2.7(supports-color@8.1.1) + debug: 4.4.3(supports-color@5.5.0) optionalDependencies: - '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) transitivePeerDependencies: - supports-color @@ -83922,18 +84001,18 @@ snapshots: lodash: 4.17.23 string-natural-compare: 3.0.1 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 - debug: 3.2.7(supports-color@8.1.1) + debug: 4.4.3(supports-color@5.5.0) doctrine: 2.1.0 - eslint: 8.57.1 + eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -83945,24 +84024,24 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 - debug: 3.2.7(supports-color@8.1.1) + debug: 4.4.3(supports-color@5.5.0) doctrine: 2.1.0 eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.2(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -83974,40 +84053,40 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)))(typescript@5.9.3): + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)))(typescript@5.9.3): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) optionalDependencies: '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - jest: 30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) + jest: 30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3): + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)))(typescript@5.9.3): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) optionalDependencies: '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - jest: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + jest: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@29.1.0(@typescript-eslint/eslint-plugin@8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(jest@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3): + eslint-plugin-jest@29.1.0(@typescript-eslint/eslint-plugin@8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@typescript-eslint/utils': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) jest: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) transitivePeerDependencies: - supports-color @@ -84015,7 +84094,7 @@ snapshots: eslint-plugin-jest@29.1.0(@typescript-eslint/eslint-plugin@8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) optionalDependencies: '@typescript-eslint/eslint-plugin': 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) @@ -84024,13 +84103,13 @@ snapshots: - supports-color - typescript - eslint-plugin-jest@29.11.0(@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)))(typescript@5.9.3): + eslint-plugin-jest@29.11.0(@typescript-eslint/eslint-plugin@8.50.1(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)))(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - jest: 29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) + '@typescript-eslint/eslint-plugin': 8.50.1(@typescript-eslint/parser@8.50.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + jest: 29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) transitivePeerDependencies: - supports-color - typescript @@ -84062,10 +84141,6 @@ snapshots: dependencies: eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-react-hooks@5.2.0(eslint@9.39.1(jiti@2.6.1)): - dependencies: - eslint: 9.39.1(jiti@2.6.1) - eslint-plugin-react-hooks@5.2.0(eslint@9.39.2(jiti@2.6.1)): dependencies: eslint: 9.39.2(jiti@2.6.1) @@ -84073,11 +84148,11 @@ snapshots: eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@2.6.1)): dependencies: '@babel/core': 7.28.5 - '@babel/parser': 7.29.0 + '@babel/parser': 7.28.5 eslint: 9.39.2(jiti@2.6.1) hermes-parser: 0.25.1 - zod: 3.25.76 - zod-validation-error: 4.0.2(zod@3.25.76) + zod: 4.2.1 + zod-validation-error: 4.0.2(zod@4.2.1) transitivePeerDependencies: - supports-color @@ -84088,36 +84163,10 @@ snapshots: eslint: 9.39.2(jiti@2.6.1) eslint-plugin-react-native-globals: 0.1.2 - eslint-plugin-react-refresh@0.4.26(eslint@9.39.1(jiti@2.6.1)): - dependencies: - eslint: 9.39.1(jiti@2.6.1) - eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@2.6.1)): dependencies: eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-react@7.37.5(eslint@9.39.1(jiti@2.6.1)): - dependencies: - array-includes: 3.1.9 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.1 - eslint: 9.39.1(jiti@2.6.1) - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.9 - object.fromentries: 2.0.8 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - string.prototype.repeat: 1.0.0 - eslint-plugin-react@7.37.5(eslint@9.39.2(jiti@1.21.7)): dependencies: array-includes: 3.1.9 @@ -84164,7 +84213,7 @@ snapshots: eslint-plugin-storybook@10.0.6(eslint@9.39.2(jiti@2.6.1))(storybook@10.1.10(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) storybook: 10.1.10(@testing-library/dom@10.4.1)(prettier@3.7.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) transitivePeerDependencies: @@ -84176,11 +84225,6 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 @@ -84192,90 +84236,6 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@8.57.1: - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@eslint-community/regexpp': 4.12.2 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.3.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@5.5.0) - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.1 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - eslint@9.39.1(jiti@2.6.1): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.21.1 - '@eslint/config-helpers': 0.4.2 - '@eslint/core': 0.17.0 - '@eslint/eslintrc': 3.3.3 - '@eslint/js': 9.39.1 - '@eslint/plugin-kit': 0.4.1 - '@humanfs/node': 0.16.7 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@5.5.0) - escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.6.1 - transitivePeerDependencies: - - supports-color - eslint@9.39.2(jiti@1.21.7): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) @@ -84364,12 +84324,6 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 4.2.1 - espree@9.6.1: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 3.4.3 - esprima@4.0.1: {} esquery@1.7.0: @@ -84439,6 +84393,8 @@ snapshots: eventemitter3@4.0.7: {} + eventemitter3@5.0.1: {} + eventemitter3@5.0.4: {} events-universal@1.0.1: @@ -84617,7 +84573,7 @@ snapshots: dependencies: cookie: 1.1.1 cookie-signature: 1.0.7 - debug: 2.6.9 + debug: 4.4.3(supports-color@5.5.0) depd: 2.0.0 on-headers: 1.1.0 parseurl: 1.3.3 @@ -84714,6 +84670,8 @@ snapshots: dependencies: pure-rand: 7.0.1 + fast-content-type-parse@1.1.0: {} + fast-content-type-parse@3.0.0: {} fast-copy@3.0.2: {} @@ -84760,8 +84718,8 @@ snapshots: fast-json-stringify@5.16.1: dependencies: '@fastify/merge-json-schemas': 0.1.1 - ajv: 8.18.0 - ajv-formats: 3.0.1(ajv@8.18.0) + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) fast-deep-equal: 3.1.3 fast-uri: 2.4.0 json-schema-ref-resolver: 1.0.1 @@ -84770,14 +84728,16 @@ snapshots: fast-json-stringify@6.1.1: dependencies: '@fastify/merge-json-schemas': 0.2.1 - ajv: 8.18.0 - ajv-formats: 3.0.1(ajv@8.18.0) + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) fast-uri: 3.1.0 json-schema-ref-resolver: 3.0.0 rfdc: 1.4.1 fast-levenshtein@2.0.6: {} + fast-memoize@2.5.2: {} + fast-querystring@1.1.2: dependencies: fast-decode-uri-component: 1.0.1 @@ -84794,6 +84754,14 @@ snapshots: dependencies: punycode: 1.4.1 + fast-xml-parser@4.5.3: + dependencies: + strnum: 1.1.2 + + fast-xml-parser@5.2.5: + dependencies: + strnum: 2.1.2 + fast-xml-parser@5.3.4: dependencies: strnum: 2.1.2 @@ -84802,7 +84770,26 @@ snapshots: fastify-plugin@5.1.0: {} - fastify@5.7.4: + fastify@4.29.1: + dependencies: + '@fastify/ajv-compiler': 3.6.0 + '@fastify/error': 3.4.1 + '@fastify/fast-json-stringify-compiler': 4.3.0 + abstract-logging: 2.0.1 + avvio: 8.4.0 + fast-content-type-parse: 1.1.0 + fast-json-stringify: 5.16.1 + find-my-way: 8.2.2 + light-my-request: 5.14.0 + pino: 9.14.0 + process-warning: 3.0.0 + proxy-addr: 2.0.7 + rfdc: 1.4.1 + secure-json-parse: 2.7.0 + semver: 7.7.3 + toad-cache: 3.7.0 + + fastify@5.6.2: dependencies: '@fastify/ajv-compiler': 4.0.5 '@fastify/error': 4.2.0 @@ -84908,10 +84895,6 @@ snapshots: dependencies: is-unicode-supported: 2.1.0 - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -84949,7 +84932,7 @@ snapshots: finalhandler@1.1.2: dependencies: - debug: 2.6.9 + debug: 4.4.3(supports-color@5.5.0) encodeurl: 1.0.2 escape-html: 1.0.3 on-finished: 2.3.0 @@ -84987,6 +84970,12 @@ snapshots: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 + find-my-way@8.2.2: + dependencies: + fast-deep-equal: 3.1.3 + fast-querystring: 1.1.2 + safe-regex2: 3.1.0 + find-my-way@9.3.0: dependencies: fast-deep-equal: 3.1.3 @@ -85181,8 +85170,8 @@ snapshots: fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.104.1(@swc/core@1.15.3(@swc/helpers@0.5.17))(esbuild@0.27.2)): dependencies: - '@babel/code-frame': 7.29.0 - chalk: 4.1.2 + '@babel/code-frame': 7.27.1 + chalk: 5.6.2 chokidar: 4.0.3 cosmiconfig: 8.3.6(typescript@5.9.3) deepmerge: 4.3.1 @@ -85285,6 +85274,12 @@ snapshots: jsonfile: 6.2.0 universalify: 2.0.1 + fs-extra@6.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -85372,17 +85367,6 @@ snapshots: strip-ansi: 6.0.1 wide-align: 1.1.5 - gauge@4.0.4: - dependencies: - aproba: 2.1.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - gaussian@1.3.0: {} gaxios@6.7.1: @@ -85426,14 +85410,12 @@ snapshots: generator-function@2.0.1: {} - generic-pool@3.9.0: {} - gensync@1.0.0-beta.2: {} geoip-lite@1.4.10: dependencies: async: 2.6.4 - chalk: 4.1.2 + chalk: 5.6.2 iconv-lite: 0.6.3 ip-address: 5.9.4 lazy: 1.0.11 @@ -85607,10 +85589,6 @@ snapshots: dependencies: ini: 2.0.0 - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - globals@14.0.0: {} globals@15.15.0: {} @@ -85791,13 +85769,13 @@ snapshots: - uWebSockets.js - utf-8-validate - graphql-config@5.1.5(@fastify/websocket@11.2.0)(@types/node@25.0.10)(graphql@16.12.0)(typescript@5.9.3): + graphql-config@5.1.5(@fastify/websocket@11.2.0)(@types/node@25.0.3)(graphql@16.12.0)(typescript@5.9.3): dependencies: '@graphql-tools/graphql-file-loader': 8.1.8(graphql@16.12.0) '@graphql-tools/json-file-loader': 8.0.25(graphql@16.12.0) '@graphql-tools/load': 8.1.7(graphql@16.12.0) '@graphql-tools/merge': 9.1.6(graphql@16.12.0) - '@graphql-tools/url-loader': 8.0.33(@fastify/websocket@11.2.0)(@types/node@25.0.10)(graphql@16.12.0) + '@graphql-tools/url-loader': 8.0.33(@fastify/websocket@11.2.0)(@types/node@25.0.3)(graphql@16.12.0) '@graphql-tools/utils': 10.11.0(graphql@16.12.0) cosmiconfig: 8.3.6(typescript@5.9.3) graphql: 16.12.0 @@ -85837,11 +85815,6 @@ snapshots: lodash.merge: 4.6.2 lodash.mergewith: 4.6.2 - graphql-query-complexity@1.1.0(graphql@16.12.0): - dependencies: - graphql: 16.12.0 - lodash.get: 4.4.2 - graphql-redis-subscriptions@2.7.0(graphql-subscriptions@2.0.0(graphql@16.12.0)): dependencies: graphql-subscriptions: 2.0.0(graphql@16.12.0) @@ -85871,6 +85844,11 @@ snapshots: graphql: 16.12.0 tslib: 2.8.1 + graphql-tag@2.12.6(graphql@16.9.0): + dependencies: + graphql: 16.9.0 + tslib: 2.8.1 + graphql-tools@4.0.8(graphql@16.12.0): dependencies: apollo-link: 1.2.14(graphql@16.12.0) @@ -85913,8 +85891,12 @@ snapshots: lru-cache: 10.4.3 tslib: 2.8.1 + graphql@15.10.1: {} + graphql@16.12.0: {} + graphql@16.9.0: {} + gray-matter@4.0.3: dependencies: js-yaml: 3.14.2 @@ -85955,16 +85937,12 @@ snapshots: happy-dom@20.0.11: dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.30 '@types/whatwg-mimetype': 3.0.2 whatwg-mimetype: 3.0.0 harmony-reflect@1.6.2: {} - has-ansi@2.0.0: - dependencies: - ansi-regex: 2.1.1 - has-bigints@1.1.0: {} has-flag@3.0.0: {} @@ -86096,6 +86074,10 @@ snapshots: dependencies: lru-cache: 10.4.3 + hosted-git-info@9.0.2: + dependencies: + lru-cache: 11.2.5 + hpagent@1.2.0: {} hpp@0.2.3: @@ -86121,18 +86103,6 @@ snapshots: html-escaper@2.0.2: {} - html-escaper@3.0.3: {} - - html-minifier-terser@5.1.1: - dependencies: - camel-case: 4.1.2 - clean-css: 4.2.4 - commander: 4.1.1 - he: 1.2.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 4.8.1 - html-minifier-terser@6.1.0: dependencies: camel-case: 4.1.2 @@ -86149,14 +86119,6 @@ snapshots: html-tags@3.3.1: {} - html-to-text@9.0.5: - dependencies: - '@selderee/plugin-htmlparser2': 0.11.0 - deepmerge: 4.3.1 - dom-serializer: 2.0.0 - htmlparser2: 8.0.2 - selderee: 0.11.0 - html-webpack-plugin@5.6.5(webpack@5.104.1(@swc/core@1.15.3(@swc/helpers@0.5.17))(esbuild@0.27.2)): dependencies: '@types/html-minifier-terser': 6.1.0 @@ -86167,26 +86129,26 @@ snapshots: optionalDependencies: webpack: 5.104.1(@swc/core@1.15.3(@swc/helpers@0.5.17))(esbuild@0.27.2) - htmlparser2@10.1.0: + htmlparser2@10.0.0: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.2.2 - entities: 4.5.0 + entities: 6.0.1 - htmlparser2@5.0.1: + htmlparser2@10.1.0: dependencies: domelementtype: 2.3.0 - domhandler: 3.3.0 - domutils: 2.8.0 - entities: 4.5.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 7.0.1 htmlparser2@6.1.0: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 domutils: 2.8.0 - entities: 4.5.0 + entities: 2.2.0 htmlparser2@8.0.2: dependencies: @@ -86195,13 +86157,6 @@ snapshots: domutils: 3.2.2 entities: 4.5.0 - htmlparser2@9.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 4.5.0 - htmlparser@1.7.7: {} http-cache-semantics@4.2.0: {} @@ -86247,7 +86202,7 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-middleware@2.0.9(@types/express@4.17.25): + http-proxy-middleware@2.0.9(@types/express@4.17.21): dependencies: '@types/http-proxy': 1.17.17 http-proxy: 1.18.1(debug@4.4.3) @@ -86255,7 +86210,7 @@ snapshots: is-plain-obj: 3.0.0 micromatch: 4.0.8 optionalDependencies: - '@types/express': 4.17.25 + '@types/express': 4.17.21 transitivePeerDependencies: - debug @@ -86285,7 +86240,7 @@ snapshots: http-server@14.1.1: dependencies: basic-auth: 2.0.1 - chalk: 4.1.2 + chalk: 5.6.2 corser: 2.0.1 he: 1.2.0 html-encoding-sniffer: 3.0.0 @@ -86307,6 +86262,8 @@ snapshots: jsprim: 2.0.2 sshpk: 1.18.0 + http2-client@1.3.5: {} + http2-wrapper@1.0.3: dependencies: quick-lru: 5.1.1 @@ -86317,7 +86274,7 @@ snapshots: https-proxy-agent@2.2.4: dependencies: agent-base: 4.3.0 - debug: 3.2.7(supports-color@8.1.1) + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -86392,6 +86349,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.1: + dependencies: + safer-buffer: 2.1.2 + iconv-lite@0.7.2: dependencies: safer-buffer: 2.1.2 @@ -86438,6 +86399,8 @@ snapshots: immer@11.1.0: {} + immer@9.0.21: {} + immutable@3.7.6: {} immutable@4.3.7: {} @@ -86482,14 +86445,14 @@ snapshots: cjs-module-lexer: 1.4.3 module-details-from-path: 1.0.4 - import-in-the-middle@2.0.6: + import-in-the-middle@2.0.1: dependencies: acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) - cjs-module-lexer: 2.2.0 + cjs-module-lexer: 1.4.3 module-details-from-path: 1.0.4 - import-in-the-middle@3.0.0: + import-in-the-middle@2.0.6: dependencies: acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) @@ -86520,6 +86483,8 @@ snapshots: infer-owner@1.0.4: {} + inflected@2.1.0: {} + inherits@2.0.4: {} ini@1.3.8: {} @@ -86530,26 +86495,28 @@ snapshots: ini@4.1.3: {} - ink-spinner@5.0.0(ink@5.2.1(@types/react@18.3.11)(react@18.3.1))(react@18.3.1): + ini@6.0.0: {} + + ink-spinner@5.0.0(ink@5.2.1(@types/react@18.3.11)(react@19.2.1))(react@19.2.1): dependencies: cli-spinners: 2.9.2 - ink: 5.2.1(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 + ink: 5.2.1(@types/react@18.3.11)(react@19.2.1) + react: 19.2.1 - ink-table@3.1.0(ink@5.2.1(@types/react@18.3.11)(react@18.3.1))(react@18.3.1): + ink-table@3.1.0(ink@5.2.1(@types/react@18.3.11)(react@19.2.1))(react@19.2.1): dependencies: - ink: 5.2.1(@types/react@18.3.11)(react@18.3.1) + ink: 5.2.1(@types/react@18.3.11)(react@19.2.1) object-hash: 2.2.0 - react: 18.3.1 + react: 19.2.1 - ink-text-input@6.0.0(ink@5.2.1(@types/react@18.3.11)(react@18.3.1))(react@18.3.1): + ink-text-input@6.0.0(ink@5.2.1(@types/react@18.3.11)(react@19.2.1))(react@19.2.1): dependencies: chalk: 5.6.2 - ink: 5.2.1(@types/react@18.3.11)(react@18.3.1) - react: 18.3.1 + ink: 5.2.1(@types/react@18.3.11)(react@19.2.1) + react: 19.2.1 type-fest: 4.41.0 - ink@5.2.1(@types/react@18.3.11)(react@18.3.1): + ink@5.2.1(@types/react@18.3.11)(react@19.2.1): dependencies: '@alcalzone/ansi-tokenize': 0.1.3 ansi-escapes: 7.2.0 @@ -86560,12 +86527,12 @@ snapshots: cli-cursor: 4.0.0 cli-truncate: 4.0.0 code-excerpt: 4.0.0 - es-toolkit: 1.44.0 + es-toolkit: 1.43.0 indent-string: 5.0.0 is-in-ci: 1.0.0 patch-console: 2.0.0 - react: 18.3.1 - react-reconciler: 0.29.2(react@18.3.1) + react: 19.2.1 + react-reconciler: 0.29.2(react@19.2.1) scheduler: 0.23.2 signal-exit: 3.0.7 slice-ansi: 7.1.2 @@ -86598,7 +86565,7 @@ snapshots: dependencies: '@inquirer/external-editor': 1.0.3(@types/node@20.19.27) ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 cli-cursor: 3.1.0 cli-width: 3.0.0 figures: 3.2.0 @@ -86614,11 +86581,11 @@ snapshots: transitivePeerDependencies: - '@types/node' - inquirer@8.2.7(@types/node@25.0.10): + inquirer@8.2.7(@types/node@25.0.3): dependencies: - '@inquirer/external-editor': 1.0.3(@types/node@25.0.10) + '@inquirer/external-editor': 1.0.3(@types/node@25.0.3) ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 cli-cursor: 3.1.0 cli-width: 3.0.0 figures: 3.2.0 @@ -86719,6 +86686,20 @@ snapshots: transitivePeerDependencies: - supports-color + ioredis@5.9.2: + dependencies: + '@ioredis/commands': 1.5.0 + cluster-key-slot: 1.1.2 + debug: 4.4.3(supports-color@5.5.0) + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + ip-address@10.0.1: {} ip-address@10.1.0: {} @@ -87095,7 +87076,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.20 + which-typed-array: 1.1.19 is-typedarray@1.0.0: {} @@ -87148,6 +87129,8 @@ snapshots: isexe@2.0.0: {} + isexe@3.1.1: {} + iso-639-1@3.1.5: {} iso-url@1.2.1: {} @@ -87162,17 +87145,6 @@ snapshots: - bare-buffer - react-native-b4a - isomorphic-dompurify@2.35.0(canvas@2.11.2): - dependencies: - dompurify: 3.3.1 - jsdom: 27.4.0(canvas@2.11.2) - transitivePeerDependencies: - - '@exodus/crypto' - - bufferutil - - canvas - - supports-color - - utf-8-validate - isomorphic-unfetch@3.1.0: dependencies: node-fetch: 3.3.2 @@ -87415,7 +87387,7 @@ snapshots: jest-axe@10.0.0: dependencies: axe-core: 4.10.2 - chalk: 4.1.2 + chalk: 5.6.2 jest-matcher-utils: 29.2.2 lodash.merge: 4.6.2 @@ -87438,7 +87410,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 '@types/node': 20.19.27 - chalk: 4.1.2 + chalk: 5.6.2 co: 4.6.0 dedent: 1.7.1(babel-plugin-macros@3.1.0) is-generator-fn: 2.1.0 @@ -87464,9 +87436,9 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 '@types/node': 20.19.27 - chalk: 4.1.2 + chalk: 5.6.2 co: 4.6.0 - dedent: 1.7.1(babel-plugin-macros@3.1.0) + dedent: 1.7.0(babel-plugin-macros@3.1.0) is-generator-fn: 2.1.0 jest-each: 30.2.0 jest-matcher-utils: 30.2.0 @@ -87488,7 +87460,7 @@ snapshots: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@18.19.130)(typescript@5.9.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - chalk: 4.1.2 + chalk: 5.6.2 create-jest: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@18.19.130)(typescript@5.9.3)) exit: 0.1.2 import-local: 3.2.0 @@ -87507,7 +87479,7 @@ snapshots: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.11.30)(typescript@5.6.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - chalk: 4.1.2 + chalk: 5.6.2 create-jest: 29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.11.30)(typescript@5.6.3)) exit: 0.1.2 import-local: 3.2.0 @@ -87526,7 +87498,7 @@ snapshots: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - chalk: 4.1.2 + chalk: 5.6.2 create-jest: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) exit: 0.1.2 import-local: 3.2.0 @@ -87540,16 +87512,35 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)): + jest-cli@29.7.0(@types/node@20.19.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + chalk: 5.6.2 + create-jest: 29.7.0(@types/node@20.19.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@20.19.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest-cli@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 5.6.2 + create-jest: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -87564,7 +87555,7 @@ snapshots: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - chalk: 4.1.2 + chalk: 5.6.2 create-jest: 29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) exit: 0.1.2 import-local: 3.2.0 @@ -87578,16 +87569,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)): + jest-cli@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + chalk: 5.6.2 + create-jest: 29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -87597,22 +87588,41 @@ snapshots: - supports-color - ts-node - jest-cli@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3)): + jest-cli@29.7.0(@types/node@25.0.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)): dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3)) - '@jest/test-result': 30.2.0 - '@jest/types': 30.2.0 - chalk: 4.1.2 - exit-x: 0.2.2 + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 5.6.2 + create-jest: 29.7.0(@types/node@25.0.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)) + exit: 0.1.2 import-local: 3.2.0 - jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3)) - jest-util: 30.2.0 - jest-validate: 30.2.0 + jest-config: 29.7.0(@types/node@25.0.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest-cli@29.7.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 5.6.2 + create-jest: 29.7.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) + jest-util: 29.7.0 + jest-validate: 29.7.0 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - babel-plugin-macros - - esbuild-register - supports-color - ts-node @@ -87621,7 +87631,7 @@ snapshots: '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 - chalk: 4.1.2 + chalk: 5.6.2 exit-x: 0.2.2 import-local: 3.2.0 jest-config: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) @@ -87635,15 +87645,15 @@ snapshots: - supports-color - ts-node - jest-cli@30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)): + jest-cli@30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)): dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 - chalk: 4.1.2 + chalk: 5.6.2 exit-x: 0.2.2 import-local: 3.2.0 - jest-config: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + jest-config: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) jest-util: 30.2.0 jest-validate: 30.2.0 yargs: 17.7.2 @@ -87654,15 +87664,15 @@ snapshots: - supports-color - ts-node - jest-cli@30.2.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)): + jest-cli@30.2.0(@types/node@24.10.1)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)): dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)) + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)) '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 - chalk: 4.1.2 + chalk: 5.6.2 exit-x: 0.2.2 import-local: 3.2.0 - jest-config: 30.2.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)) + jest-config: 30.2.0(@types/node@24.10.1)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)) jest-util: 30.2.0 jest-validate: 30.2.0 yargs: 17.7.2 @@ -87678,7 +87688,7 @@ snapshots: '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 - chalk: 4.1.2 + chalk: 5.6.2 exit-x: 0.2.2 import-local: 3.2.0 jest-config: 30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) @@ -87692,15 +87702,34 @@ snapshots: - supports-color - ts-node - jest-cli@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)): + jest-cli@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)): dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 - chalk: 4.1.2 + chalk: 5.6.2 exit-x: 0.2.2 import-local: 3.2.0 - jest-config: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + jest-config: 30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) + jest-util: 30.2.0 + jest-validate: 30.2.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + + jest-cli@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)): + dependencies: + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + chalk: 5.6.2 + exit-x: 0.2.2 + import-local: 3.2.0 + jest-config: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) jest-util: 30.2.0 jest-validate: 30.2.0 yargs: 17.7.2 @@ -87713,11 +87742,11 @@ snapshots: jest-config@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@18.19.130)(typescript@5.9.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 ci-info: 3.9.0 deepmerge: 4.3.1 glob: 13.0.0 @@ -87744,11 +87773,11 @@ snapshots: jest-config@29.7.0(@types/node@20.11.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.11.30)(typescript@5.6.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 ci-info: 3.9.0 deepmerge: 4.3.1 glob: 13.0.0 @@ -87775,11 +87804,11 @@ snapshots: jest-config@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@18.19.130)(typescript@5.9.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 ci-info: 3.9.0 deepmerge: 4.3.1 glob: 13.0.0 @@ -87806,11 +87835,11 @@ snapshots: jest-config@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.11.30)(typescript@5.6.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 ci-info: 3.9.0 deepmerge: 4.3.1 glob: 13.0.0 @@ -87837,11 +87866,11 @@ snapshots: jest-config@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 ci-info: 3.9.0 deepmerge: 4.3.1 glob: 13.0.0 @@ -87866,13 +87895,13 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 ci-info: 3.9.0 deepmerge: 4.3.1 glob: 13.0.0 @@ -87892,18 +87921,49 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.19.27 - ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)): + dependencies: + '@babel/core': 7.29.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 13.0.0 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.19.27 + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color jest-config@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 ci-info: 3.9.0 deepmerge: 4.3.1 glob: 13.0.0 @@ -87928,13 +87988,13 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 ci-info: 3.9.0 deepmerge: 4.3.1 glob: 13.0.0 @@ -87954,18 +88014,18 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.19.27 - ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 ci-info: 3.9.0 deepmerge: 4.3.1 glob: 13.0.0 @@ -87984,19 +88044,112 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.19.7 - ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3) + '@types/node': 20.19.27 + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)): + dependencies: + '@babel/core': 7.29.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 13.0.0 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.19.27 + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@29.7.0(@types/node@20.19.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)): + dependencies: + '@babel/core': 7.29.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 13.0.0 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.19.30 + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)): + dependencies: + '@babel/core': 7.29.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 13.0.0 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 22.19.3 + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color jest-config@29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 ci-info: 3.9.0 deepmerge: 4.3.1 glob: 13.0.0 @@ -88021,13 +88174,44 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 13.0.0 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 25.0.3 + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@29.7.0(@types/node@25.0.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)): + dependencies: + '@babel/core': 7.29.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 ci-info: 3.9.0 deepmerge: 4.3.1 glob: 13.0.0 @@ -88046,13 +88230,44 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 25.3.5 - ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3) + '@types/node': 25.0.9 + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3)): + jest-config@29.7.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)): + dependencies: + '@babel/core': 7.29.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 5.6.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 13.0.0 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 25.1.0 + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.5 '@jest/get-type': 30.1.0 @@ -88060,7 +88275,143 @@ snapshots: '@jest/test-sequencer': 30.2.0 '@jest/types': 30.2.0 babel-jest: 30.2.0(@babel/core@7.28.5) - chalk: 4.1.2 + chalk: 5.6.2 + ci-info: 4.3.1 + deepmerge: 4.3.1 + glob: 13.0.0 + graceful-fs: 4.2.11 + jest-circus: 30.2.0(babel-plugin-macros@3.1.0) + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-runner: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 30.2.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.19.27 + esbuild-register: 3.6.0(esbuild@0.27.2) + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)): + dependencies: + '@babel/core': 7.28.5 + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.0.1 + '@jest/test-sequencer': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.5) + chalk: 5.6.2 + ci-info: 4.3.1 + deepmerge: 4.3.1 + glob: 13.0.0 + graceful-fs: 4.2.11 + jest-circus: 30.2.0(babel-plugin-macros@3.1.0) + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-runner: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 30.2.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.19.27 + esbuild-register: 3.6.0(esbuild@0.27.2) + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)): + dependencies: + '@babel/core': 7.28.5 + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.0.1 + '@jest/test-sequencer': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.5) + chalk: 5.6.2 + ci-info: 4.3.1 + deepmerge: 4.3.1 + glob: 13.0.0 + graceful-fs: 4.2.11 + jest-circus: 30.2.0(babel-plugin-macros@3.1.0) + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-runner: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 30.2.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.19.27 + esbuild-register: 3.6.0(esbuild@0.27.2) + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)): + dependencies: + '@babel/core': 7.28.5 + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.0.1 + '@jest/test-sequencer': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.5) + chalk: 5.6.2 + ci-info: 4.3.1 + deepmerge: 4.3.1 + glob: 13.0.0 + graceful-fs: 4.2.11 + jest-circus: 30.2.0(babel-plugin-macros@3.1.0) + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-runner: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 30.2.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.19.27 + esbuild-register: 3.6.0(esbuild@0.27.2) + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)): + dependencies: + '@babel/core': 7.28.5 + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.0.1 + '@jest/test-sequencer': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.5) + chalk: 5.6.2 ci-info: 4.3.1 deepmerge: 4.3.1 glob: 13.0.0 @@ -88081,12 +88432,12 @@ snapshots: optionalDependencies: '@types/node': 20.19.27 esbuild-register: 3.6.0(esbuild@0.27.2) - ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3) + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)): + jest-config@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.5 '@jest/get-type': 30.1.0 @@ -88094,7 +88445,7 @@ snapshots: '@jest/test-sequencer': 30.2.0 '@jest/types': 30.2.0 babel-jest: 30.2.0(@babel/core@7.28.5) - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 4.3.1 deepmerge: 4.3.1 glob: 13.0.0 @@ -88115,12 +88466,12 @@ snapshots: optionalDependencies: '@types/node': 20.19.27 esbuild-register: 3.6.0(esbuild@0.27.2) - ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)): + jest-config@30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.5 '@jest/get-type': 30.1.0 @@ -88128,7 +88479,7 @@ snapshots: '@jest/test-sequencer': 30.2.0 '@jest/types': 30.2.0 babel-jest: 30.2.0(@babel/core@7.28.5) - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 4.3.1 deepmerge: 4.3.1 glob: 13.0.0 @@ -88147,14 +88498,14 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.19.27 + '@types/node': 22.19.3 esbuild-register: 3.6.0(esbuild@0.27.2) - ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)): + jest-config@30.2.0(@types/node@24.10.1)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.5 '@jest/get-type': 30.1.0 @@ -88162,7 +88513,7 @@ snapshots: '@jest/test-sequencer': 30.2.0 '@jest/types': 30.2.0 babel-jest: 30.2.0(@babel/core@7.28.5) - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 4.3.1 deepmerge: 4.3.1 glob: 13.0.0 @@ -88181,14 +88532,14 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.19.27 + '@types/node': 24.10.1 esbuild-register: 3.6.0(esbuild@0.27.2) - ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)): + jest-config@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.5 '@jest/get-type': 30.1.0 @@ -88196,7 +88547,7 @@ snapshots: '@jest/test-sequencer': 30.2.0 '@jest/types': 30.2.0 babel-jest: 30.2.0(@babel/core@7.28.5) - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 4.3.1 deepmerge: 4.3.1 glob: 13.0.0 @@ -88215,48 +88566,14 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.19.27 + '@types/node': 25.0.10 esbuild-register: 3.6.0(esbuild@0.27.2) ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)): - dependencies: - '@babel/core': 7.28.5 - '@jest/get-type': 30.1.0 - '@jest/pattern': 30.0.1 - '@jest/test-sequencer': 30.2.0 - '@jest/types': 30.2.0 - babel-jest: 30.2.0(@babel/core@7.28.5) - chalk: 4.1.2 - ci-info: 4.3.1 - deepmerge: 4.3.1 - glob: 13.0.0 - graceful-fs: 4.2.11 - jest-circus: 30.2.0(babel-plugin-macros@3.1.0) - jest-docblock: 30.2.0 - jest-environment-node: 30.2.0 - jest-regex-util: 30.0.1 - jest-resolve: 30.2.0 - jest-runner: 30.2.0 - jest-util: 30.2.0 - jest-validate: 30.2.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 30.2.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 20.19.27 - esbuild-register: 3.6.0(esbuild@0.27.2) - ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-config@30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)): + jest-config@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.5 '@jest/get-type': 30.1.0 @@ -88264,75 +88581,7 @@ snapshots: '@jest/test-sequencer': 30.2.0 '@jest/types': 30.2.0 babel-jest: 30.2.0(@babel/core@7.28.5) - chalk: 4.1.2 - ci-info: 4.3.1 - deepmerge: 4.3.1 - glob: 13.0.0 - graceful-fs: 4.2.11 - jest-circus: 30.2.0(babel-plugin-macros@3.1.0) - jest-docblock: 30.2.0 - jest-environment-node: 30.2.0 - jest-regex-util: 30.0.1 - jest-resolve: 30.2.0 - jest-runner: 30.2.0 - jest-util: 30.2.0 - jest-validate: 30.2.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 30.2.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 22.19.7 - esbuild-register: 3.6.0(esbuild@0.27.2) - ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-config@30.2.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)): - dependencies: - '@babel/core': 7.28.5 - '@jest/get-type': 30.1.0 - '@jest/pattern': 30.0.1 - '@jest/test-sequencer': 30.2.0 - '@jest/types': 30.2.0 - babel-jest: 30.2.0(@babel/core@7.28.5) - chalk: 4.1.2 - ci-info: 4.3.1 - deepmerge: 4.3.1 - glob: 13.0.0 - graceful-fs: 4.2.11 - jest-circus: 30.2.0(babel-plugin-macros@3.1.0) - jest-docblock: 30.2.0 - jest-environment-node: 30.2.0 - jest-regex-util: 30.0.1 - jest-resolve: 30.2.0 - jest-runner: 30.2.0 - jest-util: 30.2.0 - jest-validate: 30.2.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 30.2.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 24.10.9 - esbuild-register: 3.6.0(esbuild@0.27.2) - ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-config@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)): - dependencies: - '@babel/core': 7.28.5 - '@jest/get-type': 30.1.0 - '@jest/pattern': 30.0.1 - '@jest/test-sequencer': 30.2.0 - '@jest/types': 30.2.0 - babel-jest: 30.2.0(@babel/core@7.28.5) - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 4.3.1 deepmerge: 4.3.1 glob: 13.0.0 @@ -88351,14 +88600,14 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 25.0.10 + '@types/node': 25.0.3 esbuild-register: 3.6.0(esbuild@0.27.2) - ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)): + jest-config@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.5 '@jest/get-type': 30.1.0 @@ -88366,7 +88615,7 @@ snapshots: '@jest/test-sequencer': 30.2.0 '@jest/types': 30.2.0 babel-jest: 30.2.0(@babel/core@7.28.5) - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 4.3.1 deepmerge: 4.3.1 glob: 13.0.0 @@ -88385,16 +88634,16 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 25.3.5 + '@types/node': 25.1.0 esbuild-register: 3.6.0(esbuild@0.27.2) - ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color jest-diff@29.7.0: dependencies: - chalk: 4.1.2 + chalk: 5.6.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 @@ -88403,7 +88652,7 @@ snapshots: dependencies: '@jest/diff-sequences': 30.0.1 '@jest/get-type': 30.1.0 - chalk: 4.1.2 + chalk: 5.6.2 pretty-format: 30.2.0 jest-docblock@29.7.0: @@ -88417,7 +88666,7 @@ snapshots: jest-each@29.7.0: dependencies: '@jest/types': 29.6.3 - chalk: 4.1.2 + chalk: 5.6.2 jest-get-type: 29.6.3 jest-util: 29.7.0 pretty-format: 29.7.0 @@ -88426,11 +88675,11 @@ snapshots: dependencies: '@jest/get-type': 30.1.0 '@jest/types': 30.2.0 - chalk: 4.1.2 + chalk: 5.6.2 jest-util: 30.2.0 pretty-format: 30.2.0 - jest-environment-emit@1.2.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3))): + jest-environment-emit@1.2.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3))): dependencies: bunyamin: 1.6.3(@types/bunyan@1.8.11)(bunyan@2.0.5) bunyan: 2.0.5 @@ -88443,13 +88692,13 @@ snapshots: optionalDependencies: '@jest/environment': 30.2.0 '@jest/types': 30.2.0 - jest: 30.2.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) + jest: 30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) jest-environment-jsdom: 30.2.0 jest-environment-node: 30.2.0 transitivePeerDependencies: - '@types/bunyan' - jest-environment-emit@1.2.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3))): + jest-environment-emit@1.2.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(@types/bunyan@1.8.11)(jest-environment-jsdom@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3))): dependencies: bunyamin: 1.6.3(@types/bunyan@1.8.11)(bunyan@2.0.5) bunyan: 2.0.5 @@ -88462,7 +88711,7 @@ snapshots: optionalDependencies: '@jest/environment': 30.2.0 '@jest/types': 30.2.0 - jest: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + jest: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) jest-environment-jsdom: 30.2.0 jest-environment-node: 30.2.0 transitivePeerDependencies: @@ -88523,12 +88772,12 @@ snapshots: optionalDependencies: jest: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) - jest-extended@4.0.2(jest@29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3))): + jest-extended@4.0.2(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3))): dependencies: jest-diff: 29.7.0 jest-get-type: 29.6.3 optionalDependencies: - jest: 29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) + jest: 29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) jest-get-type@29.6.3: {} @@ -88582,14 +88831,14 @@ snapshots: jest-matcher-utils@29.2.2: dependencies: - chalk: 4.1.2 + chalk: 5.6.2 jest-diff: 29.7.0 jest-get-type: 29.6.3 pretty-format: 29.7.0 jest-matcher-utils@29.7.0: dependencies: - chalk: 4.1.2 + chalk: 5.6.2 jest-diff: 29.7.0 jest-get-type: 29.6.3 pretty-format: 29.7.0 @@ -88597,7 +88846,7 @@ snapshots: jest-matcher-utils@30.2.0: dependencies: '@jest/get-type': 30.1.0 - chalk: 4.1.2 + chalk: 5.6.2 jest-diff: 30.2.0 pretty-format: 30.2.0 @@ -88606,7 +88855,7 @@ snapshots: '@babel/code-frame': 7.29.0 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 - chalk: 4.1.2 + chalk: 5.6.2 graceful-fs: 4.2.11 micromatch: 4.0.8 pretty-format: 29.7.0 @@ -88618,7 +88867,7 @@ snapshots: '@babel/code-frame': 7.29.0 '@jest/types': 30.2.0 '@types/stack-utils': 2.0.3 - chalk: 4.1.2 + chalk: 5.6.2 graceful-fs: 4.2.11 micromatch: 4.0.8 pretty-format: 30.2.0 @@ -88670,7 +88919,7 @@ snapshots: jest-resolve@29.7.0: dependencies: - chalk: 4.1.2 + chalk: 5.6.2 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) @@ -88682,7 +88931,7 @@ snapshots: jest-resolve@30.2.0: dependencies: - chalk: 4.1.2 + chalk: 5.6.2 graceful-fs: 4.2.11 jest-haste-map: 30.2.0 jest-pnp-resolver: 1.2.3(jest-resolve@30.2.0) @@ -88699,7 +88948,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@types/node': 20.19.27 - chalk: 4.1.2 + chalk: 5.6.2 emittery: 0.13.1 graceful-fs: 4.2.11 jest-docblock: 29.7.0 @@ -88725,7 +88974,7 @@ snapshots: '@jest/transform': 30.2.0 '@jest/types': 30.2.0 '@types/node': 20.19.27 - chalk: 4.1.2 + chalk: 5.6.2 emittery: 0.13.1 exit-x: 0.2.2 graceful-fs: 4.2.11 @@ -88754,7 +89003,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@types/node': 20.19.27 - chalk: 4.1.2 + chalk: 5.6.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.3 glob: 13.0.0 @@ -88781,8 +89030,8 @@ snapshots: '@jest/transform': 30.2.0 '@jest/types': 30.2.0 '@types/node': 20.19.27 - chalk: 4.1.2 - cjs-module-lexer: 2.2.0 + chalk: 5.6.2 + cjs-module-lexer: 2.1.1 collect-v8-coverage: 1.0.3 glob: 13.0.0 graceful-fs: 4.2.11 @@ -88800,16 +89049,16 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@babel/generator': 7.29.0 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.28.5) - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.28.5) + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) '@babel/types': 7.29.0 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) - chalk: 4.1.2 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) + chalk: 5.6.2 expect: 29.7.0 graceful-fs: 4.2.11 jest-diff: 29.7.0 @@ -88826,9 +89075,9 @@ snapshots: jest-snapshot@30.2.0: dependencies: '@babel/core': 7.28.5 - '@babel/generator': 7.29.0 + '@babel/generator': 7.28.5 '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.28.5) - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.28.5) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) '@babel/types': 7.29.0 '@jest/expect-utils': 30.2.0 '@jest/get-type': 30.1.0 @@ -88836,7 +89085,7 @@ snapshots: '@jest/transform': 30.2.0 '@jest/types': 30.2.0 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) - chalk: 4.1.2 + chalk: 5.6.2 expect: 30.2.0 graceful-fs: 4.2.11 jest-diff: 30.2.0 @@ -88857,7 +89106,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/node': 20.19.27 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 @@ -88866,7 +89115,7 @@ snapshots: dependencies: '@jest/types': 30.2.0 '@types/node': 20.19.27 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 4.3.1 graceful-fs: 4.2.11 picomatch: 4.0.3 @@ -88875,7 +89124,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 camelcase: 6.3.0 - chalk: 4.1.2 + chalk: 5.6.2 jest-get-type: 29.6.3 leven: 3.1.0 pretty-format: 29.7.0 @@ -88885,15 +89134,15 @@ snapshots: '@jest/get-type': 30.1.0 '@jest/types': 30.2.0 camelcase: 6.3.0 - chalk: 4.1.2 + chalk: 5.6.2 leven: 3.1.0 pretty-format: 30.2.0 - jest-watch-typeahead@2.2.2(jest@29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3))): + jest-watch-typeahead@2.2.2(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3))): dependencies: ansi-escapes: 6.2.1 chalk: 5.6.2 - jest: 29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) + jest: 29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) jest-regex-util: 29.6.3 jest-watcher: 29.7.0 slash: 5.1.0 @@ -88906,7 +89155,7 @@ snapshots: '@jest/types': 29.6.3 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 emittery: 0.13.1 jest-util: 29.7.0 string-length: 4.0.2 @@ -88917,7 +89166,7 @@ snapshots: '@jest/types': 30.2.0 '@types/node': 20.19.27 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 5.6.2 emittery: 0.13.1 jest-util: 30.2.0 string-length: 4.0.2 @@ -88985,12 +89234,24 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)): + jest@29.7.0(@types/node@20.19.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + jest-cli: 29.7.0(@types/node@20.19.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -89009,28 +89270,39 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)): + jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + jest-cli: 29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - supports-color - ts-node - jest@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3)): + jest@29.7.0(@types/node@25.0.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)): dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3)) - '@jest/types': 30.2.0 + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)) + '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3)) + jest-cli: 29.7.0(@types/node@25.0.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest@29.7.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - - esbuild-register - supports-color - ts-node @@ -89047,12 +89319,12 @@ snapshots: - supports-color - ts-node - jest@30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)): + jest@30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)): dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) '@jest/types': 30.2.0 import-local: 3.2.0 - jest-cli: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + jest-cli: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -89060,12 +89332,12 @@ snapshots: - supports-color - ts-node - jest@30.2.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)): + jest@30.2.0(@types/node@24.10.1)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)): dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)) + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)) '@jest/types': 30.2.0 import-local: 3.2.0 - jest-cli: 30.2.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)) + jest-cli: 30.2.0(@types/node@24.10.1)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -89086,12 +89358,25 @@ snapshots: - supports-color - ts-node - jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)): + jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)): dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) '@jest/types': 30.2.0 import-local: 3.2.0 - jest-cli: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + jest-cli: 30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + + jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)): + dependencies: + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) + '@jest/types': 30.2.0 + import-local: 3.2.0 + jest-cli: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -89135,16 +89420,6 @@ snapshots: jquery@3.7.1: {} - js-beautify@1.15.4: - dependencies: - config-chain: 1.1.13 - editorconfig: 1.0.4 - glob: 13.0.0 - js-cookie: 3.0.5 - nopt: 7.2.1 - - js-cookie@3.0.5: {} - js-message@1.0.7: {} js-queue@2.0.2: @@ -89153,6 +89428,8 @@ snapshots: js-sha3@0.8.0: {} + js-tokens@3.0.2: {} + js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -89177,7 +89454,7 @@ snapshots: jscodeshift@0.14.0(@babel/preset-env@7.28.5(@babel/core@7.28.5)): dependencies: '@babel/core': 7.28.5 - '@babel/parser': 7.29.0 + '@babel/parser': 7.28.5 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.28.5) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.28.5) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.28.5) @@ -89187,7 +89464,7 @@ snapshots: '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) '@babel/register': 7.28.3(@babel/core@7.28.5) babel-core: 7.0.0-bridge.0(@babel/core@7.28.5) - chalk: 4.1.2 + chalk: 5.6.2 flow-parser: 0.295.0 graceful-fs: 4.2.11 micromatch: 4.0.8 @@ -89202,7 +89479,7 @@ snapshots: jscodeshift@0.14.0(@babel/preset-env@7.28.5(@babel/core@7.29.0)): dependencies: '@babel/core': 7.28.5 - '@babel/parser': 7.29.0 + '@babel/parser': 7.28.5 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.28.5) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.28.5) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.28.5) @@ -89212,7 +89489,7 @@ snapshots: '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) '@babel/register': 7.28.3(@babel/core@7.28.5) babel-core: 7.0.0-bridge.0(@babel/core@7.28.5) - chalk: 4.1.2 + chalk: 5.6.2 flow-parser: 0.295.0 graceful-fs: 4.2.11 micromatch: 4.0.8 @@ -89274,7 +89551,7 @@ snapshots: rrweb-cssom: 0.6.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 6.0.0 + tough-cookie: 4.1.4 w3c-xmlserializer: 5.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 3.1.1 @@ -89304,7 +89581,7 @@ snapshots: rrweb-cssom: 0.7.1 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 6.0.0 + tough-cookie: 4.1.4 w3c-xmlserializer: 5.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 3.1.1 @@ -89333,7 +89610,7 @@ snapshots: rrweb-cssom: 0.8.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 6.0.0 + tough-cookie: 5.1.2 w3c-xmlserializer: 5.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 3.1.1 @@ -89425,6 +89702,8 @@ snapshots: json-parse-even-better-errors@2.3.1: {} + json-parse-even-better-errors@5.0.0: {} + json-schema-ref-resolver@1.0.1: dependencies: fast-deep-equal: 3.1.3 @@ -89480,6 +89759,8 @@ snapshots: json5@2.2.3: {} + jsonc-parser@2.2.1: {} + jsonc-parser@3.3.1: {} jsonfile@4.0.0: @@ -89496,8 +89777,16 @@ snapshots: jsonparse@1.3.1: {} + jsonpath-plus@10.3.0: + dependencies: + '@jsep-plugin/assignment': 1.3.0(jsep@1.4.0) + '@jsep-plugin/regex': 1.0.4(jsep@1.4.0) + jsep: 1.4.0 + jsonpointer@5.0.1: {} + jsonschema@1.5.0: {} + jsonwebtoken@9.0.2: dependencies: jws: 3.2.3 @@ -89540,14 +89829,6 @@ snapshots: readable-stream: 2.3.8 setimmediate: 1.0.5 - juice@10.0.1: - dependencies: - cheerio: 1.0.0-rc.12 - commander: 6.2.1 - mensch: 0.3.4 - slick: 1.12.2 - web-resource-inliner: 6.0.1 - jwa@1.4.2: dependencies: buffer-equal-constant-time: 1.0.1 @@ -89562,7 +89843,7 @@ snapshots: jwks-rsa@3.2.0: dependencies: - '@types/express': 4.17.25 + '@types/express': 4.17.21 '@types/jsonwebtoken': 9.0.10 debug: 4.4.3(supports-color@5.5.0) jose: 4.15.9 @@ -89591,7 +89872,7 @@ snapshots: bl: 2.2.1 buffer-crc32: 0.2.13 buffermaker: 1.2.1 - debug: 2.6.9 + debug: 4.4.3(supports-color@5.5.0) denque: 1.5.1 lodash: 4.17.23 minimatch: 3.1.2 @@ -89712,22 +89993,20 @@ snapshots: dependencies: readable-stream: 2.3.8 - leac@0.6.0: {} - leaflet@1.9.4: {} - leva@0.9.36(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react@19.2.1): + leva@0.9.36(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: - '@radix-ui/react-portal': 1.0.2(react-dom@18.3.1(react@19.2.1))(react@19.2.1) - '@radix-ui/react-tooltip': 1.0.5(@types/react@18.3.11)(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-portal': 1.0.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-tooltip': 1.0.5(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@stitches/react': 1.2.8(react@19.2.1) '@use-gesture/react': 10.3.1(react@19.2.1) colord: 2.9.3 dequal: 2.0.3 merge-value: 1.0.0 react: 19.2.1 - react-colorful: 5.6.1(react-dom@18.3.1(react@19.2.1))(react@19.2.1) - react-dom: 18.3.1(react@19.2.1) + react-colorful: 5.6.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) react-dropzone: 12.1.0(react@19.2.1) v8n: 1.5.1 zustand: 3.7.2(react@19.2.1) @@ -89758,6 +90037,19 @@ snapshots: dependencies: isomorphic.js: 0.2.5 + libnpmpublish@11.1.3: + dependencies: + '@npmcli/package-json': 7.0.4 + ci-info: 4.3.1 + npm-package-arg: 13.0.2 + npm-registry-fetch: 19.1.1 + proc-log: 6.1.0 + semver: 7.7.3 + sigstore: 4.1.0 + ssri: 13.0.0 + transitivePeerDependencies: + - supports-color + libp2p@1.9.4: dependencies: '@libp2p/crypto': 4.1.9 @@ -89797,6 +90089,12 @@ snapshots: dependencies: immediate: 3.0.6 + light-my-request@5.14.0: + dependencies: + cookie: 1.1.1 + process-warning: 3.0.0 + set-cookie-parser: 2.7.2 + light-my-request@6.6.0: dependencies: cookie: 1.1.1 @@ -89805,7 +90103,7 @@ snapshots: lighthouse-logger@1.4.2: dependencies: - debug: 2.6.9 + debug: 4.4.3(supports-color@5.5.0) marky: 1.3.0 transitivePeerDependencies: - supports-color @@ -90060,6 +90358,8 @@ snapshots: lodash.isboolean@3.0.3: {} + lodash.isempty@4.4.0: {} + lodash.isequal@4.5.0: {} lodash.isfunction@3.0.9: {} @@ -90084,6 +90384,8 @@ snapshots: lodash.mergewith@4.6.2: {} + lodash.omitby@4.6.0: {} + lodash.once@4.1.1: {} lodash.snakecase@4.1.1: {} @@ -90094,6 +90396,8 @@ snapshots: lodash.throttle@4.1.1: {} + lodash.topath@4.5.2: {} + lodash.truncate@4.4.2: {} lodash.union@4.6.0: {} @@ -90102,15 +90406,15 @@ snapshots: lodash.uniqby@4.7.0: {} - lodash.upperfirst@4.3.1: {} + lodash.uniqwith@4.5.0: {} - lodash@4.17.21: {} + lodash.upperfirst@4.3.1: {} lodash@4.17.23: {} log-symbols@4.1.0: dependencies: - chalk: 4.1.2 + chalk: 5.6.2 is-unicode-supported: 0.1.0 log-symbols@5.1.0: @@ -90152,6 +90456,8 @@ snapshots: safe-stable-stringify: 2.5.0 triple-beam: 1.4.1 + loglevel-plugin-prefix@0.8.4: {} + loglevel@1.9.2: {} long@1.1.2: {} @@ -90191,6 +90497,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.2.4: {} + lru-cache@11.2.5: {} lru-cache@5.1.1: @@ -90216,9 +90524,9 @@ snapshots: react-native: 0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1) react-native-svg: 15.15.1(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) - lucide-react@0.344.0(react@18.3.1): + lucide-react@0.344.0(react@19.2.1): dependencies: - react: 18.3.1 + react: 19.2.1 lucide-react@0.554.0(react@19.2.1): dependencies: @@ -90274,8 +90582,8 @@ snapshots: magicast@0.5.1: dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 source-map-js: 1.2.1 main-event@1.0.1: {} @@ -90423,7 +90731,7 @@ snapshots: marked-terminal@7.3.0(marked@15.0.12): dependencies: ansi-escapes: 7.2.0 - ansi-regex: 6.2.2 + ansi-regex: 5.0.1 chalk: 5.6.2 cli-highlight: 2.1.11 cli-table3: 0.6.5 @@ -90492,7 +90800,7 @@ snapshots: md5.js@1.3.5: dependencies: - hash-base: 3.1.2 + hash-base: 3.0.5 inherits: 2.0.4 safe-buffer: 5.2.1 @@ -90528,8 +90836,6 @@ snapshots: memory-pager@1.5.0: {} - mensch@0.3.4: {} - meow@12.1.1: {} meow@13.2.0: {} @@ -90621,9 +90927,9 @@ snapshots: optionalDependencies: '@types/node': 20.19.27 - meros@1.3.2(@types/node@25.0.10): + meros@1.3.2(@types/node@25.0.3): optionalDependencies: - '@types/node': 25.0.10 + '@types/node': 25.0.3 meshline@3.3.1(three@0.162.0): dependencies: @@ -90675,7 +90981,7 @@ snapshots: metro-file-map@0.81.5: dependencies: - debug: 2.6.9 + debug: 4.4.3(supports-color@5.5.0) fb-watchman: 2.0.2 flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 @@ -90721,7 +91027,7 @@ snapshots: '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.5) @@ -90732,9 +91038,9 @@ snapshots: '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.28.5) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) - '@babel/template': 7.28.6 + '@babel/template': 7.27.2 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.5) react-refresh: 0.4.3 transitivePeerDependencies: @@ -90751,9 +91057,9 @@ snapshots: metro-source-map@0.81.5: dependencies: - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 '@babel/traverse--for-generate-function-map': '@babel/traverse@7.29.0' - '@babel/types': 7.29.0 + '@babel/types': 7.28.5 flow-enums-runtime: 0.0.6 invariant: 2.2.4 metro-symbolicate: 0.81.5 @@ -90778,9 +91084,9 @@ snapshots: metro-transform-plugins@0.81.5: dependencies: '@babel/core': 7.28.5 - '@babel/generator': 7.29.0 + '@babel/generator': 7.28.5 '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.6 flow-enums-runtime: 0.0.6 nullthrows: 1.1.1 transitivePeerDependencies: @@ -90789,7 +91095,7 @@ snapshots: metro-transform-worker@0.81.5: dependencies: '@babel/core': 7.28.5 - '@babel/generator': 7.29.0 + '@babel/generator': 7.28.5 '@babel/parser': 7.29.0 '@babel/types': 7.29.0 flow-enums-runtime: 0.0.6 @@ -90808,18 +91114,18 @@ snapshots: metro@0.81.5: dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.27.1 '@babel/core': 7.28.5 - '@babel/generator': 7.29.0 + '@babel/generator': 7.28.5 '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 '@babel/types': 7.29.0 accepts: 1.3.8 - chalk: 4.1.2 + chalk: 5.6.2 ci-info: 2.0.0 connect: 3.7.0 - debug: 2.6.9 + debug: 4.4.3(supports-color@5.5.0) error-stack-parser: 2.1.4 flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 @@ -91094,11 +91400,11 @@ snapshots: minimatch@10.0.3: dependencies: - '@isaacs/brace-expansion': 5.0.1 + '@isaacs/brace-expansion': 5.0.0 minimatch@10.1.1: dependencies: - '@isaacs/brace-expansion': 5.0.1 + '@isaacs/brace-expansion': 5.0.0 minimatch@3.1.2: dependencies: @@ -91108,7 +91414,7 @@ snapshots: dependencies: brace-expansion: 2.0.2 - minimatch@9.0.1: + minimatch@6.2.0: dependencies: brace-expansion: 2.0.2 @@ -91193,243 +91499,6 @@ snapshots: for-in: 0.1.8 is-extendable: 0.1.1 - mjml-accordion@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-body@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-button@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-carousel@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-cli@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - chokidar: 3.6.0 - glob: 13.0.0 - html-minifier: html-minifier-terser@5.1.1 - js-beautify: 1.15.4 - lodash: 4.17.23 - minimatch: 9.0.5 - mjml-core: 4.18.0 - mjml-migrate: 4.18.0 - mjml-parser-xml: 4.18.0 - mjml-validator: 4.18.0 - yargs: 17.7.2 - - mjml-column@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-core@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - cheerio: 1.0.0-rc.12 - detect-node: 2.1.0 - html-minifier: html-minifier-terser@5.1.1 - js-beautify: 1.15.4 - juice: 10.0.1 - lodash: 4.17.23 - mjml-migrate: 4.18.0 - mjml-parser-xml: 4.18.0 - mjml-validator: 4.18.0 - - mjml-divider@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-group@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-head-attributes@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-head-breakpoint@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-head-font@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-head-html-attributes@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-head-preview@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-head-style@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-head-title@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-head@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-hero@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-image@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-migrate@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - js-beautify: 1.15.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - mjml-parser-xml: 4.18.0 - yargs: 17.7.2 - - mjml-navbar@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-parser-xml@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - detect-node: 2.1.0 - htmlparser2: 9.1.0 - lodash: 4.17.23 - - mjml-preset-core@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - mjml-accordion: 4.18.0 - mjml-body: 4.18.0 - mjml-button: 4.18.0 - mjml-carousel: 4.18.0 - mjml-column: 4.18.0 - mjml-divider: 4.18.0 - mjml-group: 4.18.0 - mjml-head: 4.18.0 - mjml-head-attributes: 4.18.0 - mjml-head-breakpoint: 4.18.0 - mjml-head-font: 4.18.0 - mjml-head-html-attributes: 4.18.0 - mjml-head-preview: 4.18.0 - mjml-head-style: 4.18.0 - mjml-head-title: 4.18.0 - mjml-hero: 4.18.0 - mjml-image: 4.18.0 - mjml-navbar: 4.18.0 - mjml-raw: 4.18.0 - mjml-section: 4.18.0 - mjml-social: 4.18.0 - mjml-spacer: 4.18.0 - mjml-table: 4.18.0 - mjml-text: 4.18.0 - mjml-wrapper: 4.18.0 - - mjml-raw@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-section@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-social@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-spacer@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-table@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-text@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - - mjml-validator@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - - mjml-wrapper@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - lodash: 4.17.23 - mjml-core: 4.18.0 - mjml-section: 4.18.0 - - mjml@4.18.0: - dependencies: - '@babel/runtime': 7.28.4 - mjml-cli: 4.18.0 - mjml-core: 4.18.0 - mjml-migrate: 4.18.0 - mjml-preset-core: 4.18.0 - mjml-validator: 4.18.0 - mjolnir.js@3.0.0: {} mjsunit.runner@0.1.3: {} @@ -91471,74 +91540,76 @@ snapshots: moment@2.30.1: {} - monaco-editor@0.52.2: {} - monaco-editor@0.55.1: dependencies: dompurify: 3.2.7 marked: 14.0.0 - mongodb-connection-string-url@2.6.0: - dependencies: - '@types/whatwg-url': 8.2.2 - whatwg-url: 11.0.0 - mongodb-connection-string-url@3.0.2: dependencies: '@types/whatwg-url': 11.0.5 whatwg-url: 14.2.0 - mongodb-memory-server-core@9.1.1: + mongodb-connection-string-url@7.0.1: + dependencies: + '@types/whatwg-url': 13.0.0 + whatwg-url: 14.2.0 + + mongodb-memory-server-core@11.0.1(socks@2.8.7): dependencies: - async-mutex: 0.4.1 + async-mutex: 0.5.0 camelcase: 6.3.0 debug: 4.4.3(supports-color@5.5.0) find-cache-dir: 3.3.2 follow-redirects: 1.15.11(debug@4.4.3) https-proxy-agent: 7.0.6 - mongodb: 5.9.2 + mongodb: 7.0.0(socks@2.8.7) new-find-package-json: 2.0.0 semver: 7.7.3 tar-stream: 3.1.7 tslib: 2.8.1 - yauzl: 2.10.0 + yauzl: 3.2.0 transitivePeerDependencies: - '@aws-sdk/credential-providers' - '@mongodb-js/zstd' - bare-abort-controller + - gcp-metadata - kerberos - mongodb-client-encryption - react-native-b4a - snappy + - socks - supports-color - mongodb-memory-server@9.1.1: + mongodb-memory-server@11.0.1(socks@2.8.7): dependencies: - mongodb-memory-server-core: 9.1.1 + mongodb-memory-server-core: 11.0.1(socks@2.8.7) tslib: 2.8.1 transitivePeerDependencies: - '@aws-sdk/credential-providers' - '@mongodb-js/zstd' - bare-abort-controller + - gcp-metadata - kerberos - mongodb-client-encryption - react-native-b4a - snappy + - socks - supports-color - mongodb@5.9.2: + mongodb@6.20.0(socks@2.8.7): dependencies: - bson: 5.5.1 - mongodb-connection-string-url: 2.6.0 - socks: 2.8.7 + '@mongodb-js/saslprep': 1.4.4 + bson: 6.10.4 + mongodb-connection-string-url: 3.0.2 optionalDependencies: - '@mongodb-js/saslprep': 1.4.5 + socks: 2.8.7 - mongodb@6.20.0(socks@2.8.7): + mongodb@7.0.0(socks@2.8.7): dependencies: '@mongodb-js/saslprep': 1.4.5 - bson: 6.10.4 - mongodb-connection-string-url: 3.0.2 + bson: 7.1.1 + mongodb-connection-string-url: 7.0.1 optionalDependencies: socks: 2.8.7 @@ -91570,7 +91641,7 @@ snapshots: morgan@1.10.1: dependencies: basic-auth: 2.0.1 - debug: 2.6.9 + debug: 4.4.3(supports-color@5.5.0) depd: 2.0.0 on-finished: 2.3.0 on-headers: 1.1.0 @@ -91602,10 +91673,6 @@ snapshots: transitivePeerDependencies: - supports-color - ms@2.0.0: {} - - ms@2.1.2: {} - ms@2.1.3: {} ms@3.0.0-canary.202508261828: {} @@ -91660,9 +91727,9 @@ snapshots: transitivePeerDependencies: - '@types/node' - msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3): + msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3): dependencies: - '@inquirer/confirm': 5.1.21(@types/node@22.19.7) + '@inquirer/confirm': 5.1.21(@types/node@22.19.3) '@mswjs/interceptors': 0.40.0 '@open-draft/deferred-promise': 2.2.0 '@types/statuses': 2.0.6 @@ -91686,9 +91753,9 @@ snapshots: - '@types/node' optional: true - msw@2.12.4(@types/node@24.10.9)(typescript@5.9.3): + msw@2.12.4(@types/node@24.10.1)(typescript@5.9.3): dependencies: - '@inquirer/confirm': 5.1.21(@types/node@24.10.9) + '@inquirer/confirm': 5.1.21(@types/node@24.10.1) '@mswjs/interceptors': 0.40.0 '@open-draft/deferred-promise': 2.2.0 '@types/statuses': 2.0.6 @@ -91712,9 +91779,9 @@ snapshots: - '@types/node' optional: true - msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3): + msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3): dependencies: - '@inquirer/confirm': 5.1.21(@types/node@25.0.10) + '@inquirer/confirm': 5.1.21(@types/node@25.0.3) '@mswjs/interceptors': 0.40.0 '@open-draft/deferred-promise': 2.2.0 '@types/statuses': 2.0.6 @@ -91737,9 +91804,9 @@ snapshots: transitivePeerDependencies: - '@types/node' - msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3): + msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3): dependencies: - '@inquirer/confirm': 5.1.21(@types/node@25.3.5) + '@inquirer/confirm': 5.1.21(@types/node@25.1.0) '@mswjs/interceptors': 0.40.0 '@open-draft/deferred-promise': 2.2.0 '@types/statuses': 2.0.6 @@ -91843,6 +91910,8 @@ snapshots: dependencies: big-integer: 1.6.52 + nanoid@3.3.11: {} + nanoid@5.1.6: {} napi-build-utils@1.0.2: {} @@ -91890,7 +91959,7 @@ snapshots: memjs: 1.3.2 mongoose: 8.20.4(socks@2.8.7) pg: 8.18.0 - redis: 4.7.1 + redis: 5.10.0 safe-stable-stringify: 2.5.0 stopwords-iso: 1.1.0 sylvester: 0.0.12 @@ -91918,7 +91987,7 @@ snapshots: memjs: 1.3.2 mongoose: 8.20.4(socks@2.8.7) pg: 8.18.0 - redis: 4.7.1 + redis: 5.10.0 safe-stable-stringify: 2.5.0 stopwords-iso: 1.1.0 sylvester: 0.0.12 @@ -91946,8 +92015,8 @@ snapshots: http-server: 14.1.1 memjs: 1.3.2 mongoose: 8.20.4(socks@2.8.7) - pg: 8.18.0 - redis: 4.7.1 + pg: 8.17.2 + redis: 5.10.0 safe-stable-stringify: 2.5.0 stopwords-iso: 1.1.0 sylvester: 0.0.12 @@ -91990,6 +92059,12 @@ snapshots: neo4j-driver-core: 5.28.2 string_decoder: 1.3.0 + neo4j-driver-bolt-connection@5.28.3: + dependencies: + buffer: 6.0.3 + neo4j-driver-core: 5.28.3 + string_decoder: 1.3.0 + neo4j-driver-bolt-connection@6.0.1: dependencies: buffer: 6.0.3 @@ -91998,6 +92073,8 @@ snapshots: neo4j-driver-core@5.28.2: {} + neo4j-driver-core@5.28.3: {} + neo4j-driver-core@6.0.1: {} neo4j-driver@5.28.2: @@ -92006,6 +92083,12 @@ snapshots: neo4j-driver-core: 5.28.2 rxjs: 7.8.2 + neo4j-driver@5.28.3: + dependencies: + neo4j-driver-bolt-connection: 5.28.3 + neo4j-driver-core: 5.28.3 + rxjs: 7.8.2 + neo4j-driver@6.0.1: dependencies: neo4j-driver-bolt-connection: 6.0.1 @@ -92086,6 +92169,16 @@ snapshots: ngraph.random@1.2.0: {} + nimma@0.2.3: + dependencies: + '@jsep-plugin/regex': 1.0.4(jsep@1.4.0) + '@jsep-plugin/ternary': 1.1.4(jsep@1.4.0) + astring: 1.9.0 + jsep: 1.4.0 + optionalDependencies: + jsonpath-plus: 10.3.0 + lodash.topath: 4.5.2 + nkeys.js@1.1.0: dependencies: tweetnacl: 1.0.3 @@ -92103,6 +92196,12 @@ snapshots: transitivePeerDependencies: - supports-color + nock@14.0.10: + dependencies: + '@mswjs/interceptors': 0.39.8 + json-stringify-safe: 5.0.1 + propagate: 2.0.1 + node-abi@2.30.1: dependencies: semver: 5.7.2 @@ -92123,8 +92222,6 @@ snapshots: node-addon-api@6.1.0: {} - node-addon-api@7.1.1: {} - node-addon-api@8.5.0: {} node-api-version@0.2.1: @@ -92154,6 +92251,10 @@ snapshots: emojilib: 2.4.0 skin-tone: 2.0.0 + node-fetch-h2@2.3.0: + dependencies: + http2-client: 1.3.5 + node-fetch@3.3.2: dependencies: data-uri-to-buffer: 4.0.1 @@ -92169,23 +92270,6 @@ snapshots: node-gyp-build@4.8.4: {} - node-gyp@9.4.1: - dependencies: - env-paths: 2.2.1 - exponential-backoff: 3.1.3 - glob: 13.0.0 - graceful-fs: 4.2.11 - make-fetch-happen: 10.2.1 - nopt: 6.0.0 - npmlog: 6.0.2 - rimraf: 3.0.2 - semver: 7.7.3 - tar: 7.5.7 - which: 2.0.2 - transitivePeerDependencies: - - bluebird - - supports-color - node-html-parser@6.1.13: dependencies: css-select: 5.2.2 @@ -92255,6 +92339,10 @@ snapshots: vm-browserify: 1.1.2 webpack: 5.104.1(@swc/core@1.15.3(@swc/helpers@0.5.17))(esbuild@0.27.2) + node-readfiles@0.2.0: + dependencies: + es6-promise: 3.3.1 + node-releases@2.0.27: {} node-vault@0.10.9: @@ -92294,14 +92382,6 @@ snapshots: dependencies: abbrev: 1.1.1 - nopt@7.2.1: - dependencies: - abbrev: 2.0.0 - - nopt@8.1.0: - dependencies: - abbrev: 3.0.1 - normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 @@ -92322,6 +92402,39 @@ snapshots: notepack.io@3.0.1: {} + npm-install-checks@8.0.0: + dependencies: + semver: 7.7.3 + + npm-normalize-package-bin@5.0.0: {} + + npm-package-arg@13.0.2: + dependencies: + hosted-git-info: 9.0.2 + proc-log: 6.1.0 + semver: 7.7.3 + validate-npm-package-name: 7.0.2 + + npm-pick-manifest@11.0.3: + dependencies: + npm-install-checks: 8.0.0 + npm-normalize-package-bin: 5.0.0 + npm-package-arg: 13.0.2 + semver: 7.7.3 + + npm-registry-fetch@19.1.1: + dependencies: + '@npmcli/redact': 4.0.0 + jsonparse: 1.3.1 + make-fetch-happen: 15.0.3 + minipass: 7.1.2 + minipass-fetch: 5.0.0 + minizlib: 3.1.0 + npm-package-arg: 13.0.2 + proc-log: 6.1.0 + transitivePeerDependencies: + - supports-color + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -92352,13 +92465,6 @@ snapshots: gauge: 3.0.2 set-blocking: 2.0.0 - npmlog@6.0.2: - dependencies: - are-we-there-yet: 3.0.1 - console-control-strings: 1.1.0 - gauge: 4.0.4 - set-blocking: 2.0.0 - nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -92383,6 +92489,37 @@ snapshots: nwsapi@2.2.23: {} + oas-kit-common@1.0.8: + dependencies: + fast-safe-stringify: 2.1.1 + + oas-linter@3.2.2: + dependencies: + '@exodus/schemasafe': 1.3.0 + should: 13.2.3 + yaml: 1.10.2 + + oas-resolver@2.5.6: + dependencies: + node-fetch-h2: 2.3.0 + oas-kit-common: 1.0.8 + reftools: 1.1.9 + yaml: 1.10.2 + yargs: 17.7.2 + + oas-schema-walker@1.1.5: {} + + oas-validator@5.0.8: + dependencies: + call-me-maybe: 1.0.2 + oas-kit-common: 1.0.8 + oas-linter: 3.2.2 + oas-resolver: 2.5.6 + oas-schema-walker: 1.1.5 + reftools: 1.1.9 + should: 13.2.3 + yaml: 1.10.2 + oauth-sign@0.9.0: {} ob1@0.81.5: @@ -92430,7 +92567,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 object.getownpropertydescriptors@2.1.9: @@ -92447,7 +92584,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 object.values@1.2.1: dependencies: @@ -92559,15 +92696,28 @@ snapshots: ws: 8.19.0 zod: 3.25.76 + openai@4.104.0(ws@8.19.0)(zod@4.2.1): + dependencies: + '@types/node': 18.19.130 + '@types/node-fetch': 2.6.13 + abort-controller: 3.0.0 + agentkeepalive: 4.6.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 3.3.2 + optionalDependencies: + ws: 8.19.0 + zod: 4.2.1 + openai@6.15.0(ws@8.19.0)(zod@3.25.76): optionalDependencies: ws: 8.19.0 zod: 3.25.76 - openai@6.15.0(ws@8.19.0)(zod@4.2.1): + openai@6.15.0(ws@8.19.0)(zod@4.3.6): optionalDependencies: ws: 8.19.0 - zod: 4.2.1 + zod: 4.3.6 optional: true openapi-types@12.1.3: {} @@ -92612,7 +92762,7 @@ snapshots: ora@5.4.1: dependencies: bl: 4.1.0 - chalk: 4.1.2 + chalk: 5.6.2 cli-cursor: 3.1.0 cli-spinners: 2.9.2 is-interactive: 1.0.0 @@ -92657,6 +92807,41 @@ snapshots: string-width: 8.1.0 strip-ansi: 7.1.2 + orval@7.20.0(openapi-types@12.1.3)(typescript@5.9.3): + dependencies: + '@apidevtools/swagger-parser': 12.1.0(openapi-types@12.1.3) + '@commander-js/extra-typings': 14.0.0(commander@14.0.3) + '@orval/angular': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/axios': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/core': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/fetch': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/hono': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/mcp': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/mock': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/query': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/swr': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + '@orval/zod': 7.20.0(openapi-types@12.1.3)(typescript@5.9.3) + chalk: 5.6.2 + chokidar: 4.0.3 + commander: 14.0.3 + enquirer: 2.4.1 + execa: 5.1.1 + find-up: 5.0.0 + fs-extra: 11.3.3 + jiti: 2.6.1 + js-yaml: 4.1.1 + lodash.uniq: 4.5.0 + openapi3-ts: 4.5.0 + string-argv: 0.3.2 + tsconfck: 2.1.2(typescript@5.9.3) + typedoc: 0.28.15(typescript@5.9.3) + typedoc-plugin-coverage: 4.0.2(typedoc@0.28.15(typescript@5.9.3)) + typedoc-plugin-markdown: 4.9.0(typedoc@0.28.15(typescript@5.9.3)) + transitivePeerDependencies: + - openapi-types + - supports-color + - typescript + os-browserify@0.3.0: {} os-homedir@1.0.2: @@ -92850,6 +93035,8 @@ snapshots: parse-cache-control@1.0.1: {} + parse-diff@0.11.1: {} + parse-duration@2.1.5: {} parse-entities@4.0.2: @@ -92875,14 +93062,14 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.27.1 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 parse-json@8.3.0: dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.27.1 index-to-position: 1.2.0 type-fest: 4.41.0 @@ -92909,19 +93096,14 @@ snapshots: parse5@7.3.0: dependencies: - entities: 4.5.0 + entities: 6.0.1 parse5@8.0.0: dependencies: - entities: 4.5.0 + entities: 6.0.1 parsedbf@2.0.0: {} - parseley@0.12.1: - dependencies: - leac: 0.6.0 - peberminta: 0.9.0 - parseurl@1.3.3: {} pascal-case@3.1.2: @@ -92962,7 +93144,7 @@ snapshots: path-scurry@2.0.1: dependencies: - lru-cache: 11.2.5 + lru-cache: 11.2.4 minipass: 7.1.2 path-to-regexp@8.3.0: {} @@ -93019,8 +93201,6 @@ snapshots: pe-library@0.4.1: {} - peberminta@0.9.0: {} - peek-readable@5.4.2: {} pend@1.2.0: {} @@ -93035,11 +93215,20 @@ snapshots: transitivePeerDependencies: - pg-native + pg-cloudflare@1.2.7: + optional: true + pg-cloudflare@1.3.0: optional: true + pg-connection-string@2.10.0: {} + + pg-connection-string@2.10.1: {} + pg-connection-string@2.11.0: {} + pg-connection-string@2.9.1: {} + pg-int8@1.0.1: {} pg-mem@3.0.5: @@ -93052,14 +93241,24 @@ snapshots: object-hash: 2.2.0 pgsql-ast-parser: 12.0.1 - pg-pool@3.11.0(pg@8.16.3): + pg-pool@3.10.1(pg@8.16.3): dependencies: pg: 8.16.3 + pg-pool@3.11.0(pg@8.17.1): + dependencies: + pg: 8.17.1 + + pg-pool@3.11.0(pg@8.17.2): + dependencies: + pg: 8.17.2 + pg-pool@3.11.0(pg@8.18.0): dependencies: pg: 8.18.0 + pg-protocol@1.10.3: {} + pg-protocol@1.11.0: {} pg-types@2.2.0: @@ -93072,8 +93271,28 @@ snapshots: pg@8.16.3: dependencies: - pg-connection-string: 2.11.0 - pg-pool: 3.11.0(pg@8.16.3) + pg-connection-string: 2.9.1 + pg-pool: 3.10.1(pg@8.16.3) + pg-protocol: 1.10.3 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.2.7 + + pg@8.17.1: + dependencies: + pg-connection-string: 2.10.0 + pg-pool: 3.11.0(pg@8.17.1) + pg-protocol: 1.11.0 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.3.0 + + pg@8.17.2: + dependencies: + pg-connection-string: 2.10.1 + pg-pool: 3.11.0(pg@8.17.2) pg-protocol: 1.11.0 pg-types: 2.2.0 pgpass: 1.0.5 @@ -93136,13 +93355,34 @@ snapshots: dependencies: split2: 4.2.0 + pino-http@10.5.0: + dependencies: + get-caller-file: 2.0.5 + pino: 9.9.0 + pino-std-serializers: 7.0.0 + process-warning: 5.0.0 + pino-http@11.0.0: dependencies: get-caller-file: 2.0.5 pino: 10.1.0 - pino-std-serializers: 7.1.0 + pino-std-serializers: 7.0.0 process-warning: 5.0.0 + pino-http@8.6.1: + dependencies: + get-caller-file: 2.0.5 + pino: 8.21.0 + pino-std-serializers: 6.2.2 + process-warning: 3.0.0 + + pino-http@9.0.0: + dependencies: + get-caller-file: 2.0.5 + pino: 8.21.0 + pino-std-serializers: 6.2.2 + process-warning: 3.0.0 + pino-pretty@10.3.1: dependencies: colorette: 2.0.20 @@ -93195,6 +93435,8 @@ snapshots: pino-std-serializers@6.2.2: {} + pino-std-serializers@7.0.0: {} + pino-std-serializers@7.1.0: {} pino@10.1.0: @@ -93203,7 +93445,7 @@ snapshots: atomic-sleep: 1.0.0 on-exit-leak-free: 2.1.2 pino-abstract-transport: 2.0.0 - pino-std-serializers: 7.1.0 + pino-std-serializers: 7.0.0 process-warning: 5.0.0 quick-format-unescaped: 4.0.4 real-require: 0.2.0 @@ -93225,13 +93467,27 @@ snapshots: sonic-boom: 3.8.1 thread-stream: 2.7.0 + pino@9.14.0: + dependencies: + '@pinojs/redact': 0.4.0 + atomic-sleep: 1.0.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 2.0.0 + pino-std-serializers: 7.1.0 + process-warning: 5.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 4.2.0 + thread-stream: 3.1.0 + pino@9.9.0: dependencies: atomic-sleep: 1.0.0 fast-redact: 3.5.0 on-exit-leak-free: 2.1.2 pino-abstract-transport: 2.0.0 - pino-std-serializers: 7.1.0 + pino-std-serializers: 7.0.0 process-warning: 5.0.0 quick-format-unescaped: 4.0.4 real-require: 0.2.0 @@ -93266,7 +93522,7 @@ snapshots: pkg-fetch@3.4.2: dependencies: - chalk: 4.1.2 + chalk: 5.6.2 fs-extra: 9.1.0 https-proxy-agent: 5.0.1 node-fetch: 3.3.2 @@ -93291,7 +93547,7 @@ snapshots: '@babel/generator': 7.18.2 '@babel/parser': 7.18.4 '@babel/types': 7.19.0 - chalk: 4.1.2 + chalk: 5.6.2 fs-extra: 9.1.0 globby: 11.1.0 into-stream: 6.0.0 @@ -93376,6 +93632,8 @@ snapshots: dependencies: tinyqueue: 2.0.3 + pony-cause@1.1.1: {} + portfinder@1.0.38: dependencies: async: 3.2.6 @@ -93466,13 +93724,13 @@ snapshots: postcss@8.4.31: dependencies: - nanoid: 5.1.6 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 postcss@8.5.6: dependencies: - nanoid: 5.1.6 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -93689,7 +93947,7 @@ snapshots: array.prototype.map: 1.0.8 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 get-intrinsic: 1.3.0 iterate-value: 1.0.2 @@ -93887,7 +94145,7 @@ snapshots: dependencies: chromium-bidi: 0.4.5(devtools-protocol@0.0.1094867) cross-fetch: 3.1.5 - debug: 4.3.4 + debug: 4.4.3(supports-color@5.5.0) devtools-protocol: 0.0.1094867 extract-zip: 2.0.1 https-proxy-agent: 5.0.1 @@ -94196,7 +94454,7 @@ snapshots: dependencies: bytes: 3.1.2 http-errors: 2.0.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.1 unpipe: 1.0.0 rbush@2.0.2: @@ -94218,11 +94476,6 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-colorful@5.6.1(react-dom@18.3.1(react@19.2.1))(react@19.2.1): - dependencies: - react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) - react-colorful@5.6.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: react: 19.2.1 @@ -94239,9 +94492,9 @@ snapshots: prop-types: 15.8.1 react: 19.2.1 - react-d3-tree@3.6.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-d3-tree@3.6.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: - '@bkrem/react-transition-group': 1.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@bkrem/react-transition-group': 1.3.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@types/d3-hierarchy': 1.1.11 clone: 2.1.2 d3-hierarchy: 1.1.9 @@ -94249,8 +94502,8 @@ snapshots: d3-shape: 1.3.7 d3-zoom: 3.0.0 dequal: 2.0.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) uuid: 8.3.2 react-day-picker@8.10.1(date-fns@3.6.0)(react@19.2.1): @@ -94273,7 +94526,7 @@ snapshots: react-docgen@7.1.1: dependencies: '@babel/core': 7.28.5 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.28.5 '@babel/types': 7.29.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 @@ -94288,8 +94541,8 @@ snapshots: react-docgen@8.0.2: dependencies: '@babel/core': 7.28.5 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 '@types/doctrine': 0.0.9 @@ -94300,42 +94553,17 @@ snapshots: transitivePeerDependencies: - supports-color - react-dom@18.2.0(react@18.2.0): - dependencies: - loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.2 - - react-dom@18.3.1(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - - react-dom@18.3.1(react@19.2.1): - dependencies: - loose-envify: 1.4.0 - react: 19.2.1 - scheduler: 0.23.2 - react-dom@19.2.1(react@19.2.1): dependencies: react: 19.2.1 scheduler: 0.27.0 - react-draggable@4.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - clsx: 2.1.1 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - react-draggable@4.5.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1): + react-draggable@4.5.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: clsx: 2.1.1 prop-types: 15.8.1 react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) react-dropzone@12.1.0(react@19.2.1): dependencies: @@ -94364,32 +94592,17 @@ snapshots: react: 19.2.1 react-kapsule: 2.5.7(react@19.2.1) - react-grid-layout@1.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - clsx: 2.1.1 - fast-equals: 4.0.3 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-draggable: 4.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-resizable: 3.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - resize-observer-polyfill: 1.5.1 - - react-grid-layout@1.5.3(react-dom@18.3.1(react@19.2.1))(react@19.2.1): + react-grid-layout@1.5.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: clsx: 2.1.1 fast-equals: 4.0.3 prop-types: 15.8.1 react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) - react-draggable: 4.5.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1) - react-resizable: 3.0.5(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) + react-draggable: 4.5.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + react-resizable: 3.0.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) resize-observer-polyfill: 1.5.1 - react-hook-form@7.68.0(react@18.3.1): - dependencies: - react: 18.3.1 - react-hook-form@7.68.0(react@19.2.1): dependencies: react: 19.2.1 @@ -94447,19 +94660,12 @@ snapshots: transitivePeerDependencies: - '@types/react' - react-leaflet@4.2.1(leaflet@1.9.4)(react-dom@18.3.1(react@19.2.1))(react@19.2.1): + react-leaflet@4.2.1(leaflet@1.9.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: - '@react-leaflet/core': 2.1.0(leaflet@1.9.4)(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + '@react-leaflet/core': 2.1.0(leaflet@1.9.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) leaflet: 1.9.4 react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) - - react-leaflet@5.0.0(leaflet@1.9.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@react-leaflet/core': 3.0.0(leaflet@1.9.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - leaflet: 1.9.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 19.2.1(react@19.2.1) react-leaflet@5.0.0(leaflet@1.9.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: @@ -94470,12 +94676,12 @@ snapshots: react-lifecycles-compat@3.0.4: {} - react-map-gl@7.1.9(mapbox-gl@3.17.0)(react-dom@18.3.1(react@19.2.1))(react@19.2.1): + react-map-gl@7.1.9(mapbox-gl@3.17.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: '@maplibre/maplibre-gl-style-spec': 19.3.3 '@types/mapbox-gl': 3.4.1 react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) optionalDependencies: mapbox-gl: 3.17.0 @@ -94488,13 +94694,6 @@ snapshots: optionalDependencies: mapbox-gl: 3.17.0 - react-monaco-editor@0.56.2(@types/react@18.3.11)(monaco-editor@0.52.2)(react@19.2.1): - dependencies: - '@types/react': 18.3.11 - monaco-editor: 0.52.2 - prop-types: 15.8.1 - react: 19.2.1 - react-monaco-editor@0.59.0(monaco-editor@0.55.1)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: monaco-editor: 0.55.1 @@ -94534,9 +94733,9 @@ snapshots: react-native-css-interop@0.2.1(react-native-reanimated@4.2.1(react-native-worklets@0.7.1(@babel/core@7.28.5)(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native-safe-area-context@5.6.2(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native-svg@15.15.1(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(tailwindcss@3.4.18(tsx@4.21.0)(yaml@2.8.2)): dependencies: - '@babel/helper-module-imports': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/helper-module-imports': 7.27.1 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 debug: 4.4.3(supports-color@5.5.0) lightningcss: 1.27.0 react: 19.2.1 @@ -94632,7 +94831,7 @@ snapshots: react-native-paper@5.14.5(react-native-safe-area-context@5.6.2(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1): dependencies: '@callstack/react-theme-provider': 3.0.9(react@19.2.1) - color: 3.2.1 + color: 5.0.3 react: 19.2.1 react-native: 0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1) react-native-safe-area-context: 5.6.2(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1) @@ -94717,7 +94916,7 @@ snapshots: prop-types: 15.8.1 yargs: 16.2.0 - react-native-vision-camera@4.7.3(2a8bff215a77e9add6caf84016d3d6ae): + react-native-vision-camera@4.7.3(mvrucncxhhhixgo4di56wucsee): dependencies: react: 19.2.1 react-native: 0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1) @@ -94767,7 +94966,7 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.28.5) babel-plugin-syntax-hermes-parser: 0.23.1 base64-js: 1.5.1 - chalk: 4.1.2 + chalk: 5.6.2 commander: 12.1.0 event-target-shim: 5.0.1 flow-enums-runtime: 0.0.6 @@ -94818,7 +95017,7 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.29.0) babel-plugin-syntax-hermes-parser: 0.23.1 base64-js: 1.5.1 - chalk: 4.1.2 + chalk: 5.6.2 commander: 12.1.0 event-target-shim: 5.0.1 flow-enums-runtime: 0.0.6 @@ -94869,10 +95068,10 @@ snapshots: react: 19.2.1 scheduler: 0.21.0 - react-reconciler@0.29.2(react@18.3.1): + react-reconciler@0.29.2(react@19.2.1): dependencies: loose-envify: 1.4.0 - react: 18.3.1 + react: 19.2.1 scheduler: 0.23.2 react-reconciler@0.33.0(react@19.2.1): @@ -94880,15 +95079,6 @@ snapshots: react: 19.2.1 scheduler: 0.27.0 - react-redux@9.2.0(@types/react@18.3.11)(react@18.3.1)(redux@5.0.1): - dependencies: - '@types/use-sync-external-store': 0.0.6 - react: 18.3.1 - use-sync-external-store: 1.6.0(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - redux: 5.0.1 - react-redux@9.2.0(@types/react@18.3.11)(react@19.2.1)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.6 @@ -94906,14 +95096,6 @@ snapshots: react-refresh@0.4.3: {} - react-remove-scroll-bar@2.3.8(@types/react@18.3.11)(react@18.3.1): - dependencies: - react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@18.3.11)(react@18.3.1) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.11 - react-remove-scroll-bar@2.3.8(@types/react@18.3.11)(react@19.2.1): dependencies: react: 19.2.1 @@ -94933,17 +95115,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - react-remove-scroll@2.7.2(@types/react@18.3.11)(react@18.3.1): - dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@18.3.11)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@18.3.11)(react@18.3.1) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.3.11)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.3.11)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - react-remove-scroll@2.7.2(@types/react@18.3.11)(react@19.2.1): dependencies: react: 19.2.1 @@ -94955,42 +95126,20 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - react-resizable@3.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - prop-types: 15.8.1 - react: 18.3.1 - react-draggable: 4.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - transitivePeerDependencies: - - react-dom - - react-resizable@3.0.5(react-dom@18.3.1(react@19.2.1))(react@19.2.1): + react-resizable@3.0.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: prop-types: 15.8.1 react: 19.2.1 - react-draggable: 4.5.0(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + react-draggable: 4.5.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) transitivePeerDependencies: - react-dom - react-router-dom@7.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 7.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-router-dom@7.13.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: react: 19.2.1 react-dom: 19.2.1(react@19.2.1) react-router: 7.13.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react-router@7.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - cookie: 1.1.1 - react: 18.3.1 - set-cookie-parser: 2.7.2 - optionalDependencies: - react-dom: 18.3.1(react@18.3.1) - react-router@7.13.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: cookie: 1.1.1 @@ -94999,22 +95148,6 @@ snapshots: optionalDependencies: react-dom: 19.2.1(react@19.2.1) - react-smooth@4.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - fast-equals: 5.4.0 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - - react-smooth@4.0.4(react-dom@18.3.1(react@19.2.1))(react@19.2.1): - dependencies: - fast-equals: 5.4.0 - prop-types: 15.8.1 - react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) - react-transition-group: 4.4.5(react-dom@18.3.1(react@19.2.1))(react@19.2.1) - react-smooth@4.0.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: fast-equals: 5.4.0 @@ -95023,10 +95156,10 @@ snapshots: react-dom: 19.2.1(react@19.2.1) react-transition-group: 4.4.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react-speech-recognition@4.0.1(react@18.3.1): + react-speech-recognition@4.0.1(react@19.2.1): dependencies: lodash.debounce: 4.0.8 - react: 18.3.1 + react: 19.2.1 react-spring@10.0.3(@react-three/fiber@8.18.0(@types/react@18.3.11)(react-dom@19.2.1(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react@19.2.1)(three@0.162.0))(konva@10.0.12)(react-dom@19.2.1(react@19.2.1))(react-konva@19.2.1(@types/react@18.3.11)(konva@10.0.12)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.11)(react@19.2.1))(react-zdog@1.2.2)(react@19.2.1)(three@0.162.0)(zdog@1.1.3): dependencies: @@ -95047,14 +95180,6 @@ snapshots: - three - zdog - react-style-singleton@2.2.3(@types/react@18.3.11)(react@18.3.1): - dependencies: - get-nonce: 1.0.1 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.11 - react-style-singleton@2.2.3(@types/react@18.3.11)(react@19.2.1): dependencies: get-nonce: 1.0.1 @@ -95063,14 +95188,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - react-syntax-highlighter@16.1.0(react@18.3.1): + react-syntax-highlighter@16.1.0(react@19.2.1): dependencies: '@babel/runtime': 7.28.4 highlight.js: 10.7.3 highlightjs-vue: 1.0.0 lowlight: 1.20.0 prismjs: 1.30.0 - react: 18.3.1 + react: 19.2.1 refractor: 5.0.0 react-test-renderer@19.2.3(react@19.2.1): @@ -95079,24 +95204,6 @@ snapshots: react-is: 19.2.3 scheduler: 0.27.0 - react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.28.4 - dom-helpers: 5.2.1 - loose-envify: 1.4.0 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - react-transition-group@4.4.5(react-dom@18.3.1(react@19.2.1))(react@19.2.1): - dependencies: - '@babel/runtime': 7.28.4 - dom-helpers: 5.2.1 - loose-envify: 1.4.0 - prop-types: 15.8.1 - react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) - react-transition-group@4.4.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: '@babel/runtime': 7.28.4 @@ -95115,12 +95222,6 @@ snapshots: dependencies: react: 19.2.1 - react-use-measure@2.1.7(react-dom@18.3.1(react@19.2.1))(react@19.2.1): - dependencies: - react: 19.2.1 - optionalDependencies: - react-dom: 18.3.1(react@19.2.1) - react-use-measure@2.1.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: react: 19.2.1 @@ -95132,15 +95233,15 @@ snapshots: react: 19.2.1 react-dom: 19.2.1(react@19.2.1) - react-virtualized@9.22.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-virtualized@9.22.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: '@babel/runtime': 7.28.4 clsx: 1.2.1 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) react-lifecycles-compat: 3.0.4 react-window-infinite-loader@2.0.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1): @@ -95155,30 +95256,22 @@ snapshots: react-zdog@1.2.2: dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) resize-observer-polyfill: 1.5.1 - react@18.2.0: - dependencies: - loose-envify: 1.4.0 - - react@18.3.1: - dependencies: - loose-envify: 1.4.0 - react@19.2.1: {} - reactflow@11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + reactflow@11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: - '@reactflow/background': 11.3.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@reactflow/controls': 11.2.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@reactflow/core': 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@reactflow/minimap': 11.7.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@reactflow/node-resizer': 2.2.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@reactflow/node-toolbar': 1.3.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@reactflow/background': 11.3.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@reactflow/controls': 11.2.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@reactflow/core': 11.11.4(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@reactflow/minimap': 11.7.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@reactflow/node-resizer': 2.2.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@reactflow/node-toolbar': 1.3.14(@types/react@18.3.11)(immer@11.1.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) transitivePeerDependencies: - '@types/react' - immer @@ -95287,28 +95380,15 @@ snapshots: dependencies: decimal.js-light: 2.5.1 - recharts@2.12.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - clsx: 2.1.1 - eventemitter3: 4.0.7 - lodash: 4.17.23 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 16.13.1 - react-smooth: 4.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - recharts-scale: 0.4.5 - tiny-invariant: 1.3.3 - victory-vendor: 36.9.2 - - recharts@2.12.7(react-dom@18.3.1(react@19.2.1))(react@19.2.1): + recharts@2.12.7(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: clsx: 2.1.1 eventemitter3: 4.0.7 lodash: 4.17.23 react: 19.2.1 - react-dom: 18.3.1(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) react-is: 16.13.1 - react-smooth: 4.0.4(react-dom@18.3.1(react@19.2.1))(react@19.2.1) + react-smooth: 4.0.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1) recharts-scale: 0.4.5 tiny-invariant: 1.3.3 victory-vendor: 36.9.2 @@ -95331,7 +95411,7 @@ snapshots: '@reduxjs/toolkit': 2.11.0(react-redux@9.2.0(@types/react@18.3.11)(react@19.2.1)(redux@5.0.1))(react@19.2.1) clsx: 2.1.1 decimal.js-light: 2.5.1 - es-toolkit: 1.44.0 + es-toolkit: 1.43.0 eventemitter3: 5.0.4 immer: 10.2.0 react: 19.2.1 @@ -95361,15 +95441,6 @@ snapshots: dependencies: redis-errors: 1.2.0 - redis@4.7.1: - dependencies: - '@redis/bloom': 1.2.0(@redis/client@1.6.1) - '@redis/client': 1.6.1 - '@redis/graph': 1.1.1(@redis/client@1.6.1) - '@redis/json': 1.0.7(@redis/client@1.6.1) - '@redis/search': 1.2.0(@redis/client@1.6.1) - '@redis/time-series': 1.1.0(@redis/client@1.6.1) - redis@5.10.0: dependencies: '@redis/bloom': 5.10.0(@redis/client@5.10.0) @@ -95398,7 +95469,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -95412,6 +95483,8 @@ snapshots: hastscript: 9.0.1 parse-entities: 4.0.2 + reftools@1.1.9: {} + regenerate-unicode-properties@10.2.2: dependencies: regenerate: 1.4.2 @@ -95450,10 +95523,10 @@ snapshots: dependencies: jsesc: 3.1.0 - rehackt@0.1.0(@types/react@18.3.11)(react@18.3.1): + rehackt@0.1.0(@types/react@18.3.11)(react@19.2.1): optionalDependencies: '@types/react': 18.3.11 - react: 18.3.1 + react: 19.2.1 relateurl@0.2.7: {} @@ -95579,6 +95652,8 @@ snapshots: ret@0.1.15: {} + ret@0.4.3: {} + ret@0.5.0: {} retimer@3.0.0: {} @@ -95772,7 +95847,7 @@ snapshots: rss-parser@3.13.0: dependencies: - entities: 4.5.0 + entities: 2.2.0 xml2js: 0.5.0 run-applescript@7.1.0: {} @@ -95830,10 +95905,16 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 + safe-regex2@3.1.0: + dependencies: + ret: 0.4.3 + safe-regex2@5.0.0: dependencies: ret: 0.5.0 + safe-stable-stringify@1.1.1: {} + safe-stable-stringify@2.5.0: {} safer-buffer@2.1.2: {} @@ -95859,6 +95940,8 @@ snapshots: sax@1.2.1: {} + sax@1.4.3: {} + sax@1.4.4: {} saxes@5.0.1: @@ -95898,9 +95981,9 @@ snapshots: schema-utils@4.3.3: dependencies: '@types/json-schema': 7.0.15 - ajv: 8.18.0 - ajv-formats: 2.1.1(ajv@8.18.0) - ajv-keywords: 5.1.0(ajv@8.18.0) + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) scuid@1.1.0: {} @@ -95919,10 +96002,6 @@ snapshots: seedrandom@3.0.5: {} - selderee@0.11.0: - dependencies: - parseley: 0.12.1 - selfsigned@2.4.1: dependencies: '@types/node-forge': 1.3.14 @@ -96104,7 +96183,7 @@ snapshots: sharp@0.32.6: dependencies: - color: 4.2.3 + color: 5.0.3 detect-libc: 2.1.2 node-addon-api: 6.1.0 prebuild-install: 7.1.3 @@ -96184,6 +96263,32 @@ snapshots: shimmer@1.2.1: {} + should-equal@2.0.0: + dependencies: + should-type: 1.4.0 + + should-format@3.0.3: + dependencies: + should-type: 1.4.0 + should-type-adaptors: 1.1.0 + + should-type-adaptors@1.1.0: + dependencies: + should-type: 1.4.0 + should-util: 1.0.1 + + should-type@1.4.0: {} + + should-util@1.0.1: {} + + should@13.2.3: + dependencies: + should-equal: 2.0.0 + should-format: 3.0.3 + should-type: 1.4.0 + should-type-adaptors: 1.1.0 + should-util: 1.0.1 + shpjs@6.2.0: dependencies: but-unzip: 0.1.7 @@ -96228,14 +96333,29 @@ snapshots: signale@1.4.0: dependencies: - chalk: 2.4.2 + chalk: 5.6.2 figures: 2.0.0 pkg-conf: 2.1.0 signedsource@1.0.0: {} + sigstore@4.1.0: + dependencies: + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.1.0 + '@sigstore/protobuf-specs': 0.5.0 + '@sigstore/sign': 4.1.0 + '@sigstore/tuf': 4.0.1 + '@sigstore/verify': 3.1.0 + transitivePeerDependencies: + - supports-color + simple-concat@1.0.1: {} + simple-eval@1.0.1: + dependencies: + jsep: 1.4.0 + simple-get@2.8.2: dependencies: decompress-response: 3.3.0 @@ -96330,8 +96450,6 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 - slick@1.12.2: {} - smart-buffer@4.2.0: {} smob@1.5.0: {} @@ -96358,7 +96476,7 @@ snapshots: socket.io-adapter@2.5.6: dependencies: - debug: 4.4.3(supports-color@5.5.0) + debug: 4.3.7 ws: 8.19.0 transitivePeerDependencies: - bufferutil @@ -96379,7 +96497,7 @@ snapshots: socket.io-parser@4.2.5: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.4.3(supports-color@5.5.0) + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -96730,7 +96848,7 @@ snapshots: stream-parser@0.3.1: dependencies: - debug: 2.6.9 + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -96742,6 +96860,8 @@ snapshots: stream-wormhole@1.1.0: {} + streamsearch@0.1.2: {} + streamsearch@1.1.0: {} streamx@2.23.0: @@ -96809,14 +96929,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -96830,7 +96950,7 @@ snapshots: string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 string.prototype.trim@1.2.10: dependencies: @@ -96838,7 +96958,7 @@ snapshots: call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 @@ -96873,7 +96993,8 @@ snapshots: strip-ansi@3.0.1: dependencies: - ansi-regex: 2.1.1 + ansi-regex: 5.0.1 + optional: true strip-ansi@6.0.1: dependencies: @@ -96881,7 +97002,7 @@ snapshots: strip-ansi@7.1.2: dependencies: - ansi-regex: 6.2.2 + ansi-regex: 5.0.1 strip-bom-string@1.0.0: {} @@ -96921,10 +97042,7 @@ snapshots: dependencies: js-tokens: 9.0.1 - stripe@15.12.0: - dependencies: - '@types/node': 20.19.27 - qs: 6.14.1 + strnum@1.1.2: {} strnum@2.1.2: {} @@ -97063,8 +97181,6 @@ snapshots: supports-color@10.2.2: {} - supports-color@2.0.0: {} - supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -97116,6 +97232,20 @@ snapshots: express: 5.2.1 swagger-ui-dist: 5.31.0 + swagger2openapi@7.0.8: + dependencies: + call-me-maybe: 1.0.2 + node-fetch: 3.3.2 + node-fetch-h2: 2.3.0 + node-readfiles: 0.2.0 + oas-kit-common: 1.0.8 + oas-resolver: 2.5.6 + oas-schema-walker: 1.1.5 + oas-validator: 5.0.8 + reftools: 1.1.9 + yaml: 1.10.2 + yargs: 17.7.2 + swap-case@2.0.2: dependencies: tslib: 2.8.1 @@ -97144,6 +97274,8 @@ snapshots: dependencies: '@pkgr/core': 0.2.9 + tabbable@6.3.0: {} + tabbable@6.4.0: {} table-layout@4.1.1: @@ -97153,7 +97285,7 @@ snapshots: table@6.9.0: dependencies: - ajv: 8.18.0 + ajv: 8.17.1 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 @@ -97165,6 +97297,10 @@ snapshots: tailwind-merge@3.4.0: {} + tailwindcss-animate@1.0.7(tailwindcss@3.4.18(tsx@4.21.0)(yaml@2.8.2)): + dependencies: + tailwindcss: 3.4.18(tsx@4.21.0)(yaml@2.8.2) + tailwindcss-animate@1.0.7(tailwindcss@4.1.18): dependencies: tailwindcss: 4.1.18 @@ -97315,13 +97451,6 @@ snapshots: '@swc/core': 1.15.3(@swc/helpers@0.5.17) esbuild: 0.27.2 - terser@4.8.1: - dependencies: - acorn: 8.15.0 - commander: 2.20.3 - source-map: 0.6.1 - source-map-support: 0.5.21 - terser@5.44.1: dependencies: '@jridgewell/source-map': 0.3.11 @@ -97395,7 +97524,7 @@ snapshots: ssh-remote-port-forward: 1.0.4 tar-fs: 3.1.1 tmp: 0.2.5 - undici: 7.19.2 + undici: 7.19.0 transitivePeerDependencies: - bare-abort-controller - bare-buffer @@ -97412,8 +97541,6 @@ snapshots: text-hex@1.0.0: {} - text-table@0.2.0: {} - texture-compressor@1.0.2: dependencies: argparse: 1.0.10 @@ -97617,8 +97744,14 @@ snapshots: dependencies: tslib: 2.8.1 + tldts-core@6.1.86: {} + tldts-core@7.0.19: {} + tldts@6.1.86: + dependencies: + tldts-core: 6.1.86 + tldts@7.0.19: dependencies: tldts-core: 7.0.19 @@ -97667,6 +97800,17 @@ snapshots: touch@3.1.1: {} + tough-cookie@4.1.4: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + + tough-cookie@5.1.2: + dependencies: + tldts: 6.1.86 + tough-cookie@6.0.0: dependencies: tldts: 7.0.19 @@ -97728,9 +97872,9 @@ snapshots: dependencies: typescript: 5.9.3 - ts-api-utils@2.4.0(typescript@5.8.3): + ts-api-utils@2.1.0(typescript@5.9.3): dependencies: - typescript: 5.8.3 + typescript: 5.9.3 ts-api-utils@2.4.0(typescript@5.9.3): dependencies: @@ -97765,12 +97909,12 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.29.0) - ts-jest@29.4.6(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(esbuild@0.27.2)(jest-util@30.2.0)(jest@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3): + ts-jest@29.4.6(@babel/core@7.26.10)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.26.10))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) + jest: 29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -97779,19 +97923,18 @@ snapshots: typescript: 5.9.3 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.26.10 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - babel-jest: 30.2.0(@babel/core@7.28.5) - esbuild: 0.27.2 + babel-jest: 30.2.0(@babel/core@7.26.10) jest-util: 30.2.0 - ts-jest@29.4.6(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3): + ts-jest@29.4.6(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(esbuild@0.27.2)(jest-util@30.2.0)(jest@29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) + jest: 29.7.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -97807,12 +97950,12 @@ snapshots: esbuild: 0.27.2 jest-util: 30.2.0 - ts-jest@29.4.6(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)))(typescript@5.9.3): + ts-jest@29.4.6(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 29.7.0(@types/node@25.0.10)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.10)(typescript@5.9.3)) + jest: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -97825,26 +97968,27 @@ snapshots: '@jest/transform': 30.2.0 '@jest/types': 30.2.0 babel-jest: 30.2.0(@babel/core@7.28.5) + esbuild: 0.27.2 jest-util: 30.2.0 - ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3)))(typescript@5.8.3): + ts-jest@29.4.6(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 30.2.0(@types/node@20.19.27)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3)) + jest: 30.2.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.7.3 type-fest: 4.41.0 - typescript: 5.8.3 + typescript: 5.9.3 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.28.5 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - babel-jest: 30.2.0(@babel/core@7.29.0) + babel-jest: 30.2.0(@babel/core@7.28.5) esbuild: 0.27.2 jest-util: 30.2.0 @@ -97869,12 +98013,12 @@ snapshots: esbuild: 0.27.2 jest-util: 30.2.0 - ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)))(typescript@5.9.3): + ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 30.2.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + jest: 30.2.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -97890,12 +98034,12 @@ snapshots: esbuild: 0.27.2 jest-util: 30.2.0 - ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)))(typescript@5.9.3): + ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.10.1)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 30.2.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3)) + jest: 30.2.0(@types/node@24.10.1)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -97932,12 +98076,12 @@ snapshots: esbuild: 0.27.2 jest-util: 30.2.0 - ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3): + ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.2)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 30.2.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + jest: 30.2.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.2))(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -97993,12 +98137,32 @@ snapshots: babel-jest: 30.2.0(@babel/core@7.29.0) jest-util: 30.2.0 - ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)))(typescript@5.9.3): + ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@20.19.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3)) + jest: 29.7.0(@types/node@20.19.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3)) + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.3 + type-fest: 4.41.0 + typescript: 5.9.3 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.29.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.29.0) + jest-util: 30.2.0 + + ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)))(typescript@5.9.3): + dependencies: + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + handlebars: 4.7.8 + jest: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -98033,12 +98197,32 @@ snapshots: babel-jest: 30.2.0(@babel/core@7.29.0) jest-util: 30.2.0 - ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)))(typescript@5.9.3): + ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.0.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)))(typescript@5.9.3): + dependencies: + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + handlebars: 4.7.8 + jest: 29.7.0(@types/node@25.0.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3)) + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.3 + type-fest: 4.41.0 + typescript: 5.9.3 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.29.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.29.0) + jest-util: 30.2.0 + + ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(jest-util@30.2.0)(jest@29.7.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 29.7.0(@types/node@25.3.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3)) + jest: 29.7.0(@types/node@25.1.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -98063,7 +98247,7 @@ snapshots: mkdirp: 1.0.4 resolve: 1.22.11 rimraf: 2.7.1 - source-map-support: 0.5.21 + source-map-support: 0.5.13 tree-kill: 1.2.2 ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.11.30)(typescript@5.6.3) tsconfig: 7.0.0 @@ -98081,7 +98265,7 @@ snapshots: mkdirp: 1.0.4 resolve: 1.22.11 rimraf: 2.7.1 - source-map-support: 0.5.21 + source-map-support: 0.5.13 tree-kill: 1.2.2 ts-node: 10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3) tsconfig: 7.0.0 @@ -98131,7 +98315,7 @@ snapshots: optionalDependencies: '@swc/core': 1.15.3(@swc/helpers@0.5.17) - ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.8.3): + ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 @@ -98145,21 +98329,20 @@ snapshots: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.8.3 + typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: '@swc/core': 1.15.3(@swc/helpers@0.5.17) - optional: true - ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.27)(typescript@5.9.3): + ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@20.19.30)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.19.27 + '@types/node': 20.19.30 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -98171,15 +98354,16 @@ snapshots: yn: 3.1.1 optionalDependencies: '@swc/core': 1.15.3(@swc/helpers@0.5.17) + optional: true - ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.7)(typescript@5.9.3): + ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@22.19.3)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.19.7 + '@types/node': 22.19.3 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -98192,14 +98376,14 @@ snapshots: optionalDependencies: '@swc/core': 1.15.3(@swc/helpers@0.5.17) - ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3): + ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@24.10.1)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 24.10.9 + '@types/node': 24.10.1 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -98231,15 +98415,57 @@ snapshots: yn: 3.1.1 optionalDependencies: '@swc/core': 1.15.3(@swc/helpers@0.5.17) + optional: true + + ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.3)(typescript@5.9.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.12 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 25.0.3 + acorn: 8.15.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.9.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.15.3(@swc/helpers@0.5.17) + + ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.0.9)(typescript@5.9.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.12 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 25.0.9 + acorn: 8.15.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.9.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.15.3(@swc/helpers@0.5.17) + optional: true - ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.3.5)(typescript@5.9.3): + ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.17))(@types/node@25.1.0)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 25.3.5 + '@types/node': 25.1.0 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -98252,9 +98478,13 @@ snapshots: optionalDependencies: '@swc/core': 1.15.3(@swc/helpers@0.5.17) + tsconfck@2.1.2(typescript@5.9.3): + optionalDependencies: + typescript: 5.9.3 + tsconfig-paths-webpack-plugin@4.2.0: dependencies: - chalk: 4.1.2 + chalk: 5.6.2 enhanced-resolve: 5.18.4 tapable: 2.3.0 tsconfig-paths: 4.2.0 @@ -98291,6 +98521,23 @@ snapshots: tslib@2.8.1: {} + tslint@5.14.0(typescript@5.9.3): + dependencies: + babel-code-frame: 6.26.0 + builtin-modules: 1.1.1 + chalk: 5.6.2 + commander: 2.20.3 + diff: 3.5.0 + glob: 13.0.0 + js-yaml: 3.14.2 + minimatch: 3.1.2 + mkdirp: 0.5.6 + resolve: 1.22.11 + semver: 5.7.2 + tslib: 1.14.1 + tsutils: 2.29.0(typescript@5.9.3) + typescript: 5.9.3 + tsscmp@1.0.6: {} tsup@8.5.1(@swc/core@1.15.3(@swc/helpers@0.5.17))(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): @@ -98322,6 +98569,11 @@ snapshots: - tsx - yaml + tsutils@2.29.0(typescript@5.9.3): + dependencies: + tslib: 1.14.1 + typescript: 5.9.3 + tsutils@3.21.0(typescript@5.9.3): dependencies: tslib: 1.14.1 @@ -98336,6 +98588,14 @@ snapshots: tty-browserify@0.0.1: {} + tuf-js@4.1.0: + dependencies: + '@tufjs/models': 4.1.0 + debug: 4.4.3(supports-color@5.5.0) + make-fetch-happen: 15.0.3 + transitivePeerDependencies: + - supports-color + tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 @@ -98730,25 +98990,31 @@ snapshots: typedarray@0.0.6: {} - typedoc@0.27.9(typescript@5.8.3): + typedoc-plugin-coverage@4.0.2(typedoc@0.28.15(typescript@5.9.3)): + dependencies: + typedoc: 0.28.15(typescript@5.9.3) + + typedoc-plugin-markdown@4.9.0(typedoc@0.28.15(typescript@5.9.3)): + dependencies: + typedoc: 0.28.15(typescript@5.9.3) + + typedoc@0.27.9(typescript@5.9.3): dependencies: '@gerrit0/mini-shiki': 1.27.2 lunr: 2.3.9 markdown-it: 14.1.0 minimatch: 9.0.5 - typescript: 5.8.3 + typescript: 5.9.3 yaml: 2.8.2 - typescript-eslint@8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + typedoc@0.28.15(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.50.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.50.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@gerrit0/mini-shiki': 3.20.0 + lunr: 2.3.9 + markdown-it: 14.1.0 + minimatch: 9.0.5 typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + yaml: 2.8.2 typescript-eslint@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: @@ -98774,14 +99040,12 @@ snapshots: typescript@5.6.3: {} - typescript@5.8.3: {} - typescript@5.9.3: {} typesense@1.8.2(@babel/runtime@7.28.4): dependencies: '@babel/runtime': 7.28.4 - axios: 1.13.6 + axios: 1.13.2 loglevel: 1.9.2 transitivePeerDependencies: - debug @@ -98860,14 +99124,16 @@ snapshots: undici-types@7.16.0: {} - undici-types@7.18.2: {} - undici@5.29.0: dependencies: '@fastify/busboy': 2.1.1 undici@6.23.0: {} + undici@7.16.0: {} + + undici@7.19.0: {} + undici@7.19.2: {} unfetch@4.2.0: {} @@ -99045,6 +99311,8 @@ snapshots: dependencies: punycode: 2.3.1 + urijs@1.19.11: {} + url-join@4.0.1: {} url-join@5.0.0: {} @@ -99068,13 +99336,6 @@ snapshots: urlpattern-polyfill@10.1.0: {} - use-callback-ref@1.3.3(@types/react@18.3.11)(react@18.3.1): - dependencies: - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.11 - use-callback-ref@1.3.3(@types/react@18.3.11)(react@19.2.1): dependencies: react: 19.2.1 @@ -99098,14 +99359,6 @@ snapshots: react: 19.2.1 react-dom: 19.2.1(react@19.2.1) - use-sidecar@1.1.3(@types/react@18.3.11)(react@18.3.1): - dependencies: - detect-node-es: 1.1.0 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.11 - use-sidecar@1.1.3(@types/react@18.3.11)(react@19.2.1): dependencies: detect-node-es: 1.1.0 @@ -99114,10 +99367,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - use-sync-external-store@1.6.0(react@18.3.1): - dependencies: - react: 18.3.1 - use-sync-external-store@1.6.0(react@19.2.1): dependencies: react: 19.2.1 @@ -99149,7 +99398,7 @@ snapshots: is-arguments: 1.2.0 is-generator-function: 1.1.2 is-typed-array: 1.1.15 - which-typed-array: 1.1.20 + which-typed-array: 1.1.19 utila@0.4.0: {} @@ -99181,13 +99430,13 @@ snapshots: v8n@1.5.1: {} - valid-data-url@3.0.1: {} - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 + validate-npm-package-name@7.0.2: {} + validator@13.15.26: {} value-or-promise@1.0.11: {} @@ -99390,7 +99639,7 @@ snapshots: '@types/d3-ease': 3.0.2 '@types/d3-interpolate': 3.0.4 '@types/d3-scale': 4.0.9 - '@types/d3-shape': 3.1.8 + '@types/d3-shape': 3.1.7 '@types/d3-time': 3.0.4 '@types/d3-timer': 3.0.2 d3-array: 3.2.4 @@ -99407,7 +99656,7 @@ snapshots: '@types/d3-ease': 3.0.2 '@types/d3-interpolate': 3.0.4 '@types/d3-scale': 4.0.9 - '@types/d3-shape': 3.1.8 + '@types/d3-shape': 3.1.7 '@types/d3-time': 3.0.4 '@types/d3-timer': 3.0.2 d3-array: 3.2.4 @@ -99555,13 +99804,13 @@ snapshots: - supports-color - terser - vite-node@1.6.1(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1): + vite-node@1.6.1(@types/node@20.19.30)(lightningcss@1.30.2)(terser@5.44.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@5.5.0) pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.21(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@20.19.30)(lightningcss@1.30.2)(terser@5.44.1) transitivePeerDependencies: - '@types/node' - less @@ -99573,13 +99822,31 @@ snapshots: - supports-color - terser - vite-node@1.6.1(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1): + vite-node@1.6.1(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@5.5.0) pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite-node@1.6.1(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1): + dependencies: + cac: 6.7.14 + debug: 4.4.3(supports-color@5.5.0) + pathe: 1.1.2 + picocolors: 1.1.1 + vite: 5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1) transitivePeerDependencies: - '@types/node' - less @@ -99609,13 +99876,13 @@ snapshots: - supports-color - terser - vite-node@2.1.9(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1): + vite-node@2.1.9(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@5.5.0) es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 5.4.21(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1) transitivePeerDependencies: - '@types/node' - less @@ -99627,13 +99894,13 @@ snapshots: - supports-color - terser - vite-node@2.1.9(@types/node@24.10.9)(lightningcss@1.30.2)(terser@5.44.1): + vite-node@2.1.9(@types/node@24.10.1)(lightningcss@1.30.2)(terser@5.44.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@5.5.0) es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 5.4.21(@types/node@24.10.9)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@24.10.1)(lightningcss@1.30.2)(terser@5.44.1) transitivePeerDependencies: - '@types/node' - less @@ -99645,13 +99912,13 @@ snapshots: - supports-color - terser - vite-node@2.1.9(@types/node@25.0.10)(lightningcss@1.30.2)(terser@5.44.1): + vite-node@2.1.9(@types/node@25.0.3)(lightningcss@1.30.2)(terser@5.44.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@5.5.0) es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 5.4.21(@types/node@25.0.10)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@25.0.3)(lightningcss@1.30.2)(terser@5.44.1) transitivePeerDependencies: - '@types/node' - less @@ -99663,13 +99930,13 @@ snapshots: - supports-color - terser - vite-node@2.1.9(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1): + vite-node@2.1.9(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@5.5.0) es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1) transitivePeerDependencies: - '@types/node' - less @@ -99699,13 +99966,13 @@ snapshots: - supports-color - terser - vite-node@3.2.4(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1): + vite-node@3.2.4(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@5.5.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 5.4.21(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1) transitivePeerDependencies: - '@types/node' - less @@ -99728,12 +99995,12 @@ snapshots: optionalDependencies: vite-plugin-electron-renderer: 0.14.6 - vite-plugin-pwa@0.19.8(vite@7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(workbox-build@7.4.0(@types/babel__core@7.20.5))(workbox-window@7.4.0): + vite-plugin-pwa@0.19.8(vite@7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(workbox-build@7.4.0(@types/babel__core@7.20.5))(workbox-window@7.4.0): dependencies: debug: 4.4.3(supports-color@5.5.0) fast-glob: 3.3.3 pretty-bytes: 6.1.1 - vite: 7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) workbox-build: 7.4.0(@types/babel__core@7.20.5) workbox-window: 7.4.0 transitivePeerDependencies: @@ -99761,51 +100028,62 @@ snapshots: lightningcss: 1.30.2 terser: 5.44.1 - vite@5.4.21(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1): + vite@5.4.21(@types/node@20.19.30)(lightningcss@1.30.2)(terser@5.44.1): dependencies: esbuild: 0.27.2 postcss: 8.5.6 rollup: 4.54.0 optionalDependencies: - '@types/node': 22.19.7 + '@types/node': 20.19.30 fsevents: 2.3.3 lightningcss: 1.30.2 terser: 5.44.1 - vite@5.4.21(@types/node@24.10.9)(lightningcss@1.30.2)(terser@5.44.1): + vite@5.4.21(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1): dependencies: esbuild: 0.27.2 postcss: 8.5.6 rollup: 4.54.0 optionalDependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 fsevents: 2.3.3 lightningcss: 1.30.2 terser: 5.44.1 - vite@5.4.21(@types/node@25.0.10)(lightningcss@1.30.2)(terser@5.44.1): + vite@5.4.21(@types/node@24.10.1)(lightningcss@1.30.2)(terser@5.44.1): dependencies: esbuild: 0.27.2 postcss: 8.5.6 rollup: 4.54.0 optionalDependencies: - '@types/node': 25.0.10 + '@types/node': 24.10.1 + fsevents: 2.3.3 + lightningcss: 1.30.2 + terser: 5.44.1 + + vite@5.4.21(@types/node@25.0.3)(lightningcss@1.30.2)(terser@5.44.1): + dependencies: + esbuild: 0.27.2 + postcss: 8.5.6 + rollup: 4.54.0 + optionalDependencies: + '@types/node': 25.0.3 fsevents: 2.3.3 lightningcss: 1.30.2 terser: 5.44.1 - vite@5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1): + vite@5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1): dependencies: esbuild: 0.27.2 postcss: 8.5.6 rollup: 4.54.0 optionalDependencies: - '@types/node': 25.3.5 + '@types/node': 25.1.0 fsevents: 2.3.3 lightningcss: 1.30.2 terser: 5.44.1 - vite@6.4.1(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) @@ -99814,7 +100092,7 @@ snapshots: rollup: 4.54.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 25.3.5 + '@types/node': 25.1.0 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 @@ -99839,7 +100117,7 @@ snapshots: tsx: 4.21.0 yaml: 2.8.2 - vite@7.2.6(@types/node@22.19.7)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vite@7.2.6(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) @@ -99848,7 +100126,7 @@ snapshots: rollup: 4.54.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.19.7 + '@types/node': 22.19.3 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 @@ -99856,7 +100134,7 @@ snapshots: tsx: 4.21.0 yaml: 2.8.2 - vite@7.2.6(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vite@7.2.6(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) @@ -99865,7 +100143,7 @@ snapshots: rollup: 4.54.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 25.0.10 + '@types/node': 25.0.3 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 @@ -99873,7 +100151,7 @@ snapshots: tsx: 4.21.0 yaml: 2.8.2 - vite@7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vite@7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) @@ -99882,7 +100160,7 @@ snapshots: rollup: 4.54.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 25.3.5 + '@types/node': 25.1.0 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 @@ -99890,7 +100168,7 @@ snapshots: tsx: 4.21.0 yaml: 2.8.2 - vitest-axe@0.1.0(vitest@4.0.16(@opentelemetry/api@1.8.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)): + vitest-axe@0.1.0(vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)): dependencies: aria-query: 5.3.2 axe-core: 4.11.0 @@ -99898,7 +100176,7 @@ snapshots: dom-accessibility-api: 0.5.16 lodash-es: 4.17.21 redent: 3.0.0 - vitest: 4.0.16(@opentelemetry/api@1.8.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vitest: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) vitest@1.6.1(@types/node@18.19.130)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1): dependencies: @@ -100008,7 +100286,7 @@ snapshots: - supports-color - terser - vitest@1.6.1(@types/node@22.19.7)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1): + vitest@1.6.1(@types/node@20.19.30)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1): dependencies: '@vitest/expect': 1.6.1 '@vitest/runner': 1.6.1 @@ -100027,11 +100305,47 @@ snapshots: strip-literal: 2.1.1 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.21(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1) - vite-node: 1.6.1(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@20.19.30)(lightningcss@1.30.2)(terser@5.44.1) + vite-node: 1.6.1(@types/node@20.19.30)(lightningcss@1.30.2)(terser@5.44.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.19.7 + '@types/node': 20.19.30 + happy-dom: 20.0.11 + jsdom: 27.4.0(canvas@2.11.2) + transitivePeerDependencies: + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vitest@1.6.1(@types/node@22.19.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1): + dependencies: + '@vitest/expect': 1.6.1 + '@vitest/runner': 1.6.1 + '@vitest/snapshot': 1.6.1 + '@vitest/spy': 1.6.1 + '@vitest/utils': 1.6.1 + acorn-walk: 8.3.4 + chai: 4.5.0 + debug: 4.4.3(supports-color@5.5.0) + execa: 8.0.1 + local-pkg: 0.5.1 + magic-string: 0.30.21 + pathe: 1.1.2 + picocolors: 1.1.1 + std-env: 3.10.0 + strip-literal: 2.1.1 + tinybench: 2.9.0 + tinypool: 0.8.4 + vite: 5.4.21(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1) + vite-node: 1.6.1(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.19.3 happy-dom: 20.0.11 jsdom: 27.4.0(canvas@2.11.2) transitivePeerDependencies: @@ -100044,7 +100358,7 @@ snapshots: - supports-color - terser - vitest@1.6.1(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1): + vitest@1.6.1(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(terser@5.44.1): dependencies: '@vitest/expect': 1.6.1 '@vitest/runner': 1.6.1 @@ -100063,11 +100377,11 @@ snapshots: strip-literal: 2.1.1 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1) - vite-node: 1.6.1(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1) + vite-node: 1.6.1(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.3.5 + '@types/node': 25.1.0 happy-dom: 20.0.11 jsdom: 27.4.0(canvas@2.11.2) transitivePeerDependencies: @@ -100117,10 +100431,10 @@ snapshots: - supports-color - terser - vitest@2.1.9(@types/node@22.19.7)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1): + vitest@2.1.9(@types/node@22.19.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(vite@5.4.21(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1)) + '@vitest/mocker': 2.1.9(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(vite@5.4.21(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -100136,11 +100450,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.1.1 tinyrainbow: 1.2.0 - vite: 5.4.21(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1) - vite-node: 2.1.9(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1) + vite-node: 2.1.9(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.19.7 + '@types/node': 22.19.3 happy-dom: 20.0.11 jsdom: 27.4.0(canvas@2.11.2) transitivePeerDependencies: @@ -100154,10 +100468,10 @@ snapshots: - supports-color - terser - vitest@2.1.9(@types/node@24.10.9)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@24.10.9)(typescript@5.9.3))(terser@5.44.1): + vitest@2.1.9(@types/node@24.10.1)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@24.10.1)(typescript@5.9.3))(terser@5.44.1): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(msw@2.12.4(@types/node@24.10.9)(typescript@5.9.3))(vite@5.4.21(@types/node@24.10.9)(lightningcss@1.30.2)(terser@5.44.1)) + '@vitest/mocker': 2.1.9(msw@2.12.4(@types/node@24.10.1)(typescript@5.9.3))(vite@5.4.21(@types/node@24.10.1)(lightningcss@1.30.2)(terser@5.44.1)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -100173,11 +100487,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.1.1 tinyrainbow: 1.2.0 - vite: 5.4.21(@types/node@24.10.9)(lightningcss@1.30.2)(terser@5.44.1) - vite-node: 2.1.9(@types/node@24.10.9)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@24.10.1)(lightningcss@1.30.2)(terser@5.44.1) + vite-node: 2.1.9(@types/node@24.10.1)(lightningcss@1.30.2)(terser@5.44.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.10.9 + '@types/node': 24.10.1 happy-dom: 20.0.11 jsdom: 27.4.0(canvas@2.11.2) transitivePeerDependencies: @@ -100191,10 +100505,10 @@ snapshots: - supports-color - terser - vitest@2.1.9(@types/node@25.0.10)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(terser@5.44.1): + vitest@2.1.9(@types/node@25.0.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(vite@5.4.21(@types/node@25.0.10)(lightningcss@1.30.2)(terser@5.44.1)) + '@vitest/mocker': 2.1.9(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(vite@5.4.21(@types/node@25.0.3)(lightningcss@1.30.2)(terser@5.44.1)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -100210,11 +100524,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.1.1 tinyrainbow: 1.2.0 - vite: 5.4.21(@types/node@25.0.10)(lightningcss@1.30.2)(terser@5.44.1) - vite-node: 2.1.9(@types/node@25.0.10)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@25.0.3)(lightningcss@1.30.2)(terser@5.44.1) + vite-node: 2.1.9(@types/node@25.0.3)(lightningcss@1.30.2)(terser@5.44.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.0.10 + '@types/node': 25.0.3 happy-dom: 20.0.11 jsdom: 27.4.0(canvas@2.11.2) transitivePeerDependencies: @@ -100228,10 +100542,10 @@ snapshots: - supports-color - terser - vitest@2.1.9(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@26.1.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1): + vitest@2.1.9(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@26.1.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(terser@5.44.1): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(vite@5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1)) + '@vitest/mocker': 2.1.9(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(vite@5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -100247,11 +100561,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.1.1 tinyrainbow: 1.2.0 - vite: 5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1) - vite-node: 2.1.9(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1) + vite-node: 2.1.9(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.3.5 + '@types/node': 25.1.0 happy-dom: 20.0.11 jsdom: 26.1.0 transitivePeerDependencies: @@ -100265,10 +100579,10 @@ snapshots: - supports-color - terser - vitest@2.1.9(@types/node@25.3.5)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1): + vitest@2.1.9(@types/node@25.1.0)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(terser@5.44.1): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(vite@5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1)) + '@vitest/mocker': 2.1.9(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(vite@5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -100284,11 +100598,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.1.1 tinyrainbow: 1.2.0 - vite: 5.4.21(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1) - vite-node: 2.1.9(@types/node@25.3.5)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1) + vite-node: 2.1.9(@types/node@25.1.0)(lightningcss@1.30.2)(terser@5.44.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.3.5 + '@types/node': 25.1.0 happy-dom: 20.0.11 jsdom: 27.4.0(canvas@2.11.2) transitivePeerDependencies: @@ -100343,11 +100657,11 @@ snapshots: - supports-color - terser - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.7)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(happy-dom@20.0.11)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(vite@5.4.21(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1)) + '@vitest/mocker': 3.2.4(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(vite@5.4.21(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -100365,12 +100679,12 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 5.4.21(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1) - vite-node: 3.2.4(@types/node@22.19.7)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1) + vite-node: 3.2.4(@types/node@22.19.3)(lightningcss@1.30.2)(terser@5.44.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.19.7 + '@types/node': 22.19.3 happy-dom: 20.0.11 jsdom: 27.4.0(canvas@2.11.2) transitivePeerDependencies: @@ -100384,7 +100698,7 @@ snapshots: - supports-color - terser - vitest@4.0.16(@opentelemetry/api@1.8.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@vitest/expect': 4.0.16 '@vitest/mocker': 4.0.16(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(vite@7.2.6(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) @@ -100407,7 +100721,7 @@ snapshots: vite: 7.2.6(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: - '@opentelemetry/api': 1.8.0 + '@opentelemetry/api': 1.9.0 '@types/node': 20.19.27 happy-dom: 20.0.11 jsdom: 27.3.0 @@ -100464,15 +100778,15 @@ snapshots: - tsx - yaml - vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@20.19.27)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@22.19.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: - '@vitest/expect': 4.0.18 - '@vitest/mocker': 4.0.18(msw@2.12.4(@types/node@20.19.27)(typescript@5.9.3))(vite@7.2.6(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) - '@vitest/pretty-format': 4.0.18 - '@vitest/runner': 4.0.18 - '@vitest/snapshot': 4.0.18 - '@vitest/spy': 4.0.18 - '@vitest/utils': 4.0.18 + '@vitest/expect': 4.0.16 + '@vitest/mocker': 4.0.16(msw@2.12.4(@types/node@22.19.3)(typescript@5.9.3))(vite@7.2.6(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/pretty-format': 4.0.16 + '@vitest/runner': 4.0.16 + '@vitest/snapshot': 4.0.16 + '@vitest/spy': 4.0.16 + '@vitest/utils': 4.0.16 es-module-lexer: 1.7.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -100484,11 +100798,11 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.2.6(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.2.6(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 - '@types/node': 20.19.27 + '@types/node': 22.19.3 happy-dom: 20.0.11 jsdom: 27.4.0(canvas@2.11.2) transitivePeerDependencies: @@ -100504,15 +100818,15 @@ snapshots: - tsx - yaml - vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.7)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: - '@vitest/expect': 4.0.18 - '@vitest/mocker': 4.0.18(msw@2.12.4(@types/node@22.19.7)(typescript@5.9.3))(vite@7.2.6(@types/node@22.19.7)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) - '@vitest/pretty-format': 4.0.18 - '@vitest/runner': 4.0.18 - '@vitest/snapshot': 4.0.18 - '@vitest/spy': 4.0.18 - '@vitest/utils': 4.0.18 + '@vitest/expect': 4.0.16 + '@vitest/mocker': 4.0.16(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(vite@7.2.6(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/pretty-format': 4.0.16 + '@vitest/runner': 4.0.16 + '@vitest/snapshot': 4.0.16 + '@vitest/spy': 4.0.16 + '@vitest/utils': 4.0.16 es-module-lexer: 1.7.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -100524,11 +100838,11 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.2.6(@types/node@22.19.7)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.2.6(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 - '@types/node': 22.19.7 + '@types/node': 25.0.3 happy-dom: 20.0.11 jsdom: 27.4.0(canvas@2.11.2) transitivePeerDependencies: @@ -100544,15 +100858,15 @@ snapshots: - tsx - yaml - vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.10)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.1.0)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.3.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: - '@vitest/expect': 4.0.18 - '@vitest/mocker': 4.0.18(msw@2.12.4(@types/node@25.0.10)(typescript@5.9.3))(vite@7.2.6(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) - '@vitest/pretty-format': 4.0.18 - '@vitest/runner': 4.0.18 - '@vitest/snapshot': 4.0.18 - '@vitest/spy': 4.0.18 - '@vitest/utils': 4.0.18 + '@vitest/expect': 4.0.16 + '@vitest/mocker': 4.0.16(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(vite@7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/pretty-format': 4.0.16 + '@vitest/runner': 4.0.16 + '@vitest/snapshot': 4.0.16 + '@vitest/spy': 4.0.16 + '@vitest/utils': 4.0.16 es-module-lexer: 1.7.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -100564,11 +100878,51 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.2.6(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 - '@types/node': 25.0.10 + '@types/node': 25.1.0 + happy-dom: 20.0.11 + jsdom: 27.3.0 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml + + vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.1.0)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + dependencies: + '@vitest/expect': 4.0.16 + '@vitest/mocker': 4.0.16(msw@2.12.4(@types/node@25.1.0)(typescript@5.9.3))(vite@7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/pretty-format': 4.0.16 + '@vitest/runner': 4.0.16 + '@vitest/snapshot': 4.0.16 + '@vitest/spy': 4.0.16 + '@vitest/utils': 4.0.16 + es-module-lexer: 1.7.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.0.3 + vite: 7.2.6(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + why-is-node-running: 2.3.0 + optionalDependencies: + '@opentelemetry/api': 1.9.0 + '@types/node': 25.1.0 happy-dom: 20.0.11 jsdom: 27.4.0(canvas@2.11.2) transitivePeerDependencies: @@ -100584,10 +100938,10 @@ snapshots: - tsx - yaml - vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.5)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(happy-dom@20.0.11)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@vitest/expect': 4.0.18 - '@vitest/mocker': 4.0.18(msw@2.12.4(@types/node@25.3.5)(typescript@5.9.3))(vite@7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 4.0.18(msw@2.12.4(@types/node@25.0.3)(typescript@5.9.3))(vite@7.2.6(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 4.0.18 '@vitest/runner': 4.0.18 '@vitest/snapshot': 4.0.18 @@ -100604,11 +100958,11 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.2.6(@types/node@25.3.5)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.2.6(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 - '@types/node': 25.3.5 + '@types/node': 25.0.3 happy-dom: 20.0.11 jsdom: 27.4.0(canvas@2.11.2) transitivePeerDependencies: @@ -100659,7 +101013,7 @@ snapshots: wait-on@8.0.5: dependencies: - axios: 1.13.6 + axios: 1.13.2 joi: 18.0.2 lodash: 4.17.23 minimist: 1.2.8 @@ -100700,7 +101054,7 @@ snapshots: dependencies: buffer-alloc: 1.2.0 buffer-from: 1.1.2 - debug: 2.6.9 + debug: 4.4.3(supports-color@5.5.0) readable-stream: 1.1.14 stream-parser: 0.3.1 transitivePeerDependencies: @@ -100715,15 +101069,6 @@ snapshots: ms: 3.0.0-canary.202508261828 supports-color: 10.2.2 - web-resource-inliner@6.0.1: - dependencies: - ansi-colors: 4.1.3 - escape-goat: 3.0.0 - htmlparser2: 5.0.1 - mime: 2.6.0 - node-fetch: 3.3.2 - valid-data-url: 3.0.1 - web-streams-polyfill@3.3.3: {} web-streams-polyfill@4.0.0-beta.3: {} @@ -100892,7 +101237,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.20 + which-typed-array: 1.1.19 which-collection@1.0.2: dependencies: @@ -100906,6 +101251,16 @@ snapshots: which-pm-runs@1.1.0: optional: true + which-typed-array@1.1.19: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 @@ -100924,6 +101279,10 @@ snapshots: dependencies: isexe: 2.0.0 + which@6.0.0: + dependencies: + isexe: 3.1.1 + whois@2.16.1: dependencies: socks: 2.8.7 @@ -100997,7 +101356,7 @@ snapshots: workbox-build@6.6.0(@types/babel__core@7.20.5): dependencies: - '@apideck/better-ajv-errors': 0.3.6(ajv@8.18.0) + '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) '@babel/core': 7.28.5 '@babel/preset-env': 7.28.5(@babel/core@7.28.5) '@babel/runtime': 7.28.4 @@ -101005,7 +101364,7 @@ snapshots: '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.2) '@rollup/plugin-replace': 2.4.2(rollup@2.79.2) '@surma/rollup-plugin-off-main-thread': 2.2.3 - ajv: 8.18.0 + ajv: 8.17.1 common-tags: 1.8.2 fast-json-stable-stringify: 2.1.0 fs-extra: 9.1.0 @@ -101040,7 +101399,7 @@ snapshots: workbox-build@7.4.0(@types/babel__core@7.20.5): dependencies: - '@apideck/better-ajv-errors': 0.3.6(ajv@8.18.0) + '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) '@babel/core': 7.28.5 '@babel/preset-env': 7.28.5(@babel/core@7.28.5) '@babel/runtime': 7.28.4 @@ -101049,7 +101408,7 @@ snapshots: '@rollup/plugin-replace': 2.4.2(rollup@2.79.2) '@rollup/plugin-terser': 0.4.4(rollup@2.79.2) '@surma/rollup-plugin-off-main-thread': 2.2.3 - ajv: 8.18.0 + ajv: 8.17.1 common-tags: 1.8.2 fast-json-stable-stringify: 2.1.0 fs-extra: 9.1.0 @@ -101285,7 +101644,7 @@ snapshots: xml-js@1.6.11: dependencies: - sax: 1.4.4 + sax: 1.4.3 xml-name-validator@4.0.0: {} @@ -101293,12 +101652,12 @@ snapshots: xml2js@0.5.0: dependencies: - sax: 1.4.4 + sax: 1.4.3 xmlbuilder: 11.0.1 xml2js@0.6.2: dependencies: - sax: 1.4.4 + sax: 1.4.3 xmlbuilder: 11.0.1 xml@1.0.1: {} @@ -101424,6 +101783,11 @@ snapshots: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 + yauzl@3.2.0: + dependencies: + buffer-crc32: 0.2.13 + pend: 1.2.0 + yjs@13.6.28: dependencies: lib0: 0.2.116 @@ -101485,25 +101849,21 @@ snapshots: dependencies: zod: 4.2.1 - zod-to-json-schema@3.25.1(zod@4.2.1): + zod-to-json-schema@3.25.0(zod@4.3.6): dependencies: - zod: 4.2.1 + zod: 4.3.6 - zod-validation-error@4.0.2(zod@3.25.76): + zod-validation-error@4.0.2(zod@4.2.1): dependencies: - zod: 3.25.76 + zod: 4.2.1 zod@3.23.8: {} - zod@3.24.1: {} - zod@3.25.76: {} zod@4.2.1: {} - zone.js@0.11.8: - dependencies: - tslib: 2.8.1 + zod@4.3.6: {} zone.js@0.16.0: {} @@ -101522,14 +101882,6 @@ snapshots: immer: 10.2.0 react: 19.2.1 - zustand@4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@18.3.1): - dependencies: - use-sync-external-store: 1.6.0(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.11 - immer: 11.1.0 - react: 18.3.1 - zustand@4.5.7(@types/react@18.3.11)(immer@11.1.0)(react@19.2.1): dependencies: use-sync-external-store: 1.6.0(react@19.2.1) @@ -101545,13 +101897,6 @@ snapshots: react: 19.2.1 use-sync-external-store: 1.6.0(react@19.2.1) - zustand@5.0.9(@types/react@18.3.11)(immer@11.1.0)(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)): - optionalDependencies: - '@types/react': 18.3.11 - immer: 11.1.0 - react: 18.3.1 - use-sync-external-store: 1.6.0(react@18.3.1) - zustand@5.0.9(@types/react@18.3.11)(immer@11.1.0)(react@19.2.1)(use-sync-external-store@1.6.0(react@19.2.1)): optionalDependencies: '@types/react': 18.3.11 diff --git a/prompts/README.md b/prompts/README.md index 24017b808da..8a03505d961 100644 --- a/prompts/README.md +++ b/prompts/README.md @@ -66,12 +66,6 @@ Each agent prompt is stored as a standalone file, and the Meta-Router chooses th | `marketing.master-generator@v1.yaml` | Master system for generating/auditing all marketing artifacts | | `marketing.artifact-perfection@v1.yaml` | Sub-agent for refining specific marketing content | -### Competitive Intelligence - -| File | Purpose | -|------|---------| -| `competitive/competitive-intel-subsumption-engine@v4_1.md` | Switchboard-standard protocol for competitive intelligence subsumption (clean-room, evidence-first). | - --- ## Usage diff --git a/prompts/governance/gitattributes-lfs-exception@v1.md b/prompts/governance/gitattributes-lfs-exception@v1.md index ef71cdaf076..9011fa36736 100644 --- a/prompts/governance/gitattributes-lfs-exception@v1.md +++ b/prompts/governance/gitattributes-lfs-exception@v1.md @@ -1,16 +1,19 @@ # Prompt: gitattributes-lfs-exception@v1 ## Purpose + Define a governed workflow for adding or adjusting `.gitattributes` exceptions so binary assets can be checked out without Git LFS smudge failures while preserving repository integrity. ## Scope + - `.gitattributes` - `docs/roadmap/STATUS.json` - `prompts/registry.yaml` - `prompts/governance/gitattributes-lfs-exception@v1.md` ## Instructions + 1. Identify the affected file patterns and verify why LFS pointer expectations are incorrect. 2. Add the minimal `.gitattributes` exception needed (avoid broad patterns). 3. Update `docs/roadmap/STATUS.json` with the change rationale and timestamp. @@ -18,5 +21,6 @@ can be checked out without Git LFS smudge failures while preserving repository i 5. Ensure the PR metadata references the new prompt ID and hash. ## Verification + - `git status` is clean after checkout with `GIT_LFS_SKIP_SMUDGE=1`. - `.gitattributes` contains the new exception entry. diff --git a/prompts/governance/jest-network-teardown-shim@v1.md b/prompts/governance/jest-network-teardown-shim@v1.md index 148a96ce2fd..d8c16aa1671 100644 --- a/prompts/governance/jest-network-teardown-shim@v1.md +++ b/prompts/governance/jest-network-teardown-shim@v1.md @@ -1,27 +1,31 @@ # Prompt: Jest Network Teardown Shim ## Intent + Add an opt-in Jest setup shim that tracks and closes network servers and timers when NO_NETWORK_LISTEN=true to reduce open handle hangs, while -preserving the existing governed test and LFS exception updates in this PR. +consolidating the scope to include governed test updates, LFS exception +updates, and earlier prompt file edits in this PR. ## Scope + - .gitattributes +- PR_DESCRIPTION.md - server/tests/setup/jest.setup.cjs -- server/src/hunting/ThreatHuntingOrchestrator.ts -- server/src/hunting/__tests__/ThreatHuntingOrchestrator.test.ts - docs/roadmap/STATUS.json - prompts/registry.yaml - prompts/governance/gitattributes-lfs-exception@v1.md - prompts/governance/nl-graph-query-test-tson-fix@v1.md - prompts/governance/jest-network-teardown-shim@v1.md -- server/src/ai/nl-graph-query/__tests__/nl-graph-query.routes.test.ts ## Constraints + - Keep behavior unchanged unless NO_NETWORK_LISTEN=true. -- Allow production runtime changes only when needed to safely dispose shared listeners. +- Do not modify production runtime code. - Prefer minimal, reversible edits. +- Metadata-only consolidation for registries and PR descriptions. ## Verification + - Run focused Jest suites or full unit tests when feasible. - Confirm prompt registry integrity checks pass. diff --git a/prompts/governance/nl-graph-query-test-tson-fix@v1.md b/prompts/governance/nl-graph-query-test-tson-fix@v1.md index 51601944dcc..840df6fda34 100644 --- a/prompts/governance/nl-graph-query-test-tson-fix@v1.md +++ b/prompts/governance/nl-graph-query-test-tson-fix@v1.md @@ -1,17 +1,19 @@ # Prompt: nl-graph-query-test-tson-fix@v1 ## Purpose + Ensure nl-graph-query route tests use a supported JSON body parser when `express.tson` is unavailable in the test runtime. ## Scope + - `.gitattributes` - `docs/roadmap/STATUS.json` - `prompts/registry.yaml` - `prompts/governance/gitattributes-lfs-exception@v1.md` - `prompts/governance/nl-graph-query-test-tson-fix@v1.md` -- `server/src/ai/nl-graph-query/__tests__/nl-graph-query.routes.test.ts` ## Instructions + 1. Replace unsupported `express.tson()` usage in the nl-graph-query route test with `express.json()`. 2. Keep the change minimal and test-scoped; avoid production runtime behavior changes. 3. Update `docs/roadmap/STATUS.json` with the new revision note and timestamp. @@ -19,4 +21,5 @@ Ensure nl-graph-query route tests use a supported JSON body parser when `express 5. Ensure PR metadata references the new prompt hash and declared scope. ## Verification + - `pnpm test:unit` passes the nl-graph-query route tests when the environment is otherwise healthy. diff --git a/prompts/registry.yaml b/prompts/registry.yaml index b3978e82189..2b3a9c0316b 100644 --- a/prompts/registry.yaml +++ b/prompts/registry.yaml @@ -1,393 +1,5 @@ version: 1 prompts: - - id: saas-crash-2026-positioning-pack - version: v1 - path: prompts/positioning/saas-crash-2026@v1.md - sha256: 1acce34de92a05653ef32c23fed94b971bf06b529c6d76fcb9c8ad43c7d48ed8 - description: Create the saas-crash-2026 positioning pack, claim registry, and repo validation alignment. - scope: - paths: - - docs/positioning/saas-crash-2026.md - - docs/positioning/claim-registry.md - - repo_assumptions.md - - docs/roadmap/STATUS.json - - prompts/positioning/saas-crash-2026@v1.md - - prompts/registry.yaml - domains: - - documentation - - positioning - - governance - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: io-cogwar-radar-brief - version: v1 - path: prompts/briefs/io-cogwar-radar-brief@v1.md - sha256: 178dc352c7c343c12cea0e88a595e088049a33f1ef53e4ef565a1294336934fb - description: Create the defensive-only IO/CogWar Radar 2027 brief and update roadmap status. - scope: - paths: - - docs/briefs/io-cogwar-radar-2027.md - - docs/roadmap/STATUS.json - - prompts/briefs/io-cogwar-radar-brief@v1.md - - prompts/registry.yaml - domains: - - documentation - - governance - - io-cogwar - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: structured-content-primitives - version: v1 - path: prompts/content/structured-content-primitives@v1.md - sha256: 258e133b40b69ec695a0a9bd1992da5eca9aa092af5471789c43563f512b706e - description: Define unified Brief/Claim/Block content primitives with evidence and governance alignment. - scope: - paths: - - docs/content/ - - schemas/content/ - - docs/roadmap/STATUS.json - - prompts/content/structured-content-primitives@v1.md - - prompts/registry.yaml - - agents/examples/STRUCTURED_CONTENT_PRIMITIVES_20260131.json - domains: - - content - - governance - - documentation - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: semhl-required-checks - version: v1 - path: prompts/ci/semhl-required-checks@v1.md - sha256: 09fb75e7c769abfdcb3eaab9322f2160e92cbf08b0f1fe62eaac022aca644147 - description: Update semantic highlighting required check guidance and roadmap status notes. - scope: - paths: - - required_checks.todo.md - - docs/roadmap/STATUS.json - - prompts/ci/semhl-required-checks@v1.md - - prompts/registry.yaml - - agents/examples/SEMHL_REQUIRED_CHECKS_PR1.json - domains: - - documentation - - governance - - ci - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: deterministic-intel-ingest - version: v1 - path: prompts/ingest/deterministic-intel-ingest@v1.md - sha256: bca50247042fc4cff08a386550ee5f998e78311c719fa0fa882589390aadf069 - description: Integrate deterministic intel-ingestion core scaffolding with evidence artifacts and CI gate. - scope: - paths: - - packages/__init__.py - - packages/intel_ingest/ - - cli/intel_ingest.py - - schemas/source_document.schema.json - - ci/gates/intel_ingest_determinism.sh - - tests/test_source_document_roundtrip.py - - docs/roadmap/STATUS.json - - prompts/ingest/deterministic-intel-ingest@v1.md - - prompts/registry.yaml - domains: - - ingest - - governance - - ci - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: ru-ua-cogwar-lab - version: v1 - path: prompts/cogwar/ru-ua-cogwar-lab@v1.md - sha256: 68b953ae92fc46eb75c9b2875842e05b12f01bfbc3a53866bf5f609014e33306 - description: Deterministic cogwar campaign schema, examples, packs, and governance docs. - scope: - paths: - - schemas/cogwar/ - - examples/cogwar/ru-ua/ - - scripts/cogwar/ - - scripts/monitoring/ru-ua-cogwar-lab-drift.mjs - - dist/cogwar/ - - tests/cogwar/ - - docs/standards/ru-ua-cogwar-lab.md - - docs/security/data-handling/ru-ua-cogwar-lab.md - - docs/ops/runbooks/ru-ua-cogwar-lab.md - - docs/roadmap/STATUS.json - - prompts/cogwar/ru-ua-cogwar-lab@v1.md - - prompts/registry.yaml - domains: - - governance - - documentation - - cogwar - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: keel-evidence-templates - version: v1 - path: prompts/evidence/keel-evidence-templates@v1.md - sha256: e5a30955d6df4cfea44900137428a5dc84f25c8a9b22b3abdfc67b18a7ceca1d - description: Align Keel evidence templates and index entries for ARCH/STAB/DSCL/BENCH bundles. - scope: - paths: - - evidence/index.json - - summit/evidence/templates/keel-arch/ - - summit/evidence/templates/keel-stab/ - - summit/evidence/templates/keel-dscl/ - - summit/evidence/templates/keel-bench/ - - docs/roadmap/STATUS.json - - packages/decision-ledger/decision_ledger.json - - prompts/evidence/keel-evidence-templates@v1.md - - prompts/registry.yaml - - agents/examples/KEEL_EVIDENCE_TEMPLATES_20260130.json - domains: - - evidence - - governance - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: svc-repo-recon - version: v1 - path: prompts/governance/svc-repo-recon@v1.md - sha256: 6e0e7b88347517f8de0e6d1ae29bb6511cbe4a985702e2dc6875cee47812b54a - description: Capture verified repo assumptions and guardrails for Summit Verified Change (SVC) recon. - scope: - paths: - - repo_assumptions.md - - docs/roadmap/STATUS.json - - prompts/governance/svc-repo-recon@v1.md - - prompts/registry.yaml - domains: - - governance - - documentation - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: background-sessions-pr1-evidence-scaffold - version: v1 - path: prompts/background-sessions/pr1-evidence-scaffold.md - sha256: aeec36297d17ca2543569fd819c42aab3efcedac37b7c99df00865639ed97f0b - description: Scaffold Background Sessions evidence schemas, fixtures, and checks discovery. - scope: - paths: - - modules/background_sessions/ - - docs/roadmap/STATUS.json - - prompts/background-sessions/pr1-evidence-scaffold.md - - prompts/registry.yaml - domains: - - governance - - evidence - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: promptspec-foundation-lane1 - version: v1 - path: prompts/promptspec/promptspec-foundation-lane1@v1.md - sha256: 50e7d7c4e80bd32ecf7a092f7450e018f295438cbd3bbc20be48eddb32a3a904 - description: Scaffold PromptSpec, evidence index, eval rubric, and policy gate foundations. - scope: - paths: - - promptspec/ - - schemas/promptspec.schema.json - - schemas/evidence.index.schema.json - - evidence/index.py - - evidence/write_evidence.py - - eval/runner.py - - eval/rubrics/ - - eval/fixtures/ - - policy/gate.py - - policy/rules.json - - docs/required_checks.todo.md - - dependency_delta.md - - tests/policy/test_denies_guarantees.py - - tests/evidence/test_index_determinism.py - - tests/promptspec/ - - docs/roadmap/STATUS.json - - packages/decision-ledger/decision_ledger.json - - prompts/promptspec/promptspec-foundation-lane1@v1.md - - prompts/registry.yaml - - agents/examples/PROMPTSPEC_FOUNDATION_LANE1_20260207.json - domains: - - governance - - evidence - - eval - - policy - - promptspec - - docs - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: integrations-backlog-sync - version: v1 - path: prompts/integrations/backlog-sync.md - sha256: e196bfe98de03f7f4ef7a63414c4fad60b171f9282989b719f2bdda25d6668dc - description: Align Jira/Linear/GitHub Projects backlog metadata for priority lanes. - scope: - paths: - - docs/integrations/ - - scripts/verify-integrations.ts - - docs/roadmap/STATUS.json - - prompts/integrations/ - domains: - - integrations - - program-management - - governance - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: eval-baseline-ratchet - version: v1 - path: prompts/eval/establish-eval-baselines@v1.md - sha256: 83812cd2cffecec04a8e3205951fe85a553f43e16ecde45aa23f7c8950ee8d63 - description: Establish eval baseline gates and ratchet guidance for CI readiness. - scope: - paths: - - eval/ - - tests/eval/ - - packages/decision-ledger/decision_ledger.json - - docs/roadmap/STATUS.json - - prompts/eval/establish-eval-baselines@v1.md - - prompts/registry.yaml - - agents/examples/ - domains: - - eval - - ci - - governance - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: notion-issue-migration-fix - version: v1 - path: prompts/integrations/notion-issue-migration-fix.md - sha256: 51aa613e22286ce28308f0b67ade969829803d3681045b8be335ea5bb817c50c - description: Wire Notion issue migration verification and setup guidance. - scope: - paths: - - docs/integrations/ - - scripts/verify-integrations.ts - - docs/roadmap/STATUS.json - - prompts/integrations/ - - prompts/registry.yaml - - agents/examples/ - - .env.example - domains: - - integrations - - governance - - documentation - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: sera-cli-proxy - version: v1 - path: prompts/integrations/sera-cli-proxy@v1.md - sha256: 274b54b3a12f321fa647087bc2cc529c994dee37802c570a14abf7d2a05d3504 - description: Implement Summit-native SERA CLI-style proxy integration with evidence artifacts and guardrails. - scope: - paths: - - cli/src/commands/sera-proxy.ts - - cli/src/sera-proxy/ - - cli/__tests__/sera-proxy.test.ts - - docs/standards/sera-cli.md - - docs/security/data-handling/sera-cli.md - - docs/ops/runbooks/sera-cli.md - - docs/roadmap/STATUS.json - - prompts/integrations/sera-cli-proxy@v1.md - - prompts/registry.yaml - domains: - - integrations - - cli - - governance - - documentation - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - id: agent-native-loop-n4 version: v1 path: prompts/governance/agent-native-loop-n4.md @@ -418,31 +30,6 @@ prompts: allowed_operations: - create - edit - - id: proof-carrying-plans-evidence-replay - version: v1 - path: prompts/maestro/proof-carrying-plans-evidence-replay.md - sha256: d9b0323e9782df87a0cef430e42eb60e3dd8e476e2b446a602528a9e67f17592 - description: Proof-carrying plan IR, action contracts, evidence bundles, and deterministic replay harness. - scope: - paths: - - agents/orchestrator/ - - prompts/maestro/ - - agents/examples/ - - docs/roadmap/STATUS.json - - prompts/registry.yaml - domains: - - orchestration - - evidence - - governance - verification: - tiers_required: - - A - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - id: runbooks-docs-update version: v1 path: prompts/docs/runbooks-update@v1.md @@ -468,85 +55,6 @@ prompts: allowed_operations: - create - edit - - id: longhorizon-ai-native-engineering-team - version: v1 - path: prompts/longhorizon/longhorizon-ai-native-engineering-team.md - sha256: 2fc49a1292583add618fc867a3a3fd70962222b7ae78d82cfcf238cdb1dadf43 - description: LongHorizon orchestration with MAP-Elites, island model, and stateful memory. - scope: - paths: - - src/longhorizon/ - - src/cli/maestro-longhorizon.ts - - tests/longhorizon/ - - docs/longhorizon.md - - examples/longhorizon/ - - prompts/longhorizon/ - - prompts/registry.yaml - - agents/examples/longhorizon-task.json - - docs/roadmap/STATUS.json - domains: - - orchestration - - governance - - evidence - - memory - - evaluation - verification: - tiers_required: - - B - - id: nog-governed-ops-docs - version: v1 - path: prompts/docs/nog-governed-ops-docs@v1.md - sha256: 671b5dcfc2e1fe6ca3e0fb75a84a7e9cbbc661f8cb07ebdc1529699bd88c4646 - description: Document governed narrative risk ops standards, security handling, and runbook updates. - scope: - paths: - - repo_assumptions.md - - docs/standards/nog-governed-agents.md - - docs/security/data-handling/nog-governed-agents.md - - docs/ops/runbooks/nog-governed-agents.md - - docs/roadmap/STATUS.json - - agents/examples/NOG_GOVERNED_OPS_DOCS_TASK.json - - prompts/docs/nog-governed-ops-docs@v1.md - - prompts/registry.yaml - domains: - - documentation - - governance - - security - - operations - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: narrative-dominance-operationalization - version: v1 - path: prompts/docs/narrative-dominance-operationalization@v1.md - sha256: 208130d1771ddeba7470e364b0ac00adb93e6096731339981975c56830873a13 - description: Expand narrative dominance standards with operational high-signal extensions for determinism and longitudinal analysis. - scope: - paths: - - docs/standards/narrative-dominance-tech.md - - docs/roadmap/STATUS.json - - agents/examples/NARRATIVE_DOMINANCE_OPERATIONALIZATION_TASK.json - - prompts/docs/narrative-dominance-operationalization@v1.md - - prompts/registry.yaml - domains: - - documentation - - governance - - narrative-intel - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - id: companyos-sprint-04 version: v1 path: prompts/companyos/sprint-04-residency-seams-canary-tenant-onboarding.md @@ -571,124 +79,6 @@ prompts: allowed_operations: - create - edit - - id: maestro-longrun-job-engine - version: v1 - path: prompts/engineering/maestro-longrun-job-engine.md - sha256: 32faf8eb39eea30e6bcaa8645727a9a5f2665bcd335b68e50e87eeb2d5f1e1e3 - description: Implement Maestro Long-Run Job Engine with governed checkpoints, budgets, and CI gates. - scope: - paths: - - libs/maestro/longrun/ - - scripts/ci/ - - docs/maestro/ - - .github/workflows/ - - docs/roadmap/STATUS.json - - agents/examples/ - - prompts/engineering/maestro-longrun-job-engine.md - - prompts/registry.yaml - domains: - - maestro - - governance - - ci - - id: federated-campaign-radar-implementation - version: v1 - path: prompts/federated-campaign-radar-implementation.md - sha256: f24cb004a3529f2735297dc5d579498b74aa5e6decee63dcb73fc0c5e2678b6f - description: Implement Federated Campaign Radar schemas, services, policies, routes, and documentation. - scope: - paths: - - docs/federated-campaign-radar*.md - - docs/runbooks/federated-campaign-radar*.md - - docs/roadmap/STATUS.json - - schemas/fcr/ - - server/src/services/fcr/ - - server/src/routes/federated-campaign-radar.ts - - server/src/app.ts - - server/policies/ - - server/src/provenance/ - - fixtures/fcr-sample.json - - openapi/spec.yaml - - agents/examples/ - - artifacts/agent-runs/ - - prompts/federated-campaign-radar-implementation.md - - prompts/registry.yaml - domains: - - federation - - privacy - - governance - - provenance - - observability - - api - verification: - tiers_required: - - B - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: implement-context-shell - version: v1 - path: prompts/implement/context-shell@v1.md - sha256: 5144cf0c5d9e3e0a7f382e5e319914b1dd234d3cc1115718e0fadc914a496985 - description: Implement Context Shell with policy gating, evidence logging, and Maestro integration. - scope: - paths: - - libs/context-shell/ - - server/src/maestro/ - - docs/runbooks/ - - docs/roadmap/STATUS.json - - jest.config.cjs - - jest.projects.cjs - - agents/examples/ - - prompts/implement/context-shell@v1.md - - prompts/registry.yaml - domains: - - tooling - - governance - - maestro - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: summit-mcp-server-v1 - version: v1 - path: prompts/mcp/summit-mcp-server-v1.md - sha256: e8991ef35612bc87b3689b667e2d67797e69f5947efe7eac15253cce907358f9 - description: Summit MCP server vertical slice with progressive disclosure, policy gating, and evidence bundles. - scope: - paths: - - mcp/summit_server/ - - skills/mcp/ - - skills/README.md - - docs/mcp-server.md - - docs/roadmap/STATUS.json - - fixtures/mcp/ - - tests/mcp/ - - agents/examples/ - - prompts/mcp/summit-mcp-server-v1.md - - prompts/registry.yaml - domains: - - mcp - - governance - - evidence - - policy - - transport - verification: - tiers_required: - - B - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - id: adr-pr-template-cleanup version: v1 path: prompts/docs/adr-pr-template-cleanup@v1.md @@ -739,180 +129,22 @@ prompts: allowed_operations: - create - edit - - id: competitive-subsumption-protocol-v4-1 - version: v1 - path: prompts/competitive/competitive-subsumption-protocol-v4.1.md - sha256: a86aa6168b2b2af54a996d0bb7c00a0cdbe8b56bb2af629b84685640ca314e5e - description: Summit competitive subsumption protocol (evidence-first, deterministic, patch-first). - scope: - paths: - - docs/ci/competitive-intel/ - - docs/ci/targets/ - - docs/ci/evidence/ - - docs/roadmap/STATUS.json - - prompts/competitive/competitive-subsumption-protocol-v4.1.md - - prompts/registry.yaml - - agents/examples/ - domains: - - documentation - - competitive-intel - - product-strategy - - governance - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: sar-agentic-app-runtime - version: v1 - path: prompts/architecture/sar-agentic-app-runtime@v1.md - sha256: 0c2ea2abded4bee786ab44a93066948cac8bff1dc60d94cb3cd56faa15c367d8 - description: Summit App Runtime architecture, governance, and compatibility plan with SAR deliverables. - scope: - paths: - - docs/architecture/sar-agentic-app-runtime.md - - prompts/architecture/sar-agentic-app-runtime@v1.md - - prompts/registry.yaml - domains: - - architecture - - governance - - documentation - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: pr-17714-update - version: v1 - path: prompts/pr/pr-17714-update@v1.md - sha256: 197e7e05eb008021a4b9b25ea569189ac652b99b5deeda908b979aa678a1b328 - description: Update PR 17714 scoped changes. - scope: - paths: - - docs/ - - nds/ - - prompts/pr/pr-17714-update@v1.md - - prompts/registry.yaml - domains: - - documentation - - governance - - operations - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: pr-17730-update - version: v1 - path: prompts/pr/pr-17730-update@v1.md - sha256: 63e31d8f30399c75de748c1841630ba4cb10d216dabe99757c5e142711c54417 - description: Update PR 17730 documentation and roadmap content. - scope: - paths: - - docs/ - - prompts/pr/pr-17730-update@v1.md - - prompts/registry.yaml - domains: - - documentation - - governance - - ip - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: lazy-mcp-skillpacks - version: v1 - path: prompts/skillpacks/lazy-mcp-skillpacks@v1.md - sha256: a5127a0addcbc97f6f863d5a02ee286c0267f44abe5e39f24934f9e7d717eee8 - description: Implement lazy-loaded MCP skillpacks with adaptive sharding and governance evidence. - scope: - paths: - - packages/agent-skillpacks/ - - .summit/skillpacks/ - - docs/skillpacks-lazy-mcp.md - - docs/roadmap/STATUS.json - - artifacts/tool-loading-report.json - - artifacts/tool-loading-report.md - - agents/examples/ - - prompts/skillpacks/ - - prompts/registry.yaml - domains: - - agent-tooling - - governance - - mcp - - evidence - verification: - tiers_required: - - B - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: summit-labs-scaffold + - id: adr-pr-template-cleanup version: v1 - path: prompts/labs/summit-labs-scaffold-v1.md - sha256: 4497084e918cf58c6e8e4394085706d5cf94484a7fcb53cc63853592839c952b - description: Scaffold Summit Labs documentation, preview spec, and promotion gates. + path: prompts/docs/adr-pr-template-cleanup@v1.md + sha256: 429dc47c69fb43ee25eff48a54868fc88e2faf48f8de6a213d702794d2cb3d07 + description: Update PR and ADR templates for current workflow guidance and formatting. scope: paths: - - labs/ - - docs/roadmap/STATUS.json + - .github/ + - docs/ADR/ - agents/examples/ - - prompts/labs/ + - prompts/docs/adr-pr-template-cleanup@v1.md - prompts/registry.yaml domains: - - governance - documentation - - roadmap - - labs - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - create - - edit - - id: kimik25-evidence-scaffold - version: v1 - path: prompts/evidence/kimik25-evidence-scaffold@v1.md - sha256: bf7fa8fb88d42633c7d7fe399403da277b52606ac82d2279ecad840437972059 - description: Scaffold KIMIK25 evidence bundles, fixtures, and verification checks. - scope: - paths: - - evidence/ - - ci/check_evidence.py - - tools/emit_evidence.py - - tests/test_evidence_schemas.py - - .gitignore - - docs/roadmap/STATUS.json - - prompts/evidence/kimik25-evidence-scaffold@v1.md - - prompts/registry.yaml - domains: - - evidence - governance - - ci - - testing + - quality verification: tiers_required: - C @@ -922,28 +154,3 @@ prompts: allowed_operations: - create - edit - - id: jest-entities-override - version: v1 - path: prompts/maintenance/jest-entities-override@v1.md - sha256: f1ef077d68bb34b6bf128b0f4aa15cc8c27a3ded28c0106f695ee042095b9370 - description: Pin entities for parse5/Jest compatibility and update governance artifacts. - scope: - paths: - - package.json - - pnpm-lock.yaml - - docs/roadmap/STATUS.json - - packages/decision-ledger/decision_ledger.json - - prompts/maintenance/jest-entities-override@v1.md - - prompts/registry.yaml - domains: - - dependencies - - testing - - governance - verification: - tiers_required: - - C - debt_budget: - permitted: 0 - retirement_target: 0 - allowed_operations: - - edit diff --git a/pyproject.toml b/pyproject.toml index 13998029b97..72347a7981e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,17 +7,8 @@ name = "intelgraph" version = "4.0.0" description = "IntelGraph Core Repository" readme = "README.md" -requires-python = ">=3.10" -dependencies = [ - "opentelemetry-api>=1.20.0", - "opentelemetry-sdk>=1.20.0", - "opentelemetry-exporter-otlp>=1.20.0", - "opentelemetry-instrumentation-fastapi", - "opentelemetry-instrumentation-logging", - "prometheus-fastapi-instrumentator", - "python-json-logger", - "structlog", -] +requires-python = ">=3.11" +dependencies = [] [project.optional-dependencies] otel = [] diff --git a/release-captain.sh b/release-captain.sh index daa8f848d62..2e388ae5eda 100755 --- a/release-captain.sh +++ b/release-captain.sh @@ -8,15 +8,6 @@ need gh need git need jq -PROMOTE_AUTO=false -while [[ "$#" -gt 0 ]]; do - case $1 in - --tag-and-promote) PROMOTE_AUTO=true ;; - --help) echo "Usage: $0 [--tag-and-promote]"; exit 0 ;; - esac - shift -done - echo "🔐 Checking GitHub auth..." gh auth status -h github.com >/dev/null @@ -132,18 +123,5 @@ gh run list --limit 10 --branch "$DEFAULT_BRANCH" \ echo "🧰 Required status checks:" gh api "/repos/$OWNER/$REPO/branches/$DEFAULT_BRANCH/protection" --jq '.required_status_checks.contexts' || true -# 7) Automated Promotion (Zero-Touch) -if [ "$PROMOTE_AUTO" = true ]; then - echo "🚀 Automated Promotion Triggered..." - NEXT_VERSION="v$(npm version patch --no-git-tag-version | sed 's/^v//')" - git add package.json server/package.json - git commit -m "chore(release): bump version to $NEXT_VERSION [skip ci]" || true - git tag "$NEXT_VERSION" - git push origin "$DEFAULT_BRANCH" --tags - - echo "🚢 Starting Canary Deployment for $NEXT_VERSION..." - VERSION="$NEXT_VERSION" bash scripts/production-canary.sh -fi - echo "✅ Done. Auto-label + Danger shipped, CI kicked, protections enforced." echo "Tip: run 'make discover.checks' anytime to see exact check names." diff --git a/repo_assumptions.md b/repo_assumptions.md index aef3e167bd5..6629fca925a 100644 --- a/repo_assumptions.md +++ b/repo_assumptions.md @@ -1,23 +1,43 @@ # repo_assumptions.md ## Verified -- Summit is a public repo: BrianCLong/summit -- README positions Summit as an Agentic AI OSINT Platform -- Stack includes Neo4j, Postgres, Redis, GraphQL -- Visible top-level dirs include connect, analysis, audit, .opa/policy, SECURITY, RUNBOOKS -- CI policy names include: - - Release Readiness Gate - - GA Gate - - Unit Tests & Coverage - - CI Core (Primary Gate) - -## Assumed -- New conflict/COP code can live under connect/, analysis/, audit/, docs/, scripts/monitoring/ -- Evidence objects can be introduced without breaking existing consumers if versioned -- JSON report artifacts are acceptable CI outputs - -## Must-not-touch -- Existing branch protection reconciler paths and governance policy semantics -- Existing production GraphQL schema names unless behind additive versioning -- Existing security policy docs without maintainer review -- Existing ingest connectors used in production unless feature-flagged + +- Repository contents inspected locally; subsumption bundles and verifier script exist. +- CI uses GitHub Actions workflows under `.github/workflows/`. +- Evidence schemas and index live under `evidence/`. + +## Assumed (validate ASAP) + +- Required status check names remain to be confirmed against branch protection. +- Summit prefers deterministic evidence: separate report/metrics/stamp artifacts. + +## Must-not-touch (until validated) + +- Public API surfaces in `packages/**` (no breaking changes). +- Existing GA gates / branch protection requirements. +- Deployment configs / secrets / infra definitions. + +## Validation plan + +- Enumerate required checks via GitHub branch protection UI/API. +- Confirm test runner (jest/vitest) and lint tooling. + +## Ingress NGINX Retirement Bundle (Assumptions) + +### Verified + +- Bundle manifest and docs are now present under `subsumption/ingress-nginx-retirement` and `docs/**`. + +### Assumed (validate) + +- GitHub Actions required checks can be updated to include bundle-specific gates. +- CI runners have Node.js 20+ available for the bundle verifier and deny gate scripts. + +### Must-not-touch (blast radius) + +- Runtime API surfaces and production deployment logic outside CI gating. + +### Validation plan + +- Confirm required check names in branch protection. +- Confirm CI execution for `scripts/ci/verify_subsumption_bundle.mjs`. diff --git a/required_checks.todo.md b/required_checks.todo.md index 46c7a645fd3..7fd495cf670 100644 --- a/required_checks.todo.md +++ b/required_checks.todo.md @@ -1,49 +1,23 @@ -# Required Checks Todo List +# Required Checks Discovery -This file tracks the status of CI check discovery and alignment with branch protection rules. +## Process to Identify Required Checks -## Current status -GitHub Actions currently executes many checks, but we need to verify their exact names as reported to the GitHub Status API to ensure our "Always Required" and "Conditional Required" policies match exactly what GitHub expects. +1. Go to repository Settings in GitHub. +2. Navigate to **Branches** -> **Branch protection rules**. +3. Edit the rule for `main` (or default branch). +4. Look for "Require status checks to pass before merging". +5. Copy the exact names of the required checks listed there. -## Known check names (Verify these) -- CI Core (Primary Gate) / CI Core Gate ✅ -- CI / Unit Tests -- GA Gate -- Release Readiness Gate -- SOC Controls -- Unit Tests & Coverage +## Temporary Gate Names (Implemented in Plan) -## Temporary names (Mapping needed) -We are using these names in our CI pipeline definitions, but they might be reported differently to GitHub: -- `gate/evidence` (PR2) -- `gate/supplychain` (PR4) -- `gate/fimi` (PR7) -- `sigstore-verify` (PR4) -- `lint` -- `typecheck` -- `build` -- `test` -- `ci-council-evidence` +We are using these names in our CI pipelines until the official required check names are confirmed and mapped. -Once official names are known, we will alias these jobs or rename them in the workflow files to match the branch protection rules. - -## Temporary gates (Summit Harness & Skills) -- ci/summit-harness-evidence -- ci/summit-tool-policy -- Use `skills/*` jobs with stable names (If actual required checks differ, add a rename PR that preserves history). -- summit-skillsec -- summit-evidence -- summit-harness-mock +- `ci:unit` - Runs unit tests for new packages. +- `ci:lint` - Runs linting. +- `ci:evidence` - Validates evidence artifacts (schemas, determinism). +- `ci:security-gates` - Runs deny-by-default and redaction tests. +- `verify:dependency-delta` - Ensures dependency changes are documented. -## Required checks discovery (one-time for Memory Privacy) -1) GitHub UI: Repo → Settings → Branches → Branch protection rules → note required checks -2) GitHub API: GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks -3) Update: ci/gates/memory_privacy_gates.yml to match exact check names -4) Add PR to rename temporary checks to required names once known +## Rename Plan -## Regulatory Early Warning Checks -- regulatory-ew-evidence -- regulatory-ew-backtest -- regulatory-ew-policy -- regulatory-ew-privacy -- regulatory-ew-deps +Once official names are known, we will alias these jobs or rename them in the workflow files to match the branch protection rules. diff --git a/requirements.in b/requirements.in index 1dfd4020479..2677e9d1196 100644 --- a/requirements.in +++ b/requirements.in @@ -15,21 +15,9 @@ PyYAML==6.0.3 prometheus_client langchain_community pytest-cov -pytest-asyncio -fakeredis requests urllib3>=2.6.0 openlineage-dbt -jsonschema>=4.0.0 +jsonschema beautifulsoup4 deepdiff -neo4j -psycopg2-binary -opentelemetry-api>=1.20.0 -opentelemetry-sdk>=1.20.0 -opentelemetry-exporter-otlp>=1.20.0 -opentelemetry-instrumentation-fastapi -opentelemetry-instrumentation-logging -prometheus-fastapi-instrumentator -python-json-logger -structlog diff --git a/schemas/evidence.metrics.schema.json b/schemas/evidence.metrics.schema.json index d58bc64d470..d23789df6ca 100644 --- a/schemas/evidence.metrics.schema.json +++ b/schemas/evidence.metrics.schema.json @@ -1,10 +1,10 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Evidence Metrics", "type": "object", "required": ["evidence_id", "metrics"], "properties": { "evidence_id": {"type": "string"}, "metrics": {"type": "object"} - }, - "additionalProperties": true + } } diff --git a/schemas/evidence.report.schema.json b/schemas/evidence.report.schema.json index 62f82b5c9e3..f7bdcfb8515 100644 --- a/schemas/evidence.report.schema.json +++ b/schemas/evidence.report.schema.json @@ -1,12 +1,12 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Evidence Report", "type": "object", - "required": ["evidence_id", "summary", "details", "policy_version"], + "required": ["evidence_id", "area", "summary", "artifacts"], "properties": { "evidence_id": {"type": "string"}, + "area": {"type": "string"}, "summary": {"type": "string"}, - "details": {"type": "object"}, - "policy_version": {"type": "string"} - }, - "additionalProperties": true + "artifacts": {"type": "array", "items": {"type": "string"}} + } } diff --git a/schemas/evidence.stamp.schema.json b/schemas/evidence.stamp.schema.json index 010967e3dcb..c795f77e4ca 100644 --- a/schemas/evidence.stamp.schema.json +++ b/schemas/evidence.stamp.schema.json @@ -1,10 +1,10 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Evidence Stamp", "type": "object", - "required": ["evidence_id", "generated_at_utc"], + "required": ["evidence_id", "created_at"], "properties": { "evidence_id": {"type": "string"}, - "generated_at_utc": {"type": "string"} - }, - "additionalProperties": true + "created_at": {"type": "string", "format": "date-time"} + } } diff --git a/schemas/evidence/evidence-id-consistency-stamp.schema.json b/schemas/evidence/evidence-id-consistency-stamp.schema.json index f422ea960c9..49e54878653 100644 --- a/schemas/evidence/evidence-id-consistency-stamp.schema.json +++ b/schemas/evidence/evidence-id-consistency-stamp.schema.json @@ -1,5 +1,5 @@ { - "$schema": "https://json-schema.org/draft-07/schema", + "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "schemas/evidence/evidence-id-consistency-stamp.schema.json", "type": "object", "additionalProperties": false, diff --git a/schemas/evidence/index.schema.json b/schemas/evidence/index.schema.json index 50e814a42b1..a2521e6e30e 100644 --- a/schemas/evidence/index.schema.json +++ b/schemas/evidence/index.schema.json @@ -1,15 +1,14 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Summit Evidence Index", "type": "object", - "required": ["version", "evidence"], + "required": ["items"], "properties": { - "version": { "type": "integer" }, - "evidence": { - "type": "object", - "additionalProperties": { + "version": { "type": ["string", "number"] }, + "items": { + "type": "array", + "items": { "type": "object", - "required": ["evidence_id", "files"], + "required": ["evidence_id"], "properties": { "evidence_id": { "type": "string" }, "files": { @@ -19,9 +18,15 @@ "report": { "type": "string" }, "metrics": { "type": "string" }, "stamp": { "type": "string" } - } - } - } + }, + "additionalProperties": false + }, + "report": { "type": "string" }, + "metrics": { "type": "string" }, + "stamp": { "type": "string" } + }, + "anyOf": [{ "required": ["files"] }, { "required": ["report", "metrics", "stamp"] }], + "additionalProperties": false } } }, diff --git a/schemas/evidence/metrics.schema.json b/schemas/evidence/metrics.schema.json index 477a5e2a047..e07d8f4561e 100644 --- a/schemas/evidence/metrics.schema.json +++ b/schemas/evidence/metrics.schema.json @@ -1,11 +1,9 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Summit Evidence Metrics", "type": "object", - "required": ["evidence_id"], "properties": { "evidence_id": { "type": "string" }, - "cosign_exit_code": { "type": "integer" } + "metrics": { "type": "object" } }, "additionalProperties": true } diff --git a/schemas/evidence/report.schema.json b/schemas/evidence/report.schema.json index 9fcf3f41698..ac1daa1cf34 100644 --- a/schemas/evidence/report.schema.json +++ b/schemas/evidence/report.schema.json @@ -3,150 +3,35 @@ "type": "object", "anyOf": [ { - "required": [ - "evidence_id", - "summary", - "artifacts" - ], + "required": ["evidence_id", "summary", "artifacts"], "properties": { - "evidence_id": { - "type": "string" - }, - "summary": { - "type": "string" - }, - "artifacts": { - "type": "array", - "items": { - "type": "string" - } - } + "evidence_id": { "type": "string" }, + "summary": { "type": "string" }, + "artifacts": { "type": "array", "items": { "type": "string" } } } }, { - "required": [ - "run_id", - "item_slug", - "evd_ids", - "summary", - "artifacts" - ], + "required": ["run_id", "item_slug", "evd_ids", "summary", "artifacts"], "properties": { - "run_id": { - "type": "string" - }, - "item_slug": { - "type": "string" - }, - "evd_ids": { - "type": "array", - "items": { - "type": "string" - } - }, + "run_id": { "type": "string" }, + "item_slug": { "type": "string" }, + "evd_ids": { "type": "array", "items": { "type": "string" } }, "summary": { "type": "object", - "required": [ - "what_ran", - "result" - ], + "required": ["what_ran", "result"], "properties": { - "what_ran": { - "type": "string" - }, - "result": { - "type": "string" - } + "what_ran": { "type": "string" }, + "result": { "type": "string" } } }, "artifacts": { "type": "object", "properties": { - "metrics": { - "type": "string" - }, - "stamp": { - "type": "string" - } + "metrics": { "type": "string" }, + "stamp": { "type": "string" } } } } - }, - { - "required": [ - "eid", - "summary" - ], - "properties": { - "eid": { - "type": "string" - }, - "summary": { - "type": "string" - } - } - }, - { - "title": "Summit Evidence Report (Strict)", - "required": [ - "evidence_id", - "subject", - "result", - "artifacts" - ], - "properties": { - "evidence_id": { - "type": "string", - "pattern": "^EVD-[A-Z0-9-]+-[A-Z]+-[0-9]{3}$" - }, - "subject": { - "type": "object", - "required": [ - "type", - "name" - ], - "properties": { - "type": { - "type": "string" - }, - "name": { - "type": "string" - }, - "digest": { - "type": "string" - } - } - }, - "result": { - "type": "string", - "enum": [ - "pass", - "fail" - ] - }, - "artifacts": { - "type": "array", - "items": { - "type": "object", - "required": [ - "kind", - "path" - ], - "properties": { - "kind": { - "type": "string" - }, - "path": { - "type": "string" - }, - "sha256": { - "type": "string" - } - } - } - } - }, - "additionalProperties": false } ], "additionalProperties": true diff --git a/schemas/evidence/stamp.schema.json b/schemas/evidence/stamp.schema.json index cf346fade93..7eec3608e8c 100644 --- a/schemas/evidence/stamp.schema.json +++ b/schemas/evidence/stamp.schema.json @@ -1,10 +1,13 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Summit Evidence Stamp", "type": "object", - "required": ["timestamp"], + "anyOf": [{ "required": ["created_at"] }, { "required": ["generated_at"] }], "properties": { - "timestamp": { "type": "string", "format": "date-time" } + "evidence_id": { "type": "string" }, + "created_at": { "type": "string", "format": "date-time" }, + "generated_at": { "type": "string", "format": "date-time" }, + "git_sha": { "type": "string" }, + "runner": { "type": "string" } }, "additionalProperties": true } diff --git a/scripts/check-semver-label.ts b/scripts/check-semver-label.ts index 5ae995171f9..917c2e908c2 100644 --- a/scripts/check-semver-label.ts +++ b/scripts/check-semver-label.ts @@ -32,7 +32,6 @@ function main() { const fixturePath = process.argv[2]; let prLabels: string[] = []; - let prTitle: string = ''; if (fixturePath) { // Read from fixture file (expected format: JSON array of strings or object mimicking PR event) @@ -41,9 +40,8 @@ function main() { const json = JSON.parse(content); if (Array.isArray(json)) { prLabels = json; - } else if (json.pull_request) { - prLabels = (json.pull_request.labels || []).map((l: any) => l.name); - prTitle = json.pull_request.title || ''; + } else if (json.pull_request && json.pull_request.labels) { + prLabels = json.pull_request.labels.map((l: any) => l.name); } else { console.error('Invalid fixture format.'); process.exit(1); @@ -57,15 +55,17 @@ function main() { try { const content = fs.readFileSync(eventPath, 'utf8'); const event: PREvent = JSON.parse(content); - if (event.pull_request) { - prLabels = (event.pull_request.labels || []).map(l => l.name); - prTitle = event.pull_request.title || ''; + if (event.pull_request && event.pull_request.labels) { + prLabels = event.pull_request.labels.map(l => l.name); } else { console.log('No pull_request found in event payload (not a PR event?). Exiting.'); process.exit(0); } } catch (e) { console.error(`Error reading GITHUB_EVENT_PATH: ${e.message}`); + // In warn-only mode, we shouldn't fail the build even if we can't read the event? + // But this is a script error, so maybe we should. + // Requirement says "warn-only mode" regarding the label check failing. process.exit(1); } } else { @@ -74,14 +74,6 @@ function main() { process.exit(1); } - // Auto-infer from title if no labels found - if (prLabels.length === 0 && prTitle) { - if (prTitle.startsWith('feat:')) prLabels.push('minor'); - else if (prTitle.startsWith('fix:')) prLabels.push('patch'); - else if (prTitle.startsWith('docs:')) prLabels.push('documentation'); - else if (prTitle.includes('BREAKING CHANGE')) prLabels.push('major'); - } - const foundLabels = prLabels.filter(label => Object.keys(VALID_LABELS).includes(label)); if (foundLabels.length === 0) { diff --git a/scripts/ci/check_branch_protection_drift.mjs b/scripts/ci/check_branch_protection_drift.mjs index c5dca1fa409..8ad0cfa3720 100644 --- a/scripts/ci/check_branch_protection_drift.mjs +++ b/scripts/ci/check_branch_protection_drift.mjs @@ -3,13 +3,11 @@ import { resolve } from 'node:path'; import { computeDiff, fetchRequiredStatusChecks, - GitHubApiError, hashObject, inferRepoFromGit, loadPolicy, stableJson } from './lib/branch-protection.mjs'; -import { compareByCodeUnit, writeDeterministicJson } from './lib/governance_evidence.mjs'; function parseArgs(argv) { const args = {}; @@ -54,10 +52,6 @@ function parseArgs(argv) { args.help = true; continue; } - if (current === '--offline') { - args.offline = true; - continue; - } throw new Error(`Unknown arg: ${current}`); } return args; @@ -71,7 +65,6 @@ function printHelp() { console.log(' --branch name Branch to check (default: main)'); console.log(' --policy path Policy file (default: docs/ci/REQUIRED_CHECKS_POLICY.yml)'); console.log(' --out path Output directory (default: artifacts/governance/branch-protection-drift)'); - console.log(' --offline Emit unverifiable evidence without API calls'); } function writeReportFiles(outDir, report, markdown, stamp) { @@ -81,20 +74,6 @@ function writeReportFiles(outDir, report, markdown, stamp) { writeFileSync(resolve(outDir, 'stamp.json'), stableJson(stamp)); } -function writeErrorEvidence(evidencePath, branch, code) { - const evidence = { - schema_version: 1, - kind: 'branch_protection_audit', - target_branch: branch, - state: 'UNVERIFIABLE_ERROR', - error: { - code, - http_status: null - } - }; - writeDeterministicJson(evidencePath, evidence); -} - function formatMarkdown(report, diff, remediationCommand, errorMessage) { const lines = []; lines.push('# Branch Protection Drift Report'); @@ -174,7 +153,6 @@ async function main() { const policyPath = args.policy ?? 'docs/ci/REQUIRED_CHECKS_POLICY.yml'; const outDir = args.out ?? 'artifacts/governance/branch-protection-drift'; - const evidencePath = 'artifacts/governance/branch-protection-audit.evidence.json'; let policy; let repo = args.repo ?? process.env.GITHUB_REPOSITORY; @@ -202,7 +180,6 @@ async function main() { const remediationCommand = `pnpm ci:branch-protection:check -- --policy ${policyPath}`; const markdown = formatMarkdown(report, { missing_in_github: [], extra_in_github: [], strict_mismatch: false }, remediationCommand, errorMessage); writeReportFiles(outDir, report, markdown, stamp); - writeErrorEvidence(evidencePath, branch, 'POLICY_ERROR'); console.error(errorMessage); process.exit(2); } @@ -227,7 +204,6 @@ async function main() { const remediationCommand = `pnpm ci:branch-protection:check -- --branch ${policy.branch} --policy ${policyPath}`; const markdown = formatMarkdown(report, { missing_in_github: [], extra_in_github: [], strict_mismatch: false }, remediationCommand, errorMessage); writeReportFiles(outDir, report, markdown, stamp); - writeErrorEvidence(evidencePath, branch, 'POLICY_BRANCH_MISMATCH'); console.error(errorMessage); process.exit(2); } @@ -255,38 +231,14 @@ async function main() { const remediationCommand = `pnpm ci:branch-protection:check -- --repo owner/name --branch ${branch} --policy ${policyPath}`; const markdown = formatMarkdown(report, { missing_in_github: [], extra_in_github: [], strict_mismatch: false }, remediationCommand, errorMessage); writeReportFiles(outDir, report, markdown, stamp); - writeErrorEvidence(evidencePath, branch, 'REPO_UNRESOLVED'); console.error(errorMessage); process.exit(2); } - if (args.offline) { - const evidence = { - schema_version: 1, - kind: 'branch_protection_audit', - target_branch: branch, - state: 'UNVERIFIABLE_PERMISSIONS', - error: { - code: 'MISSING_TOKEN', - http_status: null - } - }; - writeDeterministicJson(evidencePath, evidence); - console.log('Branch protection audit skipped (offline).'); - process.exit(0); - } - let actual; try { actual = await fetchRequiredStatusChecks({ repo, branch }); } catch (error) { - const isApiError = error instanceof GitHubApiError; - const kind = isApiError ? error.kind : 'unknown'; - const errorState = kind === 'permission' - ? 'UNVERIFIABLE_PERMISSIONS' - : kind === 'rate_limited' - ? 'UNVERIFIABLE_RATE_LIMIT' - : 'UNVERIFIABLE_ERROR'; const errorMessage = `GitHub API error: ${error.message}`; const report = { repo, @@ -310,19 +262,8 @@ async function main() { const remediationCommand = `pnpm ci:branch-protection:check -- --repo ${repo} --branch ${branch} --policy ${policyPath}`; const markdown = formatMarkdown(report, { missing_in_github: [], extra_in_github: [], strict_mismatch: false }, remediationCommand, errorMessage); writeReportFiles(outDir, report, markdown, stamp); - const evidence = { - schema_version: 1, - kind: 'branch_protection_audit', - target_branch: branch, - state: errorState, - error: { - code: kind, - http_status: isApiError ? error.status : null - } - }; - writeDeterministicJson(evidencePath, evidence); console.error(errorMessage); - process.exit(errorState === 'UNVERIFIABLE_PERMISSIONS' || errorState === 'UNVERIFIABLE_RATE_LIMIT' || errorState === 'UNVERIFIABLE_ERROR' ? 0 : 2); + process.exit(2); } const diff = computeDiff(policy, actual); @@ -359,20 +300,6 @@ async function main() { const markdown = formatMarkdown(report, diff, remediationCommand); writeReportFiles(outDir, report, markdown, stamp); - const evidence = { - schema_version: 1, - kind: 'branch_protection_audit', - target_branch: branch, - state: driftDetected ? 'VERIFIED_DRIFT' : 'VERIFIED_MATCH' - }; - if (driftDetected) { - evidence.diff = { - missing_in_github: diff.missing_in_github.slice().sort(compareByCodeUnit), - extra_in_github: diff.extra_in_github.slice().sort(compareByCodeUnit), - strict_mismatch: diff.strict_mismatch - }; - } - writeDeterministicJson(evidencePath, evidence); if (driftDetected) { console.error('Branch protection drift detected. See drift.md for details.'); diff --git a/scripts/ci/deny_ingress_nginx.mjs b/scripts/ci/deny_ingress_nginx.mjs index 0be6445bdc7..fa715c99308 100644 --- a/scripts/ci/deny_ingress_nginx.mjs +++ b/scripts/ci/deny_ingress_nginx.mjs @@ -65,13 +65,9 @@ for (const filePath of files) { const content = fs.readFileSync(filePath, "utf8"); const lines = content.split(/\r?\n/); lines.forEach((line, index) => { - const trimmed = line.trim(); - // Ignore lines that are comments (start with #) - if (trimmed.startsWith("#")) return; - denyPatterns.forEach((pattern) => { if (pattern.test(line)) { - hits.push(`${filePath}:${index + 1}: ${trimmed}`); + hits.push(`${filePath}:${index + 1}: ${line.trim()}`); } }); }); diff --git a/scripts/ci/gate_check.sh b/scripts/ci/gate_check.sh index 1fdce1f9d98..af9838c224c 100755 --- a/scripts/ci/gate_check.sh +++ b/scripts/ci/gate_check.sh @@ -22,9 +22,7 @@ STATUS=$(jq -r --argjson policy "$(cat "$POLICY_FILE")" ' def bad(msg): {ok:false, reason: msg}; . as $m - | if ($m.sample_size < 1) - then {ok:true, reason:"insufficient data (0 runs)"} - elif ($m.queue_s.p50 != null and $m.queue_s.p50 > $policy.max_queue_p50_s) + | if ($m.queue_s.p50 != null and $m.queue_s.p50 > $policy.max_queue_p50_s) then bad("Queue p50 exceeds threshold: \($m.queue_s.p50)s > \($policy.max_queue_p50_s)s") elif ($m.success_rate_pct < $policy.min_success_rate_pct) then bad("Success rate below min: \($m.success_rate_pct)% < \($policy.min_success_rate_pct)%") diff --git a/scripts/ci/lib/branch-protection.mjs b/scripts/ci/lib/branch-protection.mjs index f165c12e55c..4aa846d1453 100644 --- a/scripts/ci/lib/branch-protection.mjs +++ b/scripts/ci/lib/branch-protection.mjs @@ -1,185 +1,228 @@ -import { - execFile -} from 'node:child_process'; -import { - createHash -} from 'node:crypto'; -import { - readFileSync -} from 'node:fs'; -import { - resolve -} from 'node:path'; -import { createRequire } from 'node:module'; - -const require = createRequire(import.meta.url); -const yaml = require('js-yaml'); - -export const VerificationState = { - VERIFIED_MATCH: 'VERIFIED_MATCH', - VERIFIED_DRIFT: 'VERIFIED_DRIFT', - UNVERIFIABLE_PERMISSIONS: 'UNVERIFIABLE_PERMISSIONS', - UNVERIFIABLE_ERROR: 'UNVERIFIABLE_ERROR', - RATE_LIMITED: 'RATE_LIMITED', - NO_PROTECTION: 'NO_PROTECTION' -}; - -class GitHubApiError extends Error { - constructor(message, { status, kind } = {}) { - super(message); - this.name = 'GitHubApiError'; - this.status = status ?? null; - this.kind = kind ?? 'unknown'; - } -} +import { execFile } from 'node:child_process'; +import { createHash } from 'node:crypto'; +import { readFileSync } from 'node:fs'; +import { resolve } from 'node:path'; +import yaml from 'js-yaml'; function normalizeContexts(contexts) { - const cleaned = contexts.filter(v => typeof v === 'string').map(v => v.trim()).filter(v => v.length > 0); + const cleaned = contexts + .filter(value => typeof value === 'string') + .map(value => value.trim()) + .filter(value => value.length > 0); return Array.from(new Set(cleaned)).sort(); } function sortKeysDeep(value) { - if (Array.isArray(value)) return value.map(sortKeysDeep); + if (Array.isArray(value)) { + return value.map(sortKeysDeep); + } if (value && typeof value === 'object') { const sorted = {}; - for (const key of Object.keys(value).sort()) sorted[key] = sortKeysDeep(value[key]); + for (const key of Object.keys(value).sort()) { + sorted[key] = sortKeysDeep(value[key]); + } return sorted; } return value; } -function stableJson(value) { return `${JSON.stringify(sortKeysDeep(value), null, 2)} -`; } -function hashObject(value) { return createHash('sha256').update(stableJson(value)).digest('hex'); } +function stableJson(value) { + return `${JSON.stringify(sortKeysDeep(value), null, 2)}\n`; +} + +function hashObject(value) { + return createHash('sha256').update(stableJson(value)).digest('hex'); +} + +function parseRemoteRepo(remoteUrl) { + if (!remoteUrl || typeof remoteUrl !== 'string') return null; + const trimmed = remoteUrl.trim(); + if (trimmed.startsWith('git@')) { + const match = trimmed.match(/git@[^:]+:([^/]+\/[^/]+?)(\.git)?$/); + return match ? match[1] : null; + } + if (trimmed.startsWith('https://') || trimmed.startsWith('http://')) { + const match = trimmed.match(/https?:\/\/[^/]+\/([^/]+\/[^/]+?)(\.git)?$/); + return match ? match[1] : null; + } + return null; +} async function execFileAsync(command, args, options = {}) { - const mergedEnv = { ...process.env, GH_PAGER: 'cat', GITHUB_PAGER: 'cat', LESS: 'FRSX' }; - return new Promise((res, rej) => { - execFile(command, args, { ...options, env: mergedEnv }, (err, stdout, stderr) => { - if (err) rej(new Error(stderr || err.message)); else res({ stdout, stderr }); + const mergedEnv = { + ...process.env, + GH_PAGER: 'cat', + GITHUB_PAGER: 'cat', + LESS: 'FRSX' + }; + return new Promise((resolvePromise, reject) => { + execFile(command, args, { ...options, env: mergedEnv }, (error, stdout, stderr) => { + if (error) { + const wrapped = new Error(stderr || error.message); + wrapped.cause = error; + reject(wrapped); + return; + } + resolvePromise({ stdout, stderr }); }); }); } let ghAvailable; async function isGhAvailable() { - if (ghAvailable !== undefined) return ghAvailable; - try { await execFileAsync('gh', ['--version']); ghAvailable = true; } catch { ghAvailable = false; } + if (ghAvailable !== undefined) { + return ghAvailable; + } + try { + await execFileAsync('gh', ['--version']); + ghAvailable = true; + } catch (error) { + ghAvailable = false; + } return ghAvailable; } async function ghApi(endpoint, options = {}) { const args = ['api', endpoint, '-H', 'Accept: application/vnd.github+json']; - if (options.method) args.push('--method', options.method); - if (options.input) args.push('--input', '-'); - const execOptions = options.input ? { input: options.input, maxBuffer: 10 * 1024 * 1024 } : { maxBuffer: 10 * 1024 * 1024 }; + if (options.method) { + args.push('--method', options.method); + } + if (options.input) { + args.push('--input', '-'); + } + const execOptions = options.input + ? { input: options.input, maxBuffer: 10 * 1024 * 1024 } + : { maxBuffer: 10 * 1024 * 1024 }; const result = await execFileAsync('gh', args, execOptions); return result.stdout; } -export function classifyHttpError(status, headers, body) { - const normalizedMessage = String(typeof body === 'string' ? body : body?.message || '').toLowerCase(); - if (status === 403) { - const remaining = headers?.get?.('X-RateLimit-Remaining') ?? headers?.['x-ratelimit-remaining']; - if (remaining === '0' || remaining === 0 || normalizedMessage.includes('rate limit')) - return { state: VerificationState.RATE_LIMITED, message: 'Rate limit exceeded' }; - const message = typeof body === 'string' ? body : body?.message ?? 'Forbidden'; - if (message.includes('Must have admin rights') || message.includes('Resource not accessible')) - return { state: VerificationState.UNVERIFIABLE_PERMISSIONS, message }; - return { state: VerificationState.UNVERIFIABLE_ERROR, message: `403: ${message}` }; - } - if (status === 404) return { state: VerificationState.NO_PROTECTION, message: 'Branch protection not configured' }; - const message = typeof body === 'string' ? body : body?.message ?? `HTTP ${status}`; - return { state: VerificationState.UNVERIFIABLE_ERROR, message }; -} - -export async function fetchRequiredStatusChecks({ repo, branch }) { +async function fetchRequiredStatusChecks({ repo, branch }) { const endpoint = `repos/${repo}/branches/${branch}/protection/required_status_checks`; if (await isGhAvailable()) { - try { - const output = await ghApi(endpoint); - const res = normalizeRequiredStatusChecks(JSON.parse(output), 'gh'); - res.state = VerificationState.VERIFIED_MATCH; - return res; - } catch (err) { - const status = Number(err.message.match(/\b(\d{3})\b/)?.[1] || 0); - if (status) return { ...classifyHttpError(status, {}, { message: err.message }), required_contexts: [], strict: false }; - throw err; - } + const output = await ghApi(endpoint); + return parseRequiredStatusChecks(output, 'gh'); } - const token = process.env.GITHUB_TOKEN || process.env.GH_TOKEN; if (!token) { - return { state: VerificationState.UNVERIFIABLE_ERROR, required_contexts: [], strict: false, error: 'Missing GITHUB_TOKEN or GH_TOKEN' }; + throw new Error('Missing GITHUB_TOKEN or GH_TOKEN for GitHub API access.'); } + const response = await fetch(`https://api.github.com/${endpoint}`, { + headers: { + Authorization: `Bearer ${token}`, + Accept: 'application/vnd.github+json', + 'X-GitHub-Api-Version': '2022-11-28' + } + }); + if (!response.ok) { + const body = await response.text(); + throw new Error(`GitHub API error ${response.status}: ${body}`); + } + const data = await response.json(); + return normalizeRequiredStatusChecks(data, 'https'); +} +function parseRequiredStatusChecks(output, source) { + let parsed; try { - const response = await fetch(`https://api.github.com/${endpoint}`, { - headers: { - Authorization: `Bearer ${token}`, - Accept: 'application/vnd.github+json', - 'X-GitHub-Api-Version': '2022-11-28' - } - }); - if (!response.ok) { - let body; - try { body = await response.json(); } catch { body = await response.text(); } - return { ...classifyHttpError(response.status, response.headers, body), required_contexts: [], strict: false }; - } - const data = await response.json(); - const res = normalizeRequiredStatusChecks(data, 'https'); - res.state = VerificationState.VERIFIED_MATCH; - return res; + parsed = JSON.parse(output); } catch (error) { - return { state: VerificationState.UNVERIFIABLE_ERROR, required_contexts: [], strict: false, error: error.message }; + throw new Error(`Failed to parse GitHub API response (${source}).`); } + return normalizeRequiredStatusChecks(parsed, source); } function normalizeRequiredStatusChecks(data, source) { const contexts = []; - if (Array.isArray(data?.contexts)) contexts.push(...data.contexts); - if (Array.isArray(data?.checks)) for (const c of data.checks) if (c?.context) contexts.push(c.context); - return { strict: Boolean(data?.strict), required_contexts: normalizeContexts(contexts), source }; + if (Array.isArray(data?.contexts)) { + contexts.push(...data.contexts); + } + if (Array.isArray(data?.checks)) { + for (const check of data.checks) { + if (check && typeof check.context === 'string') { + contexts.push(check.context); + } + } + } + return { + strict: Boolean(data?.strict), + required_contexts: normalizeContexts(contexts), + source + }; } -export function loadPolicy(policyPath) { - const parsed = yaml.load(readFileSync(resolve(policyPath), 'utf8')); - const req = parsed?.branch_protection?.required_status_checks; - if (!req) throw new Error('Invalid policy'); +function loadPolicy(policyPath) { + const resolved = resolve(policyPath); + const raw = readFileSync(resolved, 'utf8'); + const parsed = yaml.load(raw); + if (!parsed || typeof parsed !== 'object') { + throw new Error('Policy file must contain a YAML object.'); + } + const branchProtection = parsed.branch_protection; + if (!branchProtection || typeof branchProtection !== 'object') { + throw new Error('Policy missing branch_protection section.'); + } + const branch = branchProtection.branch; + if (typeof branch !== 'string' || branch.trim().length === 0) { + throw new Error('branch_protection.branch must be a non-empty string.'); + } + const required = branchProtection.required_status_checks; + if (!required || typeof required !== 'object') { + throw new Error('branch_protection.required_status_checks must be an object.'); + } + if (typeof required.strict !== 'boolean') { + throw new Error('branch_protection.required_status_checks.strict must be boolean.'); + } + if (!Array.isArray(required.contexts) || required.contexts.length === 0) { + throw new Error('branch_protection.required_status_checks.contexts must be a non-empty array.'); + } + for (const context of required.contexts) { + if (typeof context !== 'string' || context.trim().length === 0) { + throw new Error('branch_protection.required_status_checks.contexts entries must be strings.'); + } + } return { - branch: parsed.branch_protection.branch, + policyPath: resolved, + branch: branch.trim(), required_status_checks: { - strict: Boolean(req.strict), - required_contexts: normalizeContexts(req.contexts || []) - } + strict: required.strict, + required_contexts: normalizeContexts(required.contexts) + }, + raw: parsed }; } -export function computeDiff(p, a) { - const m = p.required_status_checks.required_contexts.filter(c => !a.required_contexts.includes(c)); - const e = a.required_contexts.filter(c => !p.required_status_checks.required_contexts.includes(c)); - return { missing_in_github: m, extra_in_github: e, strict_mismatch: p.required_status_checks.strict !== a.strict }; -} - -function parseRemoteRepo(url) { - if (!url || typeof url !== 'string') return null; - const match = url.match(/github\.com[:/](.+?)\/(.+?)(\.git)?$/); - return match ? `${match[1]}/${match[2]}` : null; +function computeDiff(policy, actual) { + const missing = policy.required_status_checks.required_contexts.filter( + context => !actual.required_contexts.includes(context) + ); + const extra = actual.required_contexts.filter( + context => !policy.required_status_checks.required_contexts.includes(context) + ); + return { + missing_in_github: missing, + extra_in_github: extra, + strict_mismatch: policy.required_status_checks.strict !== actual.strict + }; } -export async function inferRepoFromGit() { +async function inferRepoFromGit() { try { const { stdout } = await execFileAsync('git', ['config', '--get', 'remote.origin.url']); - return parseRemoteRepo(stdout.trim()); - } catch { return null; } + return parseRemoteRepo(stdout); + } catch (error) { + return null; + } } export { - GitHubApiError, + computeDiff, + fetchRequiredStatusChecks, ghApi, hashObject, + inferRepoFromGit, + loadPolicy, normalizeContexts, sortKeysDeep, - stableJson, - stableJson as stableJsonExport -}; \ No newline at end of file + stableJson +}; diff --git a/scripts/ci/lib/evidence_id_consistency.mjs b/scripts/ci/lib/evidence_id_consistency.mjs index ee99707dd0c..c5a58a1d543 100644 --- a/scripts/ci/lib/evidence_id_consistency.mjs +++ b/scripts/ci/lib/evidence_id_consistency.mjs @@ -5,14 +5,18 @@ import path from 'node:path'; export const GATE_VERSION = '1.3.1'; export function compareByCodeUnit(left, right) { - if (left === right) return 0; + if (left === right) { + return 0; + } const leftLength = left.length; const rightLength = right.length; const minLength = Math.min(leftLength, rightLength); for (let index = 0; index < minLength; index += 1) { const leftCode = left.charCodeAt(index); const rightCode = right.charCodeAt(index); - if (leftCode !== rightCode) return leftCode < rightCode ? -1 : 1; + if (leftCode !== rightCode) { + return leftCode < rightCode ? -1 : 1; + } } return leftLength < rightLength ? -1 : 1; } @@ -23,7 +27,9 @@ export function canonicalizeJson(value, indent = 2) { } function sortValue(value) { - if (Array.isArray(value)) return value.map((entry) => sortValue(entry)); + if (Array.isArray(value)) { + return value.map((entry) => sortValue(entry)); + } if (value && typeof value === 'object') { const keys = Object.keys(value).sort(compareByCodeUnit); return keys.reduce((acc, key) => { @@ -45,22 +51,33 @@ export async function collectEvidenceEntries({ repoRoot, evidenceRoot }) { try { dirEntries = await fs.readdir(evidenceRoot, { withFileTypes: true }); } catch (error) { - if (error && error.code === 'ENOENT') return []; + if (error && error.code === 'ENOENT') { + return []; + } throw error; } for (const entry of dirEntries) { const fullPath = path.join(evidenceRoot, entry.name); if (entry.isDirectory()) { - const nested = await collectEvidenceEntries({ repoRoot, evidenceRoot: fullPath }); + const nested = await collectEvidenceEntries({ + repoRoot, + evidenceRoot: fullPath, + }); entries.push(...nested); continue; } - if (!entry.isFile()) continue; + if (!entry.isFile()) { + continue; + } const relativePath = normalizeRelativePath(evidenceRoot, fullPath); const content = await fs.readFile(fullPath); const contentHash = hashBuffer(content); const evidenceId = hashString(`${relativePath}\n${contentHash}`); - entries.push({ id: evidenceId, path: normalizeRelativePath(repoRoot, fullPath), sha256: contentHash }); + entries.push({ + id: evidenceId, + path: normalizeRelativePath(repoRoot, fullPath), + sha256: contentHash, + }); } return entries; } @@ -68,137 +85,115 @@ export async function collectEvidenceEntries({ repoRoot, evidenceRoot }) { export function sortEvidenceEntries(entries) { return entries.slice().sort((left, right) => { const idCompare = compareByCodeUnit(left.id, right.id); - if (idCompare !== 0) return idCompare; + if (idCompare !== 0) { + return idCompare; + } return compareByCodeUnit(left.path, right.path); }); } -export function hashBuffer(buffer) { return crypto.createHash('sha256').update(buffer).digest('hex'); } -export function hashString(value) { return crypto.createHash('sha256').update(value).digest('hex'); } - -const TIMESTAMP_KEYS = new Set([ - 'timestamp', 'time', 'date', 'datetime', - 'created_at', 'updated_at', 'deleted_at', - 'createdat', 'updatedat', 'deletedat', - 'generated_at', 'generatedat', 'generatedAt', - 'started_at', 'startedat', 'startedAt', - 'finished_at', 'finishedat', 'finishedAt', - 'ended_at', 'endedat', 'endedAt', - 'modified_at', 'modifiedat', 'modifiedAt', - 'last_update', 'lastupdate', 'lastUpdate', - 'last_modified', 'lastmodified', 'lastModified', - 'expires_at', 'expiresat', 'expiresAt', - 'duration_ms', 'durationms', 'durationMs', - 'elapsed_ms', 'elapsedms', 'elapsedMs', -]); - -const ID_LIKE_KEYS = new Set([ - 'id', 'uuid', 'guid', 'uid', 'eid', 'pk', 'hash', 'sha256', 'checksum', - 'external_id', 'externalid', 'externalId', - 'build_number', 'buildnumber', 'buildNumber', -]); - -function isTimeLikeKey(key) { - const lower = key.toLowerCase(); - if (TIMESTAMP_KEYS.has(lower)) return true; - return /time|date|at$|_ms$/.test(lower); -} - -function isIdLikeKey(key) { - const lower = key.toLowerCase(); - if (ID_LIKE_KEYS.has(lower)) return true; - return /id$|hash$|guid$|uuid$|code$|count$|version$|number$/.test(lower) || /_id_|_hash_|_uuid_|_code_/.test(lower); -} - -const TIMESTAMP_VALUE_PATTERNS = [ - /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})/, - /\b\d{4}-\d{2}-\d{2}\b/, -]; - -const EPOCH_STRING_PATTERN = /\b1\d{9,12}\b/g; - -export function isLikelyEpoch(value) { - if (typeof value !== 'number' || !Number.isFinite(value)) return false; - if (value >= 946684800000 && value <= 4102444800000) return true; - if (value >= 946684800 && value <= 4102444800) return true; - return false; -} - -function isLikelyEpochString(value) { - if (typeof value !== 'string') return false; - const matches = value.match(EPOCH_STRING_PATTERN); - if (!matches) return false; - return matches.some((match) => { - const numeric = Number(match); - return Number.isFinite(numeric) && isLikelyEpoch(numeric); - }); +export function hashBuffer(buffer) { + return crypto.createHash('sha256').update(buffer).digest('hex'); } -export function isTimestampValue(value) { - if (typeof value !== 'string') return false; - if (TIMESTAMP_VALUE_PATTERNS.some((pattern) => pattern.test(value))) return true; - return isLikelyEpochString(value); +export function hashString(value) { + return crypto.createHash('sha256').update(value).digest('hex'); } export function scanTimestampKeys(value, prefix = '') { - let matches = []; + const matches = []; if (Array.isArray(value)) { value.forEach((entry, index) => { matches.push(...scanTimestampKeys(entry, `${prefix}[${index}]`)); }); - return matches.sort(compareByCodeUnit); + return matches; } - if (!value || typeof value !== 'object') return matches; + if (!value || typeof value !== 'object') { + return matches; + } + const timestampKeys = new Set([ + 'timestamp', + 'time', + 'created_at', + 'updated_at', + 'last_update', + 'started_at', + 'finished_at', + 'ended_at', + 'duration_ms', + ]); for (const [key, child] of Object.entries(value)) { const lowerKey = key.toLowerCase(); const nextPath = prefix ? `${prefix}.${key}` : key; - if (isTimeLikeKey(key)) matches.push(nextPath); - matches.push(...scanTimestampKeys(child, nextPath)); - } - return matches.sort(compareByCodeUnit); -} - -export function scanTimestampValues(value, prefix = '', key = '') { - let matches = []; - if (Array.isArray(value)) { - value.forEach((entry, index) => { - matches.push(...scanTimestampValues(entry, `${prefix}[${index}]`, key)); - }); - return matches.sort(compareByCodeUnit); - } - if (value === null || value === undefined) return matches; - if (typeof value === 'string') { - if (key && isIdLikeKey(key)) { - if (TIMESTAMP_VALUE_PATTERNS[0].test(value)) if (prefix) matches.push(prefix); - } else if (isTimestampValue(value)) { - if (prefix) matches.push(prefix); - } - } else if (typeof value === 'number' && isLikelyEpoch(value)) { - if (!key || isTimeLikeKey(key) || !isIdLikeKey(key)) if (prefix) matches.push(prefix); - } else if (typeof value === 'object') { - for (const [k, child] of Object.entries(value)) { - const nextPath = prefix ? `${prefix}.${k}` : k; - matches.push(...scanTimestampValues(child, nextPath, k)); + if (timestampKeys.has(lowerKey)) { + matches.push(nextPath); } + matches.push(...scanTimestampKeys(child, nextPath)); } - return matches.sort(compareByCodeUnit); -} - -export function buildReport({ evidenceRoot, sha, evidenceEntries, duplicates }) { - return { $schema: 'schemas/evidence/evidence-id-consistency-report.schema.json', gate_version: GATE_VERSION, sha, evidence_root: evidenceRoot, evidence: evidenceEntries, duplicate_ids: duplicates, status: duplicates.length === 0 ? 'pass' : 'fail' }; + return matches; +} + +export function buildReport({ + evidenceRoot, + sha, + evidenceEntries, + duplicates, +}) { + return { + $schema: + 'schemas/evidence/evidence-id-consistency-report.schema.json', + gate_version: GATE_VERSION, + sha, + evidence_root: evidenceRoot, + evidence: evidenceEntries, + duplicate_ids: duplicates, + status: duplicates.length === 0 ? 'pass' : 'fail', + }; } export function buildMetrics({ sha, evidenceTotal, duplicateCount }) { - return { $schema: 'schemas/evidence/evidence-id-consistency-metrics.schema.json', gate_version: GATE_VERSION, sha, evidence_total: evidenceTotal, duplicate_ids_total: duplicateCount, status: duplicateCount === 0 ? 'pass' : 'fail' }; + return { + $schema: + 'schemas/evidence/evidence-id-consistency-metrics.schema.json', + gate_version: GATE_VERSION, + sha, + evidence_total: evidenceTotal, + duplicate_ids_total: duplicateCount, + status: duplicateCount === 0 ? 'pass' : 'fail', + }; } export function buildAiLedger({ sha, artifacts }) { - const sortedArtifacts = artifacts.slice().sort((left, right) => compareByCodeUnit(left.name, right.name)); - return { $schema: 'schemas/evidence/evidence-id-consistency-ai-ledger.schema.json', gate_version: GATE_VERSION, sha, artifacts: sortedArtifacts }; -} - -export function buildStamp({ sha, runId, startedAt, finishedAt, durationMs }) { - return { $schema: 'schemas/evidence/evidence-id-consistency-stamp.schema.json', gate_version: GATE_VERSION, sha, run_id: runId, started_at: startedAt, finished_at: finishedAt, duration_ms: durationMs, node_version: process.version, platform: process.platform }; + const sortedArtifacts = artifacts + .slice() + .sort((left, right) => compareByCodeUnit(left.name, right.name)); + return { + $schema: + 'schemas/evidence/evidence-id-consistency-ai-ledger.schema.json', + gate_version: GATE_VERSION, + sha, + artifacts: sortedArtifacts, + }; +} + +export function buildStamp({ + sha, + runId, + startedAt, + finishedAt, + durationMs, +}) { + return { + $schema: 'schemas/evidence/evidence-id-consistency-stamp.schema.json', + gate_version: GATE_VERSION, + sha, + run_id: runId, + started_at: startedAt, + finished_at: finishedAt, + duration_ms: durationMs, + node_version: process.version, + platform: process.platform, + }; } export async function writeJsonFile(filePath, data) { diff --git a/scripts/ci/verify_branch_protection.mjs b/scripts/ci/verify_branch_protection.mjs index a0e4428eb1a..6f0f25c8bf7 100644 --- a/scripts/ci/verify_branch_protection.mjs +++ b/scripts/ci/verify_branch_protection.mjs @@ -1,72 +1,243 @@ #!/usr/bin/env node -import assert from "node:assert"; -import process from "node:process"; +import fs from 'node:fs'; +import path from 'node:path'; -const { - GITHUB_TOKEN, - GITHUB_REPOSITORY, - GITHUB_API_URL = "https://api.github.com", -} = process.env; +function fail(message) { + console.error(message); + process.exit(1); +} -assert(GITHUB_TOKEN, "GITHUB_TOKEN missing"); -assert(GITHUB_REPOSITORY, "GITHUB_REPOSITORY missing"); +function sortKeysDeep(value) { + if (Array.isArray(value)) { + return value.map(sortKeysDeep); + } + if (value && typeof value === 'object') { + const out = {}; + for (const key of Object.keys(value).sort()) { + out[key] = sortKeysDeep(value[key]); + } + return out; + } + return value; +} -const [owner, repo] = GITHUB_REPOSITORY.split("/"); +function stableJson(value) { + return `${JSON.stringify(sortKeysDeep(value), null, 2)}\n`; +} -async function gh(path) { - const res = await fetch(`${GITHUB_API_URL}${path}`, { - headers: { - Authorization: `Bearer ${GITHUB_TOKEN}`, - Accept: "application/vnd.github+json", - }, - }); - if (!res.ok) { - throw new Error(`GitHub API ${path} failed: ${res.status}`); +function normalizeContexts(contexts) { + if (!Array.isArray(contexts)) return []; + const cleaned = contexts + .filter(value => typeof value === 'string') + .map(value => value.trim()) + .filter(Boolean); + return Array.from(new Set(cleaned)).sort(); +} + +function readJson(filePath) { + if (!fs.existsSync(filePath)) { + fail(`Missing JSON file: ${filePath}`); + } + const raw = fs.readFileSync(filePath, 'utf8'); + try { + return JSON.parse(raw); + } catch (error) { + fail(`Invalid JSON in ${filePath}: ${error.message}`); } - return res.json(); } -const branches = ["main"]; +function normalizePolicy(policy) { + if (!policy || typeof policy !== 'object') { + fail('Policy must be a JSON object.'); + } + if (typeof policy.branch !== 'string' || policy.branch.trim().length === 0) { + fail('Policy branch must be a non-empty string.'); + } + if (typeof policy.enforce_admins !== 'boolean') { + fail('Policy enforce_admins must be boolean.'); + } + if (!policy.required_status_checks || typeof policy.required_status_checks !== 'object') { + fail('Policy required_status_checks must be an object.'); + } + const contexts = normalizeContexts(policy.required_status_checks.contexts); + if (contexts.length === 0) { + fail('Policy required_status_checks.contexts must include at least one context.'); + } + if (typeof policy.required_status_checks.strict !== 'boolean') { + fail('Policy required_status_checks.strict must be boolean.'); + } + const reviews = policy.required_pull_request_reviews || {}; + if (typeof reviews.dismiss_stale_reviews !== 'boolean') { + fail('Policy required_pull_request_reviews.dismiss_stale_reviews must be boolean.'); + } + if (typeof reviews.require_code_owner_reviews !== 'boolean') { + fail('Policy required_pull_request_reviews.require_code_owner_reviews must be boolean.'); + } + if (typeof reviews.required_approving_review_count !== 'number') { + fail('Policy required_pull_request_reviews.required_approving_review_count must be number.'); + } + return { + branch: policy.branch.trim(), + enforce_admins: policy.enforce_admins, + required_status_checks: { + strict: policy.required_status_checks.strict, + contexts + }, + required_pull_request_reviews: { + dismiss_stale_reviews: reviews.dismiss_stale_reviews, + require_code_owner_reviews: reviews.require_code_owner_reviews, + required_approving_review_count: reviews.required_approving_review_count + } + }; +} -let violations = []; +function normalizeLive(snapshot) { + if (!snapshot || typeof snapshot !== 'object') { + return { + enforce_admins: null, + required_status_checks: { strict: null, contexts: [] }, + required_pull_request_reviews: { + dismiss_stale_reviews: null, + require_code_owner_reviews: null, + required_approving_review_count: null + } + }; + } + const enforceAdmins = + typeof snapshot.enforce_admins === 'boolean' + ? snapshot.enforce_admins + : snapshot.enforce_admins && typeof snapshot.enforce_admins.enabled === 'boolean' + ? snapshot.enforce_admins.enabled + : null; + + const requiredStatus = snapshot.required_status_checks || {}; + const contexts = normalizeContexts([ + ...(Array.isArray(requiredStatus.contexts) ? requiredStatus.contexts : []), + ...(Array.isArray(requiredStatus.checks) + ? requiredStatus.checks + .map(check => (check && typeof check.context === 'string' ? check.context : null)) + .filter(Boolean) + : []) + ]); + + const reviews = snapshot.required_pull_request_reviews || {}; + + return { + enforce_admins: enforceAdmins, + required_status_checks: { + strict: typeof requiredStatus.strict === 'boolean' ? requiredStatus.strict : null, + contexts + }, + required_pull_request_reviews: { + dismiss_stale_reviews: + typeof reviews.dismiss_stale_reviews === 'boolean' ? reviews.dismiss_stale_reviews : null, + require_code_owner_reviews: + typeof reviews.require_code_owner_reviews === 'boolean' + ? reviews.require_code_owner_reviews + : null, + required_approving_review_count: + typeof reviews.required_approving_review_count === 'number' + ? reviews.required_approving_review_count + : null + } + }; +} -for (const branch of branches) { - const bp = await gh( - `/repos/${owner}/${repo}/branches/${branch}/protection` +function computeDrift(policy, live) { + const missingContexts = policy.required_status_checks.contexts.filter( + context => !live.required_status_checks.contexts.includes(context) + ); + const extraContexts = live.required_status_checks.contexts.filter( + context => !policy.required_status_checks.contexts.includes(context) ); - if (!bp.enforce_admins?.enabled) { - violations.push(`${branch}: enforce_admins disabled`); + const reviewMismatches = []; + const reviewKeys = [ + 'dismiss_stale_reviews', + 'require_code_owner_reviews', + 'required_approving_review_count' + ]; + for (const key of reviewKeys) { + if (policy.required_pull_request_reviews[key] !== live.required_pull_request_reviews[key]) { + reviewMismatches.push(key); + } } - if (!bp.required_linear_history?.enabled) { - violations.push(`${branch}: linear history not enforced`); - } + return { + missing_contexts: missingContexts, + extra_contexts: extraContexts, + strict_mismatch: policy.required_status_checks.strict !== live.required_status_checks.strict, + enforce_admins_mismatch: policy.enforce_admins !== live.enforce_admins, + review_mismatches: reviewMismatches + }; +} + +function writeEvidence(dir, report, metrics, stamp) { + fs.mkdirSync(dir, { recursive: true }); + fs.writeFileSync(path.join(dir, 'report.json'), stableJson(report)); + fs.writeFileSync(path.join(dir, 'metrics.json'), stableJson(metrics)); + fs.writeFileSync(path.join(dir, 'stamp.json'), stableJson(stamp)); +} + +const policyPath = process.env.BPAC_POLICY_PATH ?? '.github/governance/branch_protection_rules.json'; +const livePath = process.env.BPAC_LIVE_SNAPSHOT ?? '.tmp/branch_protection_live.json'; +const evidenceDir = process.env.BPAC_EVIDENCE_DIR ?? 'evidence/bpac/EVD-BPAC-GOV-001'; + +const policyRaw = readJson(policyPath); +const liveRaw = readJson(livePath); + +const policy = normalizePolicy(policyRaw); +const live = normalizeLive(liveRaw); +const drift = computeDrift(policy, live); + +const driftDetected = + drift.missing_contexts.length > 0 || + drift.extra_contexts.length > 0 || + drift.strict_mismatch || + drift.enforce_admins_mismatch || + drift.review_mismatches.length > 0; - if (!bp.required_pull_request_reviews?.required_approving_review_count || - bp.required_pull_request_reviews.required_approving_review_count < 2) { - violations.push(`${branch}: <2 required reviewers`); +const report = { + evidence_id: 'EVD-BPAC-GOV-001', + summary: driftDetected + ? 'Branch protection drift detected against policy.' + : 'Branch protection matches policy.', + claims: ['SUMMIT_ORIGINAL'], + decisions: [driftDetected ? 'deny-by-default' : 'allow'], + details: { + policy_path: policyPath, + live_snapshot_path: livePath, + policy, + live, + drift } +}; - if (!bp.required_status_checks?.strict) { - violations.push(`${branch}: strict status checks disabled`); +const metrics = { + evidence_id: 'EVD-BPAC-GOV-001', + metrics: { + missing_contexts_count: drift.missing_contexts.length, + extra_contexts_count: drift.extra_contexts.length, + strict_mismatch: drift.strict_mismatch ? 1 : 0, + enforce_admins_mismatch: drift.enforce_admins_mismatch ? 1 : 0, + review_mismatches_count: drift.review_mismatches.length, + drift_detected: driftDetected ? 1 : 0, + compare_ms: 0, + total_ms: 0 } -} +}; -if (violations.length) { - console.error("❌ Branch protection violations:"); - violations.forEach(v => console.error(` - ${v}`)); - process.exit(1); -} +const stamp = { + evidence_id: 'EVD-BPAC-GOV-001', + tool: 'verify_branch_protection', + version: '1.0.0', + timestamp: new Date().toISOString() +}; -console.log("✅ Branch protection verified"); +writeEvidence(evidenceDir, report, metrics, stamp); -// Enforce REQUIRED_CHECKS_CONTRACT.yml consistency -try { - const { run } = await import('./verify_required_checks_contract.mjs'); - await run(); -} catch (err) { - console.error("❌ Failed to verify required checks contract:"); - console.error(err); - process.exit(1); +if (driftDetected) { + fail('Branch protection drift detected.'); } + +console.log('Branch protection matches policy.'); diff --git a/scripts/ci/verify_evidence.py b/scripts/ci/verify_evidence.py index 96d8a845fc7..4972f67dc44 100644 --- a/scripts/ci/verify_evidence.py +++ b/scripts/ci/verify_evidence.py @@ -13,7 +13,6 @@ EVID = ROOT / "evidence" SCHEMAS = EVID / "schemas" -NEW_SCHEMAS = EVID / "schema" def fail(msg): print(f"evidence-verify: FAIL: {msg}", file=sys.stderr) @@ -79,9 +78,8 @@ def validate_schema(instance, schema_path, context=""): schema = load_json(schema_path) _validate_recursive(instance, schema, context) -def check_timestamps(evid_dir=None): +def check_timestamps(): # Determinism rule: timestamps ONLY in stamp.json - scan_dir = evid_dir if evid_dir else EVID forbidden = [] # Ignore specific files and dirs IGNORE_FILES = { @@ -97,7 +95,7 @@ def check_timestamps(evid_dir=None): "EVD-POSTIZ-GATE-004", "EVD-POSTIZ-COMPLY-002", "EVD-POSTIZ-PROD-003", "EVD-POSTIZ-GROWTH-001" } - for p in scan_dir.rglob("*"): + for p in EVID.rglob("*"): if not p.is_file(): continue if p.name == "stamp.json": @@ -121,12 +119,11 @@ def check_timestamps(evid_dir=None): if forbidden: fail(f"Possible timestamps found outside stamp.json in: {forbidden}") -def main(root_override=None): - evid_dir = Path(root_override) if root_override else EVID - print(f"Verifying evidence in {evid_dir}") +def main(): + print(f"Verifying evidence in {EVID}") # 1. Verify index.json existence - index_path = evid_dir / "index.json" + index_path = EVID / "index.json" if not index_path.exists(): fail("evidence/index.json missing") @@ -168,24 +165,17 @@ def main(root_override=None): # Validate schema based on filename fname = fpath.name - if evd_id.startswith("EVD-CLAUDECODE-SUBAGENTS-"): - schema_dir = NEW_SCHEMAS - else: - schema_dir = SCHEMAS - if fname == "report.json": - validate_schema(load_json(fpath), schema_dir / "report.schema.json", context=f"{evd_id} report") + validate_schema(load_json(fpath), SCHEMAS / "report.schema.json", context=f"{evd_id} report") elif fname == "metrics.json": - validate_schema(load_json(fpath), schema_dir / "metrics.schema.json", context=f"{evd_id} metrics") + validate_schema(load_json(fpath), SCHEMAS / "metrics.schema.json", context=f"{evd_id} metrics") elif fname == "stamp.json": - validate_schema(load_json(fpath), schema_dir / "stamp.schema.json", context=f"{evd_id} stamp") - elif fname == "index.json" and schema_dir == NEW_SCHEMAS: - validate_schema(load_json(fpath), schema_dir / "index.schema.json", context=f"{evd_id} index") + validate_schema(load_json(fpath), SCHEMAS / "stamp.schema.json", context=f"{evd_id} stamp") # 2. Check for timestamps - check_timestamps(evid_dir) + check_timestamps() print("evidence-verify: PASS") if __name__ == "__main__": - main(sys.argv[1] if len(sys.argv) > 1 else None) + main() diff --git a/scripts/ci/verify_evidence_id_consistency.mjs b/scripts/ci/verify_evidence_id_consistency.mjs index 17ec4429f75..311bdb682f6 100644 --- a/scripts/ci/verify_evidence_id_consistency.mjs +++ b/scripts/ci/verify_evidence_id_consistency.mjs @@ -15,10 +15,6 @@ import { sortEvidenceEntries, writeJsonFile, } from './lib/evidence_id_consistency.mjs'; -import { - hashStringList, - writeDeterministicJson, -} from './lib/governance_evidence.mjs'; const args = new Map(); for (const raw of process.argv.slice(2)) { @@ -32,9 +28,6 @@ const repoRoot = process.cwd(); const sha = args.get('sha') ?? 'UNKNOWN_SHA'; const runId = args.get('run-id') ?? 'UNKNOWN_RUN_ID'; const outDir = args.get('out-dir') ?? 'artifacts/evidence-id-consistency'; -const determinismEvidenceOut = - args.get('determinism-evidence-out') ?? - 'artifacts/governance/determinism-scan.evidence.json'; const evidenceRootInput = args.get('evidence-root') ?? 'evidence'; const evidenceRoot = path.isAbsolute(evidenceRootInput) ? evidenceRootInput @@ -109,36 +102,10 @@ const stampPath = path.join(outDir, 'stamp.json'); await writeJsonFile(stampPath, stamp); const deterministicScan = []; -const findings = []; -const scannedFiles = [reportPath, metricsPath, aiLedgerPath]; for (const filePath of [reportPath, metricsPath, aiLedgerPath]) { const payload = JSON.parse(await fs.readFile(filePath, 'utf8')); - const matches = scanTimestampKeys(payload); - deterministicScan.push(...matches); - const relativePath = normalizeRelativePath(repoRoot, filePath); - for (const match of matches) { - findings.push({ file: relativePath, pointer: match }); - } + deterministicScan.push(...scanTimestampKeys(payload)); } -findings.sort((left, right) => { - const fileCompare = compareByCodeUnit(left.file, right.file); - if (fileCompare !== 0) return fileCompare; - return compareByCodeUnit(left.pointer, right.pointer); -}); -const { sorted: scannedFilesSorted, sha256: scannedFilesSha } = hashStringList( - scannedFiles.map((filePath) => normalizeRelativePath(repoRoot, filePath)), -); -const determinismEvidence = { - schema_version: 1, - kind: 'determinism_scan', - scanned_root: normalizeRelativePath(repoRoot, path.resolve(repoRoot, outDir)), - scanned_files_count: scannedFilesSorted.length, - scanned_files_sha256: scannedFilesSha, - findings, - verdict: findings.length === 0 ? 'PASS' : 'FAIL', -}; -writeDeterministicJson(determinismEvidenceOut, determinismEvidence); - if (deterministicScan.length > 0) { console.error( `Deterministic artifacts contain timestamp keys: ${deterministicScan.join(', ')}`, diff --git a/scripts/ci/verify_subsumption_bundle.mjs b/scripts/ci/verify_subsumption_bundle.mjs index c5f78d92c6d..a542049bbf2 100644 --- a/scripts/ci/verify_subsumption_bundle.mjs +++ b/scripts/ci/verify_subsumption_bundle.mjs @@ -2,8 +2,8 @@ import fs from "node:fs"; import path from "node:path"; -let ITEM_SLUG = "ingress-nginx-retirement"; -let EVIDENCE_ID = "EVD-INGNGX-GOV-002"; +const ITEM_SLUG = "ingress-nginx-retirement"; +const EVIDENCE_ID = "EVD-INGNGX-GOV-002"; function fail(msg) { console.error(msg); @@ -69,15 +69,7 @@ const manifestRaw = readText(manifestPath); // NOTE: This is intentionally minimal; full YAML structure validation is enforced via required file existence checks. const top = parseYamlMinimal(manifestRaw); -// Make version optional for backward compatibility with existing manifests -// if (!top.version) fail("Manifest missing: version"); - -// Extract slug and evidence_id from manifest if possible -const slugMatch = manifestRaw.match(/slug:\s*["']?([A-Za-z0-9_-]+)["']?/); -if (slugMatch) ITEM_SLUG = slugMatch[1]; - -const evIdMatch = manifestRaw.match(/EVD-[A-Z0-9-]+/); -if (evIdMatch) EVIDENCE_ID = evIdMatch[0]; +if (!top.version) fail("Manifest missing: version"); const root = path.resolve(path.dirname(manifestPath), "..", ".."); const required = [ @@ -93,38 +85,19 @@ for (const p of required) { // Deny-by-default fixtures required for every bundle const bundleDir = path.dirname(manifestPath); -const denyFixtureDir = path.join(bundleDir, "fixtures", "deny"); -const allowFixtureDir = path.join(bundleDir, "fixtures", "allow"); - -// Make fixture checks more flexible: only require the directories to exist if they are real bundles -if (fs.existsSync(path.join(bundleDir, "fixtures"))) { - if (!fs.existsSync(denyFixtureDir)) fail(`Missing deny-by-default fixture directory: ${denyFixtureDir}`); - if (!fs.existsSync(allowFixtureDir)) fail(`Missing allow fixture directory: ${allowFixtureDir}`); -} +const denyFixture = path.join(bundleDir, "fixtures", "deny", "README.md"); +const allowFixture = path.join(bundleDir, "fixtures", "allow", "README.md"); +if (!fs.existsSync(denyFixture)) fail(`Missing deny-by-default fixture: ${denyFixture}`); +if (!fs.existsSync(allowFixture)) fail(`Missing allow fixture: ${allowFixture}`); const outDir = path.join(bundleDir, "runs", "ci", EVIDENCE_ID); fs.mkdirSync(outDir, { recursive: true }); -// Parse claims from claims.md if present -let claims = [ - { backing: "ITEM:CLAIM-01", claim_id: "ITEM:CLAIM-01" }, - { backing: "ITEM:CLAIM-02", claim_id: "ITEM:CLAIM-02" }, -]; - -const claimsPath = path.join(bundleDir, "claims.md"); -if (fs.existsSync(claimsPath)) { - const claimsRaw = readText(claimsPath); - const claimMatches = claimsRaw.match(/[A-Z0-9_-]+-\d+/g); - if (claimMatches) { - claims = [...new Set(claimMatches)].map(id => ({ - backing: id, - claim_id: id - })); - } -} - const report = { - claims, + claims: [ + { backing: "ITEM:CLAIM-01", claim_id: "ITEM:CLAIM-01" }, + { backing: "ITEM:CLAIM-02", claim_id: "ITEM:CLAIM-02" }, + ], decisions: [ "Bundle verifier enforces manifest, schema, docs, and fixture presence.", "Evidence artifacts remain deterministic (report/metrics).", diff --git a/scripts/ga/scan-pii.mjs b/scripts/ga/scan-pii.mjs index adf2504f214..749b4dd5072 100644 --- a/scripts/ga/scan-pii.mjs +++ b/scripts/ga/scan-pii.mjs @@ -24,20 +24,6 @@ function scanFile(filePath) { return false; } - // Skip lockfiles and other non-source files that often contain false positives - const skipExtensions = ['.lock', '.lock.yaml', '.json-lock']; - const skipFiles = [ - 'pnpm-lock.yaml', - 'package-lock.json', - 'yarn.lock', - 'prompts/registry.yaml', - 'docs/gtm/reference-architecture.md' - ]; - if (skipFiles.includes(filePath) || skipExtensions.some(ext => filePath.endsWith(ext))) { - console.log(`Skipping PII scan for ${filePath}`); - return false; - } - try { const content = readFileSync(filePath, 'utf8'); let found = false; diff --git a/scripts/production-canary.sh b/scripts/production-canary.sh index 284e05f6c88..3610946df1d 100755 --- a/scripts/production-canary.sh +++ b/scripts/production-canary.sh @@ -170,18 +170,10 @@ get_p95_latency() { query_prometheus 'histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{job="intelgraph-canary"}[5m])) by (le)) * 1000' } -get_baseline_p95() { - query_prometheus 'histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{job="intelgraph-stable"}[5m])) by (le)) * 1000' -} - get_error_rate() { query_prometheus 'sum(rate(http_requests_total{job="intelgraph-canary",status=~"5.."}[5m])) / sum(rate(http_requests_total{job="intelgraph-canary"}[5m]))' } -get_baseline_error() { - query_prometheus 'sum(rate(http_requests_total{job="intelgraph-stable",status=~"5.."}[5m])) / sum(rate(http_requests_total{job="intelgraph-stable"}[5m]))' -} - get_success_rate() { query_prometheus '1 - (sum(rate(http_requests_total{job="intelgraph-canary",status=~"[45].."}[5m])) / sum(rate(http_requests_total{job="intelgraph-canary"}[5m])))' } @@ -341,27 +333,55 @@ monitor_slos() { # Collect SLO metrics local p95_latency=$(get_p95_latency 2>/dev/null || echo "0") local error_rate=$(get_error_rate 2>/dev/null || echo "0") - local baseline_p95=$(get_baseline_p95 2>/dev/null || echo "0") - local baseline_error=$(get_baseline_error 2>/dev/null || echo "0") + local success_rate=$(get_success_rate 2>/dev/null || echo "0") + local throughput=$(get_throughput 2>/dev/null || echo "0") local ready_pods=$(get_pod_ready_count 2>/dev/null || echo "0") - # Run Statistical ACA Analysis - log_canary "🧠 Running Statistical ACA Analysis..." - ACA_RESULT=$(npx ts-node "$PROJECT_ROOT/scripts/mastery-aca-engine.ts" \ - --canary-p95 "$p95_latency" \ - --baseline-p95 "$baseline_p95" \ - --canary-error "$error_rate" \ - --baseline-error "$baseline_error") || { - log_error "🚨 ACA engine detected critical risk - triggering automatic rollback" - echo "$ACA_RESULT" | jq . - rollback_canary - exit 1 - } - - # Log current metrics and ACA decision - echo "$ACA_RESULT" | jq -r '.summary' | while read line; do log_canary " - $line"; done + # Log current metrics + log_canary "📈 Current SLOs:" + log_canary " P95 Latency: ${p95_latency}ms (threshold: <${MAX_P95_LATENCY_MS}ms)" + log_canary " Error Rate: $(float_to_pct "$error_rate")% (threshold: <$(float_to_pct "$MAX_ERROR_RATE")%)" + log_canary " Success Rate: $(float_to_pct "$success_rate")% (threshold: >$(float_to_pct "$MIN_SUCCESS_RATE")%)" + log_canary " Throughput: ${throughput} RPS (threshold: >${MIN_THROUGHPUT_RPS} RPS)" log_canary " Ready Pods: ${ready_pods}" + # Evaluate SLO violations using python for reliability + local violations=() + + if float_gt "$p95_latency" "$MAX_P95_LATENCY_MS"; then + violations+=("P95 latency exceeded: ${p95_latency}ms > ${MAX_P95_LATENCY_MS}ms") + fi + + if float_gt "$error_rate" "$MAX_ERROR_RATE"; then + violations+=("Error rate exceeded: $(float_to_pct "$error_rate")% > $(float_to_pct "$MAX_ERROR_RATE")%") + fi + + if float_lt "$success_rate" "$MIN_SUCCESS_RATE"; then + violations+=("Success rate below threshold: $(float_to_pct "$success_rate")% < $(float_to_pct "$MIN_SUCCESS_RATE")%") + fi + + if float_lt "$throughput" "$MIN_THROUGHPUT_RPS"; then + violations+=("Throughput below threshold: ${throughput} RPS < ${MIN_THROUGHPUT_RPS} RPS") + fi + + # Check for SLO violations + if [ ${#violations[@]} -gt 0 ]; then + violation_count=$((violation_count + 1)) + log_warning "⚠️ SLO violations detected (${violation_count}/${max_violations}):" + for violation in "${violations[@]}"; do + log_warning " - $violation" + done + + if [ $violation_count -ge $max_violations ]; then + log_error "🚨 Maximum SLO violations exceeded - triggering automatic rollback" + rollback_canary + exit 1 + fi + else + log_success "✅ All SLOs within acceptable ranges" + violation_count=0 + fi + # Check pod health if [ "$ready_pods" -eq 0 ]; then log_error "🚨 No canary pods ready - triggering automatic rollback" diff --git a/scripts/release/build-bundle-index.mjs b/scripts/release/build-bundle-index.mjs index 5b4576e881d..50521d219a2 100644 --- a/scripts/release/build-bundle-index.mjs +++ b/scripts/release/build-bundle-index.mjs @@ -11,7 +11,7 @@ function getSha256(content) { } async function buildBundleIndex(dir) { - const files = (await fs.readdir(dir)).sort(); + const files = await fs.readdir(dir); const fileDetails = []; for (const file of files) { @@ -20,15 +20,13 @@ async function buildBundleIndex(dir) { if (stat.isFile()) { const content = await fs.readFile(filePath); - const relativePath = path.relative(dir, filePath).split(path.sep).join('/'); fileDetails.push({ - path: relativePath, + path: path.join(dir, file), bytes: stat.size, sha256: getSha256(content), }); } } - fileDetails.sort((a, b) => a.path.localeCompare(b.path)); const tag = process.env.GITHUB_REF_NAME || 'local'; const channel = tag.includes('-rc') ? 'rc' : 'stable'; @@ -46,7 +44,7 @@ async function buildBundleIndex(dir) { for (const [key, file] of Object.entries(pointerCandidates)) { if (files.includes(file)) { - pointers[key] = file; + pointers[key] = path.join(dir, file); } } diff --git a/scripts/release/verify-release-bundle.mjs b/scripts/release/verify-release-bundle.mjs index 079f1e8161d..700ab9aec76 100755 --- a/scripts/release/verify-release-bundle.mjs +++ b/scripts/release/verify-release-bundle.mjs @@ -1,7 +1,7 @@ #!/usr/bin/env node import { existsSync, readFileSync, writeFileSync, mkdirSync, rmSync } from 'node:fs'; -import { resolve, join, relative } from 'node:path'; +import { resolve, join } from 'node:path'; import { parseArgs } from 'node:util'; import { execSync } from 'node:child_process'; import { getSha256, verifyChecksums, enforcePolicy, checkAttestationBinding, getFiles } from './lib/verifier_core.mjs'; @@ -39,12 +39,6 @@ const RESULTS = { ok: false, checked: [], errors: [], - fileCounts: { - dirCount: 0, - sumsCount: 0, - indexCount: 0, - subjectCount: 0 - } }; function addError(code, message) { @@ -60,39 +54,6 @@ function mergeResults(res) { res.errors.forEach(e => addError(e.code, e.message)); } -const SUPPORTED_MAJOR_VERSION = 1; - -function checkCompatibility(bundleIndex) { - if (!bundleIndex || typeof bundleIndex.schemaVersion !== 'string') { - return { - compatible: false, - message: 'schemaVersion field is missing or not a string in bundle-index.json', - code: 'MISSING_FIELD', - details: { field: 'schemaVersion' } - }; - } - - const bundleMajor = parseInt(bundleIndex.schemaVersion.split('.')[0], 10); - if (Number.isNaN(bundleMajor)) { - return { - compatible: false, - message: `Could not parse major version from schemaVersion: "${bundleIndex.schemaVersion}"`, - code: 'INVALID_ENUM' - }; - } - - if (bundleMajor > SUPPORTED_MAJOR_VERSION) { - return { - compatible: false, - message: `Unsupported schema major version. Bundle has ${bundleMajor}, script supports ${SUPPORTED_MAJOR_VERSION}.`, - code: 'SCHEMA_MAJOR_UNSUPPORTED', - details: { bundleVersion: bundleIndex.schemaVersion, supportedVersion: `${SUPPORTED_MAJOR_VERSION}.x.x` } - }; - } - - return { compatible: true, message: 'Schema version is compatible.' }; -} - // Global state for signature requirement (determined by policy) let signatureRequired = false; @@ -205,7 +166,7 @@ if (existsSync(SIG_FILE)) { const identityRegex = process.env.EXPECTED_IDENTITY_REGEX || '^https://github.com/BrianCLong/summit/.github/workflows/.*@.*$'; const issuer = process.env.EXPECTED_OIDC_ISSUER || 'https://token.actions.githubusercontent.com'; - const cmd = `cosign verify-blob --use-signed-timestamps --certificate-identity-regexp "${identityRegex}" --certificate-oidc-issuer "${issuer}" --signature "${SIG_FILE}" "${DATA_FILE}"`; + const cmd = `cosign verify-blob --certificate-identity-regexp "${identityRegex}" --certificate-oidc-issuer "${issuer}" --signature "${SIG_FILE}" "${DATA_FILE}"`; try { if (process.env.STRICT_MODE && !process.env.CI) { @@ -253,157 +214,8 @@ if (values['verify-attestations'] || values.strict) { const checksumRes = verifyChecksums(BUNDLE_DIR); mergeResults(checksumRes); -// 6. Bundle Index + Provenance Cross-Checks (stricter than SHA256SUMS) -const sumsPath = join(BUNDLE_DIR, 'SHA256SUMS'); -if (existsSync(sumsPath)) { - const sumsContent = readFileSync(sumsPath, 'utf-8'); - const canonicalHashes = new Map(); // filename -> hash - - const invalidLines = []; - sumsContent.split('\n').forEach(line => { - const trimmed = line.trim(); - if (!trimmed) return; - const match = trimmed.match(/^([a-fA-F0-9]{64})\s+(.+)$/); - if (match) { - let filename = match[2].trim(); - if (filename.startsWith('./')) filename = filename.substring(2); - canonicalHashes.set(filename, match[1]); - } else { - invalidLines.push(trimmed); - } - }); - - RESULTS.fileCounts.sumsCount = canonicalHashes.size; - if (invalidLines.length > 0) { - const sample = invalidLines.slice(0, 3).join(' | '); - addError('SHA256SUMS_INVALID_FORMAT', `Invalid SHA256SUMS line(s): ${sample}`); - } - addCheck(`Loaded SHA256SUMS with ${canonicalHashes.size} entries`); - - const allFiles = getFiles(BUNDLE_DIR); - const filesOnDisk = new Set(); - - for (const fullPath of allFiles) { - const relPath = relative(BUNDLE_DIR, fullPath).split('\\').join('/'); - if (relPath === 'SHA256SUMS' || relPath === 'verify.json') continue; - filesOnDisk.add(relPath); - if (!canonicalHashes.has(relPath)) { - addError('DIR_EXTRA_FILE', `File found on disk but missing from SHA256SUMS: ${relPath}`); - continue; - } - const computedHash = getSha256(fullPath); - const expectedHash = canonicalHashes.get(relPath); - if (computedHash !== expectedHash) { - addError('HASH_MISMATCH', `Hash mismatch for ${relPath}. Expected ${expectedHash}, got ${computedHash}`); - } - } - - RESULTS.fileCounts.dirCount = filesOnDisk.size; - - for (const filename of canonicalHashes.keys()) { - if (!filesOnDisk.has(filename)) { - addError('DIR_MISSING_FILE', `File listed in SHA256SUMS but missing from disk: ${filename}`); - } - } - - if (RESULTS.errors.length === 0) { - addCheck('Directory contents match SHA256SUMS exactly'); - } - - const indexPath = join(BUNDLE_DIR, 'bundle-index.json'); - if (existsSync(indexPath)) { - try { - const indexJson = JSON.parse(readFileSync(indexPath, 'utf-8')); - const compat = checkCompatibility(indexJson); - if (!compat.compatible) { - addError(compat.code, compat.message); - } - - if (indexJson.files && Array.isArray(indexJson.files)) { - RESULTS.fileCounts.indexCount = indexJson.files.length; - indexJson.files.forEach(f => { - if (!canonicalHashes.has(f.path)) { - addError('INDEX_EXTRA_FILE', `bundle-index.json lists file not in SHA256SUMS: ${f.path}`); - } else if (f.path !== 'bundle-index.json' && canonicalHashes.get(f.path) !== f.sha256) { - addError('INDEX_HASH_MISMATCH', `bundle-index.json hash mismatch for ${f.path}`); - } - }); - - const indexPaths = new Set(indexJson.files.map(f => f.path)); - for (const file of canonicalHashes.keys()) { - if (!indexPaths.has(file)) { - addError('INDEX_MISSING_FILE', `SHA256SUMS lists file not in bundle-index.json: ${file}`); - } - } - - if (RESULTS.errors.length === 0) { - addCheck('bundle-index.json validated against SHA256SUMS'); - } - } - - if (indexJson.pointers) { - for (const [ptrName, ptrTarget] of Object.entries(indexJson.pointers)) { - if (!canonicalHashes.has(ptrTarget)) { - addError('POINTER_INVALID', `Pointer ${ptrName} -> ${ptrTarget} targets file not in SHA256SUMS`); - } - } - addCheck('bundle-index.json pointers validated'); - } - } catch (e) { - if (e instanceof SyntaxError) { - addError('INVALID_JSON', `Failed to parse bundle-index.json: ${e.message}`); - } else if (e instanceof ReleaseBundleError) { - addError(e.code, e.message); - } else { - addError('INVALID_JSON', `Error processing bundle-index.json: ${e.message}`); - } - } - } - - const provPath = join(BUNDLE_DIR, 'provenance.json'); - if (existsSync(provPath)) { - try { - const provJson = JSON.parse(readFileSync(provPath, 'utf-8')); - if (provJson.subject && Array.isArray(provJson.subject)) { - RESULTS.fileCounts.subjectCount = provJson.subject.length; - const subjectPaths = new Set(); - provJson.subject.forEach(sub => { - subjectPaths.add(sub.name); - if (!canonicalHashes.has(sub.name)) { - addError('PROV_EXTRA_SUBJECT', `Provenance subject not in SHA256SUMS: ${sub.name}`); - } else if (sub.digest && sub.digest.sha256 && sub.name !== 'provenance.json') { - if (sub.digest.sha256 !== canonicalHashes.get(sub.name)) { - addError('PROV_HASH_MISMATCH', `Provenance hash mismatch for ${sub.name}`); - } - } - }); - - for (const file of canonicalHashes.keys()) { - if (!subjectPaths.has(file) && file !== 'provenance.json' && file !== 'bundle-index.json') { - addError('PROV_MISSING_SUBJECT', `SHA256SUMS file missing from Provenance subjects: ${file}`); - } - } - - if (RESULTS.errors.length === 0) { - addCheck('provenance.json subjects match SHA256SUMS'); - } - } - } catch (e) { - addError('JSON_PARSE_ERROR', `Failed to parse provenance.json: ${e.message}`); - } - } - - const notesSourcePath = join(BUNDLE_DIR, 'notes-source.json'); - if (existsSync(notesSourcePath)) { - if (!existsSync(join(BUNDLE_DIR, 'release-notes.md'))) { - addError('NOTES_MISSING', 'notes-source.json exists but release-notes.md is missing'); - } else { - addCheck('notes-source.json consistency verified'); - } - } -} -// 7. Trust Metadata Emission +// 6. Trust Metadata Emission const trustMetadata = { commitSha: values.sha || 'unknown', // Best effort if not passed? ref: values.tag || 'unknown', diff --git a/scripts/verify_evidence.py b/scripts/verify_evidence.py index 4447bae7d32..e21916a4975 100755 --- a/scripts/verify_evidence.py +++ b/scripts/verify_evidence.py @@ -123,15 +123,17 @@ def main() -> int: "provenance.json", "governance-bundle.json", "release_abort_events.json", "taxonomy.stamp.json", "compliance_report.json", "ga-evidence-manifest.json", "evidence-index.json", "index.json", "skill_metrics.json", "skill_report.json", - "acp_stamp.json", "skill_stamp.json", "acp_report.json", "acp_metrics.json", - "governed_exceptions.json" + "acp_stamp.json", "skill_stamp.json", "acp_report.json", "acp_metrics.json" + } + IGNORE_DIRS = { + "schemas", "ecosystem", "jules", "project19", "governance", "azure-turin-v7", "ci", "context", "mcp", "mcp-apps", "runs", "runtime", "subsumption", "out", + "TELETOK-2025", "EVD-POSTIZ-GROWTH-001", "EVD-POSTIZ-PROD-003", "EVD-POSTIZ-GATE-004", "EVD-2601-20245-SKILL-001", "HONO-ERRBOUNDARY-XSS", "EVD-CTA-LEADERS-2026-01-INGEST-001", "ai-influence-ops", "EVD-BLACKBIRD-RAV3N-EXEC-REP-001", "EVD-NARRATIVE_IOPS_20260129-FRAMES-001", "EVD-POSTIZ-COMPLY-002", "bundles", "ga" } - IGNORE_DIRS = {"EVD-INTSUM-2026-THREAT-HORIZON-001", "EVD-NARRATIVE_IOPS_20260129-FRAMES-001", "EVD-BLACKBIRD-RAV3N-EXEC-REP-001", "EVD-POSTIZ-GATE-004", "HONO-ERRBOUNDARY-XSS", "EVD-POSTIZ-COMPLY-002", "EVD-CTA-LEADERS-2026-01-INGEST-001", "EVD-POSTIZ-PROD-003", "EVD-2601-20245-SKILL-001", "reports", "TELETOK-2025", "ai-influence-ops", "EVD-POSTIZ-GROWTH-001", "ga", "bundles", "schemas", "ecosystem", "jules", "project19", "governance", "azure-turin-v7", "ci", "context", "mcp", "mcp-apps", "runs", "runtime", "subsumption", "out", "cognitive", "model_ti", "DISINFO-NEWS-ECOSYSTEM-2026", "EVID-NARINT-SMOKE", "fixtures", "eval-repro", "moltbook-relay-surface-001", "forbes-2026-trends", "osintplatint_20260201_transform_search_ea8aba4", "pppt-501608", "FORBES-AGENTIC-AI-2026", "portal-kombat-venezuela", "audit", "policy"} for p in EVID.rglob("*"): if p.name == "stamp.json" or p.is_dir() or p.suffix not in {".json", ".md", ".yml", ".yaml", ".jsonl"} or p.name.endswith(".schema.json"): continue - if p.name in IGNORE or any(d in p.parts for d in IGNORE_DIRS) or any(d.startswith("EVD-") or d.startswith("EVID-") for d in p.parts): + if p.name in IGNORE or any(d in p.parts for d in IGNORE_DIRS): continue try: txt = p.read_text(encoding="utf-8", errors="ignore") diff --git a/server/Dockerfile.dev b/server/Dockerfile.dev index 774bd7f4772..c6eb7d8ec25 100644 --- a/server/Dockerfile.dev +++ b/server/Dockerfile.dev @@ -16,69 +16,53 @@ RUN apk add --no-cache \ pangomm-dev \ libjpeg-turbo-dev \ freetype-dev \ - postgresql-client \ curl # Install nodemon globally -RUN npm install -g pnpm nodemon +RUN npm install -g nodemon # Create a non-root user RUN addgroup --system appgroup && adduser --system --ingroup appgroup appuser -# Set npm/pnpm resilience +# Set npm resilience and skip browser downloads ENV PUPPETEER_SKIP_DOWNLOAD=1 \ NPM_CONFIG_AUDIT=false \ NPM_CONFIG_FUND=false \ NPM_CONFIG_ENGINE_STRICT=false -# Copy workspace configuration -COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./ -COPY .pnpmfile.cjs ./ -COPY tsconfig.base.json tsconfig.json ./ -COPY server/package.json ./server/ -COPY packages/feature-flags/package.json ./packages/feature-flags/ -COPY packages/osint-collector/package.json ./packages/osint-collector/ -COPY packages/maestro-core/package.json ./packages/maestro-core/ -COPY packages/telemetry-config/package.json ./packages/telemetry-config/ -COPY packages/provenance/package.json ./packages/provenance/ -COPY packages/types/package.json ./packages/types/ -COPY libs/context-shell/node/package.json ./libs/context-shell/node/ +RUN npm config set fetch-retries 5 \ + && npm config set fetch-retry-mintimeout 20000 \ + && npm config set fetch-retry-maxtimeout 120000 \ + && npm config set fetch-timeout 600000 -# Install dependencies for the server workspace -RUN pnpm install --filter intelgraph-server... --filter @intelgraph/osint-collector... --filter @intelgraph/maestro-core... --filter @intelgraph/types... --frozen-lockfile || pnpm install --filter intelgraph-server... --filter @intelgraph/osint-collector... --filter @intelgraph/maestro-core... --filter @intelgraph/types... +# Copy package files and internal tarballs +COPY package*.json intelgraph-feature-flags-4.2.3.tgz intelgraph-telemetry-config-4.2.3.tgz maestro-core-4.2.3.tgz ./ -# Copy workspace packages source for building -COPY packages/feature-flags ./packages/feature-flags/ -COPY packages/osint-collector ./packages/osint-collector/ -COPY packages/maestro-core ./packages/maestro-core/ -COPY packages/provenance ./packages/provenance/ -COPY packages/types ./packages/types/ +# Update package.json to use local file: dependencies instead of workspace: +RUN node -e 'const fs = require("fs"); \ + const pkg = JSON.parse(fs.readFileSync("package.json", "utf8")); \ + pkg.dependencies["@intelgraph/feature-flags"] = "file:./intelgraph-feature-flags-4.2.3.tgz"; \ + pkg.dependencies["@intelgraph/telemetry-config"] = "file:./intelgraph-telemetry-config-4.2.3.tgz"; \ + pkg.dependencies["@intelgraph/maestro-core"] = "file:./maestro-core-4.2.3.tgz"; \ + fs.writeFileSync("package.json", JSON.stringify(pkg, null, 2));' -# Build workspace packages -RUN pnpm --filter @intelgraph/feature-flags run build -RUN pnpm --filter @intelgraph/osint-collector run build -RUN pnpm --filter @intelgraph/maestro-core run build +# Remove lockfile to avoid workspace protocol issues +RUN rm -f package-lock.json -# Copy server runtime/application tree -COPY server ./server/ -COPY packages/telemetry-config ./packages/telemetry-config/ -COPY packages/policy-audit ./packages/policy-audit/ -COPY libs/context-shell/node ./libs/context-shell/node/ -COPY apps/search-engine ./apps/search-engine/ -COPY governance ./governance/ -COPY graphql ./graphql/ -COPY schemas ./schemas/ +# Install dependencies +RUN npm install --legacy-peer-deps -# Create runtime-write paths for local dev containers -RUN mkdir -p server/uploads server/logs server/archive/audit server/worm_storage +# Copy source code and set permissions +COPY . . +RUN mkdir -p uploads logs && chown -R appuser:appgroup /app -# Switch to the server directory for execution -WORKDIR /app/server +# Switch to non-root user +USER appuser -HEALTHCHECK --interval=30s --timeout=10s --retries=3 CMD curl -f http://localhost:4000/health/ready || exit 1 +HEALTHCHECK --interval=30s --timeout=10s --retries=3 CMD curl -f http://localhost:4000/graphql || exit 1 # Expose ports EXPOSE 4000 9229 # Start development server -CMD ["pnpm", "run", "dev"] +CMD ["npm", "run", "dev"] diff --git a/server/build.mjs b/server/build.mjs index 8df847ff332..93e1a6e1569 100644 --- a/server/build.mjs +++ b/server/build.mjs @@ -1,108 +1,21 @@ -import esbuild from 'esbuild'; +import * as esbuild from 'esbuild'; +import { glob } from 'glob'; import path from 'path'; -import fs from 'fs'; -import { fileURLToPath } from 'url'; -const __dirname = path.dirname(fileURLToPath(import.meta.url)); - -/** - * esbuild plugin to resolve @intelgraph/* workspace packages to their source - */ -const workspacePlugin = { - name: 'workspace-resolver', - setup(build) { - // Intercept @intelgraph/* imports - build.onResolve({ filter: /^@intelgraph\// }, (args) => { - const packageName = args.path.split('/')[1]; - const packagePath = path.resolve(__dirname, '..', 'packages', packageName); - - if (fs.existsSync(packagePath)) { - // Try src/index.ts first - const srcIndex = path.join(packagePath, 'src', 'index.ts'); - if (fs.existsSync(srcIndex)) { - return { path: srcIndex, namespace: 'file' }; - } - - // Fallback to what package.json says - try { - const pkgJson = JSON.parse(fs.readFileSync(path.join(packagePath, 'package.json'), 'utf8')); - const mainFile = pkgJson.main || 'index.js'; - const resolvedPath = path.join(packagePath, mainFile); - if (fs.existsSync(resolvedPath)) { - return { path: resolvedPath, namespace: 'file' }; - } - } catch (e) { - // ignore - } - } - return null; - }); - }, -}; - -/** - * esbuild plugin to handle .js extensions in imports of .ts files and mark everything else external - */ -const externalAndExtensionPlugin = { - name: 'external-and-extension', - setup(build) { - // Handle .js -> .ts resolution for internal files - build.onResolve({ filter: /\.js$/ }, (args) => { - if (args.importer && args.path.startsWith('.')) { - const tsPath = path.resolve(path.dirname(args.importer), args.path.replace(/\.js$/, '.ts')); - if (fs.existsSync(tsPath)) { - return { path: tsPath }; - } - } - return null; - }); - - // Aggressively mark all third-party dependencies as external - build.onResolve({ filter: /^[^.]/ }, (args) => { - if (args.path.startsWith('@intelgraph/')) { - return null; - } - if (path.isAbsolute(args.path)) { - return null; - } - return { path: args.path, external: true }; - }); - }, -}; - -console.warn('🚀 Starting isolated build for server (target: dist-isolated)...'); - -async function runBuild() { - const outputDir = 'dist-isolated'; - try { - // We avoid cleaning if it fails, but we try a fresh dir - if (!fs.existsSync(outputDir)) { - fs.mkdirSync(outputDir); - } - - await esbuild.build({ - entryPoints: ['src/index.ts'], - bundle: true, - platform: 'node', - format: 'esm', - target: 'node20', - sourcemap: true, - outfile: path.join(outputDir, 'index.js'), - plugins: [workspacePlugin, externalAndExtensionPlugin], - logLevel: 'info', - define: { - 'process.env.NODE_ENV': '"production"', - }, - loader: { - '.node': 'binary', - }, - }); - - console.warn(`✅ Build completed successfully in ${outputDir}`); - } catch (error) { - console.error('❌ Build failed:', error); - process.exit(1); - } -} - -runBuild(); +// Find all TypeScript files in src +const entryPoints = await glob('src/**/*.ts', { + ignore: ['**/*.test.ts', '**/*.spec.ts', '**/__tests__/**'], +}); + +await esbuild.build({ + entryPoints, + outdir: 'dist', + bundle: true, + platform: 'node', + format: 'esm', + target: 'node18', + sourcemap: true, + outExtension: { '.js': '.js' }, +}); + +console.log('Build completed successfully'); diff --git a/server/data/metering/events.jsonl b/server/data/metering/events.jsonl index f643ec0ec51..87cb140d006 100644 --- a/server/data/metering/events.jsonl +++ b/server/data/metering/events.jsonl @@ -528,39 +528,3 @@ {"data":{"credits":1,"kind":"query.credits","occurredAt":"2023-10-01T00:00:00.000Z","source":"test","tenantId":"t2"},"hash":"5c701a4f9c172d4bdf9112cc7bc395c1a1f5e2ab3b7b95ba1093f66132ac719c","prevHash":"487e2d62b53cf07bd78779dc6d2004dd5d14f1396f3eca5f2047fac3eb8eaa4b"} {"data":{"endpoint":"/api/data","kind":"api.request","metadata":{"durationMs":2},"method":"POST","source":"api-middleware","statusCode":201,"tenantId":"t1"},"hash":"7c2ae7f905929072010d28f41b34fcf32ce623ddffbb29184c227b5ea6b6d5b0","prevHash":""} {"data":{"endpoint":"/api/health","kind":"api.request","metadata":{"durationMs":0},"method":"GET","source":"api-middleware","statusCode":200,"tenantId":"tenant-123"},"hash":"7679e8a3039412c5d9818d879fbb849644c370adbb54536dfadd074f26c82fda","prevHash":""} -{"data":{"correlationId":"b0e1713c-7bb8-49c8-ab0b-25e38388401b","idempotencyKey":"b0e1713c-7bb8-49c8-ab0b-25e38388401b","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":3},"hash":"ab74df554fa825a2cbc08a0fc3d935f0cddfeaaf71c91761bd89d638fa6c648f","prevHash":""} -{"data":{"correlationId":"a693f7aa-9772-46c5-9b51-f3516fe9dc28","idempotencyKey":"a693f7aa-9772-46c5-9b51-f3516fe9dc28","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":2},"hash":"f5b16df749daddf1d1bce0cacc9129adbb44391f4a165867f24e7b9da4c43e08","prevHash":"ab74df554fa825a2cbc08a0fc3d935f0cddfeaaf71c91761bd89d638fa6c648f"} -{"data":{"correlationId":"46434e21-7265-4bb8-af0d-df44d1e3288d","idempotencyKey":"46434e21-7265-4bb8-af0d-df44d1e3288d","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":0},"hash":"2d7cfe47a62b77c6151a304ea78590f2f1cd0e3431c47e2d4eac49457b8605c5","prevHash":"f5b16df749daddf1d1bce0cacc9129adbb44391f4a165867f24e7b9da4c43e08"} -{"data":{"correlationId":"b36f918c-61e3-4db2-ac02-496e41cbc6b3","idempotencyKey":"b36f918c-61e3-4db2-ac02-496e41cbc6b3","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":1},"hash":"64fccd6ce6b9efdc079071efcf2804e3ec7438ed8103f235bf50ab1a7dec607b","prevHash":"2d7cfe47a62b77c6151a304ea78590f2f1cd0e3431c47e2d4eac49457b8605c5"} -{"data":{"correlationId":"0e6c93a1-d719-4ac4-9abd-02c94fd1e822","idempotencyKey":"0e6c93a1-d719-4ac4-9abd-02c94fd1e822","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":3},"hash":"753bf92a1091e0771ddda25b1cc6c1831bdf3a97acb347900a875f82ff6b41aa","prevHash":""} -{"data":{"correlationId":"8c5f4940-d948-4053-bb2f-1e95719cd23f","idempotencyKey":"8c5f4940-d948-4053-bb2f-1e95719cd23f","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":2},"hash":"9b54bf44ce3536c9a47802ce76689c793ce6dc4b9586746a1b2f15b275ac491b","prevHash":"753bf92a1091e0771ddda25b1cc6c1831bdf3a97acb347900a875f82ff6b41aa"} -{"data":{"correlationId":"b08e8520-cfd3-4a38-9632-232ed9a78476","idempotencyKey":"b08e8520-cfd3-4a38-9632-232ed9a78476","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":0},"hash":"2595f88d609e121f11ff444f80eaefff9062b0d7c4fdb88b5bbf45b97c79feb0","prevHash":"9b54bf44ce3536c9a47802ce76689c793ce6dc4b9586746a1b2f15b275ac491b"} -{"data":{"correlationId":"f7a36a7a-f7ee-4806-8aae-eb0b9a18766f","idempotencyKey":"f7a36a7a-f7ee-4806-8aae-eb0b9a18766f","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":1},"hash":"d392f31b3bc4af692078f5e296eab47d082541b061119eb3e6e3fd182d64346e","prevHash":"2595f88d609e121f11ff444f80eaefff9062b0d7c4fdb88b5bbf45b97c79feb0"} -{"data":{"correlationId":"f328a6fa-c6e8-4c1d-bf19-d874dc9ca347","idempotencyKey":"f328a6fa-c6e8-4c1d-bf19-d874dc9ca347","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":3},"hash":"7559ea8a9b3ed93d03b664a924e61f537dd6ce2f1ff5157e43c60c4fa767b0d3","prevHash":""} -{"data":{"correlationId":"229fd3da-eea9-41a3-a9d0-24b87b85b5ef","idempotencyKey":"229fd3da-eea9-41a3-a9d0-24b87b85b5ef","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":2},"hash":"a7eda66e49bf2dcb724167d9e7f0b1781e1624c180cd8060bbe2df5cf8aa6a4b","prevHash":"7559ea8a9b3ed93d03b664a924e61f537dd6ce2f1ff5157e43c60c4fa767b0d3"} -{"data":{"correlationId":"ac4fca6c-037e-466b-b10e-200ddfccf78f","idempotencyKey":"ac4fca6c-037e-466b-b10e-200ddfccf78f","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":0},"hash":"30fbd317d1525518c3f5ba688ab73525d36c5ee87f61837dbf536f025e7b0537","prevHash":"a7eda66e49bf2dcb724167d9e7f0b1781e1624c180cd8060bbe2df5cf8aa6a4b"} -{"data":{"correlationId":"ee011c71-8f39-46cb-af95-f281e23a3952","idempotencyKey":"ee011c71-8f39-46cb-af95-f281e23a3952","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":1},"hash":"bcd2dc689ee4efd0258908247ddd6b0563122d2b6bdbe3af5ca5d33491c4ebeb","prevHash":"30fbd317d1525518c3f5ba688ab73525d36c5ee87f61837dbf536f025e7b0537"} -{"data":{"correlationId":"a67457ba-4ef2-4ae0-8d45-c6ff839bad70","idempotencyKey":"a67457ba-4ef2-4ae0-8d45-c6ff839bad70","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":3},"hash":"629128ba5053317b631a3b7d86fae1762bf3c9217d8f93095d7f34b61317767c","prevHash":""} -{"data":{"correlationId":"48931cab-7c3c-4af4-9ddf-c32ad6cdbd39","idempotencyKey":"48931cab-7c3c-4af4-9ddf-c32ad6cdbd39","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":2},"hash":"e007e7b2adf4f228d7d606c9b12af098278960425d2e6053c4a9feb5717fbc80","prevHash":"629128ba5053317b631a3b7d86fae1762bf3c9217d8f93095d7f34b61317767c"} -{"data":{"correlationId":"59a034db-7f4e-4ee7-882f-d7ecfdebe6a2","idempotencyKey":"59a034db-7f4e-4ee7-882f-d7ecfdebe6a2","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":0},"hash":"8b302fd5dc5edc6062b541b4df83e441c1cef21efb75760c4d2fa43ad8016d55","prevHash":"e007e7b2adf4f228d7d606c9b12af098278960425d2e6053c4a9feb5717fbc80"} -{"data":{"correlationId":"7d81100f-7153-40a2-bd0f-ba3a35aab697","idempotencyKey":"7d81100f-7153-40a2-bd0f-ba3a35aab697","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":1},"hash":"5d37d6ceca4677539734bfaef38f96958a86b89dccd0814444bf8d8549330ee5","prevHash":"8b302fd5dc5edc6062b541b4df83e441c1cef21efb75760c4d2fa43ad8016d55"} -{"data":{"correlationId":"c2121fa7-4393-40c1-a03c-467fd00f3899","idempotencyKey":"c2121fa7-4393-40c1-a03c-467fd00f3899","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":3},"hash":"38be68a142e556547c08be6eca6b4e0d5c5d0af11e3384572b1aab43a902fde2","prevHash":""} -{"data":{"correlationId":"38804d32-b827-45e0-9fbd-22d168ef368f","idempotencyKey":"38804d32-b827-45e0-9fbd-22d168ef368f","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":2},"hash":"0a831b9d4ca9f846e9cd36d173e1fcecc4ac1c2ca44d45bed576706602b75ff0","prevHash":"38be68a142e556547c08be6eca6b4e0d5c5d0af11e3384572b1aab43a902fde2"} -{"data":{"correlationId":"6b480663-df28-4b6a-ab45-96fff95c8e72","idempotencyKey":"6b480663-df28-4b6a-ab45-96fff95c8e72","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":0},"hash":"e6f823bafecb4f7b5319f8206dc6fe8c6dafa665cd3a641b0138f8e3c5cdafa8","prevHash":"0a831b9d4ca9f846e9cd36d173e1fcecc4ac1c2ca44d45bed576706602b75ff0"} -{"data":{"correlationId":"8fb3e3f0-9313-42bb-b1db-bc58e6dddfc8","idempotencyKey":"8fb3e3f0-9313-42bb-b1db-bc58e6dddfc8","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":1},"hash":"1b308344d7901c63dcfcfcd9628b6468ed86e09fee8e5d5bbd263225e9d52dca","prevHash":"e6f823bafecb4f7b5319f8206dc6fe8c6dafa665cd3a641b0138f8e3c5cdafa8"} -{"data":{"correlationId":"1599bb79-7d74-4cab-821f-f72f876bd54e","idempotencyKey":"1599bb79-7d74-4cab-821f-f72f876bd54e","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":3},"hash":"55fe88dc479d10a709fd1d629c6b2a51e6db489f9b6393835a48edd6a7abab8f","prevHash":""} -{"data":{"correlationId":"b55dd814-5c2a-4fdb-afd0-61e1e1caf7d8","idempotencyKey":"b55dd814-5c2a-4fdb-afd0-61e1e1caf7d8","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":2},"hash":"93bc19280ad68f7a8e09d3da8317fdf0570b732199a10d89e8ee76f4522cbdcb","prevHash":"55fe88dc479d10a709fd1d629c6b2a51e6db489f9b6393835a48edd6a7abab8f"} -{"data":{"correlationId":"31016ca9-35ed-461e-93e0-187f08d2cfa9","idempotencyKey":"31016ca9-35ed-461e-93e0-187f08d2cfa9","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":0},"hash":"f5e70499c09a9e72e1bf2a2cb9f157cf4232910b90eb0d0db068749c5e42a426","prevHash":"93bc19280ad68f7a8e09d3da8317fdf0570b732199a10d89e8ee76f4522cbdcb"} -{"data":{"correlationId":"49ca1ee4-cecf-440a-94aa-7ea8fdb19e01","idempotencyKey":"49ca1ee4-cecf-440a-94aa-7ea8fdb19e01","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":1},"hash":"70f049ad7c4d86a8fce661687fdaaa29d13714839d2e04f0b50edd1a4413471b","prevHash":"f5e70499c09a9e72e1bf2a2cb9f157cf4232910b90eb0d0db068749c5e42a426"} -{"data":{"correlationId":"f0190cd9-e878-41b9-b0c5-189840b07341","idempotencyKey":"f0190cd9-e878-41b9-b0c5-189840b07341","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":3},"hash":"bc94b3e6daaaab0ec7aa94ab6fd218f67ef64488455e34fcabefb98200575fc0","prevHash":""} -{"data":{"correlationId":"4be3b860-bfaf-41f8-a60f-c392294e848c","idempotencyKey":"4be3b860-bfaf-41f8-a60f-c392294e848c","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":2},"hash":"40f3fe3ef6c089278bda7b981f9440c184da4c14a47b72a2289c6add94a26ccc","prevHash":"bc94b3e6daaaab0ec7aa94ab6fd218f67ef64488455e34fcabefb98200575fc0"} -{"data":{"correlationId":"380d6a62-7434-4946-bd37-f8a6dcd2601e","idempotencyKey":"380d6a62-7434-4946-bd37-f8a6dcd2601e","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":0},"hash":"0c6f44efc367a59042dae190c89c9916991ed5a5e52cd972a9e38d03c8a7ff0c","prevHash":"40f3fe3ef6c089278bda7b981f9440c184da4c14a47b72a2289c6add94a26ccc"} -{"data":{"correlationId":"8bda973e-c73c-4d2b-b69a-e29777930411","idempotencyKey":"8bda973e-c73c-4d2b-b69a-e29777930411","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":1},"hash":"a614ce5b4a559337363842011b9b6ef57993f0a636663d204c472aa7260895fe","prevHash":"0c6f44efc367a59042dae190c89c9916991ed5a5e52cd972a9e38d03c8a7ff0c"} -{"data":{"correlationId":"96225017-a6b8-45e0-a49d-d31f52ed8e74","idempotencyKey":"96225017-a6b8-45e0-a49d-d31f52ed8e74","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":3},"hash":"75322ccb34ab320b11ad2d67ea72a7af4535d5572a3f201f4f75954ed74794b9","prevHash":""} -{"data":{"correlationId":"32ea1e36-a00d-46cc-ac7c-b5daee3d770e","idempotencyKey":"32ea1e36-a00d-46cc-ac7c-b5daee3d770e","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":2},"hash":"e3aa119daef5039eddc9bfb119bef7f930c83c009e9efc7428a9bf82b5126cf6","prevHash":"75322ccb34ab320b11ad2d67ea72a7af4535d5572a3f201f4f75954ed74794b9"} -{"data":{"correlationId":"90c07537-f102-4ffc-9d9e-047fc35090e4","idempotencyKey":"90c07537-f102-4ffc-9d9e-047fc35090e4","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":0},"hash":"6f40fb240cb254ad8d818b7cec4d1d797be3ff94cd509b5a3253147aebbe4e92","prevHash":"e3aa119daef5039eddc9bfb119bef7f930c83c009e9efc7428a9bf82b5126cf6"} -{"data":{"correlationId":"4e1470ef-1b83-4b81-a136-a203e2ebfcdd","idempotencyKey":"4e1470ef-1b83-4b81-a136-a203e2ebfcdd","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":1},"hash":"cfd663c7be45a341b18bbeed4cf24c6b69b04b251f1621dcedbecaa811397716","prevHash":"6f40fb240cb254ad8d818b7cec4d1d797be3ff94cd509b5a3253147aebbe4e92"} -{"data":{"correlationId":"4d3b1ab0-962e-445d-ab51-f9c1e6d67852","idempotencyKey":"4d3b1ab0-962e-445d-ab51-f9c1e6d67852","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":3},"hash":"a4c22d087138dcdafc70f93bc45a986476a1beeb8ca778eca50da2e8014e14ea","prevHash":""} -{"data":{"correlationId":"37c9fc8d-2841-4a99-821a-3fdf47184234","idempotencyKey":"37c9fc8d-2841-4a99-821a-3fdf47184234","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":2},"hash":"56a7094fe50f82e98dec8e31cc656a8ead0fbd17b47222bdedb007a98f36e50c","prevHash":"a4c22d087138dcdafc70f93bc45a986476a1beeb8ca778eca50da2e8014e14ea"} -{"data":{"correlationId":"f76b4913-98a6-49f3-8bfc-099683808a99","idempotencyKey":"f76b4913-98a6-49f3-8bfc-099683808a99","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":0},"hash":"9dba1840609743094a61cede41b7f9e9ebb53e48284decf0cb66488fb20d8f84","prevHash":"56a7094fe50f82e98dec8e31cc656a8ead0fbd17b47222bdedb007a98f36e50c"} -{"data":{"correlationId":"2e5fa11b-3d7e-4eed-a17e-6debb146fa7e","idempotencyKey":"2e5fa11b-3d7e-4eed-a17e-6debb146fa7e","kind":"ingest.units","metadata":{"sourceId":"s3://bucket/data.csv","sourceType":"s3-csv","userId":"user-123"},"source":"ingest-service","tenantId":"test-tenant","units":1},"hash":"43fd9a7ac5e238d91cf83b6e16c9138e9e0bced20354d86f00269933767c4d5c","prevHash":"9dba1840609743094a61cede41b7f9e9ebb53e48284decf0cb66488fb20d8f84"} diff --git a/server/jest.config.ts b/server/jest.config.ts index 127fc410acc..d3d1b563256 100644 --- a/server/jest.config.ts +++ b/server/jest.config.ts @@ -41,7 +41,6 @@ const config: Config = { ? [ '/src/services/__tests__/GraphRAGService.test.ts', '/src/provenance-integrity-gateway/__tests__/ProvenanceIntegrityGateway.test.ts', - '/src/db/__tests__/tickets.test.ts', ] : [ '/tests/**/*.test.ts', @@ -74,19 +73,19 @@ const config: Config = { 'src/chatops/', 'src/compliance/__tests__/', 'src/connectors/__tests__/', - // 'src/data-residency/__tests__/', - // 'src/db/__tests__/', + 'src/data-residency/__tests__/', + 'src/db/__tests__/', 'src/entities/comments/__tests__/', 'src/evidence/__tests__/', 'src/extensions/__tests__/', 'src/feature-flags/__tests__/', 'src/federation/__tests__/', - // 'src/graph/__tests__/', + 'src/graph/__tests__/', 'src/graphql/services/__tests__/', 'src/ingest/__tests__/', 'src/intel/cti/__tests__/', 'src/lib/resources/__tests__/', - // 'src/maestro/__tests__/', + 'src/maestro/__tests__/', 'src/audit/__tests__/', 'src/__tests__/fuzz', 'src/__tests__/risk/', @@ -98,6 +97,7 @@ const config: Config = { 'src/maestro/runs/__tests__/', 'src/memory/__tests__/', 'src/metering/__tests__/', + 'src/middleware/__tests__/', 'src/nlp/__tests__/', 'src/observability/__tests__/', 'src/pii/__tests__/', @@ -109,6 +109,7 @@ const config: Config = { 'src/routes/__tests__/', 'src/securiteyes/', 'src/security/tenant-simulation/__tests__/', + 'src/services/__tests__/', 'src/summitsight/__tests__/', 'src/tests/', 'src/trust-center/__tests__/', @@ -122,8 +123,6 @@ const config: Config = { ], modulePathIgnorePatterns: ['/dist/'], moduleNameMapper: { - '.*governance-service.*$': '/tests/mocks/agent-governance-service.ts', - '.*provenance/ledger.*$': '/tests/mocks/provenance-ledger.ts', '^jsdom$': '/tests/mocks/jsdom.ts', '.*lib/telemetry/diagnostic-snapshotter(\\.js)?$': '/tests/mocks/diagnostic-snapshotter.ts', '.*DeterministicExportService(\\.js)?$': '/tests/mocks/deterministic-export-service.ts', @@ -171,11 +170,7 @@ const config: Config = { '^pkcs11js$': '/tests/mocks/pkcs11js.js', '^graphql-iso-date$': '/tests/mocks/graphql-iso-date.cjs', '^pptxgenjs$': '/tests/mocks/pptxgenjs.ts', - // '.*config/database(\\.js)?$': '/tests/mocks/db-config.ts', - '^html-to-text$': '/tests/mocks/html-to-text.ts', - '^mjml$': '/tests/mocks/mjml.ts', - '.*TemplateRenderer.*': '/tests/mocks/template-renderer.ts', - '.*monitoring/metrics(\\.js)?$': '/tests/mocks/metrics.ts', + '.*config/database(\\.js)?$': '/tests/mocks/db-config.ts', '@intelgraph/feature-flags': '/tests/mocks/feature-flags.ts', '@intelgraph/attack-surface': '/tests/mocks/attack-surface.ts', @@ -250,11 +245,11 @@ const config: Config = { bail: false, errorOnDeprecated: true, transform: { - '^.+\\.m?tsx?$': ['ts-jest', { useESM: true, tsconfig: 'tsconfig.test.json' }], - '^.+\\.m?js$': ['ts-jest', { useESM: true, tsconfig: 'tsconfig.test.json' }], + '^.+\\.tsx?$': ['ts-jest', { useESM: true, tsconfig: 'tsconfig.test.json' }], + '^.+\\.js$': ['ts-jest', { useESM: true, tsconfig: 'tsconfig.test.json' }], }, transformIgnorePatterns: [ - 'node_modules/(?!(@intelgraph|p-limit|yocto-queue|node-fetch|data-uri-to-buffer|fetch-blob|formdata-polyfill|pptxgenjs|jszip|@exodus/bytes|jsdom|html-encoding-sniffer|pg-boss|gaxios|gcp-metadata|@opentelemetry|pg)/)', + 'node_modules/(?!(\\.pnpm|p-limit|yocto-queue|node-fetch|data-uri-to-buffer|fetch-blob|formdata-polyfill|pptxgenjs|jszip|@exodus/bytes|jsdom|html-encoding-sniffer|pg-boss|gaxios|gcp-metadata|@opentelemetry|pg)/)', ], maxWorkers: process.env.CI ? 2 : '50%', // Limit worker memory to prevent OOM in CI diff --git a/server/package.json b/server/package.json index 12fa8b2fe4c..06b6dc7cd3c 100644 --- a/server/package.json +++ b/server/package.json @@ -1,21 +1,21 @@ { "name": "intelgraph-server", - "version": "4.1.4", + "version": "4.2.3", "description": "IntelGraph Platform Backend API", - "main": "dist/src/index.js", + "main": "dist/server/src/index.js", "type": "module", "scripts": { - "start": "node dist/src/index.js", + "start": "node dist/server/src/index.js", "dev": "cross-env PORT=4000 nodemon --watch 'src/**/*' --exec 'npx tsx' src/index.ts", - "build": "tsc -p tsconfig.build.json || echo 'TypeScript completed with warnings (noEmitOnError: false)'", + "build": "node build.mjs", "typecheck": "tsc --noEmit", "config:validate": "ts-node scripts/validate-config.ts", "test": "cross-env NODE_OPTIONS='--experimental-vm-modules' jest --config jest.config.ts", "test:watch": "cross-env NODE_OPTIONS='--experimental-vm-modules' jest --config jest.config.ts --watch", "test:coverage": "cross-env NODE_OPTIONS='--experimental-vm-modules' jest --config jest.config.ts --coverage", - "test:ci": "cross-env NODE_OPTIONS='--experimental-vm-modules' jest --config jest.config.ts --passWithNoTests --coverage --reporters=default --reporters=jest-junit", + "test:ci": "node scripts/run-jest.mjs --coverage --reporters=default --reporters=jest-junit", "test:quarantine": "cross-env NODE_OPTIONS='--experimental-vm-modules' jest --config jest.quarantine.config.cjs --passWithNoTests", - "test:integration": "cross-env NODE_OPTIONS='--experimental-vm-modules' jest --config jest.config.ts --testPathPattern=integration --passWithNoTests", + "test:integration": "pnpm run migrate && pnpm run seed:golden && cross-env NODE_OPTIONS='--experimental-vm-modules' jest --config jest.config.ts --testPathPattern=integration --passWithNoTests", "test:unit": "node scripts/run-jest.mjs", "test:marketplace": "tsx --test tests/plugins/marketplace.sandbox.test.ts", "lint": "eslint .", @@ -23,7 +23,7 @@ "format": "prettier --write .", "format:check": "prettier --check .", "case-overview-cache": "ts-node src/scripts/case-overview-cache.ts", - "migrate": "tsx scripts/managed-migrate.ts up", + "migrate": "ts-node scripts/managed-migrate.ts up", "migrate:persistence": "node scripts/migrate-persistence.js", "verify:policies": "tsx scripts/verify_policy_lifecycle.ts && tsx scripts/verify_policy_simulation.ts", "worker:outbox": "node scripts/outbox-worker.js", @@ -39,23 +39,23 @@ "db:migration:check": "node --loader ts-node/esm scripts/migration_check.ts" }, "dependencies": { - "@apollo/server": "4.11.3", + "@apollo/server": "5.2.0", "@as-integrations/express4": "1.1.2", "@aws-sdk/client-s3": "^3.962.0", "@bull-board/api": "6.12.0", "@bull-board/express": "5.23.0", "@graphql-tools/schema": "10.0.30", - "@intelgraph/feature-flags": "workspace:*", "@intelgraph/maestro-core": "workspace:*", - "@intelgraph/provenance": "workspace:*", - "@intelgraph/telemetry-config": "file:../packages/telemetry-config", + "@intelgraph/osint-collector": "workspace:*", + "@intelgraph/feature-flags": "workspace:*", + "@intelgraph/telemetry-config": "workspace:*", "@node-saml/node-saml": "^5.1.0", "@opentelemetry/api": "1.9.0", "@opentelemetry/auto-instrumentations-node": "0.39.0", "@opentelemetry/exporter-jaeger": "1.30.1", "@opentelemetry/exporter-metrics-otlp-http": "^0.208.0", "@opentelemetry/exporter-prometheus": "0.44.0", - "@opentelemetry/exporter-trace-otlp-http": "^0.208.0", + "@opentelemetry/exporter-trace-otlp-http": "^0.211.0", "@opentelemetry/instrumentation-graphql": "^0.56.0", "@opentelemetry/instrumentation-http": "^0.208.0", "@opentelemetry/instrumentation-pg": "^0.61.2", @@ -66,9 +66,8 @@ "@opentelemetry/sdk-trace-base": "1.30.1", "@opentelemetry/sdk-trace-node": "1.30.1", "@opentelemetry/semantic-conventions": "1.38.0", - "@react-email/render": "^0.0.12", "@socket.io/redis-adapter": "8.3.0", - "@turf/area": "7.3.3", + "@turf/area": "7.3.1", "@turf/bbox": "7.3.1", "@turf/boolean-point-in-polygon": "7.3.1", "@turf/buffer": "7.3.1", @@ -86,7 +85,6 @@ "@types/yamljs": "^0.2.34", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", - "apollo-server-express": "3.13.0", "archiver": "6.0.1", "argon2": "^0.44.0", "axios": "^1.7.9", @@ -112,26 +110,21 @@ "fluent-ffmpeg": "2.1.3", "geolib": "3.3.4", "graphql": "16.12.0", - "graphql-query-complexity": "^1.0.0", "graphql-subscriptions": "2.0.0", "graphql-tag": "2.12.6", "graphql-upload-ts": "2.1.2", "graphql-ws": "5.16.2", "helmet": "7.2.0", - "html-escaper": "^3.0.3", - "html-to-text": "^9.0.0", + "hpp": "^0.2.3", "ioredis": "5.8.2", - "isomorphic-dompurify": "^2.0.0", "joi": "17.13.3", "jsdom": "^27.4.0", "json2csv": "5.0.7", "jsonwebtoken": "9.0.2", - "juice": "^10.0.0", "kafkajs": "^2.2.4", - "lodash": "4.17.21", + "lodash": "4.17.23", "lru-cache": "^11.2.4", "minisearch": "^7.2.0", - "mjml": "^4.15.0", "morgan": "1.10.1", "natural": "6.12.0", "neo4j-driver": "5.28.2", @@ -147,7 +140,7 @@ "pg-boss": "^12.5.4", "pgvector": "0.1.8", "pino": "9.9.0", - "pino-http": "11.0.0", + "pino-http": "10.5.0", "prom-client": "15.1.3", "puppeteer": "22.13.0", "python-shell": "5.0.0", @@ -159,7 +152,6 @@ "swagger-ui-express": "^5.0.1", "tesseract.js": "5.1.1", "uuid": "9.0.1", - "validator": "^13.11.0", "winston": "3.19.0", "ws": "8.18.3", "zod": "3.25.76" @@ -172,7 +164,7 @@ "@eslint/js": "9.39.1", "@graphql-codegen/cli": "5.0.7", "@graphql-codegen/introspection": "4.0.3", - "@graphql-codegen/typescript": "4.1.6", + "@graphql-codegen/typescript": "5.0.7", "@graphql-codegen/typescript-resolvers": "4.5.1", "@jest-mock/express": "^3.0.0", "@jest/globals": "30.2.0", @@ -181,7 +173,7 @@ "@types/cookie-parser": "^1.4.10", "@types/cors": "2.8.19", "@types/csurf": "^1.11.5", - "@types/express": "5.0.6", + "@types/express": "^4.17.21", "@types/express-mongo-sanitize": "2.1.2", "@types/express-rate-limit": "5.1.3", "@types/jest": "29.5.14", @@ -201,19 +193,19 @@ "cross-env": "7.0.3", "csurf": "^1.11.0", "dataloader": "^2.2.3", - "eslint": "9.39.1", + "esbuild": ">=0.25.0", + "eslint": "9.39.2", "eslint-config-prettier": "9.1.0", "eslint-plugin-jest": "29.1.0", "eslint-plugin-react": "7.37.5", "eslint-plugin-react-hooks": "5.2.0", "eslint-plugin-react-refresh": "0.4.26", - "esbuild": "^0.24.0", "exif-reader": "^2.0.3", "fast-check": "^4.5.3", + "glob": "^10.3.10", "globals": "^16.5.0", "graphql-depth-limit": "^1.1.0", "graphql-redis-subscriptions": "^2.7.0", - "hpp": "^0.2.3", "jest": "29.7.0", "jest-environment-node": "30.2.0", "jest-extended": "4.0.2", @@ -221,7 +213,7 @@ "jest-ts-webcompat-resolver": "1.0.1", "js-yaml": "^4.1.1", "launchdarkly-node-server-sdk": "^7.0.4", - "mongodb-memory-server": "9.1.1", + "mongodb-memory-server": "11.0.1", "nock": "13.4.0", "nodemon": "3.1.11", "nunjucks": "^3.2.4", @@ -234,7 +226,7 @@ "tiktoken": "^1.0.22", "ts-jest": "^29.4.6", "ts-node": "10.9.2", - "typescript": "^5.7.3", + "typescript": "^5.9.3", "typescript-eslint": "8.50.0", "wait-for-expect": "3.0.2" }, diff --git a/server/packages_tmp/feature-flags/pnpm-lock.yaml b/server/packages_tmp/feature-flags/pnpm-lock.yaml new file mode 100644 index 00000000000..e3b701f1ca7 --- /dev/null +++ b/server/packages_tmp/feature-flags/pnpm-lock.yaml @@ -0,0 +1,4255 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +overrides: + d3-color: '>=3.1.0' + node-fetch: '>=2.6.7' + ws: '>=8.17.1' + parse-duration: '>=2.1.3' + braces: '>=3.0.3' + micromatch: '>=4.0.8' + path-to-regexp: '>=8.0.0' + validator: '>=13.15.20' + nanoid: '>=5.0.9' + cross-spawn: '>=7.0.6' + tar: '>=6.2.1' + cookie: '>=0.7.0' + send: '>=0.19.0' + serve-static: '>=1.16.0' + express: '>=4.21.0' + glob: '>=11.1.0' + tar-fs: '>=3.0.6' + '@babel/runtime': '>=7.26.0' + esbuild: '>=0.25.0' + electron: '>=35.7.5' + +importers: + + .: + dependencies: + '@openfeature/server-sdk': + specifier: ^1.20.1 + version: 1.20.1(@openfeature/core@1.9.1) + eventemitter3: + specifier: ^5.0.1 + version: 5.0.1 + ioredis: + specifier: ^5.4.1 + version: 5.8.2 + launchdarkly-node-server-sdk: + specifier: ^7.0.4 + version: 7.0.4 + murmurhash: + specifier: ^2.0.1 + version: 2.0.1 + prom-client: + specifier: ^15.1.3 + version: 15.1.3 + react: + specifier: ^18.0.0 + version: 18.3.1 + unleash-client: + specifier: ^5.0.0 + version: 5.6.1 + winston: + specifier: ^3.11.0 + version: 3.19.0 + devDependencies: + '@types/express': + specifier: ^5.0.6 + version: 5.0.6 + '@types/jest': + specifier: ^29.0.0 + version: 29.5.14 + '@types/murmurhash': + specifier: ^2.0.0 + version: 2.0.0 + '@types/node': + specifier: ^20.0.0 + version: 20.19.27 + '@types/react': + specifier: ^19.2.7 + version: 19.2.7 + '@typescript-eslint/eslint-plugin': + specifier: ^6.0.0 + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': + specifier: ^6.0.0 + version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + eslint: + specifier: ^8.0.0 + version: 8.57.1 + jest: + specifier: ^29.0.0 + version: 29.7.0(@types/node@20.19.27) + ts-jest: + specifier: ^29.0.0 + version: 29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.27))(typescript@5.9.3) + typescript: + specifier: ^5.3.3 + version: 5.9.3 + +packages: + + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.28.5': + resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.28.5': + resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.27.1': + resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.28.5': + resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + + '@colors/colors@1.6.0': + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} + + '@dabh/diagnostics@2.0.8': + resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} + + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@ioredis/commands@1.4.0': + resolution: {integrity: sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==} + + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/console@29.7.0': + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/core@29.7.0': + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect-utils@29.7.0': + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect@29.7.0': + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/globals@29.7.0': + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/reporters@29.7.0': + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/source-map@29.6.3': + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-result@29.7.0': + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-sequencer@29.7.0': + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@npmcli/agent@2.2.2': + resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/fs@3.1.1': + resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@openfeature/core@1.9.1': + resolution: {integrity: sha512-YySPtH4s/rKKnHRU0xyFGrqMU8XA+OIPNWDrlEFxE6DCVWCIrxE5YpiB94YD2jMFn6SSdA0cwQ8vLkCkl8lm8A==} + + '@openfeature/server-sdk@1.20.1': + resolution: {integrity: sha512-jzz++kblADniuc7hONZ4DlRsoektCMDX5PPHoltn0hYWWw/Zm6sh3f7z5mGUX2XOikWKNVCtUQ3gWsdmIdHHXg==} + engines: {node: '>=20'} + peerDependencies: + '@openfeature/core': ^1.9.0 + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + + '@so-ric/colorspace@1.1.6': + resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + + '@types/body-parser@1.19.6': + resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/express-serve-static-core@5.1.0': + resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==} + + '@types/express@5.0.6': + resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} + + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/http-errors@2.0.5': + resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/jest@29.5.14': + resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/murmurhash@2.0.0': + resolution: {integrity: sha512-AYKjtkyGM6Stia77QpgOwmxJs4cPhFr2/pjufU7aiOkhd81tfBcPyW35gT2OpBLJiZePoJc4dsQ1pYFaUt26xQ==} + deprecated: This is a stub types definition. murmurhash provides its own type definitions, so you do not need this installed. + + '@types/node@20.19.27': + resolution: {integrity: sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==} + + '@types/qs@6.14.0': + resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/react@19.2.7': + resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==} + + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + + '@types/send@1.2.1': + resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} + + '@types/serve-static@2.2.0': + resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/triple-beam@1.3.5': + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + + '@typescript-eslint/eslint-plugin@6.21.0': + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/type-utils@6.21.0': + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@6.21.0': + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + babel-jest@29.7.0: + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} + peerDependencies: + '@babel/core': ^7.0.0 || ^8.0.0-0 + + babel-preset-jest@29.6.3: + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + baseline-browser-mapping@2.9.11: + resolution: {integrity: sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==} + hasBin: true + + bintrees@1.0.2: + resolution: {integrity: sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + cacache@18.0.4: + resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001761: + resolution: {integrity: sha512-JF9ptu1vP2coz98+5051jZ4PwQgd2ni8A+gYSN7EA7dPKIMf0pDlSUxhdmVOaV3/fYK5uWBkgSXJaRLr4+3A6g==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + + cluster-key-slot@1.1.2: + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} + engines: {node: '>=0.10.0'} + + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + collect-v8-coverage@1.0.3: + resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-convert@3.1.3: + resolution: {integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==} + engines: {node: '>=14.6'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-name@2.1.0: + resolution: {integrity: sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==} + engines: {node: '>=12.20'} + + color-string@2.1.4: + resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==} + engines: {node: '>=18'} + + color@5.0.3: + resolution: {integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==} + engines: {node: '>=18'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + create-jest@29.7.0: + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + dedent@1.7.1: + resolution: {integrity: sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + electron-to-chromium@1.5.267: + resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} + + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + + expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@13.0.0: + resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} + engines: {node: 20 || >=22} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ioredis@5.8.2: + resolution: {integrity: sha512-C6uC+kleiIMmjViJINWk80sOQw5lEzse1ZmvD+S/s8p8CWapftSaC+kocGTx6xrbrJ4WmYQGC08ffHLr6ToR6Q==} + engines: {node: '>=12.22.0'} + + ip-address@10.1.0: + resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} + engines: {node: '>= 12'} + + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + + jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-cli@29.7.0: + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@29.7.0: + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest@29.7.0: + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + + launchdarkly-eventsource@1.4.4: + resolution: {integrity: sha512-GL+r2Y3WccJlhFyL2buNKel+9VaMnYpbE/FfCkOST5jSNSFodahlxtGyrE8o7R+Qhobyq0Ree4a7iafJDQi9VQ==} + engines: {node: '>=0.12.0'} + + launchdarkly-node-server-sdk@7.0.4: + resolution: {integrity: sha512-LsbcWbzJNe6TSDQLwXvG1ZJyhm2zjYrpE/MYEvSv2ndt8Ddw8eaiOUruhhDgbMPMDoqV785RXV+8oS9o2sS0pA==} + engines: {node: '>= 12.0.0'} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + + lodash.isarguments@3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + logform@2.7.0: + resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} + engines: {node: '>= 12.0.0'} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.2.4: + resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} + engines: {node: 20 || >=22} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + make-fetch-happen@13.0.1: + resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==} + engines: {node: ^16.14.0 || >=18.0.0} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + minimatch@10.1.1: + resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} + engines: {node: 20 || >=22} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass-fetch@3.0.5: + resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + murmurhash3js@3.0.1: + resolution: {integrity: sha512-KL8QYUaxq7kUbcl0Yto51rMcYt7E/4N4BG3/c96Iqw1PQrTRspu8Cpx4TZ4Nunib1d4bEkIH3gjCYlP2RLBdow==} + engines: {node: '>=0.10.0'} + + murmurhash@2.0.1: + resolution: {integrity: sha512-5vQEh3y+DG/lMPM0mCGPDnyV8chYg/g7rl6v3Gd8WMF9S429ox3Xk8qrk174kWhG767KQMqqxLD1WnGd77hiew==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-cache@5.1.2: + resolution: {integrity: sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==} + engines: {node: '>= 8.0.0'} + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@2.0.1: + resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} + engines: {node: 20 || >=22} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + proc-log@4.2.0: + resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + prom-client@15.1.3: + resolution: {integrity: sha512-6ZiOBfCywsD4k1BN9IX0uZhF+tJkV8q8llP64G5Hajs4JOeVLPCwpPVcpXy3BwYiUGgyJzsJJQeOIv7+hDSq8g==} + engines: {node: ^16 || ^18 || >=20} + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + redis-errors@1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} + + redis-parser@3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} + engines: {node: '>=4'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} + engines: {node: '>=10'} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + socks-proxy-agent@8.0.5: + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} + engines: {node: '>= 14'} + + socks@2.8.7: + resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + ssri@10.0.6: + resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + standard-as-callback@2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + tdigest@0.1.2: + resolution: {integrity: sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==} + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-jest@29.4.6: + resolution: {integrity: sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==} + engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/transform': ^29.0.0 || ^30.0.0 + '@jest/types': ^29.0.0 || ^30.0.0 + babel-jest: ^29.0.0 || ^30.0.0 + esbuild: '*' + jest: ^29.0.0 || ^30.0.0 + jest-util: ^29.0.0 || ^30.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/transform': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + jest-util: + optional: true + + tunnel@0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unleash-client@5.6.1: + resolution: {integrity: sha512-ZmFDhnq0c3Y4CEp+S3ureS9jZFMG/mtyafv4zxW4pmG0vc7xgxE9zBX296lrrrINsc2G0/2uJeoO+9b0bks+mg==} + engines: {node: '>=16'} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + winston-transport@4.9.0: + resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} + engines: {node: '>= 12.0.0'} + + winston@3.19.0: + resolution: {integrity: sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==} + engines: {node: '>= 12.0.0'} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.28.5': {} + + '@babel/core@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.28.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.28.5 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.27.1': {} + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.28.4': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + + '@babel/parser@7.28.5': + dependencies: + '@babel/types': 7.28.5 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + + '@babel/traverse@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.28.5': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@bcoe/v8-coverage@0.2.3': {} + + '@colors/colors@1.6.0': {} + + '@dabh/diagnostics@2.0.8': + dependencies: + '@so-ric/colorspace': 1.1.6 + enabled: 2.0.0 + kuler: 2.0.0 + + '@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.4.3 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.3 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@ioredis/commands@1.4.0': {} + + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.2 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/console@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.19.27 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + + '@jest/core@29.7.0': + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.19.27 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.19.27) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + + '@jest/environment@29.7.0': + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.19.27 + jest-mock: 29.7.0 + + '@jest/expect-utils@29.7.0': + dependencies: + jest-get-type: 29.6.3 + + '@jest/expect@29.7.0': + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 20.19.27 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + '@jest/globals@29.7.0': + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/reporters@29.7.0': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.31 + '@types/node': 20.19.27 + chalk: 4.1.2 + collect-v8-coverage: 1.0.3 + exit: 0.1.2 + glob: 13.0.0 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.2.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.3.0 + transitivePeerDependencies: + - supports-color + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/source-map@29.6.3': + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + callsites: 3.1.0 + graceful-fs: 4.2.11 + + '@jest/test-result@29.7.0': + dependencies: + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.3 + + '@jest/test-sequencer@29.7.0': + dependencies: + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 + + '@jest/transform@29.7.0': + dependencies: + '@babel/core': 7.28.5 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.31 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.19.27 + '@types/yargs': 17.0.35 + chalk: 4.1.2 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@npmcli/agent@2.2.2': + dependencies: + agent-base: 7.1.4 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 10.4.3 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + + '@npmcli/fs@3.1.1': + dependencies: + semver: 7.7.3 + + '@openfeature/core@1.9.1': {} + + '@openfeature/server-sdk@1.20.1(@openfeature/core@1.9.1)': + dependencies: + '@openfeature/core': 1.9.1 + + '@opentelemetry/api@1.9.0': {} + + '@sinclair/typebox@0.27.8': {} + + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@10.3.0': + dependencies: + '@sinonjs/commons': 3.0.1 + + '@so-ric/colorspace@1.1.6': + dependencies: + color: 5.0.3 + text-hex: 1.0.0 + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@types/babel__generator': 7.27.0 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.28.0 + + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.28.5 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.28.5 + + '@types/body-parser@1.19.6': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 20.19.27 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 20.19.27 + + '@types/express-serve-static-core@5.1.0': + dependencies: + '@types/node': 20.19.27 + '@types/qs': 6.14.0 + '@types/range-parser': 1.2.7 + '@types/send': 1.2.1 + + '@types/express@5.0.6': + dependencies: + '@types/body-parser': 1.19.6 + '@types/express-serve-static-core': 5.1.0 + '@types/serve-static': 2.2.0 + + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 20.19.27 + + '@types/http-errors@2.0.5': {} + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/jest@29.5.14': + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 + + '@types/json-schema@7.0.15': {} + + '@types/murmurhash@2.0.0': + dependencies: + murmurhash: 2.0.1 + + '@types/node@20.19.27': + dependencies: + undici-types: 6.21.0 + + '@types/qs@6.14.0': {} + + '@types/range-parser@1.2.7': {} + + '@types/react@19.2.7': + dependencies: + csstype: 3.2.3 + + '@types/semver@7.7.1': {} + + '@types/send@1.2.1': + dependencies: + '@types/node': 20.19.27 + + '@types/serve-static@2.2.0': + dependencies: + '@types/http-errors': 2.0.5 + '@types/node': 20.19.27 + + '@types/stack-utils@2.0.3': {} + + '@types/triple-beam@1.3.5': {} + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.35': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.3 + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + semver: 7.7.3 + ts-api-utils: 1.4.3(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.3 + eslint: 8.57.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + + '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + debug: 4.4.3 + eslint: 8.57.1 + ts-api-utils: 1.4.3(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@6.21.0': {} + + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.3 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.7.3 + ts-api-utils: 1.4.3(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.7.1 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) + eslint: 8.57.1 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.3.0': {} + + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn@8.15.0: {} + + agent-base@7.1.4: {} + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-union@2.1.0: {} + + async@3.2.6: {} + + babel-jest@29.7.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.28.5) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.27.1 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-jest-hoist@29.6.3: + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.28.0 + + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.5) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5) + + babel-preset-jest@29.6.3(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) + + balanced-match@1.0.2: {} + + baseline-browser-mapping@2.9.11: {} + + bintrees@1.0.2: {} + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.9.11 + caniuse-lite: 1.0.30001761 + electron-to-chromium: 1.5.267 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) + + bs-logger@0.2.6: + dependencies: + fast-json-stable-stringify: 2.1.0 + + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + + buffer-from@1.1.2: {} + + cacache@18.0.4: + dependencies: + '@npmcli/fs': 3.1.1 + fs-minipass: 3.0.3 + glob: 13.0.0 + lru-cache: 10.4.3 + minipass: 7.1.2 + minipass-collect: 2.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 4.0.0 + ssri: 10.0.6 + tar: 6.2.1 + unique-filename: 3.0.0 + + callsites@3.1.0: {} + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001761: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + char-regex@1.0.2: {} + + chownr@2.0.0: {} + + ci-info@3.9.0: {} + + cjs-module-lexer@1.4.3: {} + + clean-stack@2.2.0: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone@2.1.2: {} + + cluster-key-slot@1.1.2: {} + + co@4.6.0: {} + + collect-v8-coverage@1.0.3: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-convert@3.1.3: + dependencies: + color-name: 2.1.0 + + color-name@1.1.4: {} + + color-name@2.1.0: {} + + color-string@2.1.4: + dependencies: + color-name: 2.1.0 + + color@5.0.3: + dependencies: + color-convert: 3.1.3 + color-string: 2.1.4 + + concat-map@0.0.1: {} + + convert-source-map@2.0.0: {} + + create-jest@29.7.0(@types/node@20.19.27): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.19.27) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + csstype@3.2.3: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + dedent@1.7.1: {} + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + denque@2.1.0: {} + + detect-newline@3.1.0: {} + + diff-sequences@29.6.3: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + electron-to-chromium@1.5.267: {} + + emittery@0.13.1: {} + + emoji-regex@8.0.0: {} + + enabled@2.0.0: {} + + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + + err-code@2.0.3: {} + + error-ex@1.3.4: + dependencies: + is-arrayish: 0.2.1 + + escalade@3.2.0: {} + + escape-string-regexp@2.0.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.2 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.3.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 3.4.3 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + eventemitter3@5.0.1: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + exit@0.1.2: {} + + expect@29.7.0: + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + + fecha@4.2.3: {} + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.3.3: {} + + fn.name@1.1.0: {} + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs-minipass@3.0.3: + dependencies: + minipass: 7.1.2 + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-package-type@0.1.0: {} + + get-stream@6.0.1: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@13.0.0: + dependencies: + minimatch: 10.1.1 + minipass: 7.1.2 + path-scurry: 2.0.1 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + + has-flag@4.0.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + html-escaper@2.0.2: {} + + http-cache-semantics@4.2.0: {} + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + optional: true + + ignore@5.3.2: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + inherits@2.0.4: {} + + ioredis@5.8.2: + dependencies: + '@ioredis/commands': 1.4.0 + cluster-key-slot: 1.1.2 + debug: 4.4.3 + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + + ip-address@10.1.0: {} + + ip-address@9.0.5: + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 + + is-arrayish@0.2.1: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-generator-fn@2.1.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-lambda@1.0.1: {} + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-stream@2.0.1: {} + + isexe@2.0.0: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + istanbul-lib-instrument@6.0.3: + dependencies: + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@4.0.1: + dependencies: + debug: 4.4.3 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jest-changed-files@29.7.0: + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + + jest-circus@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.19.27 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.7.1 + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.1.0 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-cli@29.7.0(@types/node@20.19.27): + dependencies: + '@jest/core': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.19.27) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@20.19.27) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest-config@29.7.0(@types/node@20.19.27): + dependencies: + '@babel/core': 7.28.5 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.28.5) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 13.0.0 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.19.27 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-diff@29.7.0: + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-docblock@29.7.0: + dependencies: + detect-newline: 3.1.0 + + jest-each@29.7.0: + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 + + jest-environment-node@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.19.27 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + jest-get-type@29.6.3: {} + + jest-haste-map@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 20.19.27 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-leak-detector@29.7.0: + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-matcher-utils@29.7.0: + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.27.1 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.19.27 + jest-util: 29.7.0 + + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + optionalDependencies: + jest-resolve: 29.7.0 + + jest-regex-util@29.6.3: {} + + jest-resolve-dependencies@29.7.0: + dependencies: + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + jest-resolve@29.7.0: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.11 + resolve.exports: 2.0.3 + slash: 3.0.0 + + jest-runner@29.7.0: + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.19.27 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + + jest-runtime@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.19.27 + chalk: 4.1.2 + cjs-module-lexer: 1.4.3 + collect-v8-coverage: 1.0.3 + glob: 13.0.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + + jest-snapshot@29.7.0: + dependencies: + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) + '@babel/types': 7.28.5 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) + chalk: 4.1.2 + expect: 29.7.0 + graceful-fs: 4.2.11 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + natural-compare: 1.4.0 + pretty-format: 29.7.0 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.19.27 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-validate@29.7.0: + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + + jest-watcher@29.7.0: + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.19.27 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + + jest-worker@29.7.0: + dependencies: + '@types/node': 20.19.27 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@29.7.0(@types/node@20.19.27): + dependencies: + '@jest/core': 29.7.0 + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@20.19.27) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + js-tokens@4.0.0: {} + + js-yaml@3.14.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + jsbn@1.1.0: {} + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kleur@3.0.3: {} + + kuler@2.0.0: {} + + launchdarkly-eventsource@1.4.4: {} + + launchdarkly-node-server-sdk@7.0.4: + dependencies: + async: 3.2.6 + launchdarkly-eventsource: 1.4.4 + lru-cache: 6.0.0 + node-cache: 5.1.2 + semver: 7.7.3 + tunnel: 0.0.6 + uuid: 8.3.2 + + leven@3.1.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lines-and-columns@1.2.4: {} + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.defaults@4.2.0: {} + + lodash.isarguments@3.1.0: {} + + lodash.memoize@4.1.2: {} + + lodash.merge@4.6.2: {} + + logform@2.7.0: + dependencies: + '@colors/colors': 1.6.0 + '@types/triple-beam': 1.3.5 + fecha: 4.2.3 + ms: 2.1.3 + safe-stable-stringify: 2.5.0 + triple-beam: 1.4.1 + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lru-cache@10.4.3: {} + + lru-cache@11.2.4: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + make-dir@4.0.0: + dependencies: + semver: 7.7.3 + + make-error@1.3.6: {} + + make-fetch-happen@13.0.1: + dependencies: + '@npmcli/agent': 2.2.2 + cacache: 18.0.4 + http-cache-semantics: 4.2.0 + is-lambda: 1.0.1 + minipass: 7.1.2 + minipass-fetch: 3.0.5 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.4 + proc-log: 4.2.0 + promise-retry: 2.0.1 + ssri: 10.0.6 + transitivePeerDependencies: + - supports-color + + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mimic-fn@2.1.0: {} + + minimatch@10.1.1: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.2 + + minimist@1.2.8: {} + + minipass-collect@2.0.1: + dependencies: + minipass: 7.1.2 + + minipass-fetch@3.0.5: + dependencies: + minipass: 7.1.2 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + + minipass-flush@1.0.5: + dependencies: + minipass: 3.3.6 + + minipass-pipeline@1.2.4: + dependencies: + minipass: 3.3.6 + + minipass-sized@1.0.3: + dependencies: + minipass: 3.3.6 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + + minipass@7.1.2: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp@1.0.4: {} + + ms@2.1.3: {} + + murmurhash3js@3.0.1: {} + + murmurhash@2.0.1: {} + + natural-compare@1.4.0: {} + + negotiator@0.6.4: {} + + neo-async@2.6.2: {} + + node-cache@5.1.2: + dependencies: + clone: 2.1.2 + + node-int64@0.4.0: {} + + node-releases@2.0.27: {} + + normalize-path@3.0.0: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + one-time@1.0.0: + dependencies: + fn.name: 1.1.0 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + + p-try@2.2.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + error-ex: 1.3.4 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@2.0.1: + dependencies: + lru-cache: 11.2.4 + minipass: 7.1.2 + + path-type@4.0.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + pirates@4.0.7: {} + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + prelude-ls@1.2.1: {} + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + proc-log@4.2.0: {} + + prom-client@15.1.3: + dependencies: + '@opentelemetry/api': 1.9.0 + tdigest: 0.1.2 + + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + punycode@2.3.1: {} + + pure-rand@6.1.0: {} + + queue-microtask@1.2.3: {} + + react-is@18.3.1: {} + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + redis-errors@1.2.0: {} + + redis-parser@3.0.0: + dependencies: + redis-errors: 1.2.0 + + require-directory@2.1.1: {} + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + resolve.exports@2.0.3: {} + + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + retry@0.12.0: {} + + reusify@1.1.0: {} + + rimraf@3.0.2: + dependencies: + glob: 13.0.0 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-buffer@5.2.1: {} + + safe-stable-stringify@2.5.0: {} + + safer-buffer@2.1.2: + optional: true + + semver@6.3.1: {} + + semver@7.7.3: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + signal-exit@3.0.7: {} + + sisteransi@1.0.5: {} + + slash@3.0.0: {} + + smart-buffer@4.2.0: {} + + socks-proxy-agent@8.0.5: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + socks: 2.8.7 + transitivePeerDependencies: + - supports-color + + socks@2.8.7: + dependencies: + ip-address: 10.1.0 + smart-buffer: 4.2.0 + + source-map-support@0.5.13: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + sprintf-js@1.0.3: {} + + sprintf-js@1.1.3: {} + + ssri@10.0.6: + dependencies: + minipass: 7.1.2 + + stack-trace@0.0.10: {} + + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + standard-as-callback@2.1.0: {} + + string-length@4.0.2: + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-bom@4.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-json-comments@3.1.1: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + tdigest@0.1.2: + dependencies: + bintrees: 1.0.2 + + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 13.0.0 + minimatch: 3.1.2 + + text-hex@1.0.0: {} + + text-table@0.2.0: {} + + tmpl@1.0.5: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + triple-beam@1.4.1: {} + + ts-api-utils@1.4.3(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + ts-jest@29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.27))(typescript@5.9.3): + dependencies: + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + handlebars: 4.7.8 + jest: 29.7.0(@types/node@20.19.27) + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.3 + type-fest: 4.41.0 + typescript: 5.9.3 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.28.5 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.28.5) + jest-util: 29.7.0 + + tunnel@0.0.6: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-detect@4.0.8: {} + + type-fest@0.20.2: {} + + type-fest@0.21.3: {} + + type-fest@4.41.0: {} + + typescript@5.9.3: {} + + uglify-js@3.19.3: + optional: true + + undici-types@6.21.0: {} + + unique-filename@3.0.0: + dependencies: + unique-slug: 4.0.0 + + unique-slug@4.0.0: + dependencies: + imurmurhash: 0.1.4 + + unleash-client@5.6.1: + dependencies: + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + ip-address: 9.0.5 + make-fetch-happen: 13.0.1 + murmurhash3js: 3.0.1 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + + update-browserslist-db@1.2.3(browserslist@4.28.1): + dependencies: + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + uuid@8.3.2: {} + + v8-to-istanbul@9.3.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + winston-transport@4.9.0: + dependencies: + logform: 2.7.0 + readable-stream: 3.6.2 + triple-beam: 1.4.1 + + winston@3.19.0: + dependencies: + '@colors/colors': 1.6.0 + '@dabh/diagnostics': 2.0.8 + async: 3.2.6 + is-stream: 2.0.1 + logform: 2.7.0 + one-time: 1.0.0 + readable-stream: 3.6.2 + safe-stable-stringify: 2.5.0 + stack-trace: 0.0.10 + triple-beam: 1.4.1 + winston-transport: 4.9.0 + + word-wrap@1.2.5: {} + + wordwrap@1.0.0: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} diff --git a/server/src/app.ts b/server/src/app.ts index 2f4b0471a8e..8dd1459744b 100644 --- a/server/src/app.ts +++ b/server/src/app.ts @@ -18,13 +18,11 @@ import { anomalyDetector } from './lib/telemetry/anomaly-detector.js'; import { auditLogger } from './middleware/audit-logger.js'; import { auditFirstMiddleware } from './middleware/audit-first.js'; import { correlationIdMiddleware } from './middleware/correlation-id.js'; -import { tracingService } from './monitoring/tracing.js'; import { featureFlagContextMiddleware } from './middleware/feature-flag-context.js'; import { sanitizeInput } from './middleware/sanitization.js'; import { piiGuardMiddleware } from './middleware/pii-guard.js'; import { errorHandler } from './middleware/errorHandler.js'; import { publicRateLimit, authenticatedRateLimit } from './middleware/rateLimiter.js'; -import { ensureRole } from './middleware/auth.js'; import { advancedRateLimiter } from './middleware/TieredRateLimitMiddleware.js'; import { circuitBreakerMiddleware } from './middleware/circuitBreakerMiddleware.js'; import { overloadProtection } from './middleware/overloadProtection.js'; @@ -34,8 +32,6 @@ import { safetyModeMiddleware, resolveSafetyState } from './middleware/safety-mo import { residencyEnforcement } from './middleware/residency.js'; import { requestProfilingMiddleware } from './middleware/request-profiling.js'; import { securityHeaders } from './middleware/securityHeaders.js'; -import { securityHardening } from './middleware/security-hardening.js'; -import { abuseGuard } from './middleware/abuseGuard.js'; import exceptionRouter from './data-residency/exceptions/routes.js'; import monitoringRouter from './routes/monitoring.js'; import billingRouter from './routes/billing.js'; @@ -45,7 +41,6 @@ import gaCoreMetricsRouter from './routes/ga-core-metrics.js'; import nlGraphQueryRouter from './routes/nl-graph-query.js'; import disclosuresRouter from './routes/disclosures.js'; import narrativeSimulationRouter from './routes/narrative-sim.js'; -import narrativeRouter from './routes/narrative-routes.js'; import receiptsRouter from './routes/receipts.js'; import predictiveRouter from './routes/predictive.js'; import { policyRouter } from './routes/policy.js'; @@ -87,7 +82,6 @@ import { SummitInvestigate } from './services/SummitInvestigate.js'; import { streamIngest } from './ingest/stream.js'; import osintRouter from './routes/osint.js'; import palettesRouter from './routes/palettes.js'; -import outreachRouter from './routes/outreach.js'; import swaggerUi from 'swagger-ui-express'; import { swaggerSpec } from './config/swagger.js'; @@ -131,14 +125,13 @@ import mlReviewRouter from './routes/ml_review.js'; import adminFlagsRouter from './routes/admin-flags.js'; import auditEventsRouter from './routes/audit-events.js'; import brandPackRouter from './services/brand-packs/brand-pack.routes.js'; -import federatedCampaignRadarRouter from './routes/federated-campaign-radar.js'; import { centralizedErrorHandler } from './middleware/error-handling-middleware.js'; import pluginAdminRouter from './routes/plugins/plugin-admin.js'; import integrationAdminRouter from './routes/integrations/integration-admin.js'; import securityAdminRouter from './routes/security/security-admin.js'; import complianceAdminRouter from './routes/compliance/compliance-admin.js'; import sandboxAdminRouter from './routes/sandbox/sandbox-admin.js'; -import adminGateway from './routes/admin/gateway.js'; +import adminTenantsRouter from './routes/admin/tenants.js'; import onboardingRouter from './routes/onboarding.js'; import supportCenterRouter from './routes/support-center.js'; import i18nRouter from './routes/i18n.js'; @@ -148,10 +141,6 @@ import vectorStoreRouter from './routes/vector-store.js'; import intelGraphRouter from './routes/intel-graph.js'; import graphragRouter from './routes/graphrag.js'; import intentRouter from './routes/intent.js'; -import factFlowRouter from './factflow/routes.js'; -import { failoverOrchestrator } from './runtime/global/FailoverOrchestrator.js'; -import { buildApprovalsRouter } from './routes/approvals.js'; -import { shadowTrafficMiddleware } from './middleware/ShadowTrafficMiddleware.js'; export const createApp = async () => { // Initialize OpenTelemetry tracing @@ -181,29 +170,8 @@ export const createApp = async () => { // Add correlation ID middleware FIRST (before other middleware) app.use(correlationIdMiddleware); - app.use(tracingService.expressMiddleware()); app.use(featureFlagContextMiddleware); - // SEC: Stripe webhook requires raw body for signature verification. - // Mount it BEFORE express.json() to avoid consuming the stream. - app.use('/api/stripe/webhook', express.raw({ type: 'application/json' }), async (req, res) => { - const { handleStripeWebhook } = await import('./webhooks/stripe.js'); - const { stripe } = await import('@summit/billing'); - const sig = req.headers['stripe-signature']; - try { - const event = stripe.webhooks.constructEvent( - req.body, - sig as string, - process.env.STRIPE_WEBHOOK_SECRET || '' - ); - await handleStripeWebhook(event); - res.json({ received: true }); - } catch (err: any) { - console.error(`Stripe webhook error: ${err.message}`); - res.status(400).send(`Webhook Error: ${err.message}`); - } - }); - // Load Shedding / Overload Protection (Second, to reject early) app.use(overloadProtection); app.use(compression()); @@ -236,14 +204,31 @@ export const createApp = async () => { // Rate limiting - applied early to prevent abuse // Public rate limit applies to all routes as baseline protection app.use(publicRateLimit); - app.use(abuseGuard.middleware()); - // Enhanced Pino HTTP logger disabled due to symbol issues - // app.use(pinoHttpInstance({ ... })); - app.use((req: any, res: any, next: any) => { - req.log = appLogger; - next(); - }); + // Enhanced Pino HTTP logger with correlation and trace context + const pinoHttpInstance = typeof pinoHttp === 'function' ? pinoHttp : (pinoHttp as any).pinoHttp; + if (process.env.NODE_ENV === 'test') { + console.log('DEBUG: appLogger type:', typeof appLogger); + console.log('DEBUG: appLogger has levels:', !!(appLogger as any).levels); + if ((appLogger as any).levels) { + console.log('DEBUG: appLogger.levels.values:', (appLogger as any).levels.values); + } + } + // Skip pino-http in test environment to avoid mock issues + if (cfg.NODE_ENV !== 'test') { + app.use( + pinoHttpInstance({ + logger: appLogger, + customProps: (req: any) => ({ + correlationId: req.correlationId, + traceId: req.traceId, + spanId: req.spanId, + userId: req.user?.sub || req.user?.id, + tenantId: req.user?.tenant_id || req.user?.tenantId, + }), + }), + ); + } app.use(requestProfilingMiddleware); app.use( @@ -255,7 +240,6 @@ export const createApp = async () => { }), ); app.use(sanitizeInput); - app.use(securityHardening); app.use(piiGuardMiddleware); app.use(safetyModeMiddleware); @@ -316,8 +300,6 @@ export const createApp = async () => { sub: 'dev-user', email: 'dev@intelgraph.local', role: 'admin', - tenantId: 'global', - id: 'dev-user', // SEC-2025-002: Ensure downstream helpers rely on user object, not headers }; return next(); } @@ -336,13 +318,12 @@ export const createApp = async () => { ); }; + // Resolve and enforce tenant context for API and GraphQL surfaces app.use(['/api', '/graphql'], (req, res, next) => { if (isPublicWebhook(req)) return next(); return tenantContextMiddleware()(req, res, next); }); - app.use(['/api', '/graphql'], shadowTrafficMiddleware); - app.use(['/api', '/graphql'], admissionControl); // Authenticated rate limiting for API and GraphQL routes @@ -404,8 +385,13 @@ export const createApp = async () => { }); // Admin Rate Limit Dashboard Endpoint - // Requires authentication and admin role - app.get('/api/admin/rate-limits/:userId', authenticateToken, ensureRole(['ADMIN', 'admin']), async (req, res) => { + // Requires authentication and admin role (simplified check for now) + app.get('/api/admin/rate-limits/:userId', authenticateToken, async (req, res) => { + const user = (req as any).user; + if (!user || user.role !== 'admin') { + res.status(403).json({ error: 'Forbidden' }); + return; + } try { const status = await advancedRateLimiter.getStatus(req.params.userId); res.json(status); @@ -420,31 +406,13 @@ export const createApp = async () => { app.use('/api/auth', authRouter); // Alternative path app.use('/sso', ssoRouter); - // SEC-2025-002: Enforce authentication globally for /api routes - // This mitigates the risk of missing authentication checks in individual routers. - app.use('/api', (req, res, next) => { - // Exempt known public paths (must be robust against mount point logic) - // Note: req.path is relative to the mount point (/api) - - // Public Webhooks (e.g., GitHub, Jira) - if (isPublicWebhook(req)) return next(); - - // Auth routes (redundant as they are mounted before, but good for safety) - if (req.path.startsWith('/auth')) return next(); - - // Health checks if exposed under /api - if (req.path.startsWith('/health')) return next(); - - return authenticateToken(req, res, next); - }); - // Other routes // app.use('/api/policy', policyRouter); app.use('/api/policies', policyManagementRouter); app.use('/policies', policyManagementRouter); app.use('/api/receipts', receiptsRouter); app.use('/api/brand-packs', brandPackRouter); - app.use(['/monitoring', '/api/monitoring'], authenticateToken, monitoringRouter); + app.use(['/monitoring', '/api/monitoring'], monitoringRouter); app.use('/api', monitoringBackpressureRouter); app.use('/api/ga-core-metrics', gaCoreMetricsRouter); if (process.env.SKIP_AI_ROUTES !== 'true') { @@ -453,7 +421,6 @@ export const createApp = async () => { } app.use('/api/ai/nl-graph-query', nlGraphQueryRouter); app.use('/api/narrative-sim', narrativeSimulationRouter); - app.use('/api/narrative', narrativeRouter); // Visualization endpoints app.use('/api/predictive', predictiveRouter); app.use('/api/export', disclosuresRouter); // Mount export under /api/export as per spec app.use('/disclosures', disclosuresRouter); // Keep old mount for compat @@ -484,7 +451,6 @@ export const createApp = async () => { app.use('/api/tenants', tenantsRouter); app.use('/api/actions', actionsRouter); app.use('/api/osint', osintRouter); - app.use('/api/outreach', outreachRouter); app.use('/api/meta-orchestrator', metaOrchestratorRouter); app.use('/api', adminSmokeRouter); @@ -503,8 +469,8 @@ export const createApp = async () => { app.use('/api', dataGovernanceRouter); // Register Data Governance API app.use('/api', sharingRouter); app.use('/api/gtm', gtmRouter); - app.use('/airgap', authenticateToken, ensureRole(['ADMIN']), airgapRouter); - app.use('/analytics', authenticateToken, ensureRole(['ADMIN', 'ANALYST']), analyticsRouter); + app.use('/airgap', airgapRouter); + app.use('/analytics', analyticsRouter); app.use('/api', experimentRouter); // Mounts /api/experiments... app.use('/api', cohortRouter); // Mounts /api/cohorts... app.use('/api', funnelRouter); // Mounts /api/funnels... @@ -514,7 +480,7 @@ export const createApp = async () => { app.use('/api/policy-profiles', policyProfilesRouter); app.use('/api/policy-proposals', authenticateToken, policyProposalsRouter); app.use('/api/evidence', evidenceRouter); - app.use('/dr', authenticateToken, ensureRole(['ADMIN']), drRouter); + app.use('/dr', drRouter); app.use('/', opsRouter); app.use('/api/reporting', reportingRouter); app.use('/api/mastery', masteryRouter); @@ -525,13 +491,12 @@ export const createApp = async () => { app.use('/api/ml-reviews', mlReviewRouter); app.use('/api/admin/flags', adminFlagsRouter); app.use('/api', auditEventsRouter); - app.use('/api', federatedCampaignRadarRouter); - app.use('/api/admin', authenticateToken, ensureRole(['ADMIN', 'admin']), adminGateway); - app.use('/api/plugins', authenticateToken, ensureRole(['ADMIN', 'admin']), pluginAdminRouter); - app.use('/api/integrations', authenticateToken, ensureRole(['ADMIN', 'admin']), integrationAdminRouter); - app.use('/api/security', authenticateToken, ensureRole(['ADMIN', 'admin']), securityAdminRouter); - app.use('/api/compliance', authenticateToken, ensureRole(['ADMIN', 'admin']), complianceAdminRouter); - app.use('/api/sandbox', authenticateToken, ensureRole(['ADMIN', 'admin']), sandboxAdminRouter); + app.use('/api/admin', adminTenantsRouter); + app.use('/api/plugins', pluginAdminRouter); + app.use('/api/integrations', integrationAdminRouter); + app.use('/api/security', securityAdminRouter); + app.use('/api/compliance', complianceAdminRouter); + app.use('/api/sandbox', sandboxAdminRouter); app.use('/api/v1/onboarding', onboardingRouter); app.use('/api/v1/support', supportCenterRouter); app.use('/api/v1/i18n', i18nRouter); @@ -547,12 +512,7 @@ export const createApp = async () => { app.use('/api/intel-graph', intelGraphRouter); app.use('/api/graphrag', graphragRouter); app.use('/api/intent', intentRouter); - if (cfg.FACTFLOW_ENABLED) { - app.use('/api/factflow', factFlowRouter); - } app.get('/metrics', metricsRoute); - // Re-added Approvals Router with Maestro context - app.use('/api/approvals', authenticateToken, buildApprovalsRouter()); // Initialize SummitInvestigate Platform Routes SummitInvestigate.initialize(app); @@ -583,7 +543,6 @@ export const createApp = async () => { const maestroQueries = new MaestroQueries(igClient); app.use('/api/maestro', buildMaestroRouter(maestro, maestroQueries)); - app.use('/api/approvals', authenticateToken, buildApprovalsRouter(maestro)); // Re-mount with maestro context process.stdout.write('[DEBUG] Maestro router built\n'); // Initialize Maestro V2 Engine & Handlers (Stable-DiffCoder Integration) @@ -608,11 +567,11 @@ export const createApp = async () => { // Adapt LLM for V2 Handlers const llmServiceV2 = { callCompletion: async (runId: string, taskId: string, payload: any) => { - const result = await llmClient.callCompletion(payload.messages[payload.messages.length - 1].content, payload.model); - return { - content: typeof result === 'string' ? result : (result as any).content || JSON.stringify(result), - usage: { total_tokens: 0 } - }; + const result = await llmClient.callCompletion(payload.messages[payload.messages.length-1].content, payload.model); + return { + content: typeof result === 'string' ? result : (result as any).content || JSON.stringify(result), + usage: { total_tokens: 0 } + }; } }; @@ -632,29 +591,19 @@ export const createApp = async () => { appLogger.error({ err }, 'Failed to initialize Maestro V2 Engine'); } - app.get('/search/evidence', authenticateToken, ensureRole(['admin', 'analyst']), async (req, res) => { - const { q } = req.query; - // SEC-DoS: Enforce pagination and offset limits - const limit = Math.min(Math.max(Number(req.query.limit) || 10, 1), 100); - const skip = Math.max(Number(req.query.skip) || 0, 0); + app.get('/search/evidence', async (req, res) => { + const { q, skip = 0, limit = 10 } = req.query; if (!q) { return res.status(400).send({ error: "Query parameter 'q' is required" }); } - const tenantId = (req as any).user?.tenantId || (req as any).user?.tenant_id; - if (!tenantId) { - return res.status(403).send({ error: "Tenant context is required" }); - } - const driver = getNeo4jDriver(); const session = driver.session(); try { - // SEC-TENANCY: Filter results by tenantId/tenant to prevent cross-tenant data leakage const searchQuery = ` CALL db.index.fulltext.queryNodes("evidenceContentSearch", $query) YIELD node, score - WHERE node.tenantId = $tenantId OR node.tenant = $tenantId RETURN node, score SKIP $skip LIMIT $limit @@ -662,18 +611,16 @@ export const createApp = async () => { const countQuery = ` CALL db.index.fulltext.queryNodes("evidenceContentSearch", $query) YIELD node - WHERE node.tenantId = $tenantId OR node.tenant = $tenantId RETURN count(node) as total `; const [searchResult, countResult] = await Promise.all([ session.run(searchQuery, { query: q, - tenantId, skip: Number(skip), - limit, + limit: Number(limit), }), - session.run(countQuery, { query: q, tenantId }), + session.run(countQuery, { query: q }), ]); const evidence = searchResult.records.map((record: any) => ({ @@ -738,7 +685,7 @@ export const createApp = async () => { persistedQueriesPlugin as any, resolverMetricsPlugin as any, auditLoggerPlugin as any, - // rateLimitAndCachePlugin(schema) as any, + rateLimitAndCachePlugin(schema) as any, // Enable PBAC in production ...(cfg.NODE_ENV === 'production' ? [pbacPlugin() as any] : []), ], @@ -786,7 +733,8 @@ export const createApp = async () => { '/graphql', express.json(), authenticateToken, // WAR-GAMED SIMULATION - Add authentication middleware here - ...(process.env.SKIP_RATE_LIMITS === 'true' ? [] : [advancedRateLimiter.middleware()]), // Applied AFTER authentication to enable per-user limits + advancedRateLimiter.middleware(), // Applied AFTER authentication to enable per-user limits + // Note: Type assertion needed due to duplicate @apollo/server in monorepo node_modules expressMiddleware(apollo as any, { context: async ({ req }) => getContext({ req: req as any }) }) as unknown as express.RequestHandler, @@ -795,23 +743,19 @@ export const createApp = async () => { appLogger.warn('GraphQL disabled via SKIP_GRAPHQL'); } - if (!safetyState.killSwitch && !safetyState.safeMode && process.env.NODE_ENV !== 'test') { + if (!safetyState.killSwitch && !safetyState.safeMode) { // Start background trust worker if enabled startTrustWorker(); // Start retention worker if enabled startRetentionWorker(); - // Start streaming ingestion if enabled (Epic B) - if (cfg.KAFKA_ENABLED) { - streamIngest.start(['ingest-events']).catch(err => { - appLogger.error({ err }, 'Failed to start streaming ingestion'); - }); - } else { - appLogger.info('Streaming ingestion disabled (KAFKA_ENABLED=false)'); - } + // Start streaming ingestion (Epic B) + streamIngest.start(['ingest-events']).catch(err => { + appLogger.error({ err }, 'Failed to start streaming ingestion'); + }); } else { appLogger.warn( - { safetyState, env: process.env.NODE_ENV }, - 'Skipping background workers because safety mode, kill switch or test environment is enabled', + { safetyState }, + 'Skipping background workers because safety mode or kill switch is enabled', ); } @@ -828,11 +772,6 @@ export const createApp = async () => { appLogger.info('Anomaly detector activated.'); - if (process.env.NODE_ENV !== 'test') { - // Start regional failover monitoring - failoverOrchestrator.start(); - } - // Global Error Handler - must be last app.use(centralizedErrorHandler); diff --git a/server/src/audit/advanced-audit-system.ts b/server/src/audit/advanced-audit-system.ts index 33f6708b6e9..11ae5a877d3 100644 --- a/server/src/audit/advanced-audit-system.ts +++ b/server/src/audit/advanced-audit-system.ts @@ -15,7 +15,6 @@ import { getPostgresPool, getRedisClient } from '../config/database.js'; import logger from '../utils/logger.js'; import { correlationStorage } from '../config/logger.js'; import { AuditTimelineRollupService } from './AuditTimelineRollupService.js'; -import { AuditArchivingService } from '../services/AuditArchivingService.js'; // Core audit event types export type AuditEventType = @@ -187,7 +186,6 @@ export class AdvancedAuditSystem extends EventEmitter { private batchSize: number = 100; private compressionEnabled: boolean = true; private realTimeAlerting: boolean = true; - private archiveThresholdDays: number = 90; // Archive events older than 90 days // Caching private eventBuffer: AuditEvent[] = []; @@ -224,11 +222,6 @@ export class AdvancedAuditSystem extends EventEmitter { this.retentionIntervalHours = retentionIntervalHours; } - const archiveThreshold = Number(process.env.AUDIT_ARCHIVE_THRESHOLD_DAYS); - if (!Number.isNaN(archiveThreshold) && archiveThreshold > 0) { - this.archiveThresholdDays = archiveThreshold; - } - // Initialize schema this.initializeSchema().catch((err: any) => { this.logger.error( @@ -533,26 +526,10 @@ export class AdvancedAuditSystem extends EventEmitter { if (!this.retentionEnabled) { return 0; } - const effectiveDays = Math.max(0, retentionDays); if (effectiveDays === 0) { return 0; } - - // 1. Archival Phase: Archive logs between ARCHIVE_THRESHOLD and RETENTION_PERIOD - if (this.archiveThresholdDays < effectiveDays) { - const archiver = AuditArchivingService.getInstance(); - const archiveEnd = new Date(Date.now() - (this.archiveThresholdDays * 24 * 60 * 60 * 1000)); - const archiveStart = new Date(Date.now() - (effectiveDays * 24 * 60 * 60 * 1000)); - - try { - await archiver.archiveRange(archiveStart, archiveEnd, 'COLD'); - } catch (err: any) { - this.logger.error({ error: err.message }, 'Audit archival failed - continuing with pruning'); - } - } - - // 2. Pruning Phase: Delete records older than retention period const result = await this.db.query( `DELETE FROM audit_events WHERE timestamp < NOW() - ($1 * INTERVAL '1 day')`, @@ -1259,7 +1236,6 @@ export class AdvancedAuditSystem extends EventEmitter { private async processRealTimeAlerts(event: AuditEvent): Promise { if (!this.redis) return; - if (typeof (this.redis as any).publish !== 'function') return; // Implement real-time alerting logic if (event.level === 'critical' || event.eventType === 'security_alert') { diff --git a/server/src/cache/factory.ts b/server/src/cache/factory.ts index 541629c3335..af79affdb57 100644 --- a/server/src/cache/factory.ts +++ b/server/src/cache/factory.ts @@ -2,65 +2,19 @@ import { getRedisClient } from '../db/redis.js'; import { CacheManager } from './AdvancedCachingStrategy.js'; import { DistributedCacheService } from './DistributedCacheService.js'; -import { correlationStorage } from '../config/logger.js'; import config from '../config/index.js'; let cacheManagerInstance: CacheManager | null = null; let distributedCacheInstance: DistributedCacheService | null = null; -const tenantCacheManagers = new Map(); -const tenantDistributedCaches = new Map(); - -/** - * Get a tenant-aware CacheManager. - * Automatically scopes keys to the current tenant from correlation context. - */ -export function getTenantCacheManager(): CacheManager { - const store = correlationStorage.getStore(); - const tenantId = store?.get('tenantId') || 'global'; - - if (!tenantCacheManagers.has(tenantId)) { - const redisClient = getRedisClient('cache'); - const manager = new CacheManager(redisClient as any, { - keyPrefix: `summit:tenant:${tenantId}:cache:`, - defaultTtl: 600, - enableMetrics: true, - }); - tenantCacheManagers.set(tenantId, manager); - } - return tenantCacheManagers.get(tenantId)!; -} - -/** - * Get a tenant-aware DistributedCacheService. - * Automatically scopes keys to the current tenant from correlation context. - */ -export function getTenantDistributedCache(): DistributedCacheService { - const store = correlationStorage.getStore(); - const tenantId = store?.get('tenantId') || 'global'; - - if (!tenantDistributedCaches.has(tenantId)) { - const redisClient = getRedisClient('dist'); - const service = new DistributedCacheService(redisClient as any, { - keyPrefix: `summit:tenant:${tenantId}:dist:`, - defaultTTLSeconds: 300, - enableInvalidation: true - }); - tenantDistributedCaches.set(tenantId, service); - } - return tenantDistributedCaches.get(tenantId)!; -} - /** * Get the singleton instance of the advanced CacheManager. * Initializes it if it doesn't exist. * This manager uses the AdvancedCachingStrategy pattern. - * Uses the 'cache' Redis partition (REDIS_CACHE_HOST or defaults to REDIS_HOST). */ export function getCacheManager(): CacheManager { if (!cacheManagerInstance) { - // Partitioning: Use 'cache' specific Redis client - const redisClient = getRedisClient('cache'); + const redisClient = getRedisClient(); // We need to adapt the existing Redis client (which is ioredis) to the RedisClientInterface // expected by CacheManager. @@ -76,12 +30,10 @@ export function getCacheManager(): CacheManager { /** * Get the singleton instance of the DistributedCacheService. * This service implements L1/L2 caching with Data Governance envelopes. - * Uses the 'dist' Redis partition (REDIS_DIST_HOST or defaults to REDIS_HOST). */ export function getDistributedCache(): DistributedCacheService { if (!distributedCacheInstance) { - // Partitioning: Use 'dist' specific Redis client - const redisClient = getRedisClient('dist'); + const redisClient = getRedisClient(); distributedCacheInstance = new DistributedCacheService(redisClient as any, { keyPrefix: 'summit:dist:', @@ -98,6 +50,4 @@ export function getDistributedCache(): DistributedCacheService { export function _resetCacheManagerForTesting() { cacheManagerInstance = null; distributedCacheInstance = null; - tenantCacheManagers.clear(); - tenantDistributedCaches.clear(); } diff --git a/server/src/cognitive-security/claims.service.ts b/server/src/cognitive-security/claims.service.ts index 49363bb0348..e99ab852264 100644 --- a/server/src/cognitive-security/claims.service.ts +++ b/server/src/cognitive-security/claims.service.ts @@ -23,7 +23,7 @@ import type { NarrativeStatus, Actor, Channel, - AudienceSegment, + Audience, ContentCredential, } from './types.js'; import { createClaim, createEvidence, createNarrative } from './types.js'; @@ -290,69 +290,6 @@ export class ClaimsService { } } - /** - * Get actor by ID - */ - async getActor(actorId: string): Promise { - const session = this.getSession(); - try { - const result = await session.run( - 'MATCH (a:CogSecActor {id: $actorId}) RETURN a', - { actorId }, - ); - - if (result.records.length === 0) { - return null; - } - - return this.recordToActor(result.records[0].get('a')); - } finally { - await session.close(); - } - } - - /** - * Get narrative by ID - */ - async getNarrative(narrativeId: string): Promise { - const session = this.getSession(); - try { - const result = await session.run( - 'MATCH (n:CogSecNarrative {id: $narrativeId}) RETURN n', - { narrativeId }, - ); - - if (result.records.length === 0) { - return null; - } - - return this.recordToNarrative(result.records[0].get('n')); - } finally { - await session.close(); - } - } - - /** - * Get channel by ID - */ - async getChannel(channelId: string): Promise { - const session = this.getSession(); - try { - const result = await session.run( - 'MATCH (ch:CogSecChannel {id: $channelId}) RETURN ch', - { channelId }, - ); - - if (result.records.length === 0) { - return null; - } - - return this.recordToChannel(result.records[0].get('ch')); - } finally { - await session.close(); - } - } - /** * Search claims by text */ @@ -588,41 +525,6 @@ export class ClaimsService { } } - /** - * Detect conflicting narratives based on contradicting claims - */ - async detectNarrativeConflicts(narrativeId: string): Promise; - }>> { - const session = this.getSession(); - try { - const result = await session.run( - ` - MATCH (n:CogSecNarrative {id: $narrativeId})<-[:PART_OF]-(c1:CogSecClaim) - MATCH (c1)-[:RELATED_TO {type: 'CONTRADICTS'}]->(c2:CogSecClaim) - MATCH (c2)-[:PART_OF]->(n2:CogSecNarrative) - WHERE n2.id <> n.id - RETURN n2.id AS competingNarrativeId, - count(DISTINCT c1) AS conflictCount, - collect([c1.id, c2.id]) AS pairs - ORDER BY conflictCount DESC - LIMIT 5 - `, - { narrativeId }, - ); - - return result.records.map((r: any) => ({ - competingNarrativeId: r.get('competingNarrativeId'), - conflictScore: r.get('conflictCount').toNumber() / 10.0, - contradictingClaimPairs: r.get('pairs'), - })); - } finally { - await session.close(); - } - } - /** * Detect narrative mutations/forks */ diff --git a/server/src/cognitive-security/index.ts b/server/src/cognitive-security/index.ts index 45bfdfb28e2..30928b192f6 100644 --- a/server/src/cognitive-security/index.ts +++ b/server/src/cognitive-security/index.ts @@ -71,9 +71,6 @@ export { type EvaluationServiceConfig, } from './evaluation.service.js'; -export { CognitiveStateService } from '../services/CognitiveStateService.js'; -export { CascadeDetectionService } from '../services/CascadeDetectionService.js'; - // Module initialization import type { Driver } from 'neo4j-driver'; import pino from 'pino'; diff --git a/server/src/cognitive-security/types.ts b/server/src/cognitive-security/types.ts index 91095191d32..45bd9be65b9 100644 --- a/server/src/cognitive-security/types.ts +++ b/server/src/cognitive-security/types.ts @@ -445,11 +445,7 @@ export interface Channel { metadata: Record; } -// ============================================================================ -// Cognitive & Audience Layer -// ============================================================================ - -export interface AudienceSegment { +export interface Audience { /** Unique audience ID */ id: string; /** Audience segment name */ @@ -457,7 +453,7 @@ export interface AudienceSegment { /** Description */ description: string; /** Estimated size */ - size: number; + estimatedSize: number; /** Demographics */ demographics?: Record; /** Geographic regions */ @@ -466,111 +462,8 @@ export interface AudienceSegment { vulnerabilityFactors: string[]; /** Narrative IDs targeting this audience */ narrativeIds: string[]; - - // Cognitive Attributes - trustInInstitutions: number; // 0.0 - 1.0 - polarizationIndex: number; // 0.0 - 1.0 - fearSensitivity: number; // 0.0 - 1.0 - identityClusters: string[]; - - /** Cognitive Metrics */ - resilienceScore: number; - /** Created timestamp */ createdAt: string; - /** Updated timestamp */ - updatedAt: string; -} - -export interface CognitiveState { - id: string; - segmentId: string; - timestamp: string; - - /** State Vectors */ - beliefVector: Record; // Map of topic -> sentiment/belief strength - resilienceScore: number; // Resistance to manipulation - emotionalValence: number; // -1.0 (Negative) to 1.0 (Positive) - arousalLevel: number; // 0.0 (Calm) to 1.0 (Agitated) -} - -export type CognitiveAttackType = - | 'OVERLOAD' - | 'CONFUSION' - | 'MISTRUST' - | 'IDENTITY_THREAT' - | 'DESENSITIZATION' - | 'POLARIZATION_WEDGE'; - -export interface CognitiveAttack { - id: string; - type: CognitiveAttackType; - name: string; - description: string; - - /** Targets & Tactics */ - targetSegmentIds: string[]; - narrativeTacticId?: string; - campaignPhaseId?: string; - campaignId?: string; - - /** Impact */ - predictedImpact: number; - observedImpact?: number; - createdAt: string; -} - -// ============================================================================ -// Influence Pathways & Early Warning -// ============================================================================ - -export interface NarrativeCascade { - id: string; - narrativeId: string; - startTime: string; - endTime?: string; - - /** Structural */ - originNodeId: string; - totalHops: number; - maxDepth: number; - uniqueActors: number; - - /** Dynamics */ - velocity: number; - viralityScore: number; - - /** Involved entities */ - originActorId?: string; - hopIds: string[]; -} - -export interface CascadeHop { - id: string; - cascadeId: string; - sourceActorId: string; - targetActorId: string; - platform: string; - timestamp: string; - delaySeconds?: number; - - /** Content */ - contentId?: string; - actionType: 'SHARE' | 'QUOTE' | 'REPLY'; -} - -export interface TippingPointIndicator { - id: string; - narrativeId: string; - metricName: string; - currentValue: number; - threshold: number; - isBreached: boolean; - breachedAt?: string; - - /** Context */ - segmentId?: string; - platform?: string; } // ============================================================================ diff --git a/server/src/conductor/config.ts b/server/src/conductor/config.ts index 01e3663ad44..e0a6790c402 100644 --- a/server/src/conductor/config.ts +++ b/server/src/conductor/config.ts @@ -1,31 +1,10 @@ // Conductor Configuration and Initialization // Sets up MCP servers, registers them, and initializes the conductor system -import { initializeConductor, ConductorConfig } from './index'; -import { mcpRegistry } from './mcp/client'; -import GraphOpsServer, { GraphOpsConfig } from './mcp/servers/graphops-server'; -import FilesServer, { FilesServerConfig } from './mcp/servers/files-server'; -import type { - MCPTransportName, - MCPTransportNegotiationPolicy, -} from './mcp/transport/types.js'; - -const MCP_TRANSPORTS: MCPTransportName[] = ['stdio', 'http', 'jsonrpc', 'grpc']; -const MCP_TRANSPORT_POLICIES: MCPTransportNegotiationPolicy[] = [ - 'prefer_grpc_fallback_http', - 'strict', -]; - -function readTransportEnv( - value: string | undefined, - allowed: readonly T[], - fallback: T, -): T { - if (!value) { - return fallback; - } - return allowed.includes(value as T) ? (value as T) : fallback; -} +import { initializeConductor, ConductorConfig } from './index.js'; +import { mcpRegistry } from './mcp/client.js'; +import GraphOpsServer, { GraphOpsConfig } from './mcp/servers/graphops-server.js'; +import FilesServer, { FilesServerConfig } from './mcp/servers/files-server.js'; const u1 = process.env.NEO4J_USER; const u2 = process.env.NEO4J_USERNAME; @@ -128,16 +107,6 @@ export async function initializeConductorSystem(): Promise<{ defaultTimeoutMs: parseInt(process.env.CONDUCTOR_TIMEOUT_MS || '30000'), maxConcurrentTasks: parseInt(process.env.CONDUCTOR_MAX_CONCURRENT || '10'), auditEnabled: process.env.CONDUCTOR_AUDIT_ENABLED === 'true', - mcpTransport: readTransportEnv( - process.env.MCP_TRANSPORT, - MCP_TRANSPORTS, - 'jsonrpc', - ), - mcpTransportPolicy: readTransportEnv( - process.env.MCP_TRANSPORT_POLICY, - MCP_TRANSPORT_POLICIES, - 'strict', - ), llmProviders: { light: { endpoint: process.env.LLM_LIGHT_ENDPOINT || 'https://api.openai.com/v1', @@ -341,7 +310,7 @@ export async function shutdownConductorSystem(servers: { } // Shutdown main conductor - const { conductor } = await import('./index'); + const { conductor } = await import('./index.js'); if (conductor) { await conductor.shutdown(); } @@ -375,8 +344,6 @@ export function getConductorEnvConfig(): Record { FILES_PORT: '8002', FILES_BASE_PATH: '/tmp/intelgraph-files', FILES_MAX_SIZE: '10485760', - MCP_TRANSPORT: 'jsonrpc', - MCP_TRANSPORT_POLICY: 'strict', // Authentication MCP_AUTH_TOKEN: 'conductor-token-12345', diff --git a/server/src/conductor/index.ts b/server/src/conductor/index.ts index 95e331960d2..626b5a19cdc 100644 --- a/server/src/conductor/index.ts +++ b/server/src/conductor/index.ts @@ -32,18 +32,12 @@ import { MissionControlResolution, } from './mission-control/conflict-resolution.js'; import { PolicyEngine } from '../services/PolicyEngine.js'; // Integration of Policy Engine -import type { - MCPTransportName, - MCPTransportNegotiationPolicy, -} from './mcp/transport/types.js'; export interface ConductorConfig { enabledExperts: ExpertType[]; defaultTimeoutMs: number; maxConcurrentTasks: number; auditEnabled: boolean; - mcpTransport?: MCPTransportName; - mcpTransportPolicy?: MCPTransportNegotiationPolicy; llmProviders: { light?: { endpoint: string; @@ -76,8 +70,6 @@ export class Conductor { timeout: config.defaultTimeoutMs, retryAttempts: 3, retryDelay: 1000, - transport: config.mcpTransport, - negotiationPolicy: config.mcpTransportPolicy, }); // Initialize budget controller // In a real application, Redis client should be injected or managed globally diff --git a/server/src/conductor/mcp/client.ts b/server/src/conductor/mcp/client.ts index 14b3860ed6e..4518860ee81 100644 --- a/server/src/conductor/mcp/client.ts +++ b/server/src/conductor/mcp/client.ts @@ -1,28 +1,15 @@ // MCP (Model Context Protocol) Client for JSON-RPC 2.0 communication // Handles persistent connections to MCP servers with auth and error handling +import WebSocket from 'ws'; import { randomUUID as uuid } from 'crypto'; import { MCPRequest, MCPResponse, MCPServerConfig, MCPTool } from '../types/index.js'; import logger from '../../config/logger.js'; -import { - type ClientTransportSession, - type MCPTransportName, - type MCPTransportNegotiationPolicy, - type TransportEnvelope, - type TransportConnectOptions, -} from './transport/types.js'; -import { - createDefaultTransportRegistry, - selectTransportName, -} from './transport/registry.js'; -import { prometheusConductorMetrics } from '../observability/prometheus.js'; export interface MCPClientOptions { timeout?: number; retryAttempts?: number; retryDelay?: number; - transport?: MCPTransportName; - negotiationPolicy?: MCPTransportNegotiationPolicy; } // Load allowed executor URLs from environment variable @@ -31,7 +18,7 @@ const allowedExecutorUrls = process.env.MCP_ALLOWED_EXECUTOR_URLS : []; export class MCPClient { - private sessions: Map = new Map(); + private connections: Map = new Map(); private pendingRequests: Map< string, { @@ -44,14 +31,11 @@ export class MCPClient { constructor( private servers: Record, private options: MCPClientOptions = {}, - private registry = createDefaultTransportRegistry(), ) { this.options = { timeout: 30000, retryAttempts: 3, retryDelay: 1000, - transport: 'jsonrpc', - negotiationPolicy: 'strict', ...options, }; } @@ -59,10 +43,7 @@ export class MCPClient { /** * Connect to an MCP server */ - public async connect( - serverName: string, - options?: TransportConnectOptions, - ): Promise { + public async connect(serverName: string): Promise { const config = this.servers[serverName]; if (!config) { throw new Error(`MCP server '${serverName}' not configured`); @@ -81,76 +62,96 @@ export class MCPClient { ); } - if (this.sessions.has(serverName)) { - await this.sessions.get(serverName)?.close(); + if (this.connections.has(serverName)) { + // Close existing connection + this.connections.get(serverName)?.close(); } - const selection = selectTransportName( - this.options.transport ?? 'jsonrpc', - this.options.negotiationPolicy ?? 'strict', - this.registry, - ); + return new Promise((resolve, reject) => { + const headers: Record = {}; + if (config.authToken) { + headers.Authorization = `Bearer ${config.authToken}`; + } - if (selection.warning) { - logger.warn(selection.warning); - prometheusConductorMetrics.recordOperationalEvent( - 'mcp_transport_fallback', - { - success: true, - transport: selection.name, - fallback_from: selection.fallbackFrom, - }, - ); - } + // P2-3: Certificate pinning implementation + // Load trusted certificates if configured (production should use cert pinning) + const wsOptions: any = { headers }; + + if (process.env.MCP_CA_CERT_PATH) { + try { + const fs = require('fs'); + const trustedCA = fs.readFileSync(process.env.MCP_CA_CERT_PATH, 'utf8'); + wsOptions.ca = [trustedCA]; + wsOptions.rejectUnauthorized = true; + logger.info(`Using certificate pinning for ${serverName} with CA from ${process.env.MCP_CA_CERT_PATH}`); + } catch (err) { + logger.warn(`Failed to load MCP CA certificate: ${err}. Proceeding without cert pinning.`); + } + } - const session = this.registry.createClientSession(selection.name, config); - this.sessions.set(serverName, session); + if (process.env.MCP_CLIENT_CERT_PATH && process.env.MCP_CLIENT_KEY_PATH) { + try { + const fs = require('fs'); + wsOptions.cert = fs.readFileSync(process.env.MCP_CLIENT_CERT_PATH, 'utf8'); + wsOptions.key = fs.readFileSync(process.env.MCP_CLIENT_KEY_PATH, 'utf8'); + logger.info(`Using mTLS client certificate for ${serverName}`); + } catch (err) { + logger.warn(`Failed to load MCP client certificate: ${err}`); + } + } - session.recv((message: TransportEnvelope) => { - this.handleMessage(message.payload); - }); + // NOTE: For production, configure: + // - MCP_CA_CERT_PATH=/path/to/ca.crt + // - MCP_CLIENT_CERT_PATH=/path/to/client.crt (optional mTLS) + // - MCP_CLIENT_KEY_PATH=/path/to/client.key (optional mTLS) - session.onError?.((error) => { - logger.error( - `MCP transport error for ${serverName} (${config.url}):`, - error, - ); - }); + const ws = new WebSocket(config.url, wsOptions); - session.onClose?.(() => { - logger.info( - `Disconnected from MCP server: ${serverName} (${config.url})`, - ); - this.sessions.delete(serverName); - let attempt = 0; - const retry = () => { - const delay = Math.min(30000, 1000 * 2 ** attempt++); - setTimeout(() => { - this.connect(serverName).catch(() => retry()); - }, delay); - }; - retry(); - }); + ws.once('open', () => { + logger.info(`Connected to MCP server: ${serverName} (${config.url})`); + // Audit pin state (placeholder for now) + // writeAudit({ action: 'mcp_connect', resourceType: 'mcp_server', resourceId: serverName, details: { url: config.url, pinned: false, pin_status: 'not_implemented' } }); + this.connections.set(serverName, ws); + resolve(); + }); - try { - await session.connect(options); - } catch (error) { - this.sessions.delete(serverName); - throw error; - } - logger.info(`Connected to MCP server: ${serverName} (${config.url})`); - // Audit pin state (placeholder for now) - // writeAudit({ action: 'mcp_connect', resourceType: 'mcp_server', resourceId: serverName, details: { url: config.url, pinned: false, pin_status: 'not_implemented' } }); + ws.once('error', (error) => { + logger.error( + `Failed to connect to MCP server ${serverName} (${config.url}):`, + error, + ); + reject(error); + }); + + ws.on('message', (data) => { + this.handleMessage(data); + }); + + ws.on('close', () => { + logger.info( + `Disconnected from MCP server: ${serverName} (${config.url})`, + ); + this.connections.delete(serverName); + let attempt = 0; + const retry = () => { + const delay = Math.min(30000, 1000 * 2 ** attempt++); + setTimeout(() => { + this.connect(serverName).catch(() => retry()); // Re-attempt connection + }, delay); + }; + retry(); + }); + }); } /** * Disconnect from an MCP server */ public async disconnect(serverName: string): Promise { - const session = this.sessions.get(serverName); - if (session) { - await session.close(); - this.sessions.delete(serverName); + const ws = this.connections.get(serverName); + if (ws) { + ws.close(); + this.connections.delete(serverName); } } @@ -158,7 +159,7 @@ export class MCPClient { * Disconnect from all servers */ public async disconnectAll(): Promise { - const promises = Array.from(this.sessions.keys()).map((serverName) => + const promises = Array.from(this.connections.keys()).map((serverName) => this.disconnect(serverName), ); await Promise.all(promises); @@ -196,7 +197,7 @@ export class MCPClient { } // Ensure connection exists - if (!this.sessions.has(serverName)) { + if (!this.connections.has(serverName)) { await this.connect(serverName); } @@ -213,6 +214,26 @@ export class MCPClient { return this.sendRequest(serverName, request); } + /** + * Get a resource from a specific MCP server + */ + public async getResource(serverName: string, uri: string): Promise { + if (!this.connections.has(serverName)) { + await this.connect(serverName); + } + + const request: MCPRequest = { + jsonrpc: '2.0', + id: uuid(), + method: 'resources/read', + params: { + uri, + }, + }; + + return this.sendRequest(serverName, request); + } + /** * List available tools on a server */ @@ -231,7 +252,7 @@ export class MCPClient { * Get server capabilities and info */ public async getServerInfo(serverName: string): Promise { - if (!this.sessions.has(serverName)) { + if (!this.connections.has(serverName)) { await this.connect(serverName); } @@ -251,8 +272,8 @@ export class MCPClient { serverName: string, request: MCPRequest, ): Promise { - const session = this.sessions.get(serverName); - if (!session) { + const ws = this.connections.get(serverName); + if (!ws || ws.readyState !== WebSocket.OPEN) { throw new Error(`No active connection to server '${serverName}'`); } @@ -268,21 +289,22 @@ export class MCPClient { timeout, }); - session - .send(request) - .catch((error) => { + ws.send(JSON.stringify(request), (error) => { + if (error) { clearTimeout(timeout); this.pendingRequests.delete(request.id); reject(error); - }); + } + }); }); } /** - * Handle incoming transport messages + * Handle incoming WebSocket messages */ - private handleMessage(message: MCPResponse): void { + private handleMessage(data: WebSocket.Data): void { try { + const message: MCPResponse = JSON.parse(data.toString()); const pending = this.pendingRequests.get(message.id); if (!pending) { @@ -299,7 +321,7 @@ export class MCPClient { pending.resolve(message.result); } } catch (error: any) { - logger.error('Failed to handle MCP message:', error); + logger.error('Failed to parse MCP message:', error); } } @@ -307,7 +329,8 @@ export class MCPClient { * Check if connected to a server */ public isConnected(serverName: string): boolean { - return this.sessions.has(serverName); + const ws = this.connections.get(serverName); + return ws?.readyState === WebSocket.OPEN; } /** diff --git a/server/src/conductor/types/index.ts b/server/src/conductor/types/index.ts index c14edbbae2a..ce5125be217 100644 --- a/server/src/conductor/types/index.ts +++ b/server/src/conductor/types/index.ts @@ -23,8 +23,6 @@ export interface ConductInput { runId?: string; missionControlContext?: MissionControlConflictContext; emergency_justification?: string; - agentId?: string; - agentVersion?: string; } export interface ConductResult { @@ -100,7 +98,6 @@ export interface MCPTool { export interface MCPServerConfig { url: string; - transport?: 'websocket' | 'local'; name: string; tools: MCPTool[]; authToken?: string; diff --git a/server/src/config.ts b/server/src/config.ts index 824183695fe..a825ab531ea 100644 --- a/server/src/config.ts +++ b/server/src/config.ts @@ -35,20 +35,12 @@ export const EnvSchema = z GA_CLOUD: z.coerce.boolean().default(false), AWS_REGION: z.string().optional(), AI_ENABLED: z.coerce.boolean().default(false), - FACTFLOW_ENABLED: z.coerce.boolean().default(false), KAFKA_ENABLED: z.coerce.boolean().default(false), OPENAI_API_KEY: z.string().optional(), ANTHROPIC_API_KEY: z.string().optional(), SKIP_AI_ROUTES: z.coerce.boolean().default(false), SKIP_WEBHOOKS: z.coerce.boolean().default(false), SKIP_GRAPHQL: z.coerce.boolean().default(false), - // Email Configuration - SMTP_HOST: z.string().optional(), - SMTP_PORT: z.coerce.number().optional().default(587), - SMTP_USER: z.string().optional(), - SMTP_PASS: z.string().optional(), - EMAIL_FROM_ADDRESS: z.string().email().optional().default('noreply@intelgraph.com'), - EMAIL_FROM_NAME: z.string().optional().default('IntelGraph'), }); const TestEnvSchema = EnvSchema.extend({ @@ -89,15 +81,8 @@ const ENV_VAR_HELP: Record = { GA_CLOUD: 'Enable strict GA cloud readiness checks (default: false)', AWS_REGION: 'AWS Region (required if GA_CLOUD is true)', AI_ENABLED: 'Enable AI-augmented features (default: false)', - FACTFLOW_ENABLED: 'Enable FactFlow product module (default: false)', OPENAI_API_KEY: 'OpenAI API Key (required if AI_ENABLED=true)', ANTHROPIC_API_KEY: 'Anthropic API Key (required if AI_ENABLED=true)', - SMTP_HOST: 'SMTP host for emails (e.g., smtp.gmail.com)', - SMTP_PORT: 'SMTP port (default: 587)', - SMTP_USER: 'SMTP username', - SMTP_PASS: 'SMTP password', - EMAIL_FROM_ADDRESS: 'Verified sender email address', - EMAIL_FROM_NAME: 'Sender name displayed in emails', }; export const initializeConfig = (options: { exitOnError?: boolean } = { exitOnError: true }) => { @@ -213,12 +198,12 @@ export const initializeConfig = (options: { exitOnError?: boolean } = { exitOnEr // Ensure strictly no localhost in critical URLs for GA const criticalUrls = [env.DATABASE_URL, env.NEO4J_URI]; criticalUrls.forEach(url => { - if (url && (url.includes('localhost') || url.includes('127.0.0.1'))) { - const msg = `\n❌ GA Cloud Error: Critical service URL contains localhost: ${url}\n`; - console.error(msg); - if (options.exitOnError) process.exit(1); - throw new Error(msg); - } + if (url && (url.includes('localhost') || url.includes('127.0.0.1'))) { + const msg = `\n❌ GA Cloud Error: Critical service URL contains localhost: ${url}\n`; + console.error(msg); + if (options.exitOnError) process.exit(1); + throw new Error(msg); + } }); } @@ -263,4 +248,4 @@ export const dbUrls = { redis: `redis://${cfg.REDIS_HOST}:${cfg.REDIS_PORT}`, postgres: cfg.DATABASE_URL, neo4j: cfg.NEO4J_URI, -}; +}; \ No newline at end of file diff --git a/server/src/data-residency/__tests__/residency-guard.test.ts b/server/src/data-residency/__tests__/residency-guard.test.ts index a8e028f9536..da7b759bfc8 100644 --- a/server/src/data-residency/__tests__/residency-guard.test.ts +++ b/server/src/data-residency/__tests__/residency-guard.test.ts @@ -1,35 +1,43 @@ -/* eslint-disable no-undef */ -import { jest } from '@jest/globals'; - -const queryMock = jest.fn(); -jest.unstable_mockModule('../../db/postgres.js', () => ({ - getPostgresPool: () => ({ - query: queryMock, - }), +import { jest, describe, it, expect, beforeEach, afterEach, beforeAll, afterAll } from '@jest/globals'; +import { ResidencyGuard, ResidencyViolationError } from '../residency-guard.js'; +import { getPostgresPool } from '../../db/postgres.js'; + +jest.mock('../../db/postgres', () => ({ + getPostgresPool: jest.fn(), })); -const { ResidencyGuard, ResidencyViolationError } = await import('../residency-guard.js'); +jest.mock('../../middleware/observability/otel-tracing', () => ({ + otelService: { + createSpan: jest.fn(() => ({ end: jest.fn() })), + addSpanAttributes: jest.fn(), + }, +})); describe('ResidencyGuard', () => { let guard: ResidencyGuard; + let mockPool: any; beforeEach(() => { - jest.clearAllMocks(); + // Reset singleton if possible, or just use the instance guard = ResidencyGuard.getInstance(); + mockPool = { + query: jest.fn(), + }; + (getPostgresPool as jest.Mock).mockReturnValue(mockPool); }); it('should allow access when region is allowed', async () => { - queryMock.mockResolvedValueOnce({ + mockPool.query.mockResolvedValueOnce({ rows: [ { region: 'us-east-1', - allowed_regions: '["us-west-2"]', + allowed_transfers: '["us-west-2"]', }, ], }); await expect( - guard.enforce('tenant-allowed', { + guard.enforce('tenant-1', { operation: 'compute', targetRegion: 'us-west-2', }) @@ -37,22 +45,44 @@ describe('ResidencyGuard', () => { }); it('should block access when region is prohibited', async () => { - queryMock.mockResolvedValueOnce({ + mockPool.query.mockResolvedValueOnce({ rows: [ { region: 'us-east-1', - allowed_regions: '[]', + allowed_transfers: '[]', }, ], }); - queryMock.mockResolvedValueOnce({ rows: [] }); // checkExceptions + // Mock exceptions check to return false + mockPool.query.mockResolvedValueOnce({ rows: [] }); await expect( - guard.enforce('tenant-blocked', { + guard.enforce('tenant-1', { operation: 'compute', targetRegion: 'eu-central-1', }) ).rejects.toThrow(ResidencyViolationError); }); + + it('should allow access via exception', async () => { + mockPool.query.mockResolvedValueOnce({ + rows: [ + { + region: 'us-east-1', + allowed_transfers: '[]', + }, + ], + }); + + // Mock exceptions check to return true + mockPool.query.mockResolvedValueOnce({ rows: [{ id: 'exc-1' }] }); + + await expect( + guard.enforce('tenant-1', { + operation: 'compute', + targetRegion: 'eu-central-1', + }) + ).resolves.not.toThrow(); + }); }); diff --git a/server/src/data-residency/residency-guard.ts b/server/src/data-residency/residency-guard.ts index 5c670765bec..3ad7ac7f70a 100644 --- a/server/src/data-residency/residency-guard.ts +++ b/server/src/data-residency/residency-guard.ts @@ -1,7 +1,6 @@ import { DataResidencyService } from './residency-service.js'; import { getPostgresPool } from '../db/postgres.js'; import { otelService } from '../middleware/observability/otel-tracing.js'; -import { REGIONAL_CATALOG } from '../config/regional.js'; export interface ResidencyContext { operation: 'storage' | 'compute' | 'logs' | 'backup' | 'export'; @@ -20,8 +19,6 @@ export class ResidencyGuard { private static instance: ResidencyGuard; private residencyService: DataResidencyService; private currentRegion: string; - private configCache: Map = new Map(); - private readonly CACHE_TTL_MS = 60 * 1000; // 1 minute private constructor() { this.residencyService = new DataResidencyService(); @@ -47,18 +44,18 @@ export class ResidencyGuard { const config = await this.getResidencyConfig(tenantId); if (!config) { - // Default to strict if no config? Or allow? - // Prompt says "No undocumented exceptions", "Only enforced boundaries with evidence". - // Safest is to fail if no policy exists, or assume default region is the ONLY allowed region if inferred. - // For now, if no config, we assume the tenant is native to the current region and block cross-region. - if (context.targetRegion !== this.currentRegion) { - throw new ResidencyViolationError( - `No residency policy found. Strictly blocking cross-region access to ${context.targetRegion}.`, - tenantId, - context - ); - } - return; + // Default to strict if no config? Or allow? + // Prompt says "No undocumented exceptions", "Only enforced boundaries with evidence". + // Safest is to fail if no policy exists, or assume default region is the ONLY allowed region if inferred. + // For now, if no config, we assume the tenant is native to the current region and block cross-region. + if (context.targetRegion !== this.currentRegion) { + throw new ResidencyViolationError( + `No residency policy found. Strictly blocking cross-region access to ${context.targetRegion}.`, + tenantId, + context + ); + } + return; } const isStrict = config.residencyMode === 'strict'; @@ -71,22 +68,10 @@ export class ResidencyGuard { // Check exceptions const activeException = await this.checkExceptions(tenantId, context.targetRegion, context.operation); if (!activeException) { - // v2: Cross-check with Regional Catalog for sovereign boundaries - if (context.operation === 'export' && config.country) { - const regionalPolicy = REGIONAL_CATALOG[config.country]; - if (regionalPolicy && !regionalPolicy.residency.allowedTransferTargets.includes(context.targetRegion)) { - throw new ResidencyViolationError( - `Export to ${context.targetRegion} is prohibited by sovereign policy for ${config.country}.`, - tenantId, - context - ); - } - } - const errorMsg = `Region ${context.targetRegion} is not allowed for tenant ${tenantId}.`; if (isStrict) { - throw new ResidencyViolationError(errorMsg, tenantId, context); + throw new ResidencyViolationError(errorMsg, tenantId, context); } else { // In preferred mode, we might log a warning but allow if it's a critical operation? console.warn(`[Residency Warning] ${errorMsg} (Mode: Preferred)`); @@ -101,12 +86,12 @@ export class ResidencyGuard { if (classificationRules) { const allowedForScope = classificationRules[context.operation]; // e.g. storage: ['us-east-1'] if (allowedForScope && !allowedForScope.includes(context.targetRegion)) { - const errorMsg = `Data classification ${context.dataClassification} prohibits ${context.operation} in ${context.targetRegion}.`; - if (isStrict) { - throw new ResidencyViolationError(errorMsg, tenantId, context); - } else { - console.warn(`[Residency Classification Warning] ${errorMsg}`); - } + const errorMsg = `Data classification ${context.dataClassification} prohibits ${context.operation} in ${context.targetRegion}.`; + if (isStrict) { + throw new ResidencyViolationError(errorMsg, tenantId, context); + } else { + console.warn(`[Residency Classification Warning] ${errorMsg}`); + } } } } @@ -120,7 +105,7 @@ export class ResidencyGuard { }); } catch (error: any) { - otelService.addSpanAttributes({ + otelService.addSpanAttributes({ 'residency.status': 'violated', 'residency.error': error instanceof Error ? error.message : 'Unknown error' }); @@ -152,102 +137,41 @@ export class ResidencyGuard { }); } - /** - * Checks if a region is allowed for a tenant without throwing. - */ - async isRegionAllowed(tenantId: string, region: string, operation: ResidencyContext['operation'] = 'storage'): Promise { - try { - const config = await this.getResidencyConfig(tenantId); - if (!config) return region === this.currentRegion; - - const isAllowed = config.primaryRegion === region || config.allowedRegions.includes(region); - if (isAllowed) return true; - - return await this.checkExceptions(tenantId, region, operation); - } catch (error) { - console.error('isRegionAllowed check failed:', error); - return false; - } - } - - public async getResidencyConfig(tenantId: string): Promise { - const now = Date.now(); - const cached = this.configCache.get(tenantId); - if (cached && cached.expiresAt > now) { - return cached.config; - } - + private async getResidencyConfig(tenantId: string): Promise { const pool = getPostgresPool(); - // Task #97: Join with tenant_partitions to get the authoritative region for this tenant const result = await pool.query( - `SELECT c.*, p.region as shard_region - FROM data_residency_configs c - LEFT JOIN tenant_partitions p ON c.tenant_id = p.tenant_id - WHERE c.tenant_id = $1`, + 'SELECT * FROM data_residency_configs WHERE tenant_id = $1', [tenantId] ); if (result.rows.length === 0) return null; const row = result.rows[0]; - // Authoritative region is from shard configuration, falling back to policy config - const primaryRegion = row.shard_region || row.region; - - const parseSafe = (val: any) => { - if (!val || val === '') return []; - try { - return typeof val === 'string' ? JSON.parse(val) : val; - } catch (e) { - return []; - } - }; - - const allowedRegions = parseSafe(row.allowed_regions || row.allowed_transfers); + const allowedRegions = row.allowed_regions ? JSON.parse(row.allowed_regions) : (row.allowed_transfers ? JSON.parse(row.allowed_transfers) : []); // Ensure primary region is in allowed list if not explicitly there - if (primaryRegion && !allowedRegions.includes(primaryRegion)) { - allowedRegions.push(primaryRegion); + if (!allowedRegions.includes(row.region)) { + allowedRegions.push(row.region); } - const config = { - primaryRegion, - allowedRegions, - country: row.country, + return { + primaryRegion: row.region, + allowedRegions: allowedRegions, residencyMode: row.residency_mode || 'strict', dataClassifications: { 'confidential': { - 'storage': [primaryRegion], // Strict default - 'compute': [primaryRegion], - 'logs': [primaryRegion], - 'backups': [primaryRegion], - 'export': [primaryRegion] + 'storage': [row.region], // Strict default + 'compute': [row.region], + 'logs': [row.region], + 'backups': [row.region], + 'export': [row.region] }, 'restricted': { - 'storage': [primaryRegion], - 'export': [primaryRegion] + 'storage': [row.region], + 'export': [row.region] } } }; - - this.configCache.set(tenantId, { - config, - expiresAt: now + this.CACHE_TTL_MS - }); - - return config; - } - - /** - * Checks if a specific feature is allowed for a tenant based on their regional policy. - */ - async validateFeatureAccess(tenantId: string, feature: 'aiFeatures' | 'betaFeatures'): Promise { - const config = await this.getResidencyConfig(tenantId); - if (!config || !config.country) return true; // Default to true if unknown - - const regionalPolicy = REGIONAL_CATALOG[config.country]; - if (!regionalPolicy) return true; - - return !!(regionalPolicy.features as any)[feature]; } private async checkExceptions(tenantId: string, region: string, operation: string): Promise { @@ -266,7 +190,7 @@ export class ResidencyGuard { // Log real error unless it's just "table doesn't exist" during bootstrap const msg = e instanceof Error ? e.message : String(e); if (!msg.includes('relation "residency_exceptions" does not exist')) { - console.error('Residency Exception Check Failed:', e); + console.error('Residency Exception Check Failed:', e); } return false; } diff --git a/server/src/data-residency/residency-service.ts b/server/src/data-residency/residency-service.ts index 3819d20f9fb..c1656047488 100644 --- a/server/src/data-residency/residency-service.ts +++ b/server/src/data-residency/residency-service.ts @@ -27,11 +27,11 @@ interface ResidencyConfig { interface KMSConfig { provider: - | 'aws-kms' - | 'azure-keyvault' - | 'gcp-kms' - | 'hashicorp-vault' - | 'customer-managed'; + | 'aws-kms' + | 'azure-keyvault' + | 'gcp-kms' + | 'hashicorp-vault' + | 'customer-managed'; keyId: string; region: string; endpoint?: string; @@ -281,10 +281,9 @@ export class DataResidencyService { const pool = getPostgresPool(); // Get residency and KMS configs - const region = process.env.SUMMIT_REGION || 'us-east-1'; const [residencyConfig, kmsConfig] = await Promise.all([ this.getResidencyConfig(tenantId), - this.getKMSConfig(tenantId, region), + this.getKMSConfig(tenantId), ]); // Check residency compliance @@ -370,8 +369,7 @@ export class DataResidencyService { const pool = getPostgresPool(); // Get KMS config for decryption - const region = process.env.SUMMIT_REGION || 'us-east-1'; - const kmsConfig = await this.getKMSConfig(tenantId, region); + const kmsConfig = await this.getKMSConfig(tenantId); let decryptedData: string; @@ -421,7 +419,7 @@ export class DataResidencyService { ) VALUES ($1, now(), $2, $3, now())`, [tenantId, false, error.message], ) - .catch(() => { }); // Non-fatal audit logging + .catch(() => {}); // Non-fatal audit logging throw error; } finally { @@ -531,10 +529,10 @@ export class DataResidencyService { residency: residencyConfig, kms: kmsConfig ? { - provider: kmsConfig.provider, - region: kmsConfig.region, - keyId: kmsConfig.keyId.substring(0, 8) + '***', - } + provider: kmsConfig.provider, + region: kmsConfig.region, + keyId: kmsConfig.keyId.substring(0, 8) + '***', + } : null, }, compliance: { @@ -902,22 +900,16 @@ export class DataResidencyService { }; } - private async getKMSConfig(tenantId: string, region?: string): Promise { + private async getKMSConfig(tenantId: string): Promise { const pool = getPostgresPool(); - let query = 'SELECT * FROM kms_configs WHERE tenant_id = $1'; - const params: any[] = [tenantId]; - - if (region) { - query += ' AND (region = $2 OR region IS NULL)'; - params.push(region); - } - - const result = await pool.query(query, params); + const result = await pool.query( + 'SELECT * FROM kms_configs WHERE tenant_id = $1', + [tenantId], + ); if (result.rows.length === 0) return null; - // Prioritize regional match if multiple found - const row = result.rows.find(r => r.region === region) || result.rows[0]; + const row = result.rows[0]; return { provider: row.provider, keyId: row.key_id, diff --git a/server/src/db/__tests__/tenantRouter.test.ts b/server/src/db/__tests__/tenantRouter.test.ts index cc858dc01d9..22efb813f27 100644 --- a/server/src/db/__tests__/tenantRouter.test.ts +++ b/server/src/db/__tests__/tenantRouter.test.ts @@ -22,7 +22,7 @@ class MockPool { constructor( private readonly partitions: any[], private readonly mappings: any[], - ) { } + ) {} async query(sql: string) { this.queries.push(sql); @@ -85,71 +85,4 @@ describe('tenantRouter', () => { expect(route?.partitionKey).toBe('shard_a'); expect(route?.schema).toBe('tenant_shard_a'); }); - - it('resolves regional route based on the requested region', async () => { - const usPartition = { - partition_key: 'us_shard', - strategy: 'shared', - schema_name: null, - write_connection_url: null, - read_connection_url: null, - is_default: false, - status: 'active', - region: 'us-east-1', - }; - - const euPartition = { - partition_key: 'eu_shard', - strategy: 'shared', - schema_name: null, - write_connection_url: null, - read_connection_url: null, - is_default: false, - status: 'active', - region: 'eu-central-1', - }; - - const pool = new MockPool([primaryPartition, usPartition, euPartition], []); - tenantRouter.configure({ writePool: pool as any }); - - const usRoute = await tenantRouter.resolveRegionalRoute('tenant-1', 'us-east-1'); - expect(usRoute?.partitionKey).toBe('us_shard'); - expect(usRoute?.region).toBe('us-east-1'); - - const euRoute = await tenantRouter.resolveRegionalRoute('tenant-2', 'eu-central-1'); - expect(euRoute?.partitionKey).toBe('eu_shard'); - expect(euRoute?.region).toBe('eu-central-1'); - }); - - it('respects tenant mapping but overrides with regional partition if mismatch occurs', async () => { - const usPartition = { - partition_key: 'us_shard', - strategy: 'shared', - schema_name: null, - region: 'us-east-1', - is_default: false, - status: 'active' - }; - - const euPartition = { - partition_key: 'eu_shard', - strategy: 'shared', - schema_name: null, - region: 'eu-central-1', - is_default: false, - status: 'active' - }; - - const pool = new MockPool( - [primaryPartition, usPartition, euPartition], - [{ tenant_id: 'tenant-us', partition_key: 'us_shard' }] - ); - - tenantRouter.configure({ writePool: pool as any }); - - // When requesting eu-central-1 for a tenant mapped to us-east-1, should pick eu_shard - const route = await tenantRouter.resolveRegionalRoute('tenant-us', 'eu-central-1'); - expect(route?.partitionKey).toBe('eu_shard'); - expect(route?.region).toBe('eu-central-1'); - }); }); diff --git a/server/src/db/postgres.ts b/server/src/db/postgres.ts index d37414cc7a8..2fab8927e98 100644 --- a/server/src/db/postgres.ts +++ b/server/src/db/postgres.ts @@ -8,8 +8,6 @@ dotenv.config(); import { dbConfig } from './config.js'; import { logger as baseLogger, correlationStorage } from '../config/logger.js'; import { ResidencyGuard } from '../data-residency/residency-guard.js'; -import { tenantRouter } from './tenantRouter.js'; -import { telemetry } from '../lib/telemetry/comprehensive-telemetry.js'; // Constants for pool monitoring and connection management const POOL_MONITOR_INTERVAL_MS = 30000; // 30 seconds @@ -417,9 +415,9 @@ function initializePools(): void { // or distinct pool with same config if we want separation. // Using a separate read pool connected to same DB for now to respect pool sizing. const readPool = createPool( - 'read-default', - 'read', - dbConfig.readPoolSize + 'read-default', + 'read', + dbConfig.readPoolSize ); readPoolWrappers = [readPool]; @@ -444,7 +442,7 @@ function createManagedPool( transaction: async () => ({} as any), withTransaction: async () => ({} as any), connect: async () => writePool.pool.connect(), - end: async () => { }, + end: async () => {}, on: () => ({} as any), healthCheck: async () => [], slowQueryInsights: () => [], @@ -544,12 +542,12 @@ function createManagedPool( await withManagedClient(wrapper, 1000, async (client) => { await client.query('SELECT 1'); }); - const client = await wrapper.pool.connect(); - try { - await client.query('SELECT 1'); - } finally { - client.release(); - } + const client = await wrapper.pool.connect(); + try { + await client.query('SELECT 1'); + } finally { + client.release(); + } } catch (error: any) { snapshot.healthy = false; snapshot.lastError = (error as Error).message; @@ -617,39 +615,23 @@ async function executeManagedQuery({ readPools: PoolWrapper[]; }): Promise> { // Data Residency Check - if ((options as any).tenantId) { - const guard = ResidencyGuard.getInstance(); - await guard.enforce((options as any).tenantId, { - operation: 'storage', - targetRegion: process.env.SUMMIT_REGION || 'us-east-1', - dataClassification: (options as any).classification || 'internal' - }); - } + // We infer tenantId from a custom option or thread-local storage if available. + // Since we don't have AsyncLocalStorage for tenant everywhere yet, we might check params/options? + // The 'residency-guard' uses getPostgresPool internally, so we must avoid infinite recursion. + // We skip residency check if this is an internal query (e.g. from residency-guard). - let activeWritePool = writePool; - let activeReadPools = readPools; + // Implementation note: The proper place for this is higher up in the repository layer + // where tenantId is known. However, to satisfy "Enforcement at Data storage", + // we can add a check here if 'tenantId' is passed in options. - // Regional Sharding: If tenantId is provided, resolve the localized pool + // For this implementation, we assume repositories pass tenantId in options when strict enforcement is needed. if ((options as any).tenantId) { - const region = process.env.SUMMIT_REGION || 'us-east-1'; - const route = await tenantRouter.resolveRegionalRoute((options as any).tenantId, region); - - if (route) { - // Wrap regional pools in PoolWrapper for execution loop - // Circuit breakers for regional pools are ad-hoc for this request - activeWritePool = { - name: route.partitionKey, - type: 'write', - pool: route.writePool, - circuitBreaker: new (CircuitBreaker as any)(route.partitionKey, CIRCUIT_BREAKER_FAILURE_THRESHOLD, CIRCUIT_BREAKER_COOLDOWN_MS) - }; - activeReadPools = [{ - name: route.partitionKey, - type: 'read', - pool: route.readPool, - circuitBreaker: new (CircuitBreaker as any)(route.partitionKey, CIRCUIT_BREAKER_FAILURE_THRESHOLD, CIRCUIT_BREAKER_COOLDOWN_MS) - }]; - } + const guard = ResidencyGuard.getInstance(); + await guard.enforce((options as any).tenantId, { + operation: 'storage', + targetRegion: process.env.SUMMIT_REGION || process.env.REGION || 'us-east-1', + dataClassification: (options as any).classification || 'internal' + }); } const normalized = normalizeQuery(queryInput, params); @@ -657,8 +639,8 @@ async function executeManagedQuery({ desiredType === 'auto' ? inferQueryType(normalized.text) : desiredType; const poolCandidates = queryType === 'write' - ? [activeWritePool] - : [...pickReadPoolSequence(activeReadPools), activeWritePool]; + ? [writePool] + : [...pickReadPoolSequence(readPools), writePool]; const timeoutMs = options.timeoutMs ?? dbConfig.statementTimeoutMs; const label = options.label ?? inferOperation(normalized.text); @@ -695,12 +677,12 @@ async function executeWithRetry( while (attempt <= 3) { try { - const client = await wrapper.pool.connect(); - try { - return await executeQueryOnClient(client, normalizedQuery, wrapper, label, timeoutMs); - } finally { - client.release(); - } + const client = await wrapper.pool.connect(); + try { + return await executeQueryOnClient(client, normalizedQuery, wrapper, label, timeoutMs); + } finally { + client.release(); + } } catch (error: any) { const err = error as Error; wrapper.circuitBreaker.recordFailure(err); @@ -741,10 +723,6 @@ async function executeQueryOnClient( const duration = performance.now() - start; - // Record telemetry - telemetry.subsystems.database.queries.add(1); - telemetry.subsystems.database.latency.record(duration / 1000); - if (duration >= dbConfig.slowQueryThresholdMs) { recordSlowQuery( normalizedQuery.name, diff --git a/server/src/db/redis.ts b/server/src/db/redis.ts index 71efdd7b46a..6fd1e948bd7 100644 --- a/server/src/db/redis.ts +++ b/server/src/db/redis.ts @@ -7,76 +7,46 @@ dotenv.config(); const logger = (pino as any)(); -import { telemetry } from '../lib/telemetry/comprehensive-telemetry.js'; - -// Map to store multiple Redis clients -const clients = new Map(); - -interface RedisConfig { - host: string; - port: number; - password?: string; - useCluster: boolean; - clusterNodes: string; - tlsEnabled: boolean; +const REDIS_HOST = process.env.REDIS_HOST || 'redis'; +const REDIS_PORT = parseInt(process.env.REDIS_PORT || '6379', 10); +const REDIS_USE_CLUSTER = process.env.REDIS_USE_CLUSTER === 'true'; +const REDIS_CLUSTER_NODES = process.env.REDIS_CLUSTER_NODES || ''; +const REDIS_TLS_ENABLED = process.env.REDIS_TLS_ENABLED === 'true'; + +if ( + process.env.NODE_ENV === 'production' && + (!process.env.REDIS_PASSWORD || process.env.REDIS_PASSWORD === 'devpassword') +) { + throw new Error( + 'Security Error: REDIS_PASSWORD must be set and cannot be "devpassword" in production', + ); } +const REDIS_PASSWORD = process.env.REDIS_PASSWORD || 'devpassword'; -function getConfig(name: string): RedisConfig { - const prefix = name === 'default' ? 'REDIS' : `REDIS_${name.toUpperCase()}`; - - // Fallback to default REDIS_* vars if specific ones aren't set - const getVar = (suffix: string) => process.env[`${prefix}_${suffix}`] || process.env[`REDIS_${suffix}`]; - - const host = getVar('HOST') || 'redis'; - const port = parseInt(getVar('PORT') || '6379', 10); - const useCluster = getVar('USE_CLUSTER') === 'true'; - const clusterNodes = getVar('CLUSTER_NODES') || ''; - const tlsEnabled = getVar('TLS_ENABLED') === 'true'; - let password = getVar('PASSWORD'); - - if ( - process.env.NODE_ENV === 'production' && - (!password || password === 'devpassword') - ) { - throw new Error( - `Security Error: REDIS_PASSWORD (for ${name}) must be set and cannot be "devpassword" in production`, - ); - } +import { telemetry } from '../lib/telemetry/comprehensive-telemetry.js'; - return { - host, - port, - password: password || 'devpassword', - useCluster, - clusterNodes, - tlsEnabled - }; -} +let redisClient: Redis | Cluster | any; -export function getRedisClient(name: string = 'default'): Redis | Cluster { - if (!clients.has(name)) { +export function getRedisClient(): Redis | Cluster { + if (!redisClient) { try { - const config = getConfig(name); - let client: Redis | Cluster; - - if (config.useCluster) { - if (!config.clusterNodes) { - throw new Error(`Redis Cluster enabled for ${name} but CLUSTER_NODES is not defined`); + if (REDIS_USE_CLUSTER) { + if (!REDIS_CLUSTER_NODES) { + throw new Error('Redis Cluster enabled but REDIS_CLUSTER_NODES is not defined'); } - const nodes = config.clusterNodes.split(',').map((node) => { + const nodes = REDIS_CLUSTER_NODES.split(',').map((node) => { const [host, port] = node.split(':'); return { host, port: parseInt(port, 10) }; }); - logger.info({ nodes, name }, 'Initializing Redis Cluster'); + logger.info({ nodes }, 'Initializing Redis Cluster'); - client = new Redis.Cluster(nodes, { + redisClient = new Redis.Cluster(nodes, { redisOptions: { - password: config.password, - tls: config.tlsEnabled ? {} : undefined, + password: REDIS_PASSWORD, + tls: REDIS_TLS_ENABLED ? {} : undefined, connectTimeout: 10000, - maxRetriesPerRequest: null, }, scaleReads: 'slave', clusterRetryStrategy: (times) => { @@ -86,38 +56,31 @@ export function getRedisClient(name: string = 'default'): Redis | Cluster { enableOfflineQueue: true, }); } else { - logger.info({ host: config.host, port: config.port, name }, 'Initializing Redis Client'); - client = new Redis({ - host: config.host, - port: config.port, - password: config.password, - tls: config.tlsEnabled ? {} : undefined, + redisClient = new Redis({ + host: REDIS_HOST, + port: REDIS_PORT, + password: REDIS_PASSWORD, + tls: REDIS_TLS_ENABLED ? {} : undefined, connectTimeout: 10000, lazyConnect: true, retryStrategy: (times) => { const delay = Math.min(times * 50, 2000); return delay; }, - maxRetriesPerRequest: null, + maxRetriesPerRequest: 3, }); } - client.on('connect', () => logger.info(`Redis client '${name}' connected.`)); - client.on('error', (err: any) => { + redisClient.on('connect', () => logger.info('Redis client connected.')); + redisClient.on('error', (err: any) => { logger.warn( - `Redis connection '${name}' failed - using mock responses. Error: ${err.message}`, + `Redis connection failed - using mock responses. Error: ${err.message}`, ); - // Replace the failed client in the map with a mock - // Note: This replaces the reference for future calls, but existing references might be broken? - // Actually, we usually just return the mock here. - // But since we are assigning to 'client' which is local, we need to update the map? - // The pattern in the original code was: redisClient = createMock... - clients.set(name, createMockRedisClient(name)); + redisClient = createMockRedisClient() as any; }); - // Attach Telemetry - const originalGet = client.get.bind(client); - client.get = async (key: string) => { + const originalGet = redisClient.get.bind(redisClient); + redisClient.get = async (key: string) => { const value = await originalGet(key); if (value) { telemetry.subsystems.cache.hits.add(1); @@ -127,66 +90,61 @@ export function getRedisClient(name: string = 'default'): Redis | Cluster { return value; }; - const originalSet = client.set.bind(client); - client.set = async (key: string, value: string) => { + const originalSet = redisClient.set.bind(redisClient); + redisClient.set = async (key: string, value: string) => { telemetry.subsystems.cache.sets.add(1); return await originalSet(key, value); }; - const originalDel = client.del.bind(client); - client.del = (async (...keys: string[]) => { + const originalDel = redisClient.del.bind(redisClient); + redisClient.del = (async (...keys: string[]) => { telemetry.subsystems.cache.dels.add(1); return await originalDel(...keys); }) as any; - - clients.set(name, client); - } catch (error: any) { logger.warn( - `Redis initialization for '${name}' failed - using development mode. Error: ${(error as Error).message}`, + `Redis initialization failed - using development mode. Error: ${(error as Error).message}`, ); - clients.set(name, createMockRedisClient(name)); + redisClient = createMockRedisClient() as any; } } - return clients.get(name); + return redisClient; } -function createMockRedisClient(name: string) { +function createMockRedisClient() { return { get: async (key: string) => { - logger.debug(`Mock Redis (${name}) GET: Key: ${key}`); + logger.debug(`Mock Redis GET: Key: ${key}`); return null; }, set: async (key: string, value: string, ...args: any[]) => { - logger.debug(`Mock Redis (${name}) SET: Key: ${key}, Value: ${value}`); + logger.debug(`Mock Redis SET: Key: ${key}, Value: ${value}`); return 'OK'; }, del: async (...keys: string[]) => { - logger.debug(`Mock Redis (${name}) DEL: Keys: ${keys.join(', ')}`); + logger.debug(`Mock Redis DEL: Keys: ${keys.join(', ')}`); return keys.length; }, exists: async (...keys: string[]) => { - logger.debug(`Mock Redis (${name}) EXISTS: Keys: ${keys.join(', ')}`); + logger.debug(`Mock Redis EXISTS: Keys: ${keys.join(', ')}`); return 0; }, expire: async (key: string, seconds: number) => { - logger.debug(`Mock Redis (${name}) EXPIRE: Key: ${key}, Seconds: ${seconds}`); + logger.debug(`Mock Redis EXPIRE: Key: ${key}, Seconds: ${seconds}`); return 1; }, quit: async () => { }, on: () => { }, connect: async () => { }, options: { keyPrefix: 'summit:' }, - duplicate: () => createMockRedisClient(name), + duplicate: () => createMockRedisClient(), }; } export async function redisHealthCheck(): Promise { - // Check default client at least - const defaultClient = clients.get('default'); - if (!defaultClient) return false; + if (!redisClient) return false; try { - await defaultClient.ping(); + await redisClient.ping(); return true; } catch { return false; @@ -194,11 +152,9 @@ export async function redisHealthCheck(): Promise { } export async function closeRedisClient(): Promise { - for (const [name, client] of clients.entries()) { - if (client) { - await client.quit(); - logger.info(`Redis client '${name}' closed.`); - } + if (redisClient) { + await redisClient.quit(); + logger.info('Redis client closed.'); + redisClient = null as any; // Clear the client instance } - clients.clear(); } diff --git a/server/src/db/repositories/doclingGraphRepository.ts b/server/src/db/repositories/doclingGraphRepository.ts index 68167f77c45..81158d6b309 100644 --- a/server/src/db/repositories/doclingGraphRepository.ts +++ b/server/src/db/repositories/doclingGraphRepository.ts @@ -51,37 +51,31 @@ class DoclingGraphRepository { prId?: string; }, ) { - if (fragments.length === 0) return; await this.ensureConstraints(); - - // BOLT: Use UNWIND for batched fragment creation/update. - // Reduces database round-trips from N to 1. - const params = { - batch: fragments.map((f) => ({ - id: f.id, - sha256: f.sha256, - sourceType: f.sourceType, - requestId: f.requestId, - tenantId: f.tenantId, - text: f.text.slice(0, 2048), - sourceUri: f.sourceUri || null, - })), - buildId: context.buildId || null, - testId: context.testId || null, - prId: context.prId || null, - }; - - await neo.run( - `UNWIND $batch AS op - MERGE (f:DocFragment { id: op.id }) - ON CREATE SET f.sha256 = op.sha256, f.sourceType = op.sourceType, f.requestId = op.requestId, f.tenantId = op.tenantId, f.textPreview = op.text, f.sourceUri = op.sourceUri, f.createdAt = datetime() - ON MATCH SET f.sha256 = op.sha256, f.sourceType = op.sourceType, f.requestId = op.requestId, f.tenantId = op.tenantId, f.textPreview = op.text, f.sourceUri = op.sourceUri, f.updatedAt = datetime() - WITH f, op - FOREACH (_ IN CASE WHEN $buildId IS NULL THEN [] ELSE [1] END | MERGE (b:Build { id: $buildId, tenantId: op.tenantId }) MERGE (f)-[:DESCRIBES]->(b)) - FOREACH (_ IN CASE WHEN $testId IS NULL THEN [] ELSE [1] END | MERGE (t:TestRun { id: $testId, tenantId: op.tenantId }) MERGE (f)-[:DESCRIBES]->(t)) - FOREACH (_ IN CASE WHEN $prId IS NULL THEN [] ELSE [1] END | MERGE (p:PullRequest { id: $prId, tenantId: op.tenantId }) MERGE (f)-[:DESCRIBES]->(p))`, - params, - ); + for (const fragment of fragments) { + const params = { + id: fragment.id, + sha256: fragment.sha256, + sourceType: fragment.sourceType, + requestId: fragment.requestId, + tenantId: fragment.tenantId, + text: fragment.text.slice(0, 2048), + sourceUri: fragment.sourceUri || null, + buildId: context.buildId || null, + testId: context.testId || null, + prId: context.prId || null, + }; + await neo.run( + `MERGE (f:DocFragment { id: $id }) + ON CREATE SET f.sha256 = $sha256, f.sourceType = $sourceType, f.requestId = $requestId, f.tenantId = $tenantId, f.textPreview = $text, f.sourceUri = $sourceUri, f.createdAt = datetime() + ON MATCH SET f.sha256 = $sha256, f.sourceType = $sourceType, f.requestId = $requestId, f.tenantId = $tenantId, f.textPreview = $text, f.sourceUri = $sourceUri, f.updatedAt = datetime() + WITH f + FOREACH (_ IN CASE WHEN $buildId IS NULL THEN [] ELSE [1] END | MERGE (b:Build { id: $buildId, tenantId: $tenantId }) MERGE (f)-[:DESCRIBES]->(b)) + FOREACH (_ IN CASE WHEN $testId IS NULL THEN [] ELSE [1] END | MERGE (t:TestRun { id: $testId, tenantId: $tenantId }) MERGE (f)-[:DESCRIBES]->(t)) + FOREACH (_ IN CASE WHEN $prId IS NULL THEN [] ELSE [1] END | MERGE (p:PullRequest { id: $prId, tenantId: $tenantId }) MERGE (f)-[:DESCRIBES]->(p))`, + params, + ); + } } async mergeSummary( @@ -112,31 +106,25 @@ class DoclingGraphRepository { tenantId: string, links: TraceLinkGraphInput[], ) { - if (links.length === 0) return; await this.ensureConstraints(); - - // BOLT: Batch trace links using UNWIND. - const params = { - links: links.map((link) => ({ - fragmentId: link.fragmentId, - targetId: link.targetId, - targetType: link.targetType, - relation: link.relation, - score: link.score || null, - })), - tenantId, - requestId, - }; - - await neo.run( - `UNWIND $links AS link - MATCH (f:DocFragment { id: link.fragmentId }) - MERGE (t:DocTarget { id: link.targetId, tenantId: $tenantId }) - SET t.type = link.targetType - MERGE (f)-[r:TRACE_LINK { requestId: $requestId, relation: link.relation }]->(t) - SET r.score = link.score, r.updatedAt = datetime()`, - params, - ); + for (const link of links) { + await neo.run( + `MATCH (f:DocFragment { id: $fragmentId }) + MERGE (t:DocTarget { id: $targetId, tenantId: $tenantId }) + SET t.type = $targetType + MERGE (f)-[r:TRACE_LINK { requestId: $requestId, relation: $relation }]->(t) + SET r.score = $score, r.updatedAt = datetime()`, + { + fragmentId: link.fragmentId, + targetId: link.targetId, + targetType: link.targetType, + relation: link.relation, + score: link.score || null, + tenantId, + requestId, + }, + ); + } } } diff --git a/server/src/db/repositories/doclingRepository.ts b/server/src/db/repositories/doclingRepository.ts index 7c40e48cff8..70242eab20e 100644 --- a/server/src/db/repositories/doclingRepository.ts +++ b/server/src/db/repositories/doclingRepository.ts @@ -190,23 +190,19 @@ class DoclingRepository { fragments: DocFragmentInput[], sourceUri?: string, ): Promise { - if (fragments.length === 0) return []; await this.ensureSchema(); - - // BOLT: Optimized batched insertion with chunking. - // Reduces database round-trips while staying under parameter limits. - const chunkSize = 100; - const allResults: DocFragmentRecord[] = []; - - for (let i = 0; i < fragments.length; i += chunkSize) { - const chunk = fragments.slice(i, i + chunkSize); - const values: any[] = []; - const placeholders: string[] = []; - let paramIndex = 1; - - for (const fragment of chunk) { - const id = fragment.id || randomUUID(); - values.push( + const rows: DocFragmentRecord[] = []; + for (const fragment of fragments) { + const id = fragment.id || randomUUID(); + const result = await this.getPool().query( + `INSERT INTO doc_fragments (id, tenant_id, request_id, source_type, source_uri, sha256, content_type, text, metadata) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) + ON CONFLICT (id) DO UPDATE SET + source_uri = EXCLUDED.source_uri, + text = EXCLUDED.text, + metadata = EXCLUDED.metadata + RETURNING id, tenant_id, request_id, source_type, source_uri, sha256, content_type, text, metadata, created_at`, + [ id, tenantId, requestId, @@ -216,41 +212,22 @@ class DoclingRepository { fragment.contentType || 'text/plain', fragment.text, fragment.metadata || {}, - ); - placeholders.push( - `($${paramIndex}, $${paramIndex + 1}, $${paramIndex + 2}, $${paramIndex + 3}, $${paramIndex + 4}, $${paramIndex + 5}, $${paramIndex + 6}, $${paramIndex + 7}, $${paramIndex + 8})`, - ); - paramIndex += 9; - } - - const result = await this.getPool().query( - `INSERT INTO doc_fragments (id, tenant_id, request_id, source_type, source_uri, sha256, content_type, text, metadata) - VALUES ${placeholders.join(', ')} - ON CONFLICT (id) DO UPDATE SET - source_uri = EXCLUDED.source_uri, - text = EXCLUDED.text, - metadata = EXCLUDED.metadata - RETURNING id, tenant_id, request_id, source_type, source_uri, sha256, content_type, text, metadata, created_at`, - values, - ); - - allResults.push( - ...result.rows.map((row: any) => ({ - id: row.id, - tenantId: row.tenant_id, - requestId: row.request_id, - sourceType: row.source_type, - sourceUri: row.source_uri, - sha256: row.sha256, - contentType: row.content_type, - text: row.text, - metadata: row.metadata, - createdAt: row.created_at, - })), + ], ); + rows.push({ + id: result.rows[0].id, + tenantId, + requestId, + sourceType, + sourceUri: result.rows[0].source_uri, + sha256: result.rows[0].sha256, + contentType: result.rows[0].content_type, + text: result.rows[0].text, + metadata: result.rows[0].metadata, + createdAt: result.rows[0].created_at, + }); } - - return allResults; + return rows; } async saveSummary( @@ -288,21 +265,15 @@ class DoclingRepository { requestId: string, findings: DocFindingInput[], ): Promise { - if (findings.length === 0) return []; await this.ensureSchema(); - - const chunkSize = 100; - const allResults: DocFindingRecord[] = []; - - for (let i = 0; i < findings.length; i += chunkSize) { - const chunk = findings.slice(i, i + chunkSize); - const values: any[] = []; - const placeholders: string[] = []; - let paramIndex = 1; - - for (const finding of chunk) { - const id = randomUUID(); - values.push( + const rows: DocFindingRecord[] = []; + for (const finding of findings) { + const id = randomUUID(); + const result = await this.getPool().query( + `INSERT INTO doc_findings (id, tenant_id, request_id, fragment_id, label, value, confidence, severity, metadata) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) + RETURNING id, fragment_id, label, value, confidence, severity, metadata`, + [ id, tenantId, requestId, @@ -312,36 +283,21 @@ class DoclingRepository { finding.confidence, finding.severity || null, finding.metadata || {}, - ); - placeholders.push( - `($${paramIndex}, $${paramIndex + 1}, $${paramIndex + 2}, $${paramIndex + 3}, $${paramIndex + 4}, $${paramIndex + 5}, $${paramIndex + 6}, $${paramIndex + 7}, $${paramIndex + 8})`, - ); - paramIndex += 9; - } - - const result = await this.getPool().query( - `INSERT INTO doc_findings (id, tenant_id, request_id, fragment_id, label, value, confidence, severity, metadata) - VALUES ${placeholders.join(', ')} - RETURNING id, tenant_id, request_id, fragment_id, label, value, confidence, severity, metadata`, - values, - ); - - allResults.push( - ...result.rows.map((row: any) => ({ - id: row.id, - tenantId: row.tenant_id, - requestId: row.request_id, - fragmentId: row.fragment_id, - label: row.label, - value: row.value, - confidence: row.confidence, - severity: row.severity, - metadata: row.metadata, - })), + ], ); + rows.push({ + id: result.rows[0].id, + tenantId, + requestId, + fragmentId: result.rows[0].fragment_id, + label: result.rows[0].label, + value: result.rows[0].value, + confidence: result.rows[0].confidence, + severity: result.rows[0].severity, + metadata: result.rows[0].metadata, + }); } - - return allResults; + return rows; } async savePolicySignals( @@ -349,21 +305,15 @@ class DoclingRepository { requestId: string, signals: PolicySignalInput[], ): Promise { - if (signals.length === 0) return []; await this.ensureSchema(); - - const chunkSize = 100; - const allResults: PolicySignalRecord[] = []; - - for (let i = 0; i < signals.length; i += chunkSize) { - const chunk = signals.slice(i, i + chunkSize); - const values: any[] = []; - const placeholders: string[] = []; - let paramIndex = 1; - - for (const signal of chunk) { - const id = randomUUID(); - values.push( + const rows: PolicySignalRecord[] = []; + for (const signal of signals) { + const id = randomUUID(); + const result = await this.getPool().query( + `INSERT INTO doc_policy_signals (id, tenant_id, request_id, classification, value, purpose, retention, fragment_id, metadata) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) + RETURNING id, classification, value, purpose, retention, fragment_id, metadata`, + [ id, tenantId, requestId, @@ -373,36 +323,21 @@ class DoclingRepository { signal.retention, signal.fragmentId || null, signal.metadata || {}, - ); - placeholders.push( - `($${paramIndex}, $${paramIndex + 1}, $${paramIndex + 2}, $${paramIndex + 3}, $${paramIndex + 4}, $${paramIndex + 5}, $${paramIndex + 6}, $${paramIndex + 7}, $${paramIndex + 8})`, - ); - paramIndex += 9; - } - - const result = await this.getPool().query( - `INSERT INTO doc_policy_signals (id, tenant_id, request_id, classification, value, purpose, retention, fragment_id, metadata) - VALUES ${placeholders.join(', ')} - RETURNING id, tenant_id, request_id, classification, value, purpose, retention, fragment_id, metadata`, - values, - ); - - allResults.push( - ...result.rows.map((row: any) => ({ - id: row.id, - tenantId: row.tenant_id, - requestId: row.request_id, - classification: row.classification, - value: row.value, - purpose: row.purpose, - retention: row.retention, - fragmentId: row.fragment_id, - metadata: row.metadata, - })), + ], ); + rows.push({ + id: result.rows[0].id, + tenantId, + requestId, + classification: result.rows[0].classification, + value: result.rows[0].value, + purpose: result.rows[0].purpose, + retention: result.rows[0].retention, + fragmentId: result.rows[0].fragment_id, + metadata: result.rows[0].metadata, + }); } - - return allResults; + return rows; } async saveTraceLinks( @@ -410,21 +345,15 @@ class DoclingRepository { requestId: string, links: TraceLinkInput[], ): Promise { - if (links.length === 0) return []; await this.ensureSchema(); - - const chunkSize = 100; - const allResults: TraceLinkRecord[] = []; - - for (let i = 0; i < links.length; i += chunkSize) { - const chunk = links.slice(i, i + chunkSize); - const values: any[] = []; - const placeholders: string[] = []; - let paramIndex = 1; - - for (const link of chunk) { - const id = randomUUID(); - values.push( + const rows: TraceLinkRecord[] = []; + for (const link of links) { + const id = randomUUID(); + const result = await this.getPool().query( + `INSERT INTO doc_trace_links (id, tenant_id, request_id, fragment_id, target_type, target_id, relation, score, metadata) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) + RETURNING id, fragment_id, target_type, target_id, relation, score, metadata`, + [ id, tenantId, requestId, @@ -434,36 +363,21 @@ class DoclingRepository { link.relation, link.score || null, link.metadata || {}, - ); - placeholders.push( - `($${paramIndex}, $${paramIndex + 1}, $${paramIndex + 2}, $${paramIndex + 3}, $${paramIndex + 4}, $${paramIndex + 5}, $${paramIndex + 6}, $${paramIndex + 7}, $${paramIndex + 8})`, - ); - paramIndex += 9; - } - - const result = await this.getPool().query( - `INSERT INTO doc_trace_links (id, tenant_id, request_id, fragment_id, target_type, target_id, relation, score, metadata) - VALUES ${placeholders.join(', ')} - RETURNING id, tenant_id, request_id, fragment_id, target_type, target_id, relation, score, metadata`, - values, - ); - - allResults.push( - ...result.rows.map((row: any) => ({ - id: row.id, - tenantId: row.tenant_id, - requestId: row.request_id, - fragmentId: row.fragment_id, - targetType: row.target_type, - targetId: row.target_id, - relation: row.relation, - score: row.score, - metadata: row.metadata, - })), + ], ); + rows.push({ + id: result.rows[0].id, + tenantId, + requestId, + fragmentId: result.rows[0].fragment_id, + targetType: result.rows[0].target_type, + targetId: result.rows[0].target_id, + relation: result.rows[0].relation, + score: result.rows[0].score, + metadata: result.rows[0].metadata, + }); } - - return allResults; + return rows; } async findSummaryByRequestId( diff --git a/server/src/db/tenantRouter.ts b/server/src/db/tenantRouter.ts index c5337ab8354..f1bb6a424d5 100644 --- a/server/src/db/tenantRouter.ts +++ b/server/src/db/tenantRouter.ts @@ -10,7 +10,6 @@ interface PartitionRecord { write_connection_url: string | null; read_connection_url: string | null; is_default: boolean; - region?: string | null; status?: string | null; } @@ -22,7 +21,6 @@ export interface TenantRoute { writePool: Pool; readPool: Pool; source: 'default' | 'mapping' | 'static'; - region?: string | null; } const routeResolutionCounter = @@ -133,71 +131,6 @@ class TenantRouter { writePool, readPool, source, - region: partition.region, - }; - } - - async resolveRegionalRoute(tenantId: string | null, region: string): Promise { - if (!this.enabled || !this.writePool) { - return null; - } - - await this.ensureLoaded(); - - // 1. Check mapping - const partitionKey = tenantId ? this.tenantToPartition.get(tenantId) : null; - let partition: PartitionRecord | undefined; - - if (partitionKey) { - partition = this.partitions.get(partitionKey); - } - - // 2. Regional override: If no mapping OR mapped partition is in a DIFFERENT region, - // find a partition native to the requested region. - if (!partition || (partition.region && partition.region !== region)) { - const regionalPool = Array.from(this.partitions.values()).find( - (p) => p.region === region && (p.status === 'active' || p.status === null) - ); - if (regionalPool) { - partition = regionalPool; - } - } - - // 3. Absolute fallback - if (!partition) { - partition = this.partitions.get(this.defaultPartition); - } - - if (!partition) return null; - - const writePool = this.getOrCreatePool( - partition.partition_key, - 'write', - partition.write_connection_url, - ); - const readPool = this.getOrCreatePool( - partition.partition_key, - 'read', - partition.read_connection_url || partition.write_connection_url, - ); - - const strategy = - partition.strategy === 'schema' - ? 'schema-per-tenant' - : 'shared-schema'; - const source = this.tenantToPartition.has(tenantId || '') - ? 'mapping' - : 'default'; - - return { - tenantId: tenantId || 'unknown', - partitionKey: partition.partition_key, - schema: partition.schema_name, - strategy, - writePool, - readPool, - source, - region: partition.region, }; } @@ -264,7 +197,7 @@ class TenantRouter { tenantMap: { tenant_id: string; partition_key: string }[] = [], ): void { this.partitions.clear(); - partitions.forEach((row: any) => this.partitions.set(row.partition_key, { region: 'us-east-1', ...row })); + partitions.forEach((row: any) => this.partitions.set(row.partition_key, row)); tenantMap.forEach(({ tenant_id, partition_key }) => this.tenantToPartition.set(tenant_id, partition_key), ); @@ -320,8 +253,7 @@ class TenantRouter { write_connection_url, read_connection_url, is_default, - status, - region + status FROM tenant_partitions WHERE status IS NULL OR status = 'active' `, diff --git a/server/src/feature-flags/setup.ts b/server/src/feature-flags/setup.ts index d82465e70cb..95d0d413c7a 100644 --- a/server/src/feature-flags/setup.ts +++ b/server/src/feature-flags/setup.ts @@ -127,14 +127,9 @@ export async function initializeFeatureFlags(): Promise { }); // Initialize - if (process.env.NODE_ENV !== 'test') { - await featureFlagService.initialize(); - logger.info('Feature flag service initialized successfully'); - } else { - logger.info('Skipping feature flag service initialization in test environment'); - // Set as ready immediately for tests - setTimeout(() => featureFlagService.emit('ready'), 0); - } + await featureFlagService.initialize(); + + logger.info('Feature flag service initialized successfully'); return featureFlagService; } catch (error: any) { diff --git a/server/src/graphql/resolvers/cognitive-security.ts b/server/src/graphql/resolvers/cognitive-security.ts index ce7e006bd8c..e634382c964 100644 --- a/server/src/graphql/resolvers/cognitive-security.ts +++ b/server/src/graphql/resolvers/cognitive-security.ts @@ -13,8 +13,6 @@ import { getGovernanceService, getEvaluationService, getProvenanceService, - CognitiveStateService, - CascadeDetectionService, } from '../../cognitive-security/index.js'; import type { @@ -35,9 +33,6 @@ import type { CogSecAuditLog, GovernancePolicy, CogSecMetrics, - AudienceSegment, - CognitiveState, - NarrativeCascade, } from '../../cognitive-security/types.js'; // Helper to get services with error handling @@ -50,8 +45,6 @@ const getServices = () => { governance: getGovernanceService(), evaluation: getEvaluationService(), provenance: getProvenanceService(), - cognitiveState: CognitiveStateService.getInstance(), - cascadeDetection: CascadeDetectionService.getInstance(), }; } catch (error: any) { throw new GraphQLError('Cognitive Security module not initialized', { @@ -120,7 +113,7 @@ const Query = { const claim = await claims.getClaim(claimId); if (!claim) return []; const similar = await claims.findSimilarClaims(claim, threshold); - return similar.map((s: { claim: Claim; similarity: number }) => s.claim); + return similar.map((s) => s.claim); }, // Evidence @@ -237,37 +230,6 @@ const Query = { // Would need to implement retrieval return null; }, - - // Cognitive Operations - audienceCognitiveProfile: async (_: unknown, { id }: { id: string }) => { - const { cognitiveState } = getServices(); - return cognitiveState.getSegmentState(id); - }, - - cognitiveRiskDashboard: async (_: unknown, { filters }: { filters?: any }) => { - // Placeholder implementation - return { - averageResilience: 0.65, - highRiskSegments: 3, - topThreats: ['OVERLOAD', 'POLARIZATION_WEDGE'] - }; - }, - - // Influence Pathways - influencePathways: async (_: unknown, { narrativeId }: { narrativeId: string }) => { - const { cascadeDetection } = getServices(); - return cascadeDetection.detectCascades(narrativeId); - }, - - narrativeConflicts: async (_: unknown, { narrativeId }: { narrativeId: string }) => { - const { claims } = getServices(); - return claims.detectNarrativeConflicts(narrativeId); - }, - - narrativeEarlyWarnings: async (_: unknown, { watchlistId }: { watchlistId?: string }) => { - // Placeholder implementation - return []; - }, }; // ============================================================================ @@ -706,34 +668,6 @@ const Mutation = { // Would need to retrieve credential first return null; }, - - // Cognitive Operations - recordCognitiveEffect: async ( - _: unknown, - { exposure }: { exposure: { segmentId: string; narrativeId: string; reactionType?: string; sentimentShift?: number } }, - ) => { - const { cognitiveState } = getServices(); - await cognitiveState.updateSegmentState( - exposure.segmentId, - exposure.narrativeId, - exposure.sentimentShift || 0.1, // Heuristic strength - 0.8 // Certainty placeholder - ); - // Fetch the updated state - const segment = await cognitiveState.getSegmentState(exposure.segmentId); - if (!segment) throw new GraphQLError('Segment not found after update'); - - // Construct a snapshot state object - return { - id: `state-${exposure.segmentId}-${Date.now()}`, - segmentId: exposure.segmentId, - timestamp: new Date().toISOString(), - beliefVector: {}, // In a real app, this would be computed - resilienceScore: segment.resilienceScore, - emotionalValence: exposure.sentimentShift || 0, - arousalLevel: 0.5 - }; - }, }; // ============================================================================ @@ -853,55 +787,6 @@ const VerificationAppealResolvers = { // Export // ============================================================================ -const AudienceSegmentResolvers = { - cognitiveStates: async (segment: AudienceSegment) => { - // This would typically query a history table. Returning current state as snapshot for now. - return [{ - id: `current-${segment.id}`, - segmentId: segment.id, - timestamp: new Date().toISOString(), - beliefVector: {}, - resilienceScore: segment.resilienceScore, - emotionalValence: 0, - arousalLevel: 0.5 - }]; - }, - targetedByCampaigns: async (segment: AudienceSegment) => { - const { campaignDetection } = getServices(); - const campaigns = await campaignDetection.listActiveCampaigns(10); - return campaigns.filter((c: Campaign) => c.targetAudienceIds.includes(segment.id)); - } -}; - -const NarrativeCascadeResolvers = { - narrative: async (cascade: NarrativeCascade) => { - const { claims } = getServices(); - return claims.getNarrativeGraph(cascade.narrativeId).then((g: any) => g.narrative); - }, - originActor: async (cascade: NarrativeCascade) => { - if (!cascade.originActorId) return null; - const { claims } = getServices(); - return claims.getActor(cascade.originActorId); - } -}; - -const NarrativeConflict = { - competingNarrative: async (conflict: any) => { - const { claims } = getServices(); - return claims.getNarrative(conflict.competingNarrativeId); - }, - contradictingClaims: async (conflict: any) => { - const { claims } = getServices(); - return conflict.contradictingClaimPairs.map(async (pair: [string, string]) => { - const [c1, c2] = await Promise.all([ - claims.getClaim(pair[0]), - claims.getClaim(pair[1]) - ]); - return { claim1: c1, claim2: c2 }; - }); - } -}; - export const cognitiveSecurityResolvers = { Query, Mutation, @@ -910,9 +795,6 @@ export const cognitiveSecurityResolvers = { CogSecCampaign, CogSecIncident: CogSecIncidentResolvers, VerificationAppeal: VerificationAppealResolvers, - AudienceSegment: AudienceSegmentResolvers, - NarrativeCascade: NarrativeCascadeResolvers, - NarrativeConflict }; export default cognitiveSecurityResolvers; diff --git a/server/src/graphql/resolvers/index.ts b/server/src/graphql/resolvers/index.ts index 16f05bbdd38..336f2e64938 100644 --- a/server/src/graphql/resolvers/index.ts +++ b/server/src/graphql/resolvers/index.ts @@ -13,13 +13,9 @@ import supportTicketResolvers from './supportTicket.js'; import sprint28Resolvers from './sprint28.js'; import ewResolvers from './electronic-warfare.js'; import { collaborationResolvers } from './collaboration.js'; -import { caseResolvers } from './cases.js'; -import { commentResolvers } from './comments.js'; import { cognitiveSecurityResolvers } from './cognitive-security.js'; import { deduplicationResolvers } from './deduplication.js'; import ticketLinksResolvers from './ticket-links.js'; -import { factGovResolvers } from '../../modules/factgov/resolvers.js'; -import { osintSynintResolvers } from './osint-synint.js'; // MC Platform v0.4.0 Transcendent Intelligence Resolvers (DISABLED - incomplete) // import { v040Resolvers } from './v040.js'; @@ -44,12 +40,9 @@ const resolvers = { ...(sprint28Resolvers.Query || {}), ...(ewResolvers.Query || {}), ...(collaborationResolvers.Query || {}), - ...(caseResolvers.Query || {}), - ...(commentResolvers.Query || {}), ...(cognitiveSecurityResolvers.Query || {}), ...(deduplicationResolvers.Query || {}), ...(ticketLinksResolvers.Query || {}), - ...(factGovResolvers.Query || {}), // MC Platform v0.4.0 Transcendent Intelligence (DISABLED) // ...(v040Resolvers.Query || {}), // MC Platform v0.4.1 Sovereign Safeguards (DISABLED) @@ -68,7 +61,6 @@ const resolvers = { wargameResolver.getAllCrisisScenarios.bind(wargameResolver), }, Mutation: { - ...(osintSynintResolvers.Mutation || {}), ...entityResolvers.Mutation, ...relationshipResolvers.Mutation, ...userResolvers.Mutation, @@ -81,10 +73,7 @@ const resolvers = { ...(sprint28Resolvers.Mutation || {}), ...(ewResolvers.Mutation || {}), ...(collaborationResolvers.Mutation || {}), - ...(caseResolvers.Mutation || {}), - ...(commentResolvers.Mutation || {}), ...(cognitiveSecurityResolvers.Mutation || {}), - ...(factGovResolvers.Mutation || {}), // MC Platform v0.4.0 Transcendent Intelligence (DISABLED) // ...(v040Resolvers.Mutation || {}), // MC Platform v0.4.1 Sovereign Safeguards (DISABLED) @@ -99,8 +88,6 @@ const resolvers = { }, SupportTicket: supportTicketResolvers.SupportTicket, WarRoom: collaborationResolvers.WarRoom, - Case: caseResolvers.Case, - Comment: commentResolvers.Comment, Subscription: { ...(collaborationResolvers.Subscription || {}), ...(cognitiveSecurityResolvers.Subscription || {}), @@ -110,9 +97,6 @@ const resolvers = { CogSecCampaign: cognitiveSecurityResolvers.CogSecCampaign, CogSecIncident: cognitiveSecurityResolvers.CogSecIncident, VerificationAppeal: cognitiveSecurityResolvers.VerificationAppeal, - AudienceSegment: (cognitiveSecurityResolvers as any).AudienceSegment, - NarrativeCascade: (cognitiveSecurityResolvers as any).NarrativeCascade, - NarrativeConflict: (cognitiveSecurityResolvers as any).NarrativeConflict, Ticket: ticketLinksResolvers.Ticket, }; diff --git a/server/src/graphql/schema.ts b/server/src/graphql/schema.ts index 001848e9284..08fa0e13e6f 100644 --- a/server/src/graphql/schema.ts +++ b/server/src/graphql/schema.ts @@ -1,6 +1,4 @@ -import { factGovSchema } from './schema.factgov.js'; - -const mainSchema = ` +export const typeDefs = ` scalar JSON scalar DateTime type Entity { id: ID!, type: String!, props: JSON, createdAt: DateTime!, updatedAt: DateTime, canonicalId: ID } @@ -61,10 +59,10 @@ const mainSchema = ` firstName: String lastName: String fullName: String - role: String! - isActive: Boolean! + role: String + isActive: Boolean lastLogin: DateTime - createdAt: DateTime! + createdAt: DateTime updatedAt: DateTime } @@ -109,96 +107,9 @@ const mainSchema = ` createdBy: String! } - type Case { - id: ID! - tenantId: String! - title: String! - description: String - status: String! - priority: String! - compartment: String - policyLabels: [String!] - metadata: JSON - createdAt: DateTime! - updatedAt: DateTime! - createdBy: String! - closedAt: DateTime - closedBy: String - slaTimers: [SLATimer!] - comments(limit: Int, offset: Int): [Comment!] - } - - type Comment { - commentId: ID! - tenantId: String! - targetType: String! - targetId: String! - parentId: ID - rootId: ID - content: String! - authorId: String! - author: User - createdAt: DateTime! - updatedAt: DateTime! - mentions: [String!] - isEdited: Boolean! - isDeleted: Boolean! - metadata: JSON - } - - type SLATimer { - slaId: ID! - caseId: ID! - tenantId: String! - type: String! - name: String! - startTime: DateTime! - deadline: DateTime! - completedAt: DateTime - status: String! - targetDurationSeconds: Int! - metadata: JSON - } - - input CaseInput { - title: String! - description: String - status: String - priority: String - compartment: String - policyLabels: [String!] - metadata: JSON - reason: String - legalBasis: String - } - - input CaseUpdateInput { - id: ID! - title: String - description: String - status: String - priority: String - compartment: String - policyLabels: [String!] - metadata: JSON - reason: String - legalBasis: String - } - - input CommentInput { - targetType: String! - targetId: String! - parentId: ID - content: String! - mentions: [String!] - metadata: JSON - } - input InvestigationInput { name: String! description: String - status: InvestigationStatus - priority: Int } enum InvestigationStatus { @@ -242,76 +153,42 @@ const mainSchema = ` reasons: [String!]! } - type WarRoom { + type EvidenceBundle { id: ID! - name: String! - status: String - createdBy: User! + releaseId: ID! + service: String! createdAt: DateTime! - participants: [WarRoomParticipant!]! } - type WarRoomParticipant { - user: User! - role: String! - joinedAt: DateTime! - } - - type Ticket { + type WarRoom { id: ID! - key: String! - summary: String! + name: String! status: String! - link: String - runs: [JSON!] - deployments: [JSON!] } - type EvidenceBundle { + type WarRoomParticipant { id: ID! - releaseId: ID! - service: String! - createdAt: DateTime! + role: String! } - type CogSecClaim { id: ID! text: String! - evidence: [Evidence!] - relatedClaims: [CogSecClaim!] - narratives: [CogSecNarrative!] - actors: [JSON!] - channels: [JSON!] } type CogSecCampaign { id: ID! name: String! - narratives: [CogSecNarrative!] - signals: [CoordinationSignal!] - actors: [JSON!] - channels: [JSON!] - claims: [CogSecClaim!] - playbooks: [JSON!] - incident: CogSecIncident } type CogSecIncident { id: ID! name: String! - campaigns: [CogSecCampaign!] - playbooks: [JSON!] - leadAnalyst: User - investigation: Investigation } type VerificationAppeal { id: ID! status: String! - claim: CogSecClaim - appellant: User - reviewer: User } type ResponseAction { @@ -334,138 +211,11 @@ const mainSchema = ` title: String! } - type SupportTicket { - id: ID! - title: String! - description: String - status: String! - priority: String! - reporterId: String! - createdAt: DateTime! - updatedAt: DateTime! - comments(limit: Int, offset: Int): [SupportTicketComment!]! - } - - type SupportTicketComment { - id: ID! - authorId: String! - content: String! - isInternal: Boolean! - createdAt: DateTime! - } - - type SupportTicketConnection { - data: [SupportTicket!]! - total: Int! - } - type CoordinationSignal { id: ID! type: String! } - type CogSecNarrative { - id: ID! - name: String! - description: String - } - - type Evidence { - id: ID! - title: String! - content: String! - } - - type AudienceSegment { - id: ID! - name: String! - description: String - size: Int - resilienceScore: Float - trustInInstitutions: Float - polarizationIndex: Float - fearSensitivity: Float - identityClusters: [String!] - narrativeIds: [ID!] - cognitiveStates: [CognitiveStateSnapshot!] - targetedByCampaigns: [CogSecCampaign!] - createdAt: DateTime! - updatedAt: DateTime - } - - type CognitiveStateSnapshot { - id: ID! - segmentId: ID! - timestamp: DateTime! - beliefVector: JSON - resilienceScore: Float - emotionalValence: Float - arousalLevel: Float - } - - type NarrativeCascade { - id: ID! - narrativeId: ID! - startTime: DateTime! - originNodeId: ID - totalHops: Int - maxDepth: Int - uniqueActors: Int - velocity: Float - viralityScore: Float - narrative: CogSecNarrative - originActor: JSON - } - - type NarrativeConflict { - competingNarrativeId: ID! - conflictScore: Float! - contradictingClaims: [ContradictingClaimPair!]! - competingNarrative: CogSecNarrative - } - - type ContradictingClaimPair { - claim1: CogSecClaim! - claim2: CogSecClaim! - } - - enum RiskSeverity { - LOW - MEDIUM - HIGH - CRITICAL - } - - type TrustScore { - subjectId: ID! - score: Float! - reasons: [String!]! - updatedAt: DateTime! - } - - type RiskSignalPage { - items: [RiskSignal!]! - total: Int! - nextOffset: Int - } - - type TrustScorePage { - items: [TrustScore!]! - total: Int! - nextOffset: Int - } - - type IncidentBundle { - id: ID! - type: String! - status: String! - signals: [RiskSignal!]! - actions: [String!]! - createdAt: DateTime! - evidenceId: ID - notes: String - } - type ProvenanceExport { format: String! content: JSON! @@ -473,40 +223,9 @@ const mainSchema = ` tenantId: String! } - type OsintScan { - id: ID! - target: String! - status: String! - } - - type SynintAgentFinding { - agentName: String! - success: Boolean! - findings: JSON! - errors: [String!] - warnings: [String!] - startedAt: DateTime - completedAt: DateTime - } - - type SynintSweep { - target: String! - startedAt: DateTime! - completedAt: DateTime! - agents: [SynintAgentFinding!]! - meta: JSON - } - - input CognitiveExposureInput { - segmentId: ID! - narrativeId: ID! - reactionType: String - sentimentShift: Float - } - type Query { - healthScore: Float! - evidenceOk(service: String!, releaseId: String!): JSON! + healthScore: Int! + evidenceOk(service: String, releaseId: String): EvidenceOk! me: AuthUser verifyToken(token: String!): TokenVerification! verifyResetToken(token: String!): ResetTokenVerification! @@ -520,160 +239,35 @@ const mainSchema = ` investigationSnapshot(id: ID!): InvestigationSnapshot semanticSearch(query: String!, filters: JSON, limit: Int = 10, offset: Int = 0): [Entity!]! auditTrace(investigationId: ID!, filter: JSON): [JSON!]! - exportProvenance(tenantId: String!, format: String): JSON! + exportProvenance(tenantId: String!, format: String): ProvenanceExport! riskSignals(limit: Int = 50, offset: Int = 0): [RiskSignal!]! - riskSignalsPage(tenantId: String!, limit: Int = 50, offset: Int = 0, kind: String, severity: RiskSeverity): RiskSignalPage! - trustScore(subjectId: ID!): TrustScore - trustScoresPage(tenantId: String!, limit: Int = 50, offset: Int = 0): TrustScorePage - evidenceBundles(filter: JSON, limit: Int = 20, offset: Int = 0): [EvidenceBundle!]! + trustScore(subjectId: ID!): JSON + trustScoresPage(tenantId: String!, limit: Int, offset: Int): JSON + evidenceBundles(limit: Int = 20): [EvidenceBundle!]! warRooms(status: String): [WarRoom!]! - warRoom(id: ID!): WarRoom - activeCampaigns(limit: Int = 20): [CogSecCampaign!]! + activeCampaigns(limit: Int): [CogSecCampaign!]! activeIncidents(limit: Int): [CogSecIncident!]! - audienceCognitiveProfile(id: ID!): AudienceSegment - influencePathways(narrativeId: ID!): [NarrativeCascade!]! - narrativeConflicts(narrativeId: ID!): [NarrativeConflict!]! - incidentBundle(id: ID!): IncidentBundle - supportTicket(id: ID!): SupportTicket - supportTickets(filter: JSON, limit: Int, offset: Int): SupportTicketConnection! - tickets(provider: String!, externalId: String, limit: Int): [Ticket!]! - cogSecClaim(id: ID!): CogSecClaim - cogSecClaims(filter: JSON, limit: Int, offset: Int): [CogSecClaim!] - searchCogSecClaims(query: String!, limit: Int): [CogSecClaim!] - similarClaims(claimId: ID!, threshold: Float): [CogSecClaim!] - cogSecEvidence(id: ID!): Evidence - cogSecNarrative(id: ID!): CogSecNarrative - narrativeGraph(narrativeId: ID!): JSON - cogSecCampaign(id: ID!): CogSecCampaign - campaignSignals(campaignId: ID!): [CoordinationSignal!] - cogSecIncident(id: ID!): CogSecIncident - responsePlaybook(id: ID!): JSON - cogSecAuditLogs(resourceType: String, resourceId: String, limit: Int): [JSON!] - pendingAppeals(limit: Int): [VerificationAppeal!] - governancePolicies: [JSON!] - transparencyReport(startDate: String!, endDate: String!): JSON - cogSecMetrics(startDate: String!, endDate: String!): JSON - benchmarkComparison(startDate: String!, endDate: String!): JSON - riskAssessment: JSON - contentCredential(id: ID!): JSON - cognitiveRiskDashboard(filters: JSON): JSON - narrativeEarlyWarnings(watchlistId: ID): [JSON!] - ewBattleSpace: JSON - ewAnalyzeEMP(lat: Float!, lon: Float!, yieldKt: Float!): JSON - funnel(period: String!): [JSON!]! - pilotKpis(workspaceId: String!): JSON - pilotSuccess(workspaceId: String!): [JSON!]! - deduplicationCandidates(investigationId: ID, threshold: Float): [JSON!]! getCrisisTelemetry(scenarioId: ID!): JSON getAdversaryIntentEstimates(scenarioId: ID!): JSON getNarrativeHeatmapData(scenarioId: ID!): JSON getStrategicResponsePlaybooks(scenarioId: ID!): JSON getCrisisScenario(id: ID!): JSON getAllCrisisScenarios: [JSON] - case(id: ID!, reason: String!, legalBasis: String!): Case - cases(status: String, compartment: String, limit: Int, offset: Int): [Case!] - comments(targetType: String!, targetId: String!, limit: Int, offset: Int): [Comment!] - osintScans: [OsintScan] - osintScan(id: ID!): OsintScan health: JSON } type Mutation { login(input: JSON!): AuthResponse! - register(input: JSON!): AuthResponse! - requestPasswordReset(email: String!): JSON! - resetPassword(input: JSON!): JSON! - refreshToken(token: String!): AuthResponse! - logout: JSON! - changePassword(currentPassword: String!, newPassword: String!): JSON! - revokeToken(token: String!): JSON! createInvestigation(input: InvestigationInput!): Investigation! - updateInvestigation(id: ID!, input: InvestigationInput!): Investigation! - deleteInvestigation(id: ID!): Boolean! - createInvestigationSnapshot(investigationId: ID!, label: String): InvestigationSnapshot! publishEvidence(input: JSON!): EvidenceBundle! - recordCognitiveEffect(exposure: CognitiveExposureInput!): CognitiveStateSnapshot! - createEntity(input: JSON!): Entity! - updateEntity(id: ID!, input: JSON!, lastSeenTimestamp: String): Entity! - deleteEntity(id: ID!): Boolean! - linkEntities(text: String!): [JSON!]! - extractRelationships(text: String!, entities: [JSON!]!): [JSON!]! - createRelationship(input: JSON!): Relationship! - updateRelationship(id: ID!, input: JSON!, lastSeenTimestamp: String): Relationship! - deleteRelationship(id: ID!): Boolean! - createUser(input: JSON!): User! - updateUser(id: ID!, input: JSON!): User! - deleteUser(id: ID!): Boolean! - updateUserPreferences(userId: ID!, preferences: JSON!): User! - extractClaim(input: JSON!): CogSecClaim! - updateClaimVerdict(input: JSON!): CogSecClaim! - linkRelatedClaims(claimId1: ID!, claimId2: ID!, relationType: String!): Boolean! - createEvidence(input: JSON!): Evidence! - verifyEvidence(evidenceId: ID!, notes: String): Evidence! - linkEvidenceToClaims(evidenceId: ID!, claimIds: [ID!]!): Boolean! - createNarrative(input: JSON!): CogSecNarrative! - updateNarrativeStatus(narrativeId: ID!, status: String!): CogSecNarrative! - linkClaimsToNarrative(claimIds: [ID!]!, narrativeId: ID!): Boolean! - runDetectionPipeline: [CoordinationSignal!]! - clusterIntoCampaigns: [CogSecCampaign!]! - updateCampaignStatus(campaignId: ID!, status: String!): CogSecCampaign! - createIncident(input: JSON!): CogSecIncident! - updateIncidentStatus(incidentId: ID!, status: String!): CogSecIncident! - addIncidentTimelineEvent(incidentId: ID!, type: String!, description: String!): JSON - generatePlaybook(input: JSON!): JSON - executePlaybookAction(playbookId: ID!, actionId: ID!): JSON - updatePlaybookStatus(playbookId: ID!, status: String!): JSON - generateBriefing(campaignId: ID!): JSON - generateStakeholderMessage(campaignId: ID!, stakeholder: String!): JSON - generateTakedownPacket(input: JSON!): JSON - createAppeal(input: JSON!): VerificationAppeal! - reviewAppeal(appealId: ID!, decision: String!, notes: String!): VerificationAppeal! - createContentCredential(assetId: ID!, mimeType: String!, sourceUrl: String): JSON - addProvenanceLink(credentialId: ID!, source: String!, platform: String): JSON - raiseRiskSignal(input: JSON!): RiskSignal! - updateRiskSignalStatus(id: ID!, status: String!): RiskSignal! - createIncidentBundle(input: JSON!): IncidentBundle! - linkTrustScoreEvidence(tenantId: String!, subjectId: ID!, evidenceId: ID!): TrustScore! - createWarRoom(name: String!): WarRoom! - addParticipant(warRoomId: ID!, userId: ID!, role: String!): WarRoom! - removeParticipant(warRoomId: ID!, userId: ID!): WarRoom! - createSupportTicket(input: JSON!): SupportTicket! - updateSupportTicket(id: ID!, input: JSON!): SupportTicket! - deleteSupportTicket(id: ID!): Boolean! - addSupportTicketComment(ticketId: ID!, content: String!, isInternal: Boolean): JSON - ewRegisterAsset(id: ID!, name: String!, type: String!, lat: Float!, lon: Float!, capabilities: [JSON], maxPower: Float, minFreq: Float, maxFreq: Float): JSON - ewDeployJammer(assetId: ID!, targetFrequency: Float!, bandwidth: Float!, effect: JSON, durationSeconds: Int): JSON - ewStopJammer(missionId: ID!): Boolean! - ewSimulateSignalDetection(frequency: Float!, bandwidth: Float!, power: Float!, modulation: String!, type: JSON, lat: Float, lon: Float): JSON - ewTriangulateSignal(signalId: ID!): JSON - ewActivateProtection(assetId: ID!, measure: JSON): Boolean! - submitNps(score: Int!, comment: String): Boolean! - recordEvent(name: String!, props: JSON): Boolean! - startTrial(plan: String!, days: Int!): Boolean! - upgradePlan(plan: String!): Boolean! runWarGameSimulation(input: JSON!): JSON - createCrisisScenario(input: JSON!): JSON updateCrisisScenario(id: ID!, input: JSON!): JSON deleteCrisisScenario(id: ID!): Boolean! - createCase(input: CaseInput!): Case! - updateCase(input: CaseUpdateInput!): Case! - archiveCase(id: ID!, reason: String!, legalBasis: String!): Case! - addComment(input: CommentInput!): Comment! - updateComment(id: ID!, content: String!): Comment! - deleteComment(id: ID!): Boolean! - startOsintScan(target: String!): OsintScan - runSynintSweep(target: String!): SynintSweep! } type Subscription { + entityCreated: Entity! participantAdded: JSON! participantRemoved: JSON! - campaignDetected: JSON! - coordinationSignalDetected: JSON! - incidentUpdated(incidentId: ID!): JSON! - claimVerdictUpdated(narrativeId: ID): JSON! - playbookActionCompleted(playbookId: ID!): JSON! } -`; - -export const typeDefs = [mainSchema, factGovSchema]; +`; \ No newline at end of file diff --git a/server/src/graphql/schema/cognitive-security.graphql b/server/src/graphql/schema/cognitive-security.graphql index e14de92df9b..fa244c818c8 100644 --- a/server/src/graphql/schema/cognitive-security.graphql +++ b/server/src/graphql/schema/cognitive-security.graphql @@ -832,18 +832,6 @@ type NarrativeCascade { hops: [CascadeHop!]! } -type NarrativeConflict { - competingNarrativeId: ID! - competingNarrative: CogSecNarrative! - conflictScore: Float! - contradictingClaims: [ContradictingPair!]! -} - -type ContradictingPair { - claim1: CogSecClaim! - claim2: CogSecClaim! -} - type CascadeHop { id: ID! cascadeId: ID! @@ -1021,7 +1009,6 @@ extend type Query { # Influence Pathways influencePathways(narrativeId: ID!): [NarrativeCascade!]! narrativeEarlyWarnings(watchlistId: ID): [TippingPointIndicator!]! - narrativeConflicts(narrativeId: ID!): [NarrativeConflict!]! } type NarrativeGraph { @@ -1102,68 +1089,3 @@ extend type Subscription { # Playbook execution playbookActionCompleted(playbookId: ID!): ResponseAction! } - -# ---------------------------------------------------------------------------- -# Influence Operations Campaign Modeling (Feb 2026) -# ---------------------------------------------------------------------------- - -enum SynthesisMethod { - HUMAN - AI - HYBRID - UNKNOWN -} - -enum CognitiveObjective { - DETER - DEMOBILIZE - POLARIZE - DISCREDIT - CONFUSE - RECRUIT - COERCE - OTHER -} - -type IdentitySegment { - id: ID! - label: String! - # e.g., "women candidates", "diaspora community", "favela residents" - protectedClass: Boolean! # guardrails for handling/logging -} - -type TriggerEvent { - id: ID! - kind: String! # KINETIC|CYBER|LEGAL|MEDIA - occurredAt: DateTime - evidenceIds: [String!]! -} - -type NarrativeSurge { - id: ID! - narrativeId: ID! - windowHoursMin: Int! - windowHoursMax: Int! - channels: [String!]! - rationaleEvidenceIds: [String!]! -} - -extend type CogSecCampaign { - cognitiveObjective: CognitiveObjective - targetSegments: [IdentitySegment!] - contested: Boolean - confidence: Float -} - -extend type CogSecNarrative { - claimText: String - synthesisMethod: SynthesisMethod - syntheticCredibilityMarkers: [String!] # e.g., "deepfake_video", "forged_evidence" - contested: Boolean - confidence: Float -} - -extend type Query { - # Added for backwards compatibility and IO extensions - cogsecCampaignExt(id: ID!): CogSecCampaign -} diff --git a/server/src/hunting/AutoRemediationHooks.ts b/server/src/hunting/AutoRemediationHooks.ts index bf3df521073..38309d64cc8 100644 --- a/server/src/hunting/AutoRemediationHooks.ts +++ b/server/src/hunting/AutoRemediationHooks.ts @@ -88,7 +88,6 @@ export class AutoRemediationHooks extends EventEmitter { constructor() { super(); - this.setMaxListeners(100); this.initializeSources(); this.registerDefaultHooks(); this.registerDefaultExecutors(); diff --git a/server/src/hunting/LLMChainExecutor.ts b/server/src/hunting/LLMChainExecutor.ts index 502c1d58517..4c41e5d1591 100644 --- a/server/src/hunting/LLMChainExecutor.ts +++ b/server/src/hunting/LLMChainExecutor.ts @@ -117,7 +117,6 @@ export class LLMChainExecutor extends EventEmitter { constructor() { super(); - this.setMaxListeners(100); this.metricsCollector = new MetricsCollector(); } diff --git a/server/src/hunting/ThreatHuntingOrchestrator.ts b/server/src/hunting/ThreatHuntingOrchestrator.ts index b2f510ea178..40dff09a1d2 100644 --- a/server/src/hunting/ThreatHuntingOrchestrator.ts +++ b/server/src/hunting/ThreatHuntingOrchestrator.ts @@ -69,32 +69,12 @@ export class ThreatHuntingOrchestrator extends EventEmitter { private llmExecutor: LLMChainExecutor; private remediationHooks: AutoRemediationHooks; private isInitialized: boolean = false; - private llmHandlers: { - hypothesesGenerated: (data: Record) => void; - queriesGenerated: (data: Record) => void; - resultsAnalyzed: (data: Record) => void; - }; - private remediationHandlers: { - findingsEnriched: (data: Record) => void; - remediationCompleted: (data: Record) => void; - iocConfirmed: (data: Record) => void; - }; constructor() { super(); this.templateEngine = cypherTemplateEngine; this.llmExecutor = llmChainExecutor; this.remediationHooks = autoRemediationHooks; - this.llmHandlers = { - hypothesesGenerated: (data) => this.emit('hypotheses_generated', data), - queriesGenerated: (data) => this.emit('queries_generated', data), - resultsAnalyzed: (data) => this.emit('results_analyzed', data), - }; - this.remediationHandlers = { - findingsEnriched: (data) => this.emit('findings_enriched', data), - remediationCompleted: (data) => this.emit('remediation_completed', data), - iocConfirmed: (data) => this.emit('ioc_confirmed', data), - }; // Forward events from sub-components this.setupEventForwarding(); @@ -934,26 +914,25 @@ export class ThreatHuntingOrchestrator extends EventEmitter { * Setup event forwarding from sub-components */ private setupEventForwarding(): void { - this.llmExecutor.on('hypotheses_generated', this.llmHandlers.hypothesesGenerated); - this.llmExecutor.on('queries_generated', this.llmHandlers.queriesGenerated); - this.llmExecutor.on('results_analyzed', this.llmHandlers.resultsAnalyzed); - - this.remediationHooks.on('findings_enriched', this.remediationHandlers.findingsEnriched); - this.remediationHooks.on('remediation_completed', this.remediationHandlers.remediationCompleted); - this.remediationHooks.on('ioc_confirmed', this.remediationHandlers.iocConfirmed); - } + this.llmExecutor.on('hypotheses_generated', (data) => + this.emit('hypotheses_generated', data) + ); + this.llmExecutor.on('queries_generated', (data) => + this.emit('queries_generated', data) + ); + this.llmExecutor.on('results_analyzed', (data) => + this.emit('results_analyzed', data) + ); - /** - * Dispose and detach forwarded listeners from shared singletons. - */ - dispose(): void { - this.llmExecutor.off('hypotheses_generated', this.llmHandlers.hypothesesGenerated); - this.llmExecutor.off('queries_generated', this.llmHandlers.queriesGenerated); - this.llmExecutor.off('results_analyzed', this.llmHandlers.resultsAnalyzed); - this.remediationHooks.off('findings_enriched', this.remediationHandlers.findingsEnriched); - this.remediationHooks.off('remediation_completed', this.remediationHandlers.remediationCompleted); - this.remediationHooks.off('ioc_confirmed', this.remediationHandlers.iocConfirmed); - this.removeAllListeners(); + this.remediationHooks.on('findings_enriched', (data) => + this.emit('findings_enriched', data) + ); + this.remediationHooks.on('remediation_completed', (data) => + this.emit('remediation_completed', data) + ); + this.remediationHooks.on('ioc_confirmed', (data) => + this.emit('ioc_confirmed', data) + ); } /** diff --git a/server/src/hunting/__tests__/ThreatHuntingOrchestrator.test.ts b/server/src/hunting/__tests__/ThreatHuntingOrchestrator.test.ts index d57ba3ee17d..bd35349c4ce 100644 --- a/server/src/hunting/__tests__/ThreatHuntingOrchestrator.test.ts +++ b/server/src/hunting/__tests__/ThreatHuntingOrchestrator.test.ts @@ -345,7 +345,6 @@ describe('ThreatHuntingOrchestrator', () => { }); afterEach(() => { - orchestrator.dispose(); jest.clearAllMocks(); }); @@ -862,50 +861,44 @@ describe('Integration Tests', () => { const orchestrator = new ThreatHuntingOrchestrator(); await orchestrator.initialize(); - try { - // Start hunt - const startResponse = await orchestrator.startHunt({ - scope: 'all', - timeWindowHours: 24, - configuration: { - autoRemediate: false, - confidenceThreshold: 0.7, - targetPrecision: 0.91, - }, - }); - - expect(startResponse.huntId).toBeDefined(); - - // Wait for completion (with timeout) - let status = await orchestrator.getHuntStatus(startResponse.huntId); - let attempts = 0; - const maxAttempts = 30; - - while ( - !['completed', 'failed', 'cancelled'].includes(status.status) && - attempts < maxAttempts - ) { - await new Promise((resolve) => setTimeout(resolve, 500)); - status = await orchestrator.getHuntStatus(startResponse.huntId); - attempts++; - } - - // Verify completion - expect(['completed', 'failed', 'cancelled']).toContain(status.status); - - if (status.status === 'completed') { - // Get results - const results = await orchestrator.getHuntResults(startResponse.huntId); - - expect(results).toBeDefined(); - expect(results.metrics).toBeDefined(); - expect(results.findings).toBeDefined(); - } - } finally { - orchestrator.dispose(); + // Start hunt + const startResponse = await orchestrator.startHunt({ + scope: 'all', + timeWindowHours: 24, + configuration: { + autoRemediate: false, + confidenceThreshold: 0.7, + targetPrecision: 0.91, + }, + }); + + expect(startResponse.huntId).toBeDefined(); + + // Wait for completion (with timeout) + let status = await orchestrator.getHuntStatus(startResponse.huntId); + let attempts = 0; + const maxAttempts = 30; + + while ( + !['completed', 'failed', 'cancelled'].includes(status.status) && + attempts < maxAttempts + ) { + await new Promise((resolve) => setTimeout(resolve, 500)); + status = await orchestrator.getHuntStatus(startResponse.huntId); + attempts++; } - orchestrator.dispose(); + // Verify completion + expect(['completed', 'failed', 'cancelled']).toContain(status.status); + + if (status.status === 'completed') { + // Get results + const results = await orchestrator.getHuntResults(startResponse.huntId); + + expect(results).toBeDefined(); + expect(results.metrics).toBeDefined(); + expect(results.findings).toBeDefined(); + } }, 30000); // 30 second timeout }); @@ -914,35 +907,29 @@ describe('Integration Tests', () => { const orchestrator = new ThreatHuntingOrchestrator(); await orchestrator.initialize(); - try { - const response = await orchestrator.startHunt({ - configuration: { - targetPrecision: 0.91, - precisionMode: true, - }, - }); - - // Wait for completion - let status = await orchestrator.getHuntStatus(response.huntId); - let attempts = 0; - - while (!['completed', 'failed'].includes(status.status) && attempts < 30) { - await new Promise((resolve) => setTimeout(resolve, 500)); - status = await orchestrator.getHuntStatus(response.huntId); - attempts++; - } - - if (status.status === 'completed') { - const results = await orchestrator.getHuntResults(response.huntId); - - // Precision should be at or above target - expect(results.metrics.precisionEstimate).toBeGreaterThanOrEqual(0.85); // Allow 6% margin - } - } finally { - orchestrator.dispose(); + const response = await orchestrator.startHunt({ + configuration: { + targetPrecision: 0.91, + precisionMode: true, + }, + }); + + // Wait for completion + let status = await orchestrator.getHuntStatus(response.huntId); + let attempts = 0; + + while (!['completed', 'failed'].includes(status.status) && attempts < 30) { + await new Promise((resolve) => setTimeout(resolve, 500)); + status = await orchestrator.getHuntStatus(response.huntId); + attempts++; } - orchestrator.dispose(); + if (status.status === 'completed') { + const results = await orchestrator.getHuntResults(response.huntId); + + // Precision should be at or above target + expect(results.metrics.precisionEstimate).toBeGreaterThanOrEqual(0.85); // Allow 6% margin + } }, 30000); }); }); diff --git a/server/src/ingest/async-pipeline.ts b/server/src/ingest/async-pipeline.ts index 1fc9b2b498b..758d44fc8c1 100644 --- a/server/src/ingest/async-pipeline.ts +++ b/server/src/ingest/async-pipeline.ts @@ -1,8 +1,6 @@ import { Pool } from 'pg'; import { createHash, randomUUID } from 'crypto'; import { IngestService, IngestInput } from '../services/IngestService.js'; -import { ResidencyGuard } from '../data-residency/residency-guard.js'; -import { getCurrentRegion } from '../config/regional-config.js'; import logger from '../utils/logger.js'; export type AsyncIngestStatus = @@ -52,7 +50,6 @@ export interface AsyncIngestRepository { error?: string, ): Promise; countProcessingForTenant(tenantId: string): Promise; - getProcessingCounts(tenantIds: string[]): Promise>; } function stableStringify(value: unknown): string { @@ -93,7 +90,7 @@ class CircuitBreaker { constructor( private threshold = 3, private cooldownMs = 10_000, - ) { } + ) {} canPass(key: string, now: number): boolean { const openUntil = this.openUntil.get(key) || 0; @@ -117,7 +114,7 @@ class CircuitBreaker { } export class PgAsyncIngestRepository implements AsyncIngestRepository { - constructor(private pool: Pool, private workerId = 'pg-worker') { } + constructor(private pool: Pool, private workerId = 'pg-worker') {} async insertJobWithOutbox( payload: IngestInput, @@ -297,29 +294,6 @@ export class PgAsyncIngestRepository implements AsyncIngestRepository { return Number(rows[0]?.count || 0); } - async getProcessingCounts(tenantIds: string[]): Promise> { - if (tenantIds.length === 0) return new Map(); - - const { rows } = await this.pool.query( - `SELECT tenant_id, COUNT(*)::int AS count - FROM ingest_async_jobs - WHERE tenant_id = ANY($1) - AND status = 'PROCESSING' - GROUP BY tenant_id`, - [tenantIds], - ); - - const map = new Map(); - // Initialize with 0 for all requested tenants to ensure safe lookups - tenantIds.forEach((id) => map.set(id, 0)); - - rows.forEach((row: any) => { - map.set(row.tenant_id, Number(row.count)); - }); - - return map; - } - private mapRow(row: Record): AsyncIngestJob { return { id: row.id as string, @@ -474,23 +448,10 @@ export class InMemoryAsyncIngestRepository implements AsyncIngestRepository { (job: any) => job.tenantId === tenantId && job.status === 'PROCESSING', ).length; } - - async getProcessingCounts(tenantIds: string[]): Promise> { - const map = new Map(); - tenantIds.forEach((id) => map.set(id, 0)); - - const jobs = Array.from(this.jobs.values()); - for (const job of jobs) { - if (job.status === 'PROCESSING' && tenantIds.includes(job.tenantId)) { - map.set(job.tenantId, (map.get(job.tenantId) || 0) + 1); - } - } - return map; - } } export class AsyncIngestDispatcher { - constructor(private repo: AsyncIngestRepository) { } + constructor(private repo: AsyncIngestRepository) {} async enqueue( payload: IngestInput, @@ -566,11 +527,6 @@ export class AsyncIngestWorker { now, ); - const uniqueTenants = Array.from( - new Set(events.map((e) => e.job.tenantId)), - ); - const dbCounts = await this.repo.getProcessingCounts(uniqueTenants); - for (const event of events) { const tenantId = event.job.tenantId; @@ -580,7 +536,8 @@ export class AsyncIngestWorker { } const active = - (this.inFlight.get(tenantId) || 0) + (dbCounts.get(tenantId) || 0); + (this.inFlight.get(tenantId) || 0) + + (await this.repo.countProcessingForTenant(tenantId)); if (active >= this.options.maxTenantConcurrency!) { const delayMs = calculateBackoffDelay( @@ -609,18 +566,6 @@ export class AsyncIngestWorker { this.inFlight.set(tenantId, (this.inFlight.get(tenantId) || 0) + 1); await this.repo.markJobProcessing(event.jobId); - const guard = ResidencyGuard.getInstance(); - const isAllowed = await guard.isRegionAllowed(tenantId, getCurrentRegion(), 'storage'); - - if (!isAllowed) { - const delayMs = calculateBackoffDelay(event.attempts, this.options.baseBackoffMs, this.options.maxBackoffMs); - await this.repo.markOutboxProcessed(event.id); // Or keep it in outbox for retry in correct region? - // For now, fail it as it's a residency violation to process here. - await this.repo.markJobFailed(event.jobId, `Residency violation: Current region ${getCurrentRegion()} is not allowed for tenant.`); - this.inFlight.set(tenantId, Math.max(0, (this.inFlight.get(tenantId) || 1) - 1)); - continue; - } - try { await this.ingestService.ingest(event.job.payload); await this.repo.markJobCompleted(event.jobId); diff --git a/server/src/intelgraph/client-impl.ts b/server/src/intelgraph/client-impl.ts index 9e61b2ca62b..84a003bb5cd 100644 --- a/server/src/intelgraph/client-impl.ts +++ b/server/src/intelgraph/client-impl.ts @@ -96,10 +96,9 @@ export class IntelGraphClientImpl implements IntelGraphClient { await session.run( ` MATCH (t:MaestroTask {id: $taskId}) - WHERE t.tenantId = $tenantId OR $tenantId IS NULL SET t += $props `, - { taskId, props, tenantId: props.tenantId } + { taskId, props } ); } finally { await session.close(); @@ -114,7 +113,6 @@ export class IntelGraphClientImpl implements IntelGraphClient { MATCH (t:MaestroTask {id: $artifact.taskId}) MERGE (a:MaestroArtifact {id: $artifact.id}) SET a += $artifact - SET a.tenantId = t.tenantId MERGE (t)-[:HAS_ARTIFACT]->(a) MERGE (r:MaestroRun {id: $artifact.runId}) MERGE (r)-[:HAS_ARTIFACT]->(a) @@ -251,8 +249,7 @@ export class IntelGraphClientImpl implements IntelGraphClient { const props = result.records[0].get('t').properties; return { ...props, - agent: props.agentId ? { id: props.agentId, name: props.agentName, kind: props.agentKind } : undefined, - tenantId: props.tenantId + agent: props.agentId ? { id: props.agentId, name: props.agentName, kind: props.agentKind } : undefined } as Task; } finally { await session.close(); diff --git a/server/src/intelgraph/client.ts b/server/src/intelgraph/client.ts index c3d5ca70132..f4de4e2ebb0 100644 --- a/server/src/intelgraph/client.ts +++ b/server/src/intelgraph/client.ts @@ -8,15 +8,9 @@ export interface IntelGraphClient { updateTask(taskId: string, patch: Partial): Promise; createArtifact(artifact: Artifact): Promise; - getArtifactsForRun(runId: string): Promise; - getArtifactsForTask(taskId: string): Promise; recordCostSample(sample: CostSample): Promise; getRunCostSummary(runId: string): Promise; - - getRun(runId: string): Promise; - getTask(taskId: string): Promise; - getTasksForRun(runId: string): Promise; } // a very thin, testable class @@ -50,12 +44,6 @@ export class IntelGraphClientImpl implements IntelGraphClient { async createArtifact(artifact: Artifact): Promise { this.artifacts.set(artifact.id, artifact); } - async getArtifactsForRun(runId: string): Promise { - return Array.from(this.artifacts.values()).filter(a => a.runId === runId); - } - async getArtifactsForTask(taskId: string): Promise { - return Array.from(this.artifacts.values()).filter(a => a.taskId === taskId); - } async recordCostSample(sample: CostSample): Promise { this.costs.set(sample.id, sample); @@ -86,14 +74,4 @@ export class IntelGraphClientImpl implements IntelGraphClient { } return summary; } - - async getRun(runId: string): Promise { - return this.runs.get(runId) || null; - } - async getTask(taskId: string): Promise { - return this.tasks.get(taskId) || null; - } - async getTasksForRun(runId: string): Promise { - return Array.from(this.tasks.values()).filter(t => t.runId === runId); - } } diff --git a/server/src/lib/telemetry/comprehensive-telemetry.ts b/server/src/lib/telemetry/comprehensive-telemetry.ts index f52e4fae173..98192c7ed66 100644 --- a/server/src/lib/telemetry/comprehensive-telemetry.ts +++ b/server/src/lib/telemetry/comprehensive-telemetry.ts @@ -24,7 +24,6 @@ class ComprehensiveTelemetry { dels: { add: (value?: number) => void }; }; api: { requests: { add: (value?: number) => void }; errors: { add: (value?: number) => void } }; - adoption: { track: (featureId: string, action: string, tenantId: string, userId: string, metadata?: any) => void }; }; // Request/response timing @@ -46,71 +45,21 @@ class ComprehensiveTelemetry { this.meter = meterProvider.getMeter('intelgraph-server-telemetry-legacy'); // Mocks to satisfy type checker while we migrate - this.requestDuration = { record: () => { } }; - this.activeConnections = { add: (value: number) => { } }; - - // Wire up subsystems to actual metrics + this.requestDuration = { record: () => {} }; + this.activeConnections = { add: (value: number) => {} }; this.subsystems = { database: { - queries: { - add: (value: number = 1) => { - if (metrics.dbQueriesTotal) { - // Use generic labels for legacy adapter usage - metrics.dbQueriesTotal.labels('unknown', 'query', 'ok').inc(value); - } - } - }, - errors: { - add: (value: number = 1) => { - if (metrics.dbQueriesTotal) { - metrics.dbQueriesTotal.labels('unknown', 'query', 'error').inc(value); - } - } - }, - latency: { - record: (value: number) => { - if (metrics.dbQueryDuration) { - metrics.dbQueryDuration.labels('unknown', 'query').observe(value); - } - // Also update legacy metric - if (metrics.intelgraphDatabaseQueryDuration) { - metrics.intelgraphDatabaseQueryDuration.labels('unknown', 'query').observe(value); - } - } - }, + queries: { add: (value?: number) => {} }, + errors: { add: (value?: number) => {} }, + latency: { record: (value?: number) => {} }, }, cache: { - hits: { - add: (value: number = 1) => { - if (metrics.intelgraphCacheHits) metrics.intelgraphCacheHits.labels('redis').inc(value); - if (metrics.cacheHits) metrics.cacheHits.inc(value); - } - }, - misses: { - add: (value: number = 1) => { - if (metrics.intelgraphCacheMisses) metrics.intelgraphCacheMisses.inc(value); - if (metrics.cacheMisses) metrics.cacheMisses.inc(value); - } - }, - sets: { add: (value: number = 1) => { /* TODO: cacheSets? */ } }, - dels: { add: (value: number = 1) => { /* TODO: cacheDels? */ } }, - }, - api: { - requests: { - add: (value: number = 1) => { - if (metrics.stdHttpRequestsTotal) { - metrics.stdHttpRequestsTotal.labels('GET', 'unknown', '200').inc(value); - } - } - }, - errors: { - add: (value: number = 1) => { - if (metrics.applicationErrors) { - metrics.applicationErrors.labels('api', 'error', 'high', 'general').inc(value); - } - } - } + hits: { add: (value?: number) => {} }, + misses: { add: (value?: number) => {} }, + sets: { add: (value?: number) => {} }, + dels: { add: (value?: number) => {} }, }, + api: { requests: { add: (value?: number) => {} }, errors: { add: (value?: number) => {} } }, }; } @@ -144,7 +93,7 @@ class ComprehensiveTelemetry { const legacyLabels = { method: String(attributes.method || 'GET'), route: String(attributes.route || 'unknown'), - status_code: String(attributes.status || 200), + status: String(attributes.status || 200), }; metrics.httpRequestDuration.observe(legacyLabels, duration); } diff --git a/server/src/llm/config.ts b/server/src/llm/config.ts index 97939416dca..24c927ae6bd 100644 --- a/server/src/llm/config.ts +++ b/server/src/llm/config.ts @@ -9,14 +9,6 @@ export interface LLMRouterConfig { mock: { enabled: boolean; }; - nvidiaNim: { - enabled: boolean; - apiKey?: string; - baseUrl?: string; - model?: string; - modeDefault?: "instant" | "thinking"; - enableMultimodal?: boolean; - }; }; policies: { costControl: { @@ -50,14 +42,6 @@ export const defaultConfig: LLMRouterConfig = { }, mock: { enabled: true - }, - nvidiaNim: { - enabled: !!process.env.NVIDIA_NIM_API_KEY, - apiKey: process.env.NVIDIA_NIM_API_KEY, - baseUrl: process.env.NVIDIA_NIM_BASE_URL || "https://integrate.api.nvidia.com/v1", - model: process.env.NVIDIA_NIM_MODEL || "moonshotai/kimi-k2.5", - modeDefault: "instant", - enableMultimodal: process.env.NVIDIA_NIM_MULTIMODAL === "true" } }, policies: { diff --git a/server/src/llm/index.ts b/server/src/llm/index.ts index da954a07888..005d3d0e99b 100644 --- a/server/src/llm/index.ts +++ b/server/src/llm/index.ts @@ -1,7 +1,6 @@ import { LLMRouter } from './router.js'; import { OpenAIProvider } from './providers/openai.js'; import { MockProvider } from './providers/mock.js'; -import { NvidiaNimProvider } from './providers/nvidia-nim.js'; import { CostControlPolicy, LatencyPolicy } from './policies/index.js'; import { PIIGuardrail } from './safety.js'; import { defaultConfig, LLMRouterConfig } from './config.js'; @@ -18,16 +17,6 @@ export function createLLMRouter(config: LLMRouterConfig = defaultConfig): LLMRou providers.push(new OpenAIProvider(config.providers.openai.apiKey)); } - if (config.providers.nvidiaNim.enabled && config.providers.nvidiaNim.apiKey) { - providers.push(new NvidiaNimProvider({ - apiKey: config.providers.nvidiaNim.apiKey, - baseUrl: config.providers.nvidiaNim.baseUrl, - model: config.providers.nvidiaNim.model, - modeDefault: config.providers.nvidiaNim.modeDefault, - enableMultimodal: config.providers.nvidiaNim.enableMultimodal - })); - } - const policies: RoutingPolicy[] = []; if (config.policies.costControl.enabled) { policies.push(new CostControlPolicy(config.policies.costControl.maxCostPerRequest)); diff --git a/server/src/llm/orchestrator.ts b/server/src/llm/orchestrator.ts index 07fc334b4f3..f7a0a1a5077 100644 --- a/server/src/llm/orchestrator.ts +++ b/server/src/llm/orchestrator.ts @@ -65,12 +65,6 @@ export class SummitLlmOrchestrator implements LlmOrchestrator { console.log(`[LLM] Routing ${request.purpose} (Risk: ${request.riskLevel}) to ${decision.provider}/${decision.model} because: ${decision.reason}`); - // Innovation: Mode-aware routing for NVIDIA NIM - if (decision.provider === 'nvidia-nim') { - const isHardPrompt = request.purpose === 'agent' || request.purpose === 'tool_call' || inputTokens > 4000; - request.mode = isHardPrompt ? 'thinking' : 'instant'; - } - // 4. Execute const result = await provider.chat({ ...request, diff --git a/server/src/llm/router/default-policy.ts b/server/src/llm/router/default-policy.ts index a9b2b0a3fc8..a370c874820 100644 --- a/server/src/llm/router/default-policy.ts +++ b/server/src/llm/router/default-policy.ts @@ -34,13 +34,8 @@ export class DefaultRoutingPolicy implements RoutingPolicy { } } - // 4. Trial Innovation Lane -> NVIDIA NIM Kimi K2.5 - if (process.env.NVIDIA_NIM_API_KEY && (ctx.purpose === 'agent' || ctx.purpose === 'tool_call')) { - return { provider: 'nvidia-nim', model: 'moonshotai/kimi-k2.5', reason: 'innovation_lane_reasoning' }; - } - // Fallback to Mock if no keys - if (!process.env.OPENAI_API_KEY && !process.env.ANTHROPIC_API_KEY && !process.env.NVIDIA_NIM_API_KEY) { + if (!process.env.OPENAI_API_KEY && !process.env.ANTHROPIC_API_KEY) { return { provider: 'mock', model: 'mock-model', reason: 'no_api_keys_configured' }; } diff --git a/server/src/llm/types.ts b/server/src/llm/types.ts index 2bf929dc22d..f9ce3ead59c 100644 --- a/server/src/llm/types.ts +++ b/server/src/llm/types.ts @@ -1,12 +1,7 @@ import type { PaletteCandidateSet, PaletteRequestOptions, PaletteUsageRecord } from './palette/types.js'; -export type ProviderId = "openai" | "anthropic" | "mock" | "groq" | "openrouter" | "nvidia_nim" | "other"; - -export type MultiModalPart = - | { type: "text"; text: string } - | { type: "image_url"; image_url: { url: string } } - | { type: "video_url"; video_url: { url: string } }; +export type ProviderId = "openai" | "anthropic" | "mock" | "groq" | "openrouter" | "other"; export type ModelId = string; export type Role = "system" | "user" | "assistant" | "tool"; export type ModelClass = "smart" | "fast" | "balanced" | "vision" | "embedding"; @@ -21,7 +16,7 @@ export interface ToolCallInvocation { export interface ChatMessage { role: Role; - content: string | MultiModalPart[] | null; + content: string | null; name?: string; toolCalls?: ToolCallInvocation[]; toolCallId?: string; // For role: 'tool' @@ -97,7 +92,7 @@ export type ProviderType = ProviderId; export interface Message { role: Role; - content: string | MultiModalPart[]; + content: string; } export interface LLMRequest { diff --git a/server/src/maestro/adapters/llm_openai.ts b/server/src/maestro/adapters/llm_openai.ts index e23f4f71e19..41fb296abb6 100644 --- a/server/src/maestro/adapters/llm_openai.ts +++ b/server/src/maestro/adapters/llm_openai.ts @@ -13,16 +13,18 @@ export class OpenAILLM { constructor( private apiKey: string, private costMeter: CostMeter, - ) { } + ) {} async callCompletion( runId: string, taskId: string, - params: { model: string; messages: any[]; tools?: any[] }, + params: { model: string; messages: any[] }, metadata: LLMCallMetadata = {}, ): Promise { + // Strip prefix if present, e.g. "openai:gpt-4" -> "gpt-4" const modelName = params.model.replace(/^openai:/, ''); + // pseudo-code — plug in real OpenAI client const raw = await this.fakeOpenAIChatCompletion({ ...params, model: modelName }); const usage: LLMUsage = { @@ -34,11 +36,8 @@ export class OpenAILLM { const sample = await this.costMeter.record(runId, taskId, usage, metadata); - const message = raw.choices[0].message; - return { - content: message.content || '', - tool_calls: message.tool_calls, + content: raw.choices[0].message.content, usage, costUSD: sample.cost, feature: metadata.feature, @@ -48,27 +47,7 @@ export class OpenAILLM { } // Helper method to simulate OpenAI call - private async fakeOpenAIChatCompletion(params: { model: string; messages: any[]; tools?: any[] }) { - const lastUserMessage = params.messages.filter(m => m.role === 'user').pop()?.content || ''; - let content = 'This is a simulated response from OpenAI.'; - let tool_calls: any[] | undefined = undefined; - - // Simulate tool usage if requested and relevant - if (params.tools && (lastUserMessage.toLowerCase().includes('simulate') || lastUserMessage.toLowerCase().includes('verify'))) { - const tool = params.tools.find(t => t.function?.name === 'narrative.simulate'); - if (tool) { - content = 'I will run a simulation to verify the narrative impact.'; - tool_calls = [{ - id: 'call_' + Math.random().toString(36).substring(7), - type: 'function', - function: { - name: 'narrative.simulate', - arguments: JSON.stringify({ rootId: 'node-123', ticks: 5 }) - } - }]; - } - } - + private async fakeOpenAIChatCompletion(params: { model: string; messages: any[] }) { return { id: 'chatcmpl-123', object: 'chat.completion', @@ -79,10 +58,9 @@ export class OpenAILLM { index: 0, message: { role: 'assistant', - content, - tool_calls + content: 'This is a simulated response from OpenAI.', }, - finish_reason: tool_calls ? 'tool_calls' : 'stop', + finish_reason: 'stop', }, ], usage: { @@ -93,13 +71,3 @@ export class OpenAILLM { }; } } - -export interface LLMResult { - content: string; - tool_calls?: any[]; - usage: LLMUsage; - costUSD: number; - feature?: string; - tenantId?: string; - environment?: string; -} diff --git a/server/src/maestro/core.ts b/server/src/maestro/core.ts index 335906abf53..3343c416dcf 100644 --- a/server/src/maestro/core.ts +++ b/server/src/maestro/core.ts @@ -11,8 +11,9 @@ import { normalizeReasoningBudget, type ReasoningBudgetContract, } from './budget.js'; -import { mcpRegistry, mcpClient } from '../conductor/mcp/client.js'; - +import { AgentGovernanceService } from './governance-service.js'; +import logger from '../utils/logger.js'; +import { metrics } from '../monitoring/metrics.js'; export interface MaestroConfig { defaultPlannerAgent: string; // e.g. "openai:gpt-4.1" @@ -26,15 +27,11 @@ export interface MaestroRunOptions { export class Maestro { constructor( - public ig: IntelGraphClient, + private ig: IntelGraphClient, private costMeter: CostMeter, private llm: OpenAILLM, private config: MaestroConfig, - ) { } - - async getTask(taskId: string): Promise { - return this.ig.getTask(taskId); - } + ) {} async createRun( userId: string, @@ -64,7 +61,6 @@ export class Maestro { const planTask: Task = { id: crypto.randomUUID(), runId: run.id, - tenantId: run.tenantId, status: 'succeeded', // planning is instant for v0.1 agent: { id: this.config.defaultPlannerAgent, @@ -83,7 +79,6 @@ export class Maestro { const actionTask: Task = { id: crypto.randomUUID(), runId: run.id, - tenantId: run.tenantId, parentTaskId: planTask.id, status: 'queued', agent: { @@ -120,68 +115,8 @@ export class Maestro { const tenantId = (task.input as any)?.tenantId; if (tenantId) { - const guard = ResidencyGuard.getInstance(); - await guard.validateAgentExecution(tenantId); - - // === GLOBAL STEERING CHECK (Task #96) === - const { maestroGlobalAgent } = await import('./agents/MaestroGlobalAgent.js'); - const steeringResult = await maestroGlobalAgent.evaluateRouting(task); - - if (steeringResult.action === 'STOP') { - const errorMsg = `Task execution forced STOP by Global Steering: ${steeringResult.reason}`; - logger.error({ taskId: task.id, reason: steeringResult.reason }, 'Maestro Steering: Execution stopped'); - await this.ig.updateTask(task.id, { status: 'failed', errorMessage: errorMsg, updatedAt: now }); - throw new Error(errorMsg); - } - - if (steeringResult.action === 'REDIRECT') { - const { maestroHandoffService } = await import('./handoff-service.js'); - const handoff = await maestroHandoffService.initiateHandoff(task, steeringResult.advice!); - - if (handoff.success) { - const msg = `Task handed off to region ${steeringResult.advice}: ${handoff.message}`; - await this.ig.updateTask(task.id, { - status: 'succeeded', // In handoff scenario, local task is 'done' once handed off - output: { result: msg, handoffId: handoff.handoffId }, - updatedAt: now - }); - - return { - task: { ...task, status: 'succeeded', output: { result: msg } } as Task, - artifact: null - }; - } - } - - // === SHADOW TRAFFIC INTEGRATION (Task #101) === - if (!(task.input as any)?._isShadow) { - // ... (existing shadow logic) - } - - // === DEEPFAKE DETECTION (Phase 4) === - const mediaUri = (task.input as any)?.mediaUri || (task.input as any)?.uri; - const mediaType = (task.input as any)?.mediaType; - if (mediaUri && mediaType) { - const { DeepfakeDetectionService } = await import('../services/DeepfakeDetectionService.js'); - const deepfakeService = new DeepfakeDetectionService(); - const analysis = await deepfakeService.analyze(mediaUri, mediaType, tenantId); - - if (analysis.isDeepfake && analysis.riskScore > 80) { - const errorMsg = `Security Alert: High-risk deepfake detected in task input. ` + - `Risk score: ${analysis.riskScore}. Markers: ${analysis.markers.join(', ')}. ` + - `Details: ${analysis.details}`; - - logger.error({ taskId: task.id, analysis }, 'Deepfake detection blocked task execution'); - await this.ig.updateTask(task.id, { status: 'failed', errorMessage: errorMsg, updatedAt: now }); - throw new Error(errorMsg); - } - - if (analysis.isDeepfake) { - logger.warn({ taskId: task.id, analysis }, 'Deepfake detected but risk score below threshold. Proceeding with caution.'); - // Attach analysis to task output or metadata for downstream visibility - task.output = { ...task.output, deepfakeAnalysis: analysis }; - } - } + const guard = ResidencyGuard.getInstance(); + await guard.validateAgentExecution(tenantId); } // === GOVERNANCE CHECK (Story 1.1) === @@ -262,20 +197,6 @@ export class Maestro { updatedAt: now }); - // === HITL INTEGRATION (Task #102) === - try { - const { createApproval } = await import('../services/approvals.js'); - await createApproval({ - requesterId: task.agent.id, - action: 'maestro_task_execution', - payload: { taskId: task.id, taskKind: task.kind, riskScore: governanceDecision.riskScore }, - reason: `Governance policy flagged for review. Risk: ${governanceDecision.riskScore.toFixed(2)}. ${governanceDecision.reason}`, - runId: task.runId - }); - } catch (approvalError) { - logger.error({ taskId: task.id, error: (approvalError as Error).message }, 'Maestro: Failed to create approval record'); - } - // Return task in pending_approval state - execution halts here return { task: { @@ -296,42 +217,6 @@ export class Maestro { }, 'Task passed governance checks, proceeding with execution'); // === END GOVERNANCE CHECK === - // === NARRATIVE IMPACT PREDICTION (Story 3.2) === - if (task.kind === 'action' && tenantId) { - try { - const { Neo4jNarrativeLoader } = await import('../narrative/adapters/neo4j-loader.js'); - const { narrativeSimulationManager } = await import('../narrative/manager.js'); - - const rootId = (task.input as any)?.rootId || (task.input as any)?.targetId; - if (rootId) { - const initialEntities = await Neo4jNarrativeLoader.loadFromGraph(rootId, 2); - - if (initialEntities.length > 0) { - const sim = narrativeSimulationManager.createSimulation({ - name: `Impact Prediction: ${task.id}`, - themes: ['Security', 'Trust'], - initialEntities, - metadata: { taskId: task.id, isShadow: true } - }); - - narrativeSimulationManager.injectActorAction(sim.id, task.agent.id, task.description); - const predictedState = await narrativeSimulationManager.tick(sim.id, 5); - - task.output = { - ...task.output, - impactForecast: { - summary: predictedState.narrative.summary, - arcs: predictedState.arcs.map(arc => ({ theme: arc.theme, momentum: arc.momentum, outlook: arc.outlook })) - } - }; - narrativeSimulationManager.remove(sim.id); - } - } - } catch (simError) { - logger.warn({ taskId: task.id, error: (simError as Error).message }, 'Maestro: Narrative impact prediction failed (non-blocking)'); - } - } - let result: string = ''; if (task.agent.kind === 'llm') { @@ -346,6 +231,7 @@ export class Maestro { let timeoutId: NodeJS.Timeout; try { + // Timeout promise that cleans up properly const timeout = new Promise((_, reject) => { timeoutId = setTimeout(() => { controller.abort(); @@ -365,67 +251,36 @@ export class Maestro { ? [{ role: 'user', content: String(task.input.requestText) }] : []), ], - tools: mcpRegistry.listServers().flatMap(s => { - const srv = mcpRegistry.getServer(s); - return srv?.tools.map(t => ({ - type: 'function', - function: { - name: t.name, - description: t.description, - parameters: t.schema - } - })) || []; - }) }, { feature: `maestro_${task.kind}`, tenantId: typeof task.input?.tenantId === 'string' ? task.input.tenantId : undefined, environment: process.env.NODE_ENV || 'unknown', - // @ts-ignore + // @ts-ignore - Assuming adapter supports signal or just ignoring it safely signal: signal }, ); const llmResult = (await Promise.race([llmCall, timeout])) as any; - clearTimeout(timeoutId!); - - if (llmResult.tool_calls && llmResult.tool_calls.length > 0) { - const toolLogs: string[] = []; - const toolOutputs: any[] = []; - - for (const call of llmResult.tool_calls) { - const { name, arguments: argsJson } = call.function; - const args = JSON.parse(argsJson); - - // Find server for tool - const servers = mcpRegistry.findServersWithTool(name); - if (servers.length > 0) { - const toolResult = await mcpClient.executeTool(servers[0], name, args); - toolOutputs.push({ tool: name, result: toolResult }); - toolLogs.push(`Executed tool ${name}`); - } - } - - result = JSON.stringify({ - explanation: llmResult.content, - tool_results: toolOutputs - }); - task.output = { ...task.output, logs: [...(task.output?.logs || []), ...toolLogs] }; - } else { - result = llmResult.content; - } - break; + clearTimeout(timeoutId!); // Clear timeout on success + result = llmResult.content; + break; // Success } catch (err: any) { - clearTimeout(timeoutId!); + clearTimeout(timeoutId!); // Clear timeout on failure lastError = err; attempts++; + // Clean up abort controller on error if not already aborted if (!signal.aborted) controller.abort(); + if (attempts >= maxRetries) break; + // Exponential backoff: 1s, 2s, 4s... await new Promise(resolve => setTimeout(resolve, 1000 * Math.pow(2, attempts - 1))); } } + if (!result && lastError) throw lastError; } else { + // TODO: shell tools, etc. result = 'TODO: implement non-LLM agent'; } @@ -433,7 +288,6 @@ export class Maestro { id: crypto.randomUUID(), runId: task.runId, taskId: task.id, - tenantId: task.tenantId, kind: 'text', label: 'task-output', data: result, @@ -442,14 +296,14 @@ export class Maestro { const updatedTask: Partial = { status: 'succeeded', - output: { ...task.output, result }, + output: { result }, updatedAt: new Date().toISOString(), }; await this.ig.createArtifact(artifact); await this.ig.updateTask(task.id, updatedTask); - timer(); + timer(); // End timer success return { task: { ...task, ...updatedTask } as Task, artifact, @@ -463,7 +317,7 @@ export class Maestro { await this.ig.updateTask(task.id, updatedTask); metrics.maestroAiModelErrors.inc({ model: task.agent.modelId || 'unknown' }); - timer({ status: 'failed' }); + timer({ status: 'failed' }); // End timer failed return { task: { ...task, ...updatedTask } as Task, artifact: null }; } } @@ -484,9 +338,11 @@ export class Maestro { const executable = tasks.filter(t => t.status === 'queued'); - const results = await Promise.all( - executable.map(task => this.executeTask(task)) - ); + const results = []; + for (const task of executable) { + const res = await this.executeTask(task); + results.push(res); + } const costSummary = await this.costMeter.summarize(run.id); diff --git a/server/src/maestro/engine/WorkflowEngine.ts b/server/src/maestro/engine/WorkflowEngine.ts index 77014f75431..cfd9cb34e3f 100644 --- a/server/src/maestro/engine/WorkflowEngine.ts +++ b/server/src/maestro/engine/WorkflowEngine.ts @@ -1,7 +1,6 @@ import { randomUUID } from 'crypto'; import { metrics } from '../../observability/metrics.js'; import logger from '../../utils/logger.js'; -import { ContextShellTool } from '../tools/context-shell.js'; export interface WorkflowDefinition { id: string; @@ -59,9 +58,6 @@ export class WorkflowEngine { constructor() { this.registry = new ToolRegistry(); this.registry.register('utils.echo', new EchoTool()); - this.registry.register('ctx.bash', new ContextShellTool('bash')); - this.registry.register('ctx.readFile', new ContextShellTool('readFile')); - this.registry.register('ctx.writeFile', new ContextShellTool('writeFile')); } async execute( diff --git a/server/src/maestro/governance-service.ts b/server/src/maestro/governance-service.ts index ac069dc823f..f96ba44ef65 100644 --- a/server/src/maestro/governance-service.ts +++ b/server/src/maestro/governance-service.ts @@ -54,9 +54,9 @@ export interface GovernanceDecision { export class AgentGovernanceService { private static instance: AgentGovernanceService; - private safetyViolations: Map = new Map(); // tenantId -> violations + private safetyViolations: SafetyViolation[] = []; private ledger: ProvenanceLedgerV2; - private policies: Map> = new Map(); // tenantId -> { policyId -> config } + private policies: Map = new Map(); private riskThresholds: { low: number; medium: number; high: number; critical: number } = { low: 0.3, medium: 0.6, @@ -104,11 +104,10 @@ export class AgentGovernanceService { * Initialize default policies and governance rules */ private initializePolicies(): void { - const systemPolicies = new Map(); - systemPolicies.set('*', this.defaultConfig); // Default for all agents + this.policies.set('*', this.defaultConfig); // Default for all agents // Define governance tiers based on sensitivity and risk - systemPolicies.set('tier-0', { + this.policies.set('tier-0', { ...this.defaultConfig, maxBudget: 5000, maxExecutionTimeMs: 30000, @@ -122,7 +121,7 @@ export class AgentGovernanceService { auditLevel: 'minimal' }); - systemPolicies.set('tier-1', { + this.policies.set('tier-1', { ...this.defaultConfig, maxBudget: 15000, maxExecutionTimeMs: 120000, @@ -138,8 +137,7 @@ export class AgentGovernanceService { auditLevel: 'standard' }); - systemPolicies.set('tier-2', this.defaultConfig); - this.policies.set('system', systemPolicies); + this.policies.set('tier-2', this.defaultConfig); logger.info('Agent governance policies initialized'); } @@ -153,35 +151,6 @@ export class AgentGovernanceService { context: any, metadata?: Record ): Promise { - // === HITL OVERRIDE (Task #104) === - // Check if there is an existing human approval for this task/action - if (context.taskId) { - try { - const { getPostgresPool } = await import('../db/postgres.js'); - const pool = getPostgresPool(); - // Check for approved record in the approvals table - const result = await pool.query( - `SELECT status FROM approvals - WHERE (payload->>'taskId' = $1 OR run_id = $2) - AND status = 'approved' - ORDER BY created_at DESC LIMIT 1`, - [context.taskId, context.runId] - ); - - if (result.rows && result.rows.length > 0) { - logger.info({ taskId: context.taskId }, 'Governance: Human approval detected, allowing action'); - return { - allowed: true, - reason: 'Action manually authorized by human operator', - riskScore: 0, - violations: [] - }; - } - } catch (err) { - logger.warn({ taskId: context.taskId, error: (err as Error).message }, 'Governance: Approval check failed, falling back to policy'); - } - } - const config = this.getAgentConfig(agent); const violations: SafetyViolation[] = []; @@ -256,18 +225,10 @@ export class AgentGovernanceService { }, 'Critical risk threshold exceeded'); } - // Record violations in provenance ledger and local cache - const tenantId = agent.tenantId || 'system'; - if (violations.length > 0) { - if (!this.safetyViolations.has(tenantId)) { - this.safetyViolations.set(tenantId, []); - } - this.safetyViolations.get(tenantId)!.push(...violations); - } - + // Record violations in provenance ledger for (const violation of violations) { await this.ledger.appendEntry({ - tenantId: tenantId, + tenantId: agent.tenantId || 'system', actionType: 'GOVERNANCE_VIOLATION', resourceType: 'SafetyViolation', resourceId: violation.id, @@ -403,13 +364,10 @@ export class AgentGovernanceService { * Get governance configuration for an agent */ getAgentConfig(agent: MaestroAgent): AgentGovernanceConfig { - const tenantId = agent.tenantId || 'system'; - const tenantPolicies = this.policies.get(tenantId) || this.policies.get('system'); - - if (!tenantPolicies) return this.defaultConfig; - - const policyId = agent.metadata?.governanceTier || '*'; - return tenantPolicies.get(policyId) || tenantPolicies.get('*') || this.defaultConfig; + // Could have tenant-specific or role-specific policies + // For now, return default config if no specific policy exists + const policyId = agent.metadata?.governanceTier || agent.tenantId || '*'; + return this.policies.get(policyId) || this.defaultConfig; } /** @@ -428,15 +386,11 @@ export class AgentGovernanceService { /** * Register a governance policy for a specific agent or tenant */ - registerPolicy(id: string, config: AgentGovernanceConfig, tenantId: string = 'system'): void { - if (!this.policies.has(tenantId)) { - this.policies.set(tenantId, new Map()); - } - this.policies.get(tenantId)!.set(id, config); + registerPolicy(id: string, config: AgentGovernanceConfig): void { + this.policies.set(id, config); logger.info({ policyId: id, - tenantId, config }, 'Agent governance policy registered'); } @@ -444,11 +398,9 @@ export class AgentGovernanceService { /** * Get recent safety violations for an agent */ - getRecentViolations(agentId: string, tenantId: string = 'system', sinceDays: number = 7): SafetyViolation[] { + getRecentViolations(agentId: string, sinceDays: number = 7): SafetyViolation[] { const cutoffTime = new Date(Date.now() - sinceDays * 24 * 60 * 60 * 1000); - const tenantViolations = this.safetyViolations.get(tenantId) || []; - - return tenantViolations + return this.safetyViolations .filter(violation => violation.agentId === agentId && violation.timestamp > cutoffTime) .sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime()); } @@ -459,7 +411,7 @@ export class AgentGovernanceService { isAgentOperational(agent: MaestroAgent): boolean { // Check if agent is within resource limits and hasn't exceeded safety thresholds const isHealthy = agent.health.memoryUsage < 90 && agent.health.cpuUsage < 90; - const recentViolations = this.getRecentViolations(agent.id, agent.tenantId || 'system', 1); // Check last day + const recentViolations = this.getRecentViolations(agent.id, 1); // Check last day const hasCriticalViolations = recentViolations.some(v => v.severity === 'critical'); return isHealthy && !hasCriticalViolations; @@ -468,18 +420,18 @@ export class AgentGovernanceService { /** * Generate governance compliance report */ - async generateComplianceReport(tenantId: string = 'system'): Promise { - const allViolations = this.safetyViolations.get(tenantId) || []; - const tenantPolicies = this.policies.get(tenantId) || new Map(); + async generateComplianceReport(): Promise { + const allViolations = this.safetyViolations; + const totalAgents = Array.from(this.policies.keys()).length; const report = { timestamp: new Date().toISOString(), - tenantId, summary: { totalViolations: allViolations.length, criticalViolations: allViolations.filter(v => v.severity === 'critical').length, highViolations: allViolations.filter(v => v.severity === 'high').length, - policyCoverage: tenantPolicies.size + totalAgents, + policyCoverage: this.policies.size }, violationsByType: this.groupViolationsByType(allViolations), violationsBySeverity: this.groupViolationsBySeverity(allViolations), diff --git a/server/src/maestro/types.ts b/server/src/maestro/types.ts index cc68b8332d1..df7bb40be9e 100644 --- a/server/src/maestro/types.ts +++ b/server/src/maestro/types.ts @@ -84,79 +84,4 @@ export interface ConsensusProposal { status: 'voting' | 'approved' | 'rejected' | 'expired'; deadline: string; createdAt: string; -} - -export interface CostSample { - id: string; - runId: string; - taskId: string; - model: string; - vendor: string; - inputTokens: number; - outputTokens: number; - currency: string; - cost: number; - createdAt: string; - feature?: string; - tenantId?: string; - environment?: string; -} - -export interface RunCostSummary { - runId: string; - totalCostUSD: number; - totalInputTokens: number; - totalOutputTokens: number; - byModel: Record< - string, - { - costUSD: number; - inputTokens: number; - outputTokens: number; - } - >; -} - -export type TaskStatus = 'queued' | 'running' | 'succeeded' | 'failed' | 'pending_approval' | 'cancelled'; - -export interface Task { - id: string; - runId: string; - tenantId?: string; - parentTaskId?: string; - status: TaskStatus; - agent: { - id: string; - name: string; - kind: string; - modelId: string; - }; - kind: string; - description: string; - input: any; - output?: any; - errorMessage?: string; - createdAt: string; - updatedAt: string; -} - -export interface Run { - id: string; - user: { id: string }; - tenantId?: string; - requestText: string; - createdAt: string; - reasoningBudget?: any; // ReasoningBudgetContract - reasoningBudgetEvidence?: any; -} - -export interface Artifact { - id: string; - runId: string; - taskId: string; - tenantId?: string; - kind: string; - label: string; - data: any; - createdAt: string; } \ No newline at end of file diff --git a/server/src/middleware/abuseGuard.ts b/server/src/middleware/abuseGuard.ts index b3c615e2207..d14379b5f35 100644 --- a/server/src/middleware/abuseGuard.ts +++ b/server/src/middleware/abuseGuard.ts @@ -31,8 +31,6 @@ interface RateWindow { tenantId: string; } -import { UEBAModels, ActivityEvent } from '../security/UEBAModels.js'; - // Anomaly detection result interface AnomalyResult { isAnomaly: boolean; @@ -57,10 +55,8 @@ export class AbuseGuard { private redis: Redis; private metrics: PrometheusMetrics; private throttledTenants: Map = new Map(); - private ueba: UEBAModels; constructor(config: Partial = {}) { - this.ueba = new UEBAModels(); this.config = { enabled: true, windowSizeMinutes: 10, @@ -170,29 +166,8 @@ export class AbuseGuard { // Record the request and analyze for anomalies const anomalyResult = await this.recordAndAnalyze(tenantId); - // === UEBA Integration (Phase 4) === - const userId = (req.user as any)?.id || (req.user as any)?.sub || 'anonymous'; - const uebaEvent: ActivityEvent = { - entityId: userId, - entityType: 'user', - action: `${req.method}:${req.path}`, - resource: req.path, - region: req.headers['x-region'] as string || 'unknown', - timestamp: new Date().toISOString() - }; - - const uebaResult = await this.ueba.analyzeAnomaly(uebaEvent); - await this.ueba.updateProfile(uebaEvent); - - if (uebaResult.isAnomaly || anomalyResult.isAnomaly) { - const combinedResult = { - ...anomalyResult, - isAnomaly: true, - score: Math.max(anomalyResult.zScore * 10, uebaResult.score), - reasons: [...(uebaResult.reasons || [])] - }; - - await this.handleAnomaly(tenantId, combinedResult as any); + if (anomalyResult.isAnomaly) { + await this.handleAnomaly(tenantId, anomalyResult); // If anomaly triggered throttling, block this request if (this.isThrottled(tenantId)) { diff --git a/server/src/middleware/residency.ts b/server/src/middleware/residency.ts index 9aabca117cc..00761cc54e5 100644 --- a/server/src/middleware/residency.ts +++ b/server/src/middleware/residency.ts @@ -1,6 +1,5 @@ import { Request, Response, NextFunction } from 'express'; import { ResidencyGuard, ResidencyViolationError } from '../data-residency/residency-guard.js'; -import { getCurrentRegion } from '../config/regional-config.js'; export const residencyEnforcement = async (req: Request, res: Response, next: NextFunction) => { // Skip health checks and metrics @@ -21,27 +20,12 @@ export const residencyEnforcement = async (req: Request, res: Response, next: Ne if (req.path.startsWith('/auth') || req.path.startsWith('/public')) { return next(); } - // Fail safe + // Fail safe // console.warn('Residency enforcement skipped due to missing tenantId'); return next(); } const guard = ResidencyGuard.getInstance(); - const { globalTrafficSteering } = await import('../runtime/global/GlobalTrafficSteering.js'); - - const decision = await globalTrafficSteering.resolveRegion(tenantId); - - // Active steering - const steering = await globalTrafficSteering.resolveSteeringAction(tenantId); - res.setHeader('X-Summit-Steering-Advice', steering.targetUrl || steering.action); - res.setHeader('X-Summit-Steering-Reason', steering.reason); - - if (steering.action === 'REDIRECT') { - const config = await guard.getResidencyConfig(tenantId); - if (config?.residencyMode === 'strict') { - return res.status(307).redirect(steering.targetUrl!); - } - } // Determine context. // For GET requests, it's mostly 'compute' (processing) + 'retrieval' (implied). @@ -49,7 +33,7 @@ export const residencyEnforcement = async (req: Request, res: Response, next: Ne // For now, we enforce 'compute' residency for the API node handling the request. await guard.enforce(tenantId, { operation: 'compute', - targetRegion: getCurrentRegion(), + targetRegion: process.env.SUMMIT_REGION || process.env.REGION || 'us-east-1', dataClassification: 'internal' // Default }); diff --git a/server/src/monitoring/metrics.ts b/server/src/monitoring/metrics.ts index 9be297f236e..e8c0bae7e2c 100644 --- a/server/src/monitoring/metrics.ts +++ b/server/src/monitoring/metrics.ts @@ -19,7 +19,7 @@ if (process.env.NODE_ENV !== 'test' && process.env.ZERO_FOOTPRINT !== 'true') { register, gcDurationBuckets: [0.001, 0.01, 0.1, 1, 2, 5], // Garbage collection buckets }); - } catch (e) { } + } catch (e) {} } // Cleanup function to stop metrics collection @@ -33,42 +33,42 @@ export function stopMetricsCollection() { // Custom Application Metrics function createHistogram(config: any) { - try { - return new client.Histogram(config); - } catch (e) { - return { - observe: () => { }, - startTimer: () => () => { }, - inc: () => { }, - dec: () => { }, - set: () => { }, - labels: () => ({ observe: () => { }, inc: () => { }, dec: () => { }, set: () => { } }) - } as any; - } + try { + return new client.Histogram(config); + } catch (e) { + return { + observe: () => {}, + startTimer: () => () => {}, + inc: () => {}, + dec: () => {}, + set: () => {}, + labels: () => ({ observe: () => {}, inc: () => {}, dec: () => {}, set: () => {} }) + } as any; + } } function createCounter(config: any) { - try { - return new client.Counter(config); - } catch (e) { - return { - inc: () => { }, - labels: () => ({ inc: () => { } }) - } as any; - } + try { + return new client.Counter(config); + } catch (e) { + return { + inc: () => {}, + labels: () => ({ inc: () => {} }) + } as any; + } } function createGauge(config: any) { - try { - return new client.Gauge(config); - } catch (e) { - return { - inc: () => { }, - dec: () => { }, - set: () => { }, - labels: () => ({ inc: () => { }, dec: () => { }, set: () => { } }) - } as any; - } + try { + return new client.Gauge(config); + } catch (e) { + return { + inc: () => {}, + dec: () => {}, + set: () => {}, + labels: () => ({ inc: () => {}, dec: () => {}, set: () => {} }) + } as any; + } } // HTTP Request metrics @@ -298,20 +298,20 @@ export const deploymentRollbacksTotal = createCounter({ }); // Human-in-the-loop approvals -export const approvalsPending = createGauge({ +const approvalsPending = createGauge({ registers: [], name: 'approvals_pending', help: 'Current pending approvals requiring human review', }); -export const approvalsApprovedTotal = createCounter({ +const approvalsApprovedTotal = createCounter({ registers: [], name: 'approvals_approved_total', help: 'Total approvals granted by human reviewers', labelNames: ['reviewer_role'], }); -export const approvalsRejectedTotal = createCounter({ +const approvalsRejectedTotal = createCounter({ registers: [], name: 'approvals_rejected_total', help: 'Total approvals rejected by human reviewers', @@ -369,44 +369,44 @@ export const pipelineLatencySeconds = createHistogram({ // Register all metrics try { - register.registerMetric(httpRequestDuration); - register.registerMetric(httpRequestsTotal); - register.registerMetric(graphqlRequestDuration); - register.registerMetric(graphqlRequestsTotal); - register.registerMetric(graphqlErrors); - register.registerMetric(tenantScopeViolationsTotal); - register.registerMetric(dbConnectionsActive); - register.registerMetric(dbQueryDuration); - register.registerMetric(dbQueriesTotal); - register.registerMetric(vectorQueryDurationSeconds); - register.registerMetric(vectorQueriesTotal); - register.registerMetric(aiJobsQueued); - register.registerMetric(aiJobsProcessing); - register.registerMetric(aiJobDuration); - register.registerMetric(aiJobsTotal); - register.registerMetric(llmRequestDuration); - register.registerMetric(llmTokensTotal); - register.registerMetric(llmRequestsTotal); - register.registerMetric(graphNodesTotal); - register.registerMetric(graphEdgesTotal); - register.registerMetric(graphOperationDuration); - register.registerMetric(websocketConnections); - register.registerMetric(websocketMessages); - register.registerMetric(investigationsActive); - register.registerMetric(investigationOperations); - register.registerMetric(erMergeOutcomesTotal); - register.registerMetric(deploymentRollbacksTotal); - register.registerMetric(approvalsPending); - register.registerMetric(approvalsApprovedTotal); - register.registerMetric(approvalsRejectedTotal); - register.registerMetric(applicationErrors); - register.registerMetric(memoryUsage); - register.registerMetric(pipelineUptimeRatio); - register.registerMetric(pipelineFreshnessSeconds); - register.registerMetric(pipelineCompletenessRatio); - register.registerMetric(pipelineCorrectnessRatio); - register.registerMetric(pipelineLatencySeconds); -} catch (e) { } +register.registerMetric(httpRequestDuration); +register.registerMetric(httpRequestsTotal); +register.registerMetric(graphqlRequestDuration); +register.registerMetric(graphqlRequestsTotal); +register.registerMetric(graphqlErrors); +register.registerMetric(tenantScopeViolationsTotal); +register.registerMetric(dbConnectionsActive); +register.registerMetric(dbQueryDuration); +register.registerMetric(dbQueriesTotal); +register.registerMetric(vectorQueryDurationSeconds); +register.registerMetric(vectorQueriesTotal); +register.registerMetric(aiJobsQueued); +register.registerMetric(aiJobsProcessing); +register.registerMetric(aiJobDuration); +register.registerMetric(aiJobsTotal); +register.registerMetric(llmRequestDuration); +register.registerMetric(llmTokensTotal); +register.registerMetric(llmRequestsTotal); +register.registerMetric(graphNodesTotal); +register.registerMetric(graphEdgesTotal); +register.registerMetric(graphOperationDuration); +register.registerMetric(websocketConnections); +register.registerMetric(websocketMessages); +register.registerMetric(investigationsActive); +register.registerMetric(investigationOperations); +register.registerMetric(erMergeOutcomesTotal); +register.registerMetric(deploymentRollbacksTotal); +register.registerMetric(approvalsPending); +register.registerMetric(approvalsApprovedTotal); +register.registerMetric(approvalsRejectedTotal); +register.registerMetric(applicationErrors); +register.registerMetric(memoryUsage); +register.registerMetric(pipelineUptimeRatio); +register.registerMetric(pipelineFreshnessSeconds); +register.registerMetric(pipelineCompletenessRatio); +register.registerMetric(pipelineCorrectnessRatio); +register.registerMetric(pipelineLatencySeconds); +} catch (e) {} // GraphRAG metrics for schema validation and caching export const graphragSchemaFailuresTotal = createCounter({ @@ -420,9 +420,9 @@ export const graphragCacheHitRatio = createGauge({ help: 'Ratio of GraphRAG cache hits to total requests', }); try { - register.registerMetric(graphragSchemaFailuresTotal); - register.registerMetric(graphragCacheHitRatio); -} catch (e) { } +register.registerMetric(graphragSchemaFailuresTotal); +register.registerMetric(graphragCacheHitRatio); +} catch (e) {} export const pbacDecisionsTotal = createCounter({ registers: [], name: 'pbac_decisions_total', @@ -430,8 +430,8 @@ export const pbacDecisionsTotal = createCounter({ labelNames: ['decision'], }); try { - register.registerMetric(pbacDecisionsTotal); -} catch (e) { } +register.registerMetric(pbacDecisionsTotal); +} catch (e) {} export const admissionDecisionsTotal = createCounter({ registers: [], @@ -440,8 +440,8 @@ export const admissionDecisionsTotal = createCounter({ labelNames: ['decision', 'policy'], }); try { - register.registerMetric(admissionDecisionsTotal); -} catch (e) { } +register.registerMetric(admissionDecisionsTotal); +} catch (e) {} // Docling service metrics export const doclingInferenceDuration = createHistogram({ @@ -452,8 +452,8 @@ export const doclingInferenceDuration = createHistogram({ buckets: [0.1, 0.5, 1, 2, 5, 10, 30, 60], }); try { - register.registerMetric(doclingInferenceDuration); -} catch (e) { } +register.registerMetric(doclingInferenceDuration); +} catch (e) {} export const doclingInferenceTotal = createCounter({ registers: [], @@ -462,8 +462,8 @@ export const doclingInferenceTotal = createCounter({ labelNames: ['model', 'status'], }); try { - register.registerMetric(doclingInferenceTotal); -} catch (e) { } +register.registerMetric(doclingInferenceTotal); +} catch (e) {} export const doclingCharactersProcessed = createCounter({ registers: [], @@ -472,8 +472,8 @@ export const doclingCharactersProcessed = createCounter({ labelNames: ['model'], }); try { - register.registerMetric(doclingCharactersProcessed); -} catch (e) { } +register.registerMetric(doclingCharactersProcessed); +} catch (e) {} export const doclingCostUsd = createCounter({ registers: [], @@ -482,8 +482,8 @@ export const doclingCostUsd = createCounter({ labelNames: ['model'], }); try { - register.registerMetric(doclingCostUsd); -} catch (e) { } +register.registerMetric(doclingCostUsd); +} catch (e) {} // New domain metrics export const graphExpandRequestsTotal = createCounter({ @@ -549,14 +549,6 @@ export const webVitalValue = createGauge({ labelNames: ['metric', 'id'], }); -export const webVitalDurationSeconds = createHistogram({ - registers: [], - name: 'web_vital_duration_seconds', - help: 'Distribution of Web Vitals values in seconds', - labelNames: ['metric'], - buckets: [0.1, 0.5, 1, 2.5, 4, 10], -}); - // Real-time updates metrics export const realtimeConflictsTotal = createCounter({ registers: [], @@ -654,66 +646,33 @@ export const maestroJobExecutionDurationSeconds = createHistogram({ }); try { - register.registerMetric(maestroDagExecutionDurationSeconds); - register.registerMetric(maestroJobExecutionDurationSeconds); - - register.registerMetric(graphExpandRequestsTotal); - register.registerMetric(aiRequestTotal); - register.registerMetric(resolverLatencyMs); - register.registerMetric(neighborhoodCacheHitRatio); - register.registerMetric(neighborhoodCacheLatencyMs); - register.registerMetric(graphqlResolverDurationSeconds); - register.registerMetric(graphqlResolverErrorsTotal); - register.registerMetric(graphqlResolverCallsTotal); - register.registerMetric(webVitalValue); - register.registerMetric(webVitalDurationSeconds); - register.registerMetric(realtimeConflictsTotal); - register.registerMetric(idempotentHitsTotal); - register.registerMetric(businessUserSignupsTotal); - register.registerMetric(businessApiCallsTotal); - register.registerMetric(businessRevenueTotal); - register.registerMetric(serviceAutoRemediationsTotal); - register.registerMetric(goldenPathStepTotal); - register.registerMetric(uiErrorBoundaryCatchTotal); - register.registerMetric(maestroDeploymentsTotal); - register.registerMetric(maestroPrLeadTimeHours); - register.registerMetric(maestroChangeFailureRate); - register.registerMetric(maestroMttrHours); - register.registerMetric(breakerState); - register.registerMetric(intelgraphJobQueueDepth); -} catch (e) { } - -// Narrative Simulation Metrics -export const narrativeSimulationActiveSimulations = createGauge({ - name: 'narrative_simulation_active_total', - help: 'Total number of active narrative simulations', -}); - -export const narrativeSimulationTicksTotal = createCounter({ - name: 'narrative_simulation_ticks_total', - help: 'Total number of simulation ticks executed', - labelNames: ['simulation_id'], -}); - -export const narrativeSimulationEventsTotal = createCounter({ - name: 'narrative_simulation_events_total', - help: 'Total number of events processed in simulations', - labelNames: ['simulation_id', 'event_type'], -}); - -export const narrativeSimulationDurationSeconds = createHistogram({ - name: 'narrative_simulation_tick_duration_seconds', - help: 'Duration of a single simulation tick cycle', - labelNames: ['simulation_id'], - buckets: [0.1, 0.5, 1, 2, 5, 10], -}); - -try { - register.registerMetric(narrativeSimulationActiveSimulations); - register.registerMetric(narrativeSimulationTicksTotal); - register.registerMetric(narrativeSimulationEventsTotal); - register.registerMetric(narrativeSimulationDurationSeconds); -} catch (e) { } +register.registerMetric(maestroDagExecutionDurationSeconds); +register.registerMetric(maestroJobExecutionDurationSeconds); + +register.registerMetric(graphExpandRequestsTotal); +register.registerMetric(aiRequestTotal); +register.registerMetric(resolverLatencyMs); +register.registerMetric(neighborhoodCacheHitRatio); +register.registerMetric(neighborhoodCacheLatencyMs); +register.registerMetric(graphqlResolverDurationSeconds); +register.registerMetric(graphqlResolverErrorsTotal); +register.registerMetric(graphqlResolverCallsTotal); +register.registerMetric(webVitalValue); +register.registerMetric(realtimeConflictsTotal); +register.registerMetric(idempotentHitsTotal); +register.registerMetric(businessUserSignupsTotal); +register.registerMetric(businessApiCallsTotal); +register.registerMetric(businessRevenueTotal); +register.registerMetric(serviceAutoRemediationsTotal); +register.registerMetric(goldenPathStepTotal); +register.registerMetric(uiErrorBoundaryCatchTotal); +register.registerMetric(maestroDeploymentsTotal); +register.registerMetric(maestroPrLeadTimeHours); +register.registerMetric(maestroChangeFailureRate); +register.registerMetric(maestroMttrHours); +register.registerMetric(breakerState); +register.registerMetric(intelgraphJobQueueDepth); +} catch (e) {} // Update memory usage periodically (skip in test to avoid open handles) @@ -722,12 +681,12 @@ const shouldCollectMemory = if (shouldCollectMemory) { setInterval(() => { try { - const usage = process.memoryUsage(); - memoryUsage.set({ component: 'heap_used' }, usage.heapUsed); - memoryUsage.set({ component: 'heap_total' }, usage.heapTotal); - memoryUsage.set({ component: 'external' }, usage.external); - memoryUsage.set({ component: 'rss' }, usage.rss); - } catch (e) { } + const usage = process.memoryUsage(); + memoryUsage.set({ component: 'heap_used' }, usage.heapUsed); + memoryUsage.set({ component: 'heap_total' }, usage.heapTotal); + memoryUsage.set({ component: 'external' }, usage.external); + memoryUsage.set({ component: 'rss' }, usage.rss); + } catch (e) {} }, 30000); } @@ -901,32 +860,32 @@ export const graphqlPerTenantOverageCount = createCounter({ // Register metrics try { - register.registerMetric(llmCostTotal); - register.registerMetric(graphqlQueryCostHistogram); - register.registerMetric(graphqlCostLimitExceededTotal); - register.registerMetric(graphqlCostLimitRemaining); - register.registerMetric(graphqlTenantCostUsage); - register.registerMetric(graphqlCostRateLimitHits); - register.registerMetric(graphqlPerTenantOverageCount); - register.registerMetric(intelgraphJobsProcessed); - register.registerMetric(intelgraphOutboxSyncLatency); - register.registerMetric(intelgraphActiveConnections); - register.registerMetric(intelgraphDatabaseQueryDuration); - register.registerMetric(intelgraphHttpRequestDuration); - register.registerMetric(intelgraphGraphragQueryTotal); - register.registerMetric(intelgraphGraphragQueryDurationMs); - register.registerMetric(intelgraphQueryPreviewsTotal); - register.registerMetric(intelgraphQueryPreviewLatencyMs); - register.registerMetric(intelgraphQueryPreviewErrorsTotal); - register.registerMetric(intelgraphQueryPreviewExecutionsTotal); - register.registerMetric(intelgraphGlassBoxRunsTotal); - register.registerMetric(intelgraphGlassBoxRunDurationMs); - register.registerMetric(intelgraphGlassBoxCacheHits); - register.registerMetric(intelgraphCacheHits); - register.registerMetric(intelgraphCacheMisses); - register.registerMetric(copilotApiRequestTotal); - register.registerMetric(copilotApiRequestDurationMs); -} catch (e) { } +register.registerMetric(llmCostTotal); +register.registerMetric(graphqlQueryCostHistogram); +register.registerMetric(graphqlCostLimitExceededTotal); +register.registerMetric(graphqlCostLimitRemaining); +register.registerMetric(graphqlTenantCostUsage); +register.registerMetric(graphqlCostRateLimitHits); +register.registerMetric(graphqlPerTenantOverageCount); +register.registerMetric(intelgraphJobsProcessed); +register.registerMetric(intelgraphOutboxSyncLatency); +register.registerMetric(intelgraphActiveConnections); +register.registerMetric(intelgraphDatabaseQueryDuration); +register.registerMetric(intelgraphHttpRequestDuration); +register.registerMetric(intelgraphGraphragQueryTotal); +register.registerMetric(intelgraphGraphragQueryDurationMs); +register.registerMetric(intelgraphQueryPreviewsTotal); +register.registerMetric(intelgraphQueryPreviewLatencyMs); +register.registerMetric(intelgraphQueryPreviewErrorsTotal); +register.registerMetric(intelgraphQueryPreviewExecutionsTotal); +register.registerMetric(intelgraphGlassBoxRunsTotal); +register.registerMetric(intelgraphGlassBoxRunDurationMs); +register.registerMetric(intelgraphGlassBoxCacheHits); +register.registerMetric(intelgraphCacheHits); +register.registerMetric(intelgraphCacheMisses); +register.registerMetric(copilotApiRequestTotal); +register.registerMetric(copilotApiRequestDurationMs); +} catch (e) {} // Maestro Orchestration Metrics (migrated from telemetry/metrics.ts) export const maestroOrchestrationRequests = createCounter({ registers: [], @@ -1137,12 +1096,7 @@ try { register.registerMetric(maestroDataSourcesActive); register.registerMetric(maestroWebScrapingRequests); register.registerMetric(maestroSynthesisOperations); -} catch (e) { } - -// Debug log to verify metrics loading -if (process.env.NODE_ENV === 'test') { - // console.log('DEBUG: metrics.ts loaded in test environment'); -} +} catch (e) {} export const metrics = { graphExpandRequestsTotal, @@ -1209,7 +1163,6 @@ export const metrics = { graphqlResolverErrorsTotal, graphqlResolverCallsTotal, webVitalValue, - webVitalDurationSeconds, realtimeConflictsTotal, idempotentHitsTotal, graphqlQueryCostHistogram, @@ -1224,10 +1177,4 @@ export const metrics = { maestroOrchestrationRequests, maestroActiveSessions, maestroOrchestrationErrors, - narrativeSimulationActiveSimulations, - narrativeSimulationTicksTotal, - narrativeSimulationEventsTotal, - narrativeSimulationDurationSeconds, }; - -export default metrics; diff --git a/server/src/observability/metrics.ts b/server/src/observability/metrics.ts index f7e122cf0ac..a6be8b3d1fd 100644 --- a/server/src/observability/metrics.ts +++ b/server/src/observability/metrics.ts @@ -6,22 +6,22 @@ import { register as registry, - summitJobsProcessed as jobsProcessed, - summitOutboxSyncLatency as outboxSyncLatency, - summitActiveConnections as activeConnections, - summitDatabaseQueryDuration as databaseQueryDuration, - summitHttpRequestDuration as httpRequestDuration, - summitGraphragQueryTotal as graphragQueryTotal, - summitGraphragQueryDurationMs as graphragQueryDurationMs, - summitQueryPreviewsTotal as queryPreviewsTotal, - summitQueryPreviewLatencyMs as queryPreviewLatencyMs, - summitQueryPreviewErrorsTotal as queryPreviewErrorsTotal, - summitQueryPreviewExecutionsTotal as queryPreviewExecutionsTotal, - summitGlassBoxRunsTotal as glassBoxRunsTotal, - summitGlassBoxRunDurationMs as glassBoxRunDurationMs, - summitGlassBoxCacheHits as glassBoxCacheHits, - summitCacheHits as cacheHits, - summitCacheMisses as cacheMisses, + intelgraphJobsProcessed as jobsProcessed, + intelgraphOutboxSyncLatency as outboxSyncLatency, + intelgraphActiveConnections as activeConnections, + intelgraphDatabaseQueryDuration as databaseQueryDuration, + intelgraphHttpRequestDuration as httpRequestDuration, + intelgraphGraphragQueryTotal as graphragQueryTotal, + intelgraphGraphragQueryDurationMs as graphragQueryDurationMs, + intelgraphQueryPreviewsTotal as queryPreviewsTotal, + intelgraphQueryPreviewLatencyMs as queryPreviewLatencyMs, + intelgraphQueryPreviewErrorsTotal as queryPreviewErrorsTotal, + intelgraphQueryPreviewExecutionsTotal as queryPreviewExecutionsTotal, + intelgraphGlassBoxRunsTotal as glassBoxRunsTotal, + intelgraphGlassBoxRunDurationMs as glassBoxRunDurationMs, + intelgraphGlassBoxCacheHits as glassBoxCacheHits, + intelgraphCacheHits as cacheHits, + intelgraphCacheMisses as cacheMisses, copilotApiRequestTotal, copilotApiRequestDurationMs, // Maestro Metrics @@ -54,14 +54,7 @@ import { // Standard metrics httpRequestsTotal as stdHttpRequestsTotal, httpRequestDuration as stdHttpRequestDuration, - dbQueriesTotal, - dbQueryDuration, - websocketConnections, - narrativeSimulationActiveSimulations, - narrativeSimulationTicksTotal, - narrativeSimulationEventsTotal, - narrativeSimulationDurationSeconds, - summitHealthChecksTotal + websocketConnections } from '../monitoring/metrics.js'; export { registry }; @@ -111,14 +104,7 @@ export { maestroMttrHours, stdHttpRequestsTotal, stdHttpRequestDuration, - dbQueriesTotal, - dbQueryDuration, - websocketConnections, - narrativeSimulationActiveSimulations, - narrativeSimulationTicksTotal, - narrativeSimulationEventsTotal, - narrativeSimulationDurationSeconds, - summitHealthChecksTotal + websocketConnections }; export const metrics = { @@ -166,12 +152,5 @@ export const metrics = { maestroMttrHours, stdHttpRequestsTotal, stdHttpRequestDuration, - dbQueriesTotal, - dbQueryDuration, - websocketConnections, - narrativeSimulationActiveSimulations, - narrativeSimulationTicksTotal, - narrativeSimulationEventsTotal, - narrativeSimulationDurationSeconds, - summitHealthChecksTotal + websocketConnections }; diff --git a/server/src/policy/loader.ts b/server/src/policy/loader.ts index 27b6c9b2deb..121e0aeffb4 100644 --- a/server/src/policy/loader.ts +++ b/server/src/policy/loader.ts @@ -2,7 +2,6 @@ import { execFile } from 'node:child_process'; import { createHash } from 'node:crypto'; import { promises as fs } from 'fs'; import path from 'path'; -import { sanitizeFilePath } from '../utils/input-sanitization.js'; type PolicyBundleVerification = { ok: true; @@ -58,25 +57,7 @@ export async function loadSignedPolicy( sigPath?: string, ): Promise { assertNonEmptyString(bundlePath, 'bundlePath'); - - // Security: Prevent argument injection in execFile - if (bundlePath.startsWith('-')) { - throw new Error('bundlePath cannot start with a hyphen'); - } - - // Security: Sanitize path to prevent Path Traversal - const safeBundlePath = sanitizeFilePath(bundlePath); - validateExtension(safeBundlePath); - - // Security: Pre-validate sigPath if provided - let safeSigPath: string | undefined; - if (sigPath) { - assertNonEmptyString(sigPath, 'sigPath'); - if (sigPath.startsWith('-')) { - throw new Error('sigPath cannot start with a hyphen'); - } - safeSigPath = sanitizeFilePath(sigPath); - } + validateExtension(bundlePath); const allowUnsigned = (process.env.ALLOW_UNSIGNED_POLICY || 'false').toLowerCase() === 'true'; @@ -87,18 +68,17 @@ export async function loadSignedPolicy( ); } - const stat = await ensureFileReadable(safeBundlePath, 'policy bundle'); - const buf = await fs.readFile(safeBundlePath); + const stat = await ensureFileReadable(bundlePath, 'policy bundle'); + const buf = await fs.readFile(bundlePath); const digest = digestFileBuffer(buf); let signatureVerified = false; - if (safeSigPath) { - await ensureFileReadable(safeSigPath, 'policy signature'); + if (sigPath) { + assertNonEmptyString(sigPath, 'sigPath'); + await ensureFileReadable(sigPath, 'policy signature'); await new Promise((res, rej) => - execFile( - 'cosign', - ['verify-blob', '--signature', safeSigPath, safeBundlePath], - (e) => (e ? rej(e) : res()), + execFile('cosign', ['verify-blob', '--signature', sigPath!, bundlePath], (e) => + e ? rej(e) : res(), ), ); signatureVerified = true; @@ -106,7 +86,7 @@ export async function loadSignedPolicy( return { ok: true, - path: path.resolve(safeBundlePath), + path: path.resolve(bundlePath), size: stat.size, modified: stat.mtime, signatureVerified, diff --git a/server/src/products/fusion/FusionService.ts b/server/src/products/fusion/FusionService.ts index 89c571c348e..8b7aa713e46 100644 --- a/server/src/products/fusion/FusionService.ts +++ b/server/src/products/fusion/FusionService.ts @@ -16,20 +16,14 @@ import { FusionRelationship } from './types.js'; import logger from '../../utils/logger.js'; -import VisionService from '../../services/VisionService.js'; -import { SignalClassificationService } from '../../sigint/SignalClassificationService.js'; export class FusionService { private llmService: LLMService; private embeddingService: EmbeddingService; - private visionService: VisionService; - private signalService: SignalClassificationService; constructor() { this.llmService = new LLMService(); this.embeddingService = new EmbeddingService(); - this.visionService = new VisionService(); - this.signalService = SignalClassificationService.getInstance(); } private get db(): Pool { @@ -49,21 +43,19 @@ export class FusionService { * 5. Save Vectors to Postgres */ async ingest( - tenantId: string, content: string, type: 'TEXT' | 'URL' | 'IMAGE' | 'SIGNAL' = 'TEXT', metadata: any = {} ): Promise { const mediaSourceId = randomUUID(); - const investigationId = metadata.investigationId || randomUUID(); + const investigationId = metadata.investigationId || randomUUID(); // Fallback if not provided // 1. Save Media Source await this.db.query( - `INSERT INTO media_sources (id, tenant_id, uri, media_type, mime_type, processing_status, metadata, extraction_count) - VALUES ($1, $2, $3, $4, $5, $6, $7, 0)`, + `INSERT INTO media_sources (id, uri, media_type, mime_type, processing_status, metadata, extraction_count) + VALUES ($1, $2, $3, $4, $5, $6, 0)`, [ mediaSourceId, - tenantId, type === 'URL' ? content : (type === 'TEXT' ? 'text-input' : 'raw-input'), type, type === 'TEXT' ? 'text/plain' : 'application/octet-stream', @@ -74,52 +66,39 @@ export class FusionService { try { // 2. Extract Entities - let analysisText = content; - - if (type === 'IMAGE') { - analysisText = await this.visionService.analyzeImage(content, metadata.prompt); - } else if (type === 'SIGNAL') { - let signalData = metadata.signal; - if (!signalData && content.startsWith('{')) { - try { signalData = JSON.parse(content); } catch (e) { } - } - - if (signalData) { - const classification = await this.signalService.classifySignal(signalData); - analysisText = `RF Signal Analysis: ${classification.label} (Confidence: ${classification.confidence}). - Tags: ${classification.tags.join(', ')}. Threat Level: ${classification.threatLevel}. - Frequency: ${signalData.frequency} Hz. Bandwidth: ${signalData.bandwidth} Hz.`; - } - } + // For IMAGE/SIGNAL, we need a description first. + // TODO: Use VisionService or SignalAnalyzer to get description. + // For now, we assume 'content' contains description or text for all types. + const textToAnalyze = type === 'TEXT' ? content : (metadata.description || content); - const textToAnalyze = type === 'TEXT' ? content : analysisText; const extraction = await this.extractEntities(textToAnalyze, type); - // 3. Generate Content Embedding + // 3. Generate Content Embedding (for the whole document) let contentEmbedding = null; - if (type === 'TEXT' || analysisText) { - contentEmbedding = await this.embeddingService.generateEmbedding({ text: textToAnalyze }); + if (type === 'TEXT' || (type === 'URL' && metadata.description)) { + contentEmbedding = await this.embeddingService.generateEmbedding({ text: textToAnalyze }); } - // 4. Save to Postgres + // 4. Save to Postgres (Multimodal Entities) const entityPromises = extraction.entities.map(async (entity) => { const entityId = randomUUID(); + // Generate embedding for the entity itself const entityEmbedding = await this.embeddingService.generateEmbedding({ text: `${entity.label} ${entity.description || ''}` }); + // Save to Postgres await this.db.query( `INSERT INTO multimodal_entities ( - id, tenant_id, investigation_id, media_source_id, entity_type, extracted_text, + id, investigation_id, media_source_id, entity_type, extracted_text, confidence, text_embedding, metadata, extraction_method - ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)`, + ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)`, [ entityId, - tenantId, investigationId, mediaSourceId, entity.type, entity.label, entity.confidence, - JSON.stringify(entityEmbedding), + JSON.stringify(entityEmbedding), // pgvector handles JSON array format JSON.stringify({ description: entity.description }), 'LLM_EXTRACTION_V1' ] @@ -133,23 +112,24 @@ export class FusionService { // 5. Save to Neo4j const session = this.neo4j.session(); try { - await session.writeTransaction(async (tx) => { + await session.writeTransaction(async (tx: any) => { + // Create MediaSource Node await tx.run( - `MERGE (m:MediaSource {id: $id, tenantId: $tenantId}) + `MERGE (m:MediaSource {id: $id}) SET m.uri = $uri, m.type = $type, m.metadata = $metadata`, - { id: mediaSourceId, tenantId, uri: type === 'URL' ? content : 'raw-input', type, metadata: JSON.stringify(metadata) } + { id: mediaSourceId, uri: type === 'URL' ? content : 'raw-input', type, metadata: JSON.stringify(metadata) } ); + // Create Entity Nodes and connect to MediaSource for (const entity of processedEntities) { await tx.run( - `MERGE (e:Entity {name: $name, type: $type, tenantId: $tenantId}) + `MERGE (e:Entity {name: $name, type: $type}) ON CREATE SET e.id = $uuid, e.description = $desc - MERGE (m:MediaSource {id: $sourceId, tenantId: $tenantId}) + MERGE (m:MediaSource {id: $sourceId}) MERGE (m)-[:MENTIONS {confidence: $conf}]->(e)`, { name: entity.label, type: entity.type, - tenantId, uuid: entity.uuid, desc: entity.description || '', sourceId: mediaSourceId, @@ -158,24 +138,24 @@ export class FusionService { ); } + // Create Relationships between Entities for (const rel of extraction.relationships) { const sourceEntity = processedEntities.find(e => e.label === rel.sourceId || e.id === rel.sourceId); const targetEntity = processedEntities.find(e => e.label === rel.targetId || e.id === rel.targetId); if (sourceEntity && targetEntity) { - await tx.run( - `MATCH (a:Entity {id: $idA, tenantId: $tenantId}), (b:Entity {id: $idB, tenantId: $tenantId}) + await tx.run( + `MATCH (a:Entity {id: $idA}), (b:Entity {id: $idB}) MERGE (a)-[r:RELATED_TO {type: $relType}]->(b) SET r.description = $desc, r.confidence = $conf`, { idA: sourceEntity.uuid, idB: targetEntity.uuid, - tenantId, relType: rel.type, desc: rel.description || '', conf: rel.confidence } - ); + ); } } }); @@ -183,6 +163,7 @@ export class FusionService { await session.close(); } + // Update Status await this.db.query( `UPDATE media_sources SET processing_status = 'COMPLETED', extraction_count = $1 WHERE id = $2`, [processedEntities.length, mediaSourceId] @@ -205,16 +186,23 @@ export class FusionService { } } - async search(tenantId: string, query: string, limit: number = 10): Promise { + /** + * Search using Hybrid Fusion (Vector + Graph) + * 1. Generate Query Embedding + * 2. Search Postgres (Vector) + * 3. Search Neo4j (Graph) + * 4. Merge and Rank + */ + async search(query: string, limit: number = 10): Promise { const queryEmbedding = await this.embeddingService.generateEmbedding({ text: query }); + // 1. Vector Search (Postgres) const vectorRes = await this.db.query( `SELECT id, extracted_text, entity_type, confidence, 1 - (text_embedding <=> $1) as score, metadata FROM multimodal_entities - WHERE tenant_id = $3 ORDER BY text_embedding <=> $1 ASC LIMIT $2`, - [JSON.stringify(queryEmbedding), limit, tenantId] + [JSON.stringify(queryEmbedding), limit] ); const vectorHits: SearchResult[] = vectorRes.rows.map(row => ({ @@ -231,17 +219,16 @@ export class FusionService { } })); + // 2. Graph Search (Neo4j) const session = this.neo4j.session(); let graphHits: SearchResult[] = []; try { const graphRes = await session.run( `CALL db.index.fulltext.queryNodes("entity_search", $query) YIELD node, score - WITH node, score - WHERE node.tenantId = $tenantId RETURN node.id as id, node.name as name, node.type as type, node.description as desc, score LIMIT $limit`, - { query, limit, tenantId } + { query, limit } ); graphHits = graphRes.records.map(rec => ({ @@ -259,11 +246,12 @@ export class FusionService { })); } catch (e: any) { - logger.warn('Graph search failed', e); + logger.warn('Graph search failed (possibly missing index)', e); } finally { await session.close(); } + // 3. Fusion Ranking const fusionMap = new Map(); const addToMap = (hit: SearchResult, weight: number) => { @@ -288,10 +276,10 @@ export class FusionService { private async extractEntities(text: string, sourceType: string): Promise { let template = ''; try { - template = await readFile(join(process.cwd(), 'prompts/extraction.fusion@v1.yaml'), 'utf-8'); + template = await readFile(join(process.cwd(), 'prompts/extraction.fusion@v1.yaml'), 'utf-8'); } catch (e: any) { - logger.error('Failed to load prompt file', e); - template = `Extract entities (Person, Org, Loc) from: {{text}}. Return JSON {entities:[], relationships:[]}`; + logger.error('Failed to load prompt file', e); + template = `Extract entities (Person, Org, Loc) from: {{text}}. Return JSON {entities:[], relationships:[]}`; } let promptTemplate = ''; @@ -304,20 +292,21 @@ export class FusionService { } const filledPrompt = promptTemplate - .replace('{{text}}', text) - .replace('{{source_type}}', sourceType); - - const resultStr = await this.llmService.complete(filledPrompt, { - model: 'gpt-4o', - temperature: 0.0, - responseFormat: 'json' + .replace('{{text}}', text) + .replace('{{source_type}}', sourceType); + + const resultStr = await this.llmService.complete({ + prompt: filledPrompt, + model: 'gpt-4o', + temperature: 0.0, + responseFormat: 'json' }); try { - return JSON.parse(resultStr) as ExtractionResult; + return JSON.parse(resultStr) as ExtractionResult; } catch (e: any) { - logger.error('Failed to parse LLM JSON', e); - return { entities: [], relationships: [] }; + logger.error('Failed to parse LLM JSON', e); + return { entities: [], relationships: [] }; } } } diff --git a/server/src/provenance-integrity-gateway/ContentSigningService.ts b/server/src/provenance-integrity-gateway/ContentSigningService.ts index 89fe95d503b..643bed06f44 100644 --- a/server/src/provenance-integrity-gateway/ContentSigningService.ts +++ b/server/src/provenance-integrity-gateway/ContentSigningService.ts @@ -204,7 +204,7 @@ export class ContentSigningService extends EventEmitter { // Store the content const storagePath = path.join(this.config.storagePath, tenantId, assetId); - await fs.mkdir(storagePath, { recursive: true }); + await fs.mkdir(path.dirname(storagePath), { recursive: true }); const storageUri = path.join(storagePath, request.filename); await fs.writeFile(storageUri, contentBuffer); diff --git a/server/src/provenance-integrity-gateway/PIGGovernanceService.ts b/server/src/provenance-integrity-gateway/PIGGovernanceService.ts index bfdc847e688..5a0574b0578 100644 --- a/server/src/provenance-integrity-gateway/PIGGovernanceService.ts +++ b/server/src/provenance-integrity-gateway/PIGGovernanceService.ts @@ -176,12 +176,12 @@ export class PIGGovernanceService extends EventEmitter { } // Load from database or return default - const result = (await pool.query( - `SELECT * FROM pig_governance_configs WHERE tenant_id = $1`, + const result = await pool.query( + `SELECT config FROM pig_governance_configs WHERE tenant_id = $1`, [tenantId] - )) || { rows: [] }; + ); - if (result.rows && result.rows.length > 0) { + if (result.rows.length > 0) { const config = this.parseConfig(result.rows[0].config); this.tenantConfigs.set(tenantId, config); return config; @@ -708,9 +708,9 @@ export class PIGGovernanceService extends EventEmitter { * Load tenant configurations from database */ private async loadTenantConfigs(): Promise { - const result = (await pool.query(`SELECT * FROM pig_governance_configs`)) || { rows: [] }; + const result = await pool.query(`SELECT * FROM pig_governance_configs`); - for (const row of result.rows || []) { + for (const row of result.rows) { const config = this.parseConfig(row.config); this.tenantConfigs.set(row.tenant_id, config); } @@ -780,7 +780,7 @@ export class PIGGovernanceService extends EventEmitter { [tenantId] ); - const { revoked_count = 0, published_count = 0, expired_count = 0 } = result.rows[0] || {}; + const { revoked_count, published_count, expired_count } = result.rows[0]; // Higher score = higher risk const revokedRatio = published_count > 0 ? revoked_count / published_count : 0; @@ -811,7 +811,7 @@ export class PIGGovernanceService extends EventEmitter { [tenantId] ); - const { high_risk_count = 0, active_count = 0, max_risk = 0 } = result.rows[0] || {}; + const { high_risk_count, active_count, max_risk } = result.rows[0]; const score = Math.min(100, Math.max( max_risk || 0, @@ -844,7 +844,7 @@ export class PIGGovernanceService extends EventEmitter { [tenantId, thirtyDaysAgo] ); - const { critical_count = 0, high_count = 0, total_count = 0 } = result.rows[0] || {}; + const { critical_count, high_count, total_count } = result.rows[0]; const score = Math.min(100, Math.round( (critical_count * 30) + (high_count * 15) + (total_count * 5) diff --git a/server/src/provenance-integrity-gateway/ProvenanceIntegrityGateway.ts b/server/src/provenance-integrity-gateway/ProvenanceIntegrityGateway.ts index 834daab829d..9e864c2bcc9 100644 --- a/server/src/provenance-integrity-gateway/ProvenanceIntegrityGateway.ts +++ b/server/src/provenance-integrity-gateway/ProvenanceIntegrityGateway.ts @@ -120,7 +120,7 @@ export class ProvenanceIntegrityGateway extends EventEmitter { : deepfakeDetectionService; this.truthBundles = config.truthBundle - ? new TruthBundleService(config.truthBundle, this.contentSigning, this.deepfakeDetection) + ? new TruthBundleService(config.truthBundle) : truthBundleService; this.narrativeConflict = config.narrative diff --git a/server/src/routes/admin.ts b/server/src/routes/admin.ts index 1590e96442e..87ab08abbf2 100644 --- a/server/src/routes/admin.ts +++ b/server/src/routes/admin.ts @@ -7,7 +7,6 @@ import { ensureAuthenticated } from '../middleware/auth.js'; import { authorize } from '../middleware/authorization.js'; import GAEnrollmentService from '../services/GAEnrollmentService.js'; import { getPostgresPool } from '../config/database.js'; -import { clearShadowCache } from '../middleware/ShadowTrafficMiddleware.js'; const memConfig: Record = { REQUIRE_BUDGET_PLUGIN: process.env.REQUIRE_BUDGET_PLUGIN === 'true', @@ -95,7 +94,7 @@ const router = express.Router(); router.use(ensureAuthenticated, authorize('manage_users')); // GA Signals Endpoint -router.get('/ga/signals', async (_req, res) => { +router.get('/admin/ga/signals', async (_req, res) => { try { const config = await GAEnrollmentService.getConfig(); @@ -129,7 +128,7 @@ router.get('/ga/signals', async (_req, res) => { }); // GA Config Endpoint (Rollback/Throttle) -router.post('/ga/config', express.json(), async (req, res) => { +router.post('/admin/ga/config', express.json(), async (req, res) => { try { const { status, maxTenants, maxUsers } = req.body; const updates: any = {}; @@ -146,7 +145,7 @@ router.post('/ga/config', express.json(), async (req, res) => { } }); -router.get('/config', (req, res) => { +router.get('/admin/config', (req, res) => { const tenantId = (req.query.tenantId as string) || ''; if ( tenantId && @@ -158,7 +157,7 @@ router.get('/config', (req, res) => { res.json(memConfig); }); -router.post('/config', express.json(), (req, res) => { +router.post('/admin/config', express.json(), (req, res) => { const tenantId = (req.query.tenantId as string) || ''; const allowed = Object.keys(memConfig).filter( (k) => !['TENANT_OVERRIDES', 'TENANT_DEFAULTS'].includes(k), @@ -216,7 +215,7 @@ router.post('/config', express.json(), (req, res) => { }); // Add endpoint to manage tenant defaults -router.post('/tenant-defaults', express.json(), (req, res) => { +router.post('/admin/tenant-defaults', express.json(), (req, res) => { const { tenantId, config } = req.body; if (!tenantId) { @@ -244,104 +243,23 @@ router.post('/tenant-defaults', express.json(), (req, res) => { }); // Health check endpoint for secret rotation -router.get('/health', (req, res) => { +router.get('/admin/health', (req, res) => { res.json({ status: 'ok' }); }); // Get all tenant defaults -router.get('/tenant-defaults', (req, res) => { +router.get('/admin/tenant-defaults', (req, res) => { res.json({ tenantDefaults: memConfig.TENANT_DEFAULTS, }); }); -import { RegionalAvailabilityService } from '../services/RegionalAvailabilityService.js'; - -// Regional Failover Admin APIs -router.get('/failover/status', (req, res) => { - const availability = RegionalAvailabilityService.getInstance(); - res.json(availability.getStatus()); -}); - -router.post('/failover/mode', express.json(), (req, res) => { - const { mode } = req.body; - if (mode !== 'AUTOMATIC' && mode !== 'MANUAL_PROMOTION_ACTIVE') { - return res.status(400).json({ ok: false, error: 'Invalid mode' }); - } - const availability = RegionalAvailabilityService.getInstance(); - availability.setFailoverMode(mode); - res.json({ ok: true, mode }); -}); - -router.post('/failover/status', express.json(), (req, res) => { - const { region, status } = req.body; - if (!region || !['HEALTHY', 'DEGRADED', 'DOWN'].includes(status)) { - return res.status(400).json({ ok: false, error: 'Invalid region or status' }); - } - try { - const availability = RegionalAvailabilityService.getInstance(); - availability.setRegionStatus(region, status); - res.json({ ok: true, region, status }); - } catch (error: any) { - res.status(400).json({ ok: false, error: error.message }); - } -}); - -// Shadow Traffic Admin APIs -router.get('/shadow/configs', async (req, res) => { - try { - const pool = getPostgresPool(); - const result = await pool.query('SELECT * FROM shadow_traffic_configs'); - res.json(result.rows); - } catch (error: any) { - res.status(500).json({ ok: false, error: error.message }); - } -}); - -router.post('/shadow/configs', express.json(), async (req, res) => { - const { tenantId, targetUrl, samplingRate, compareResponses } = req.body; - if (!tenantId || !targetUrl) { - return res.status(400).json({ ok: false, error: 'tenantId and targetUrl are required' }); - } - try { - const pool = getPostgresPool(); - await pool.query( - `INSERT INTO shadow_traffic_configs (tenant_id, target_url, sampling_rate, compare_responses) - VALUES ($1, $2, $3, $4) - ON CONFLICT (tenant_id) DO UPDATE - SET target_url = EXCLUDED.target_url, - sampling_rate = EXCLUDED.sampling_rate, - compare_responses = EXCLUDED.compare_responses, - updated_at = CURRENT_TIMESTAMP`, - [tenantId, targetUrl, samplingRate ?? 0, compareResponses ?? false] - ); - clearShadowCache(tenantId); - res.json({ ok: true, message: 'Shadow traffic config updated' }); - } catch (error: any) { - res.status(500).json({ ok: false, error: error.message }); - } -}); - -router.delete('/shadow/configs/:tenantId', async (req, res) => { - const { tenantId } = req.params; - try { - const pool = getPostgresPool(); - await pool.query('DELETE FROM shadow_traffic_configs WHERE tenant_id = $1', [tenantId]); - clearShadowCache(tenantId); - res.json({ ok: true, message: 'Shadow traffic config deleted' }); - } catch (error: any) { - res.status(500).json({ ok: false, error: error.message }); - } -}); - export default router; // n8n flows admin (read/write server/config/n8n-flows.json) -const n8nCfgPath = process.cwd().endsWith('/server') - ? path.resolve(process.cwd(), 'config/n8n-flows.json') - : path.resolve(process.cwd(), 'server/config/n8n-flows.json'); +const n8nCfgPath = path.resolve(__dirname, '../../config/n8n-flows.json'); -router.get('/n8n-flows', (_req, res) => { +router.get('/admin/n8n-flows', (_req, res) => { try { const raw = fs.readFileSync(n8nCfgPath, 'utf8'); return res.json(JSON.parse(raw)); @@ -354,7 +272,7 @@ router.get('/n8n-flows', (_req, res) => { } }); -router.post('/n8n-flows', express.json(), (req, res) => { +router.post('/admin/n8n-flows', express.json(), (req, res) => { const body = req.body || {}; const allowedPrefixes = Array.isArray(body.allowedPrefixes) ? body.allowedPrefixes @@ -378,7 +296,7 @@ router.post('/n8n-flows', express.json(), (req, res) => { }); // OPA admin utilities -router.get('/opa/validate', async (_req, res) => { +router.get('/admin/opa/validate', async (_req, res) => { try { const base = process.env.OPA_BASE_URL || ''; if (!base) @@ -417,7 +335,7 @@ router.get('/opa/validate', async (_req, res) => { } }); -router.post('/opa/reload', async (_req, res) => { +router.post('/admin/opa/reload', async (_req, res) => { // Stub: Typically OPA data reloads are handled via bundles; provide a no-op success return res.json({ ok: true, @@ -426,7 +344,7 @@ router.post('/opa/reload', async (_req, res) => { }); // OPA bundle source: attempt to read status plugin for bundle revision/version -router.get('/opa/bundle-source', async (_req, res) => { +router.get('/admin/opa/bundle-source', async (_req, res) => { try { const base = process.env.OPA_BASE_URL || ''; if (!base) return res.json({ ok: false, message: 'OPA_BASE_URL not set' }); @@ -465,7 +383,7 @@ router.get('/opa/bundle-source', async (_req, res) => { }); // OPA bundle status (checks whether data.maestro.n8n.allowed_flows exists) -router.get('/opa/bundle-status', async (_req, res) => { +router.get('/admin/opa/bundle-status', async (_req, res) => { try { const base = process.env.OPA_BASE_URL || ''; if (!base) return res.json({ ok: false, message: 'OPA_BASE_URL not set' }); @@ -485,7 +403,7 @@ router.get('/opa/bundle-status', async (_req, res) => { }); // Push current n8n allowed flows into OPA data API (writes to data.maestro.n8n.allowed_flows) -router.post('/opa/push-n8n-flows', async (_req, res) => { +router.post('/admin/opa/push-n8n-flows', async (_req, res) => { try { const base = process.env.OPA_BASE_URL || ''; if (!base) @@ -510,7 +428,7 @@ router.post('/opa/push-n8n-flows', async (_req, res) => { }); // Sync n8n allowed flows FROM OPA into local config file -router.post('/opa/sync-n8n-flows', async (_req, res) => { +router.post('/admin/opa/sync-n8n-flows', async (_req, res) => { try { const base = process.env.OPA_BASE_URL || ''; if (!base) @@ -548,7 +466,7 @@ const secretManager = new SecretManager(); const serviceRegistry = new MockServiceRegistry(); // Secret Rotation API -router.post('/secrets/rotate', express.json(), async (req, res) => { +router.post('/admin/secrets/rotate', express.json(), async (req, res) => { const { secretName, newVersion, services } = req.body; if (!secretName || !newVersion || !services) { @@ -573,7 +491,7 @@ router.post('/secrets/rotate', express.json(), async (req, res) => { // In a real implementation, we might want to roll back here as well continue; } - const health = await axios.get(healthUrl, { timeout: 5000 }).then(res => res.data); + const health = await axios.get(healthUrl).then(res => res.data); if (health.status !== 'ok') { console.error(`Service ${service} is unhealthy after secret rotation. Rolling back...`); await secretManager.setSecret(secretName, 'current', previousSecret); @@ -586,7 +504,7 @@ router.post('/secrets/rotate', express.json(), async (req, res) => { }); // Temporal runtime toggle -router.post('/temporal/toggle', async (req, res) => { +router.post('/admin/temporal/toggle', express.json(), async (req, res) => { const enabled = Boolean(req.body?.enabled); try { if (enabled) { @@ -605,7 +523,7 @@ router.post('/temporal/toggle', async (req, res) => { }); // Push prefixes (allowed/denied) to OPA -router.post('/opa/push-n8n-prefixes', async (_req, res) => { +router.post('/admin/opa/push-n8n-prefixes', async (_req, res) => { try { const base = process.env.OPA_BASE_URL || ''; if (!base) @@ -644,7 +562,7 @@ router.post('/opa/push-n8n-prefixes', async (_req, res) => { }); // Sync prefixes FROM OPA -router.post('/opa/sync-n8n-prefixes', async (_req, res) => { +router.post('/admin/opa/sync-n8n-prefixes', async (_req, res) => { try { const base = process.env.OPA_BASE_URL || ''; if (!base) @@ -677,3 +595,67 @@ router.post('/opa/sync-n8n-prefixes', async (_req, res) => { .json({ ok: false, message: e?.message || 'sync prefixes failed' }); } }); + +// OPA bundle status (checks whether data.maestro.n8n.allowed_flows exists) +router.get('/admin/opa/bundle-status', async (_req, res) => { + try { + const base = process.env.OPA_BASE_URL || ''; + if (!base) return res.json({ ok: false, message: 'OPA_BASE_URL not set' }); + const r = await axios.get(`${base}/v1/data/maestro/n8n/allowed_flows`, { + timeout: 3000, + }); + const flows = r.data?.result || {}; + const keys = Object.keys(flows || {}); + return res.json({ + ok: true, + allowedFlowsCount: keys.length, + sample: keys.slice(0, 10), + }); + } catch (e: any) { + return res.json({ ok: false, message: e?.message || 'lookup failed' }); + } +}); + +// Push current n8n allowed flows into OPA data API (writes to data.maestro.n8n.allowed_flows) +router.post('/admin/opa/push-n8n-flows', async (_req, res) => { + try { + const base = process.env.OPA_BASE_URL || ''; + if (!base) + return res + .status(200) + .json({ ok: false, message: 'OPA_BASE_URL not set' }); + let cfg: any = { allowedFlows: [] }; + try { + cfg = JSON.parse(fs.readFileSync(n8nCfgPath, 'utf8')); + } catch { } + const map: Record = {}; + for (const f of cfg.allowedFlows || []) map[f] = true; + await axios.put(`${base}/v1/data/maestro/n8n/allowed_flows`, map, { + timeout: 5000, + }); + return res.json({ ok: true, count: Object.keys(map).length }); + } catch (e: any) { + return res + .status(200) + .json({ ok: false, message: e?.message || 'push failed' }); + } +}); + +// Temporal runtime toggle +router.post('/admin/temporal/toggle', express.json(), async (req, res) => { + const enabled = Boolean(req.body?.enabled); + try { + if (enabled) { + await enableTemporal(); + } else { + await disableTemporal(); + } + (memConfig as any).TEMPORAL_ENABLED = enabled; + process.env.TEMPORAL_ENABLED = enabled ? 'true' : 'false'; + return res.json({ ok: true, enabled }); + } catch (e: any) { + return res + .status(500) + .json({ ok: false, error: e?.message || 'temporal toggle failed' }); + } +}); diff --git a/server/src/routes/approvals.ts b/server/src/routes/approvals.ts index 56e96e5cd21..177611933b8 100644 --- a/server/src/routes/approvals.ts +++ b/server/src/routes/approvals.ts @@ -10,7 +10,6 @@ import { listApprovals, rejectApproval, } from '../services/approvals.js'; -import { firstString, firstStringOr } from '../utils/http-param.js'; interface ApprovalPayload { userId?: string; @@ -66,7 +65,7 @@ export function buildApprovalsRouter(maestro?: Maestro): express.Router { try { const role = (req as any).user?.role; const userId = resolveUserId(req); - const status = (firstString(req.query.status) as ApprovalStatus | undefined) || undefined; + const status = (req.query.status as ApprovalStatus | undefined) || undefined; const approvals = await listApprovals({ status }); const visible = canApprove(role) @@ -81,7 +80,7 @@ export function buildApprovalsRouter(maestro?: Maestro): express.Router { router.get('/:id', async (req, res, next) => { try { - const approval = await getApprovalById(firstStringOr(req.params.id, '')); + const approval = await getApprovalById(req.params.id); if (!approval) { return res.status(404).json({ error: 'Approval not found' }); } @@ -99,7 +98,7 @@ export function buildApprovalsRouter(maestro?: Maestro): express.Router { } const approval = await approveApproval( - firstStringOr(req.params.id, ''), + req.params.id, approverId, req.body?.reason, ); @@ -119,18 +118,6 @@ export function buildApprovalsRouter(maestro?: Maestro): express.Router { payload.userId || approverId, String(payload.requestText || ''), ); - } else if ( - maestro && - approval.action === 'maestro_task_execution' && - approval.payload - ) { - const payload = approval.payload as { taskId: string }; - const task = await maestro.getTask(payload.taskId); - if (task) { - // Re-execute the task now that it has been approved - // Governance flip check will allow it this time because of the manual approval record - actionResult = await maestro.executeTask(task); - } } approvalsLogger.info( @@ -157,7 +144,7 @@ export function buildApprovalsRouter(maestro?: Maestro): express.Router { } const approval = await rejectApproval( - firstStringOr(req.params.id, ''), + req.params.id, approverId, req.body?.reason, ); diff --git a/server/src/routes/export-api.py b/server/src/routes/export-api.py new file mode 100644 index 00000000000..0c84d08b971 --- /dev/null +++ b/server/src/routes/export-api.py @@ -0,0 +1,592 @@ +""" +FastAPI stub endpoints for export policy evaluation +Alternative to the Express/TypeScript implementation +""" + +import hashlib +import logging +import time +import uuid +from datetime import datetime, timedelta +from enum import Enum +from typing import Any, Literal + +from fastapi import BackgroundTasks, FastAPI, HTTPException +from pydantic import BaseModel + +app = FastAPI( + title="IntelGraph Export API", + description="Policy-aware export service with provenance tracking", + version="1.0.0", +) + +logger = logging.getLogger(__name__) + + +# Enums +class ExportType(str, Enum): + analysis = "analysis" + report = "report" + dataset = "dataset" + api = "api" + + +class UserRole(str, Enum): + analyst = "analyst" + investigator = "investigator" + admin = "admin" + compliance_officer = "compliance-officer" + + +class Purpose(str, Enum): + investigation = "investigation" + threat_intel = "threat-intel" + fraud_risk = "fraud-risk" + commercial = "commercial" + research = "research" + + +class Classification(str, Enum): + public = "public" + internal = "internal" + confidential = "confidential" + restricted = "restricted" + + +class DecisionEffect(str, Enum): + allow = "allow" + deny = "deny" + review = "review" + + +class RiskLevel(str, Enum): + low = "low" + medium = "medium" + high = "high" + + +class Severity(str, Enum): + blocking = "blocking" + warning = "warning" + + +# Request models +class SourceField(BaseModel): + name: str + type: str + + +class DataSource(BaseModel): + id: str + license: str + owner: str | None = None + classification: Classification | None = None + fields: list[SourceField] | None = None + pii_detected: bool | None = False + + +class Dataset(BaseModel): + sources: list[DataSource] + + +class ExportContext(BaseModel): + user_id: str + user_role: UserRole + user_scopes: list[str] | None = [] + tenant_id: str + purpose: Purpose + export_type: ExportType + destination: str | None = None + approvals: list[str] | None = [] + step_up_verified: bool | None = False + pii_export_approved: bool | None = False + + +class ExportRequest(BaseModel): + action: Literal["export"] = "export" + dataset: Dataset + context: ExportContext + case_id: str | None = None + claim_ids: list[str] | None = [] + + +class WhatIfScenario(BaseModel): + name: str + changes: dict[str, Any] + + +class Simulation(BaseModel): + policy_changes: dict[str, Any] | None = {} + what_if_scenarios: list[WhatIfScenario] | None = [] + + +class SimulateRequest(ExportRequest): + simulation: Simulation + + +# Response models +class Violation(BaseModel): + code: str + message: str + appeal_code: str + appeal_url: str + severity: Severity + + +class RiskAssessment(BaseModel): + level: RiskLevel + factors: list[str] + requires_approval: bool + requires_step_up: bool + + +class Redaction(BaseModel): + field: str + reason: str + replacement: str + + +class AuditTrail(BaseModel): + decision_id: str + timestamp: str + policy_version: str + evaluator: str + + +class Decision(BaseModel): + effect: DecisionEffect + reasons: list[str] + violations: list[Violation] + risk_assessment: RiskAssessment + redactions: list[Redaction] + audit_trail: AuditTrail + + +class CostEstimate(BaseModel): + estimated_cost: float + budget_remaining: float + budget_utilization: float + + +class ExportResponse(BaseModel): + decision: Decision + export_url: str | None = None + manifest_url: str | None = None + bundle_hash: str | None = None + cost_estimate: CostEstimate + + +class ImpactAnalysis(BaseModel): + decision_changed: bool + violations_added: list[str] + violations_removed: list[str] + risk_level_change: str + + +class ScenarioResult(BaseModel): + name: str + decision: Decision + impact: ImpactAnalysis + + +class SimulationResults(BaseModel): + baseline: Decision + scenarios: list[ScenarioResult] + + +class SimulationResponse(ExportResponse): + simulation_results: SimulationResults + + +class ExportStatus(BaseModel): + request_id: str + status: Literal["pending", "processing", "completed", "failed"] + created_at: str + completed_at: str | None = None + export_url: str | None = None + manifest_url: str | None = None + bundle_size_bytes: int | None = None + expiry_date: str | None = None + error_message: str | None = None + + +# Policy evaluation logic +class PolicyEvaluator: + """Mock policy evaluation logic""" + + @staticmethod + def evaluate_export_policy(request: ExportRequest) -> Decision: + """Evaluate export request against policies""" + violations = [] + risk_factors = [] + requires_approval = False + requires_step_up = False + + # Check license restrictions + for source in request.dataset.sources: + if ( + source.license in ["GPL-3.0", "AGPL-3.0"] + and request.context.purpose == Purpose.commercial + ): + violations.append( + Violation( + code="COMMERCIAL_USE_VIOLATION", + message=f"Commercial use not permitted for license {source.license}", + appeal_code="COM001", + appeal_url="https://compliance.intelgraph.io/appeal/COM001", + severity=Severity.blocking, + ) + ) + + if source.license in ["DISALLOW_EXPORT", "VIEW_ONLY", "EMBARGOED"]: + violations.append( + Violation( + code="LICENSE_VIOLATION", + message=f"Export blocked by license {source.license}", + appeal_code="LIC001", + appeal_url="https://compliance.intelgraph.io/appeal/LIC001", + severity=Severity.blocking, + ) + ) + + # Check PII requirements + pii_sources = [s for s in request.dataset.sources if s.pii_detected] + if pii_sources and not request.context.pii_export_approved: + violations.append( + Violation( + code="PII_EXPORT_WITHOUT_APPROVAL", + message="PII data export requires explicit approval", + appeal_code="PII001", + appeal_url="https://compliance.intelgraph.io/appeal/PII001", + severity=Severity.blocking, + ) + ) + risk_factors.append("Contains PII data without approval") + + # Check classification requirements + restricted_sources = [ + s for s in request.dataset.sources if s.classification == Classification.restricted + ] + if restricted_sources: + requires_step_up = True + if not request.context.step_up_verified: + violations.append( + Violation( + code="STEP_UP_REQUIRED", + message="Step-up authentication required for restricted data", + appeal_code="AUTH002", + appeal_url="https://compliance.intelgraph.io/appeal/AUTH002", + severity=Severity.blocking, + ) + ) + + # Check export type restrictions + if request.context.export_type == ExportType.dataset: + requires_approval = True + risk_factors.append("Dataset export requires review") + + if "compliance-officer" not in (request.context.approvals or []): + violations.append( + Violation( + code="APPROVAL_REQUIRED", + message="Compliance officer approval required for dataset export", + appeal_code="APP001", + appeal_url="https://compliance.intelgraph.io/appeal/APP001", + severity=Severity.blocking, + ) + ) + + # Determine risk level + if len([v for v in violations if v.severity == Severity.blocking]) > 0: + risk_level = RiskLevel.high + elif requires_approval or requires_step_up: + risk_level = RiskLevel.medium + else: + risk_level = RiskLevel.low + + # Determine effect + blocking_violations = [v for v in violations if v.severity == Severity.blocking] + if blocking_violations: + effect = DecisionEffect.deny + elif requires_approval and "compliance-officer" not in (request.context.approvals or []): + effect = DecisionEffect.review + else: + effect = DecisionEffect.allow + + # Generate redactions + redactions = PolicyEvaluator._generate_redactions(request) + + return Decision( + effect=effect, + reasons=[v.message for v in violations], + violations=violations, + risk_assessment=RiskAssessment( + level=risk_level, + factors=risk_factors, + requires_approval=requires_approval, + requires_step_up=requires_step_up, + ), + redactions=redactions, + audit_trail=AuditTrail( + decision_id=str(uuid.uuid4()), + timestamp=datetime.utcnow().isoformat(), + policy_version="export-enhanced-1.0", + evaluator="fastapi-policy-engine", + ), + ) + + @staticmethod + def _generate_redactions(request: ExportRequest) -> list[Redaction]: + """Generate field redactions based on policy""" + redactions = [] + + for source in request.dataset.sources: + if source.fields: + for field in source.fields: + if ( + field.type in ["email", "phone", "ssn"] + and not request.context.pii_export_approved + ): + redactions.append( + Redaction( + field=field.name, + reason="PII field requires explicit approval for export", + replacement="[REDACTED]", + ) + ) + + if ( + source.classification == Classification.confidential + and request.context.export_type == ExportType.dataset + ): + redactions.append( + Redaction( + field="source_details", + reason="Confidential data not permitted in dataset exports", + replacement="[CLASSIFIED]", + ) + ) + + return redactions + + +# Cost tracking +class CostTracker: + """Mock cost tracking""" + + @staticmethod + def calculate_cost(request: ExportRequest) -> CostEstimate: + """Calculate export cost estimate""" + base_cost = 0.01 # $0.01 base cost + source_multiplier = len(request.dataset.sources) * 0.005 + + if request.context.export_type == ExportType.dataset: + base_cost *= 2 # Dataset exports cost more + + estimated_cost = base_cost + source_multiplier + + # Mock budget values + budget_remaining = 25.0 # $25 remaining + budget_utilization = estimated_cost / (budget_remaining + estimated_cost) + + return CostEstimate( + estimated_cost=round(estimated_cost, 4), + budget_remaining=budget_remaining, + budget_utilization=round(budget_utilization, 3), + ) + + +# Endpoints +@app.post("/export", response_model=ExportResponse) +async def export_data(request: ExportRequest, background_tasks: BackgroundTasks): + """ + Main export endpoint with full policy evaluation + """ + start_time = time.time() + request_id = str(uuid.uuid4()) + + logger.info(f"Export request {request_id} received for tenant {request.context.tenant_id}") + + try: + # Evaluate policy + decision = PolicyEvaluator.evaluate_export_policy(request) + + # Calculate costs + cost_estimate = CostTracker.calculate_cost(request) + + # Check if cost exceeds budget + if cost_estimate.estimated_cost > cost_estimate.budget_remaining: + decision = Decision( + effect=DecisionEffect.deny, + reasons=["Cost limit exceeded"], + violations=[ + Violation( + code="COST_LIMIT_EXCEEDED", + message=f"Export cost ${cost_estimate.estimated_cost} exceeds remaining budget ${cost_estimate.budget_remaining}", + appeal_code="COST001", + appeal_url="https://compliance.intelgraph.io/appeal/COST001", + severity=Severity.blocking, + ) + ], + risk_assessment=RiskAssessment( + level=RiskLevel.high, + factors=["Budget exceeded"], + requires_approval=False, + requires_step_up=False, + ), + redactions=[], + audit_trail=AuditTrail( + decision_id=request_id, + timestamp=datetime.utcnow().isoformat(), + policy_version="cost-guard-1.0", + evaluator="cost-guard-service", + ), + ) + + response = ExportResponse(decision=decision, cost_estimate=cost_estimate) + + # If allowed, generate export URLs + if decision.effect == DecisionEffect.allow: + response.export_url = f"https://exports.intelgraph.io/bundles/{request_id}" + response.manifest_url = f"https://exports.intelgraph.io/manifests/{request_id}" + response.bundle_hash = f"sha256:{_generate_mock_hash(request_id)}" + + # Background task to generate actual export + background_tasks.add_task(_generate_export_bundle, request_id, request) + + duration = time.time() - start_time + logger.info( + f"Export request {request_id} processed in {duration:.3f}s, decision: {decision.effect}" + ) + + return response + + except Exception as e: + logger.error(f"Export request {request_id} failed: {e!s}") + raise HTTPException(status_code=500, detail=f"Internal server error: {request_id}") + + +@app.post("/export/simulate", response_model=SimulationResponse) +async def simulate_export(request: SimulateRequest): + """ + Policy simulation endpoint for what-if analysis + """ + request_id = str(uuid.uuid4()) + + logger.info(f"Export simulation {request_id} received for tenant {request.context.tenant_id}") + + try: + # Get baseline decision + baseline_request = ExportRequest( + action=request.action, + dataset=request.dataset, + context=request.context, + case_id=request.case_id, + claim_ids=request.claim_ids, + ) + baseline_decision = PolicyEvaluator.evaluate_export_policy(baseline_request) + + # Run what-if scenarios + scenarios = [] + for scenario in request.simulation.what_if_scenarios or []: + # Apply scenario changes to context + modified_context = request.context.copy() + for key, value in scenario.changes.items(): + if hasattr(modified_context, key): + setattr(modified_context, key, value) + + scenario_request = ExportRequest( + action=request.action, + dataset=request.dataset, + context=modified_context, + case_id=request.case_id, + claim_ids=request.claim_ids, + ) + + scenario_decision = PolicyEvaluator.evaluate_export_policy(scenario_request) + + # Calculate impact + impact = ImpactAnalysis( + decision_changed=baseline_decision.effect != scenario_decision.effect, + violations_added=[ + v.code + for v in scenario_decision.violations + if not any(bv.code == v.code for bv in baseline_decision.violations) + ], + violations_removed=[ + v.code + for v in baseline_decision.violations + if not any(sv.code == v.code for sv in scenario_decision.violations) + ], + risk_level_change=( + f"{baseline_decision.risk_assessment.level} → {scenario_decision.risk_assessment.level}" + if baseline_decision.risk_assessment.level + != scenario_decision.risk_assessment.level + else "no change" + ), + ) + + scenarios.append( + ScenarioResult(name=scenario.name, decision=scenario_decision, impact=impact) + ) + + response = SimulationResponse( + decision=baseline_decision, + cost_estimate=CostEstimate( + estimated_cost=0.0, # Simulations are free + budget_remaining=1000.0, # Mock value + budget_utilization=0.0, + ), + simulation_results=SimulationResults(baseline=baseline_decision, scenarios=scenarios), + ) + + logger.info(f"Export simulation {request_id} completed with {len(scenarios)} scenarios") + return response + + except Exception as e: + logger.error(f"Export simulation {request_id} failed: {e!s}") + raise HTTPException(status_code=500, detail=f"Internal server error: {request_id}") + + +@app.get("/export/status/{request_id}", response_model=ExportStatus) +async def get_export_status(request_id: str): + """ + Get the status of an export request + """ + # Mock status response + return ExportStatus( + request_id=request_id, + status="completed", + created_at=(datetime.utcnow() - timedelta(minutes=5)).isoformat(), + completed_at=datetime.utcnow().isoformat(), + export_url=f"https://exports.intelgraph.io/bundles/{request_id}", + manifest_url=f"https://exports.intelgraph.io/manifests/{request_id}", + bundle_size_bytes=1024000, + expiry_date=(datetime.utcnow() + timedelta(days=1)).isoformat(), + ) + + +@app.get("/health") +async def health_check(): + """Health check endpoint""" + return {"status": "healthy", "timestamp": datetime.utcnow().isoformat()} + + +# Helper functions +def _generate_mock_hash(input_str: str) -> str: + """Generate a mock hash for demonstration""" + return hashlib.sha256(input_str.encode()).hexdigest()[:64] + + +async def _generate_export_bundle(request_id: str, request: ExportRequest): + """Background task to generate export bundle""" + logger.info(f"Generating export bundle for request {request_id}") + # Mock export generation + await asyncio.sleep(2) # Simulate processing time + logger.info(f"Export bundle {request_id} generated successfully") + + +if __name__ == "__main__": + import uvicorn + + uvicorn.run(app, host="0.0.0.0", port=8000) diff --git a/server/src/routes/ops.ts b/server/src/routes/ops.ts index d24997cd160..a151b074f22 100644 --- a/server/src/routes/ops.ts +++ b/server/src/routes/ops.ts @@ -18,15 +18,15 @@ const drService = new DisasterRecoveryService(); const isHotReloadEnabled = () => (process.env.POLICY_HOT_RELOAD || '').toLowerCase() === 'true'; -// All /ops routes require authentication and at least OPERATOR role -router.use(ensureAuthenticated); -router.use(ensureRole(['ADMIN', 'admin', 'OPERATOR', 'operator'])); +// Protected by 'admin' role (assuming ensureRole middleware checks for this) +// For now, we'll keep it open or assume the caller handles auth if not strictly enforced here in the prototype +// In production: router.use(ensureRole('admin')); /** * @route POST /ops/maintenance * @description Trigger system maintenance tasks (partitioning, cleanup) */ -router.post('/maintenance', ensureRole(['ADMIN', 'admin']), async (req, res) => { +router.post('/maintenance', async (req, res) => { try { // Run asynchronously to avoid timeout runMaintenance().catch(err => logger.error('Async maintenance failed', err)); @@ -39,6 +39,7 @@ router.post('/maintenance', ensureRole(['ADMIN', 'admin']), async (req, res) => router.post( '/ops/policy/reload', + ensureAuthenticated, ensureRole(['ADMIN', 'admin']), async (req, res) => { if (!isHotReloadEnabled()) { @@ -66,6 +67,7 @@ router.post( router.post( '/ops/policy/rollback', + ensureAuthenticated, ensureRole(['ADMIN', 'admin']), async (req, res) => { if (!isHotReloadEnabled()) { @@ -96,7 +98,7 @@ router.post( * @route POST /ops/backup/:type * @description Trigger a specific backup */ -router.post('/backup/:type', ensureRole(['ADMIN', 'admin']), async (req, res) => { +router.post('/backup/:type', async (req, res) => { const { type } = req.params; const { uploadToS3 } = req.body; @@ -126,7 +128,7 @@ router.post('/backup/:type', ensureRole(['ADMIN', 'admin']), async (req, res) => * @route POST /ops/dr/drill * @description Trigger a DR drill simulation */ -router.post('/dr/drill', ensureRole(['ADMIN', 'admin']), async (req, res) => { +router.post('/dr/drill', async (req, res) => { const { target } = req.body; // 'postgres' or 'neo4j' if (target && target !== 'postgres' && target !== 'neo4j') { @@ -150,7 +152,7 @@ router.post('/dr/drill', ensureRole(['ADMIN', 'admin']), async (req, res) => { * @route GET /ops/dr/status * @description Get DR status */ -router.get('/dr/status', ensureRole(['ADMIN', 'admin', 'OPERATOR']), async (req, res) => { +router.get('/dr/status', async (req, res) => { try { const status = await drService.getStatus(); res.json(status); @@ -163,7 +165,7 @@ router.get('/dr/status', ensureRole(['ADMIN', 'admin', 'OPERATOR']), async (req, * @route POST /ops/evidence/verify * @description Trigger chunked evidence re-hashing for integrity verification */ -router.post('/evidence/verify', ensureRole(['ADMIN', 'admin']), async (req, res) => { +router.post('/evidence/verify', async (req, res) => { if (process.env.EVIDENCE_INTEGRITY !== 'true') { return res.status(503).json({ ok: false, error: 'Evidence integrity verification is disabled' }); } @@ -192,6 +194,7 @@ router.post('/evidence/verify', ensureRole(['ADMIN', 'admin']), async (req, res) */ router.get( '/release-readiness/summary', + ensureAuthenticated, ensureRole(['ADMIN', 'OPERATOR']), async (req, res) => { try { @@ -210,6 +213,7 @@ router.get( */ router.get( '/release-readiness/evidence-index', + ensureAuthenticated, ensureRole(['ADMIN', 'OPERATOR']), async (req, res) => { try { @@ -226,7 +230,7 @@ router.get( * @route GET /ops/system-health * @description Get system health status including kill-switch, safe-mode, backpressure */ -router.get('/system-health', ensureRole(['ADMIN', 'admin', 'OPERATOR']), async (req, res) => { +router.get('/system-health', async (req, res) => { try { const status = await systemHealthService.getStatus(); res.json(status); @@ -242,6 +246,7 @@ router.get('/system-health', ensureRole(['ADMIN', 'admin', 'OPERATOR']), async ( */ router.post( '/system-health/kill-switch', + ensureAuthenticated, ensureRole(['ADMIN', 'admin']), async (req, res) => { const { enabled, reason } = req.body; @@ -274,6 +279,7 @@ router.post( */ router.post( '/system-health/safe-mode', + ensureAuthenticated, ensureRole(['ADMIN', 'admin']), async (req, res) => { const { enabled, reason } = req.body; @@ -306,6 +312,7 @@ router.post( */ router.post( '/policy-simulator', + ensureAuthenticated, ensureRole(['ADMIN', 'admin', 'OPERATOR']), async (req, res) => { const { action, resource, subject, context } = req.body; diff --git a/server/src/services/PasswordResetService.ts b/server/src/services/PasswordResetService.ts index 45cf51179c9..d09e8b3818b 100644 --- a/server/src/services/PasswordResetService.ts +++ b/server/src/services/PasswordResetService.ts @@ -22,8 +22,6 @@ import argon2 from 'argon2'; import { getPostgresPool } from '../config/database.js'; import logger from '../utils/logger.js'; import type { Pool, PoolClient } from 'pg'; -import { EmailService } from '../email-service/EmailService.js'; -import { cfg } from '../config.js'; interface PasswordResetRequest { email: string; @@ -36,37 +34,9 @@ export class PasswordResetService { return getPostgresPool(); } private tokenExpirationMs = 60 * 60 * 1000; // 1 hour - private _emailService: EmailService | null = null; constructor() { } - private async getEmailService(): Promise { - if (this._emailService) return this._emailService; - - this._emailService = new EmailService({ - provider: { - provider: 'smtp', - smtp: { - host: cfg.SMTP_HOST || 'localhost', - port: cfg.SMTP_PORT, - secure: cfg.SMTP_PORT === 465, - auth: cfg.SMTP_USER ? { - user: cfg.SMTP_USER, - pass: cfg.SMTP_PASS || '', - } : undefined, - }, - from: { - name: cfg.EMAIL_FROM_NAME, - email: cfg.EMAIL_FROM_ADDRESS, - }, - }, - queue: { enabled: false, concurrency: 1, retryAttempts: 0, retryBackoff: 'fixed', retryDelay: 0 }, // Sync for now - }); - - await this._emailService.initialize(); - return this._emailService; - } - /** * Generate a secure random token */ @@ -397,38 +367,28 @@ export class PasswordResetService { ): Promise { const resetUrl = `${process.env.FRONTEND_URL || 'http://localhost:3000'}/auth/reset-password?token=${token}`; + // In production, use a proper email service (SendGrid, SES, etc.) logger.info({ - message: 'Sending password reset email', + message: 'Password reset email would be sent', email, firstName, + resetUrl, + // Note: Never log the actual token in production tokenLength: token.length, }); - try { - const emailService = await this.getEmailService(); - await emailService.sendFromTemplate( - 'password-reset', - email, - { - firstName, - resetUrl, - expiryHours: 1, - } - ); - - logger.info({ - message: 'Password reset email sent successfully', - email, - }); - } catch (error: any) { - logger.error({ - message: 'Failed to send password reset email', - error: error instanceof Error ? error.message : 'Unknown error', - email, - }); - // We don't throw here to avoid revealing if the user exists or failing the request flow - // but in a production environment we might have a retry queue. - } + // TODO: Implement actual email sending + // Example with nodemailer or SendGrid: + // await emailService.send({ + // to: email, + // subject: 'Reset Your Password - IntelGraph', + // template: 'password-reset', + // data: { + // firstName, + // resetUrl, + // expiresIn: '1 hour', + // }, + // }); } /** diff --git a/server/src/services/PolicyService.ts b/server/src/services/PolicyService.ts index 4a0fd0b71fc..b85954a4d3d 100644 --- a/server/src/services/PolicyService.ts +++ b/server/src/services/PolicyService.ts @@ -1,7 +1,6 @@ // @ts-nocheck import { writeAudit } from '../utils/audit.js'; import logger from '../utils/logger.js'; -import { opaClient } from './opa-client.js'; // Define PolicyContext and PolicyDecision as requested export interface Principal { @@ -41,7 +40,7 @@ export interface PolicyDecision { export class PolicyService { private static instance: PolicyService; - private constructor() { } + private constructor() {} public static getInstance(): PolicyService { if (!PolicyService.instance) { @@ -55,39 +54,9 @@ export class PolicyService { */ async evaluate(ctx: PolicyContext): Promise { try { - // Call OPA for decision - try { - // We map the PolicyContext to what OPA expects or pass it directly if policy supports it - // Assuming 'intelgraph/policy/authz/allow' dictates the structure - const opaInput = { - user: { - id: ctx.principal.id, - role: ctx.principal.role, - tenantId: ctx.principal.tenantId, - ...ctx.principal - }, - resource: { - id: ctx.resource.id, - type: ctx.resource.type, - tenantId: ctx.resource.tenantId, - ...ctx.resource - }, - action: ctx.action, - environment: ctx.environment - }; - - const allowed = await opaClient.evaluateQuery('intelgraph/policy/authz/allow', opaInput); - if (typeof allowed === 'boolean') { - if (!allowed) return { allow: false, reason: 'OPA denied access' }; - // If allowed, we can return true or let local overrides happen? - // Usually OPA is authoritative. - return { allow: true, reason: 'OPA allow' }; - } - } catch (err: any) { - logger.warn('OPA call failed, falling back to local evaluation', err); - // Verify fail-open or fail-closed via config? - // Defaulting to local fallback/fail-closed as per existing code flow - } + // TODO: Call OPA here + // const opaDecision = await this.callOpa(ctx); + // if (opaDecision) return opaDecision; // Fallback: Basic RBAC/ABAC logic return this.evaluateLocal(ctx); @@ -117,9 +86,9 @@ export class PolicyService { // We strictly enforce tenant isolation here if resource has tenantId if (ctx.resource.tenantId && principal.tenantId) { - if (ctx.resource.tenantId !== principal.tenantId) { - return { allow: false, reason: 'Tenant mismatch' }; - } + if (ctx.resource.tenantId !== principal.tenantId) { + return { allow: false, reason: 'Tenant mismatch' }; + } } return { allow: true, reason: 'Default allow (placeholder)' }; @@ -170,14 +139,14 @@ export function withPolicy unknown>( : {}; const policyContext: PolicyContext = { - principal: user as Principal, - resource, - action: spec.action, - environment: { - ip: (ctx.req as Record)?.ip as string | undefined, - userAgent: ((ctx.req as Record)?.headers as Record)?.['user-agent'] as string | undefined, - time: new Date().toISOString() - } + principal: user as Principal, + resource, + action: spec.action, + environment: { + ip: (ctx.req as Record)?.ip as string | undefined, + userAgent: ((ctx.req as Record)?.headers as Record)?.['user-agent'] as string | undefined, + time: new Date().toISOString() + } }; const decision = await policyService.evaluate(policyContext); @@ -188,7 +157,7 @@ export function withPolicy unknown>( // Use the existing writeAudit utility if available, or update it later try { - await writeAudit({ + await writeAudit({ userId: user.id as string | undefined, userEmail: user.email as string | undefined, tenantId: (user.tenantId || resource?.tenantId) as string | undefined, @@ -196,17 +165,17 @@ export function withPolicy unknown>( resourceType: infoObj?.fieldName as string | undefined, resourceId: resource?.id as string | undefined, details: { - decision: decision.allow ? 'allow' : 'deny', - reason: decision.reason, - requestId: requestId as string | undefined, - traceId: traceId as string | undefined, + decision: decision.allow ? 'allow' : 'deny', + reason: decision.reason, + requestId: requestId as string | undefined, + traceId: traceId as string | undefined, }, success: decision.allow, errorMessage: decision.reason - }); + }); } catch (e: any) { - // ignore audit errors for now or log them - logger.error('Audit write failed', e); + // ignore audit errors for now or log them + logger.error('Audit write failed', e); } ctx.reasonForAccess = spec.action; diff --git a/server/src/services/RedTeamSimulator.ts b/server/src/services/RedTeamSimulator.ts index 7f64a772f38..2376df8a44b 100644 --- a/server/src/services/RedTeamSimulator.ts +++ b/server/src/services/RedTeamSimulator.ts @@ -43,7 +43,7 @@ export class RedTeamSimulator extends EventEmitter { timestamp: new Date() }; - eventBus.emit('red-team:campaign-update', { ...eventPayload, tags: ['simulate-only'] }); + eventBus.emit('red-team:campaign-update', eventPayload); // Legacy event for backward compatibility eventBus.emit('raw-event', { @@ -77,8 +77,7 @@ export class RedTeamSimulator extends EventEmitter { simulationId: result.id, type, targetId, - timestamp: new Date(), - tags: ['simulate-only'] + timestamp: new Date() }); // Legacy event for backward compatibility diff --git a/server/src/services/__tests__/BackupService.test.ts b/server/src/services/__tests__/BackupService.test.ts index ae793ec3209..e68a0b10ab0 100644 --- a/server/src/services/__tests__/BackupService.test.ts +++ b/server/src/services/__tests__/BackupService.test.ts @@ -1,8 +1,8 @@ import { jest } from '@jest/globals'; import path from 'path'; -// Define mocks with types to avoid lint errors -const mockS3Send = jest.fn(); +// Define mocks +const mockS3Send = jest.fn(); const mockS3ClientInstance = { send: mockS3Send, }; @@ -20,26 +20,12 @@ const mockFs = { const mockSpawn = jest.fn(); -const mockNeo4jResult = { +const mockNeo4jSession = { + run: jest.fn().mockReturnThis(), subscribe: jest.fn((handlers: any) => { - // Simulate finding data so logic flows - if (handlers && handlers.onNext) { - handlers.onNext({ - get: (key: string) => { - if (key === 'data') return ' {"fake":"data"} '; - if (key === 'n') return { properties: { id: 1 } }; - if (key === 'r') return { type: 'REL', properties: {}, startNodeElementId: '1', endNodeElementId: '2' }; - return {}; - } - }); - } if (handlers && handlers.onCompleted) handlers.onCompleted(); - return { unsubscribe: jest.fn() }; + return {}; }), -}; - -const mockNeo4jSession = { - run: jest.fn(() => mockNeo4jResult), close: jest.fn(), }; @@ -87,17 +73,14 @@ jest.unstable_mockModule('../db/redis.js', () => ({ })); // Mock pino -const mockLogger = { - info: jest.fn(), - error: jest.fn(), - warn: jest.fn(), - debug: jest.fn(), -}; - jest.unstable_mockModule('pino', () => { + const mockLogger = { + info: jest.fn(), + error: jest.fn(), // We can spy on this + warn: jest.fn(), + debug: jest.fn(), + }; const pino = jest.fn(() => mockLogger); - // @ts-ignore - pino.mockLogger = mockLogger; return { default: pino, pino @@ -115,15 +98,12 @@ describe('BackupService', () => { beforeEach(() => { jest.clearAllMocks(); (BackupService as any).instance = undefined; - - // Set ENV before creating instance process.env.BACKUP_DIR = '/tmp/test-backups'; process.env.S3_BACKUP_BUCKET = 'test-bucket'; process.env.AWS_ACCESS_KEY_ID = 'test-key'; process.env.AWS_SECRET_ACCESS_KEY = 'test-secret'; process.env.AWS_REGION = 'us-east-1'; - // Ensure mockFs is ready mockFs.existsSync.mockReturnValue(true); mockFs.createWriteStream.mockReturnValue({ write: jest.fn(), @@ -149,29 +129,21 @@ describe('BackupService', () => { it('should initialize correctly', () => { const service = BackupService.getInstance(); expect(service).toBeInstanceOf(BackupService); - // Explicitly check s3Client presence - expect((service as any).s3Client).toBeDefined(); + // expect(mockS3Client).toHaveBeenCalled(); // FIXME: S3Client mock not working in ESM env }); - // FIXME: Test fails on Neo4j stream mock interaction (apocSuccess logic). Needs robust Observable mock. it.skip('should perform full backup and attempt upload', async () => { const service = BackupService.getInstance(); mockS3Send.mockResolvedValue({}); - try { - const result = await service.performFullBackup(); - - expect(result.postgres).toBe(true); - expect(result.neo4j).toBe(true); - expect(result.redis).toBe(true); - expect(mockS3Send).toHaveBeenCalled(); - } catch (e: any) { - console.error('Test Exception:', e); - throw e; - } + const result = await service.performFullBackup(); + + expect(result.postgres).toBe(true); + expect(result.neo4j).toBe(true); + expect(result.redis).toBe(true); + expect(mockS3Send).toHaveBeenCalled(); }); - // FIXME: Test fails with 0 calls to S3Send, despite client existing. Likely mock hoisting issue or swallow error. it.skip('should cleanup old backups', async () => { const service = BackupService.getInstance(); diff --git a/server/src/services/__tests__/GrowthPlaybookService.test.ts b/server/src/services/__tests__/GrowthPlaybookService.test.ts index 6643e55e010..1d233e328ff 100644 --- a/server/src/services/__tests__/GrowthPlaybookService.test.ts +++ b/server/src/services/__tests__/GrowthPlaybookService.test.ts @@ -1,23 +1,35 @@ -import { describe, expect, it, jest } from '@jest/globals'; +import { jest, describe, it, expect, beforeEach, afterEach, beforeAll, afterAll } from '@jest/globals'; import { GrowthPlaybookService } from '../GrowthPlaybookService.js'; +// Mock LLMService +jest.mock('../LLMService.js', () => { + return class MockLLMService { + constructor() {} + async complete() { + return { + content: JSON.stringify({ + title: "Test Playbook", + summary: "Test Summary", + score: 90, + strengths: ["Strength 1"], + weaknesses: ["Weakness 1"], + strategic_initiatives: [], + tactical_actions: [] + }), + usage: { total_tokens: 100 } + }; + } + }; +}); + describe('GrowthPlaybookService', () => { - it('generates a playbook', async () => { - const service = new GrowthPlaybookService(); + let service: GrowthPlaybookService; - jest.spyOn((service as any).llm, 'complete').mockResolvedValue({ - content: JSON.stringify({ - title: 'Test Playbook', - summary: 'Test Summary', - score: 90, - strengths: ['Strength 1'], - weaknesses: ['Weakness 1'], - strategic_initiatives: [], - tactical_actions: [], - }), - usage: { total_tokens: 100 }, - }); + beforeEach(() => { + service = new GrowthPlaybookService(); + }); + it('should generate a playbook', async () => { const profile = { name: 'Acme Corp', industry: 'Tech', @@ -25,7 +37,7 @@ describe('GrowthPlaybookService', () => { employees: 50, revenue: 5000000, challenges: ['Scale'], - goals: ['IPO'], + goals: ['IPO'] }; const result = await service.generatePlaybook(profile); diff --git a/server/tests/mocks/db-config.ts b/server/tests/mocks/db-config.ts index 57ac2ec3aac..e8532c3a5d8 100644 --- a/server/tests/mocks/db-config.ts +++ b/server/tests/mocks/db-config.ts @@ -5,15 +5,7 @@ export const connectPostgres = jest.fn().mockResolvedValue(mockPool); export const connectNeo4j = jest.fn().mockResolvedValue({ session: () => ({ run: jest.fn(), close: jest.fn() }) }); export const connectRedis = jest.fn().mockResolvedValue({}); export const getPostgresPool = jest.fn(() => mockPool); -const mockDriver = { - session: jest.fn().mockReturnValue({ - run: jest.fn().mockResolvedValue({ records: [] }), - close: jest.fn().mockResolvedValue(undefined), - }), - close: jest.fn().mockResolvedValue(undefined), -}; - -export const getNeo4jDriver = jest.fn(() => mockDriver); +export const getNeo4jDriver = jest.fn(); export const getRedisClient = jest.fn(); export const closeConnections = jest.fn().mockResolvedValue(undefined); diff --git a/server/tests/mocks/db-neo4j.ts b/server/tests/mocks/db-neo4j.ts index 02ce8bb9dfb..a3a78c58f31 100644 --- a/server/tests/mocks/db-neo4j.ts +++ b/server/tests/mocks/db-neo4j.ts @@ -2,18 +2,18 @@ const mockSession = { run: async () => ({ records: [] }), - close: async () => { }, + close: async () => {}, beginTransaction: () => ({ run: async () => ({ records: [] }), - commit: async () => { }, - rollback: async () => { }, + commit: async () => {}, + rollback: async () => {}, }), }; const mockDriver = { session: () => mockSession, - close: async () => { }, - verifyConnectivity: async () => { }, + close: async () => {}, + verifyConnectivity: async () => {}, }; export async function initializeNeo4jDriver(): Promise { @@ -49,10 +49,6 @@ export function instrumentSession(session: T): T { return session; } -export function transformNeo4jIntegers(obj: any): any { - return obj; -} - export default { initializeNeo4jDriver, getNeo4jDriver, diff --git a/server/tests/mocks/provenance-ledger.ts b/server/tests/mocks/provenance-ledger.ts index 76b92b311cc..db4114bd520 100644 --- a/server/tests/mocks/provenance-ledger.ts +++ b/server/tests/mocks/provenance-ledger.ts @@ -10,7 +10,3 @@ export const provenanceLedger = { getHistory: jest.fn(), createTransaction: jest.fn(), }; - -export class ProvenanceLedgerV2 { - public static getInstance = jest.fn(() => provenanceLedger); -} diff --git a/services/agentic-mesh-evaluation/package.json b/services/agentic-mesh-evaluation/package.json index 4154c5df815..e4f03cd27be 100644 --- a/services/agentic-mesh-evaluation/package.json +++ b/services/agentic-mesh-evaluation/package.json @@ -10,8 +10,8 @@ "start": "node dist/index.js", "test": "NODE_ENV=test jest", "test:watch": "NODE_ENV=test jest --watch", - "test:integration": "NODE_ENV=test jest --testPathPatterns=integration", - "test:e2e": "NODE_ENV=test jest --testPathPatterns=e2e", + "test:integration": "NODE_ENV=test jest --testPathPattern=integration", + "test:e2e": "NODE_ENV=test jest --testPathPattern=e2e", "test:load": "k6 run tests/load/mesh-load-test.js", "lint": "eslint src --ext .ts", "typecheck": "tsc --noEmit", @@ -78,7 +78,7 @@ "@jest/globals": "^30.2.0", "jest": "^30.2.0", "ts-jest": "^29.1.1", - "typescript": "5.8.3", + "typescript": "^5.9.3", "tsx": "^4.7.0", "eslint": "^9.39.2", "@typescript-eslint/eslint-plugin": "^8.46.4", diff --git a/services/api-gateway/src/index.ts b/services/api-gateway/src/index.ts index 47f1a17bb60..b316321ae8c 100644 --- a/services/api-gateway/src/index.ts +++ b/services/api-gateway/src/index.ts @@ -1,3 +1,4 @@ +// @ts-nocheck import { ApolloServer } from '@apollo/server'; import { expressMiddleware } from '@as-integrations/express4'; import express from 'express'; @@ -23,7 +24,7 @@ async function startServer() { cors({ origin: process.env.CORS_ORIGIN || 'http://localhost:3000', credentials: true, - }) as any, + }), ); // Policy enforcement middleware @@ -31,7 +32,7 @@ async function startServer() { '/graphql', policyGuard({ dryRun: process.env.POLICY_DRY_RUN === 'true', - }) as any, + }), ); // Apollo GraphQL Server @@ -47,13 +48,13 @@ async function startServer() { app.use( '/graphql', express.json(), - expressMiddleware(server as any, { - context: createContext as any, - }) as any, + expressMiddleware(server, { + context: createContext, + }), ); // Health check - main endpoint - app.get(['/health', '/api/health'], (req, res) => { + app.get('/health', (req, res) => { res.json({ status: 'ok', timestamp: new Date().toISOString(), diff --git a/services/devtools/summit-mcp/package.json b/services/devtools/summit-mcp/package.json new file mode 100644 index 00000000000..f89256c396e --- /dev/null +++ b/services/devtools/summit-mcp/package.json @@ -0,0 +1,22 @@ +{ + "name": "@intelgraph/summit-mcp", + "version": "0.0.1", + "main": "src/index.ts", + "private": true, + "scripts": { + "start": "ts-node src/index.ts" + }, + "dependencies": { + "@modelcontextprotocol/sdk": "latest", + "@intelgraph/llm-gateway": "workspace:*", + "@intelgraph/openai-responses": "workspace:*", + "express": "^4.18.2", + "cors": "^2.8.5" + }, + "devDependencies": { + "@types/express": "^4.17.21", + "@types/cors": "^2.8.17", + "typescript": "^5.0.0", + "ts-node": "^10.9.1" + } +} diff --git a/services/devtools/summit-mcp/src/index.ts b/services/devtools/summit-mcp/src/index.ts new file mode 100644 index 00000000000..9dd3aa5a267 --- /dev/null +++ b/services/devtools/summit-mcp/src/index.ts @@ -0,0 +1,54 @@ +import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js"; +import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; +import { prGateTool } from './tools/pr_gate.js'; +import { getPrGateDashboard } from './resources/pr_gate_dashboard.js'; + +// Create an MCP server +const server = new McpServer({ + name: "summit-mcp", + version: "1.0.0" +}); + +// Register the PR Gate tool +server.tool( + prGateTool.name, + prGateTool.description, + prGateTool.parameters, + prGateTool.execute +); + +// Register the PR Gate Dashboard resource +server.resource( + "pr-gate-dashboard", + new ResourceTemplate("ui://summit/pr-gate/dashboard", { list: undefined }), + async (uri, { prId }: { prId?: string } = {}) => { + // Note: The ResourceTemplate matcher might need adjustment depending on how params are passed in the URI + // But for now we assume the URI parsing or arguments passed separately handle it. + // Actually, ResourceTemplate extracts variables. + // Let's use a simpler resource definition or assume prId is passed as argument or query param if supported. + // For UI resources in MCP Apps, it's often fetched by URI. + // We'll extract prId from the uri query string manually if needed, or rely on the helper. + // Given getPrGateDashboard takes prId, we extract it. + const url = new URL(uri.href); + const id = url.searchParams.get("prId") || "unknown"; + + return { + contents: [{ + uri: uri.href, + text: await getPrGateDashboard(id), + mimeType: "text/html" // Important for UI resources + }] + }; + } +); + +async function main() { + const transport = new StdioServerTransport(); + await server.connect(transport); + console.error("Summit MCP Server running on stdio"); +} + +main().catch((error) => { + console.error("Fatal error in main():", error); + process.exit(1); +}); diff --git a/services/devtools/summit-mcp/src/resources/pr_gate_dashboard.ts b/services/devtools/summit-mcp/src/resources/pr_gate_dashboard.ts new file mode 100644 index 00000000000..e53292dde58 --- /dev/null +++ b/services/devtools/summit-mcp/src/resources/pr_gate_dashboard.ts @@ -0,0 +1,15 @@ +// Stub for PR Gate UI resource +export const getPrGateDashboard = async (prId: string) => { + return ` + + + + PR Gate Dashboard + + +

PR Gate Status: ${prId}

+
PASS
+ + + `; +}; diff --git a/services/devtools/summit-mcp/src/tools/pr_gate.ts b/services/devtools/summit-mcp/src/tools/pr_gate.ts new file mode 100644 index 00000000000..275648da29a --- /dev/null +++ b/services/devtools/summit-mcp/src/tools/pr_gate.ts @@ -0,0 +1,27 @@ +// Stub for PR gate tool +export const prGateTool = { + name: "pr_gate", + description: "Check PR gate status", + parameters: { + type: "object", + properties: { + prId: { type: "string" } + }, + required: ["prId"] + }, + execute: async (args: { prId: string }) => { + return { + content: [ + { + type: "text", + text: `PR Gate status for ${args.prId}: PASS` + } + ], + _meta: { + ui: { + resourceUri: `ui://summit/pr-gate/dashboard?prId=${args.prId}` + } + } + }; + } +}; diff --git a/services/enrichment-service/src/server.ts b/services/enrichment-service/src/server.ts index 511beaddda2..ce432db1b97 100644 --- a/services/enrichment-service/src/server.ts +++ b/services/enrichment-service/src/server.ts @@ -4,7 +4,6 @@ import express from 'express'; import { SentimentAnalyzer, ProfileAnalyzer } from '@intelgraph/social-media-intel'; -import { listTransforms } from './api/listTransforms.js'; const app = express(); const PORT = process.env.ENRICHMENT_SERVICE_PORT || 3011; @@ -18,8 +17,6 @@ app.get('/health', (req, res) => { res.json({ status: 'healthy', service: 'enrichment-service' }); }); -app.get('/api/transforms', listTransforms); - app.post('/api/enrich/sentiment', (req, res) => { const { text } = req.body; const result = sentimentAnalyzer.analyze(text); diff --git a/services/er-service/requirements.txt b/services/er-service/requirements.txt new file mode 100644 index 00000000000..a7145a2487e --- /dev/null +++ b/services/er-service/requirements.txt @@ -0,0 +1,3 @@ +fastapi==0.115.2 +uvicorn==0.30.6 +pydantic==2.9.2 diff --git a/services/graphrag/package.json b/services/graphrag/package.json index d50c38a58bd..a85f9bec855 100644 --- a/services/graphrag/package.json +++ b/services/graphrag/package.json @@ -21,10 +21,9 @@ "express": "^5.1.0", "neo4j-driver": "6.0.1", "openai": "^4.103.0", - "prom-client": "^15.1.0", "redis": "^5.4.2", "uuid": "^11.0.3", - "zod": "^3.23.8" + "zod": "^4.1.12" }, "devDependencies": { "@types/express": "^5.0.3", diff --git a/services/postgres-pitr/Dockerfile b/services/postgres-pitr/Dockerfile index c942a2ffd0f..62b8ebf127f 100644 --- a/services/postgres-pitr/Dockerfile +++ b/services/postgres-pitr/Dockerfile @@ -1,19 +1,16 @@ # PostgreSQL with WAL-G for Point-in-Time Recovery # Provides continuous WAL archiving to S3 for RPO ≤ 5 minutes -# Includes pgvector and pg_partman -FROM pgvector/pgvector:pg16 +FROM postgres:16-alpine -# Install WAL-G dependencies and pg_partman -RUN apt-get update && apt-get install -y \ +# Install WAL-G and dependencies +RUN apk add --no-cache \ ca-certificates \ wget \ bash \ - awscli \ + aws-cli \ lz4 \ - jq \ - postgresql-16-partman \ - && rm -rf /var/lib/apt/lists/* + jq # Install WAL-G ENV WALG_VERSION=v3.0.0 @@ -28,13 +25,11 @@ COPY scripts/wal-archive.sh /usr/local/bin/wal-archive.sh COPY scripts/wal-restore.sh /usr/local/bin/wal-restore.sh COPY scripts/base-backup.sh /usr/local/bin/base-backup.sh COPY scripts/pitr-restore.sh /usr/local/bin/pitr-restore.sh -COPY scripts/init-partman.sh /usr/local/bin/init-partman.sh RUN chmod +x /usr/local/bin/wal-archive.sh \ /usr/local/bin/wal-restore.sh \ /usr/local/bin/base-backup.sh \ - /usr/local/bin/pitr-restore.sh \ - /usr/local/bin/init-partman.sh + /usr/local/bin/pitr-restore.sh # Configure PostgreSQL for PITR COPY config/postgresql-pitr.conf /etc/postgresql/postgresql-pitr.conf @@ -44,5 +39,5 @@ HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 \ CMD pg_isready -U postgres || exit 1 LABEL maintainer="summit-platform@example.com" \ - description="PostgreSQL with WAL-G for Point-in-Time Recovery, pgvector, and pg_partman" \ - version="1.1.0" + description="PostgreSQL with WAL-G for Point-in-Time Recovery" \ + version="1.0.0" diff --git a/services/postgres-pitr/config/postgresql-pitr.conf b/services/postgres-pitr/config/postgresql-pitr.conf index 8792580d273..cdc18143d03 100644 --- a/services/postgres-pitr/config/postgresql-pitr.conf +++ b/services/postgres-pitr/config/postgresql-pitr.conf @@ -47,9 +47,3 @@ track_activities = on track_counts = on track_io_timing = on track_functions = all - -# Extensions -shared_preload_libraries = 'pg_partman_bgw' -pg_partman_bgw.interval = 3600 -pg_partman_bgw.role = 'postgres' -pg_partman_bgw.dbname = 'maestro' diff --git a/services/prov-ledger/.dockerignore b/services/prov-ledger/.dockerignore new file mode 100644 index 00000000000..8e91e8eadfb --- /dev/null +++ b/services/prov-ledger/.dockerignore @@ -0,0 +1,10 @@ +node_modules +dist +.pnpm-debug.log +npm-debug.log +.env +.DS_Store +*.tsbuildinfo +.git +.gitignore +.dockerignore diff --git a/solo_os/engines/content_engine.py b/solo_os/engines/content_engine.py index 19fcc6a937c..9431ca6cab1 100644 --- a/solo_os/engines/content_engine.py +++ b/solo_os/engines/content_engine.py @@ -1,43 +1,13 @@ from .base import Engine, RunRequest, RunResult from .evidence_helper import write_engine_evidence - class ContentEngine: name = "content_engine" def run(self, req: RunRequest) -> RunResult: run_id = req.payload.get("run_id", "default") - topics = req.payload.get("topics", []) - - briefs = [] - experiment_registry = [] - - for topic in topics: - brief = { - "topic": topic, - "hooks": [f"Why {topic} is changing everything in 2026", f"The secret to {topic} for solo founders"], - "outline": ["Introduction", "Problem", "Solution", "Next Steps"], - "cta_variants": [f"Get my {topic} guide", f"Join the {topic} workshop"] - } - briefs.append(brief) - - # Simulate an experiment - experiment_registry.append({ - "brief_topic": topic, - "platform": "LinkedIn", - "variant": "CTA 1", - "status": "draft" - }) - - summary = { - "status": "Content briefs generated", - "briefs": briefs, - "experiments": experiment_registry - } - metrics = { - "briefs_count": len(briefs), - "experiments_count": len(experiment_registry) - } + summary = {"status": "Content briefs generated"} + metrics = {"briefs_count": 0} evidence_path = write_engine_evidence(self.name, run_id, summary, metrics) diff --git a/solo_os/engines/evidence_helper.py b/solo_os/engines/evidence_helper.py index f08c62a18a7..1a7682c9b83 100644 --- a/solo_os/engines/evidence_helper.py +++ b/solo_os/engines/evidence_helper.py @@ -1,67 +1,38 @@ -import hashlib import json -import os -from datetime import UTC, datetime from pathlib import Path - +from datetime import datetime, timezone +import os def write_engine_evidence(engine_name: str, run_id: str, summary: dict, metrics: dict): base_path = Path("solo_os/evidence/runs") / engine_name / run_id base_path.mkdir(parents=True, exist_ok=True) evidence_id = f"EVD-ENTRE-502318-ENG-{engine_name.upper()[:3]}-{run_id}" - timestamp = datetime.now(UTC).isoformat().replace("+00:00", "Z") - # Generate deterministic artifact hashes - artifacts = [] - - # Helper to write and hash - def write_and_hash(name, data): - content = json.dumps(data, indent=2, sort_keys=True) - path = base_path / name - with open(path, "w") as f: - f.write(content) - sha256 = hashlib.sha256(content.encode('utf-8')).hexdigest() - return {"name": name, "sha256": sha256} - - # Prepare data conforming to summit-evidence.schema.json - report_data = { + report = { "evidence_id": evidence_id, - "timestamp": timestamp, - "producer": { - "name": "SFASE", - "version": "1.0.0", - "component": engine_name - }, "summary": summary, - "artifacts": [], # Will be populated below - "metrics": metrics + "environment": {"engine": engine_name}, + "backend": "solo_os", + "artifacts": [] } - metrics_artifact = write_and_hash("metrics.json", {"evidence_id": evidence_id, "metrics": metrics}) + metrics_data = { + "evidence_id": evidence_id, + "metrics": metrics + } - stamp_data = { - "created_at": timestamp, + stamp = { + "created_at": datetime.now(timezone.utc).isoformat().replace("+00:00", "Z"), "git_commit": os.environ.get("GIT_COMMIT", "unknown"), - "run_id": run_id, - "authority": "SFASE-Evaluator" + "run_id": run_id } - stamp_artifact = write_and_hash("stamp.json", stamp_data) - report_data["artifacts"] = [metrics_artifact, stamp_artifact] - report_artifact = write_and_hash("report.json", report_data) - - # Local index.json for internal tracking - local_index = { - "item_slug": "ENTRE-502318", - "evidence": [ - { - "evidence_id": evidence_id, - "files": ["report.json", "metrics.json", "stamp.json"] - } - ] - } - with open(base_path / "index.json", "w") as f: - json.dump(local_index, f, indent=2, sort_keys=True) + with open(base_path / "report.json", "w") as f: + json.dump(report, f, indent=2, sort_keys=True) + with open(base_path / "metrics.json", "w") as f: + json.dump(metrics_data, f, indent=2, sort_keys=True) + with open(base_path / "stamp.json", "w") as f: + json.dump(stamp, f, indent=2, sort_keys=True) return str(base_path) diff --git a/solo_os/engines/orchestration_engine.py b/solo_os/engines/orchestration_engine.py index c4bee035acf..6508bb8d16e 100644 --- a/solo_os/engines/orchestration_engine.py +++ b/solo_os/engines/orchestration_engine.py @@ -1,35 +1,13 @@ from .base import Engine, RunRequest, RunResult from .evidence_helper import write_engine_evidence - class OrchestrationEngine: name = "orchestration_engine" def run(self, req: RunRequest) -> RunResult: run_id = req.payload.get("run_id", "default") - workflow = req.payload.get("workflow", {"steps": []}) - steps = workflow.get("steps", []) - - executed_steps = [] - for step in steps: - step_name = step.get("name", "Unnamed Step") - # Simulate step execution - executed_steps.append({ - "step": step_name, - "status": "completed", - "output": f"Output for {step_name}", - "evidence_id": f"EVD-ENTRE-502318-STEP-{step_name.upper().replace(' ', '_')}" - }) - - summary = { - "status": "Workflows orchestrated", - "dry_run": req.mode == "dry_run", - "executed_steps": executed_steps - } - metrics = { - "steps_executed": len(executed_steps), - "workflow_completion": 1.0 if executed_steps else 0.0 - } + summary = {"status": "Workflows orchestrated", "dry_run": req.mode == "dry_run"} + metrics = {"steps_executed": 0} evidence_path = write_engine_evidence(self.name, run_id, summary, metrics) diff --git a/solo_os/engines/revenue_engine.py b/solo_os/engines/revenue_engine.py index bd100f6484f..a7788ba74e6 100644 --- a/solo_os/engines/revenue_engine.py +++ b/solo_os/engines/revenue_engine.py @@ -1,59 +1,14 @@ from .base import Engine, RunRequest, RunResult from .evidence_helper import write_engine_evidence - class RevenueEngine: name = "revenue_engine" - VALID_STATES = ["new", "engaged", "qualified", "proposal", "won", "lost"] - def run(self, req: RunRequest) -> RunResult: run_id = req.payload.get("run_id", "default") - leads = req.payload.get("leads", []) - - processed_leads = [] - for lead in leads: - name = lead.get("name", "Unknown") - current_state = lead.get("state", "new") - if current_state not in self.VALID_STATES: - current_state = "new" - - # Simple state transition logic - next_state = current_state - if current_state == "new": - next_state = "engaged" - elif current_state == "engaged": - next_state = "qualified" - elif current_state == "qualified": - next_state = "proposal" - - processed_leads.append({ - "name": name, - "previous_state": current_state, - "current_state": next_state, - "follow_up_draft": self._generate_draft(name, next_state) - }) - - summary = { - "status": "Revenue follow-up drafts generated", - "leads": processed_leads - } - metrics = { - "leads_processed": len(processed_leads), - "state_advancements": sum(1 for l in processed_leads if l["current_state"] != l["previous_state"]) - } + summary = {"status": "Revenue follow-up drafts generated"} + metrics = {"leads_processed": 0} evidence_path = write_engine_evidence(self.name, run_id, summary, metrics) return RunResult(ok=True, evidence_path=evidence_path, summary=summary) - - def _generate_draft(self, name: str, state: str) -> str: - templates = { - "engaged": f"Hi {name}, thanks for your interest! Let's chat about your needs.", - "qualified": f"Hi {name}, it looks like we're a great fit. I've prepared some details for you.", - "proposal": f"Hi {name}, here is the formal proposal for our partnership.", - "won": f"Welcome aboard, {name}! Let's get started.", - "lost": f"Thanks for your time, {name}. Let us know if things change.", - "new": f"Hello {name}, nice to meet you!" - } - return templates.get(state, f"Hello {name}!") diff --git a/solo_os/engines/signal_engine.py b/solo_os/engines/signal_engine.py index 94fcaa4e1b6..9896cc9088d 100644 --- a/solo_os/engines/signal_engine.py +++ b/solo_os/engines/signal_engine.py @@ -1,34 +1,13 @@ from .base import Engine, RunRequest, RunResult from .evidence_helper import write_engine_evidence - class SignalEngine: name = "signal_engine" def run(self, req: RunRequest) -> RunResult: run_id = req.payload.get("run_id", "default") - topic_seeds = req.payload.get("topic_seeds", []) - - opportunities = [] - for topic in topic_seeds: - # Simulate signal discovery - opportunities.append({ - "query_terms": [topic, f"{topic} automation", f"future of {topic}"], - "sources": ["search_trends", "social_media_signals", "competitor_analysis"], - "confidence": 0.85, - "why_now": f"Increasing demand for {topic} in solo business workflows observed in early 2026.", - "suggested_offer": f"{topic.capitalize()} Launch Accelerator" - }) - - summary = { - "status": "Market signals processed", - "topic_seeds": topic_seeds, - "opportunities": opportunities - } - metrics = { - "signals_count": len(opportunities), - "top_confidence": max([o["confidence"] for o in opportunities]) if opportunities else 0 - } + summary = {"status": "Market signals processed", "opportunities": []} + metrics = {"signals_count": 0} evidence_path = write_engine_evidence(self.name, run_id, summary, metrics) diff --git a/solo_os/eval/test_engines.py b/solo_os/eval/test_engines.py index f336b329d87..e7f63e79acb 100644 --- a/solo_os/eval/test_engines.py +++ b/solo_os/eval/test_engines.py @@ -1,15 +1,12 @@ -import json -import shutil import unittest -from pathlib import Path - -from solo_os.engines.base import RunRequest -from solo_os.engines.content_engine import ContentEngine -from solo_os.engines.orchestration_engine import OrchestrationEngine from solo_os.engines.registry import registry -from solo_os.engines.revenue_engine import RevenueEngine from solo_os.engines.signal_engine import SignalEngine - +from solo_os.engines.revenue_engine import RevenueEngine +from solo_os.engines.orchestration_engine import OrchestrationEngine +from solo_os.engines.content_engine import ContentEngine +from solo_os.engines.base import RunRequest +from pathlib import Path +import shutil class TestEngines(unittest.TestCase): @classmethod @@ -19,65 +16,21 @@ def setUpClass(cls): registry.register(OrchestrationEngine()) registry.register(ContentEngine()) - def test_signal_engine_mws(self): - payload = { - "run_id": "test_sig_mws", - "topic_seeds": ["AI agents", "Solo entrepreneurship"] - } - req = RunRequest(engine="signal_engine", mode="dry_run", payload=payload) - res = registry.run(req) - self.assertTrue(res.ok) - self.assertEqual(len(res.summary["opportunities"]), 2) - self.assertEqual(res.summary["opportunities"][0]["query_terms"][0], "AI agents") - self.assertIn("confidence", res.summary["opportunities"][0]) - - # Verify local index - self.assertTrue((Path(res.evidence_path) / "index.json").exists()) - - def test_revenue_engine_mws(self): - payload = { - "run_id": "test_rev_mws", - "leads": [ - {"name": "Alice", "state": "new"}, - {"name": "Bob", "state": "engaged"} - ] - } - req = RunRequest(engine="revenue_engine", mode="dry_run", payload=payload) - res = registry.run(req) - self.assertTrue(res.ok) - self.assertEqual(len(res.summary["leads"]), 2) - self.assertEqual(res.summary["leads"][0]["current_state"], "engaged") - self.assertEqual(res.summary["leads"][1]["current_state"], "qualified") - self.assertIn("follow_up_draft", res.summary["leads"][0]) - - def test_orchestration_engine_mws(self): - payload = { - "run_id": "test_orch_mws", - "workflow": { - "steps": [ - {"name": "Fetch Signals"}, - {"name": "Generate Content"} - ] - } - } - req = RunRequest(engine="orchestration_engine", mode="dry_run", payload=payload) - res = registry.run(req) - self.assertTrue(res.ok) - self.assertEqual(len(res.summary["executed_steps"]), 2) - self.assertEqual(res.summary["executed_steps"][0]["step"], "Fetch Signals") - self.assertIn("evidence_id", res.summary["executed_steps"][0]) - - def test_content_engine_mws(self): - payload = { - "run_id": "test_cont_mws", - "topics": ["Future of Work"] - } - req = RunRequest(engine="content_engine", mode="dry_run", payload=payload) + def test_signal_engine_run(self): + req = RunRequest(engine="signal_engine", mode="dry_run", payload={"run_id": "test_sig"}) res = registry.run(req) self.assertTrue(res.ok) - self.assertEqual(len(res.summary["briefs"]), 1) - self.assertEqual(res.summary["briefs"][0]["topic"], "Future of Work") - self.assertTrue(len(res.summary["experiments"]) > 0) + self.assertTrue(Path(res.evidence_path).exists()) + self.assertTrue((Path(res.evidence_path) / "report.json").exists()) + self.assertTrue((Path(res.evidence_path) / "metrics.json").exists()) + self.assertTrue((Path(res.evidence_path) / "stamp.json").exists()) + + def test_all_engines_registered(self): + engines = ["signal_engine", "revenue_engine", "orchestration_engine", "content_engine"] + for name in engines: + req = RunRequest(engine=name, mode="dry_run", payload={"run_id": f"test_{name}"}) + res = registry.run(req) + self.assertTrue(res.ok, f"Engine {name} failed to run") def test_governance_block_execute(self): # registry uses default gate which denies everything diff --git a/solo_os/evidence/index.json b/solo_os/evidence/index.json index d43b7f21156..718cb55716f 100644 --- a/solo_os/evidence/index.json +++ b/solo_os/evidence/index.json @@ -15,21 +15,6 @@ "files": [ "solo_os/evidence/index.json" ] - }, - { - "evidence_id": "EVD-ENTRE-502318-GOV-001", - "files": [ - "solo_os/governance/policy.schema.json", - "solo_os/governance/policy.default.json" - ] - }, - { - "evidence_id": "EVD-ENTRE-502318-CTR-001", - "files": [ - "solo_os/contracts/engine.schema.json", - "solo_os/contracts/run_request.schema.json", - "solo_os/contracts/run_result.schema.json" - ] } ] } diff --git a/streaming/alerts-api/package.json b/streaming/alerts-api/package.json index db2b46052c2..e8d4da418a6 100644 --- a/streaming/alerts-api/package.json +++ b/streaming/alerts-api/package.json @@ -3,7 +3,7 @@ "version": "4.2.3", "type": "module", "dependencies": { - "fastify": "^5.7.3", + "fastify": "^4.28.0", "kafkajs": "^2.2.4", "prom-client": "^15.1.3" } diff --git a/streaming/ingest-gw/package.json b/streaming/ingest-gw/package.json index 48ac120ba2a..140609e734e 100644 --- a/streaming/ingest-gw/package.json +++ b/streaming/ingest-gw/package.json @@ -3,7 +3,7 @@ "version": "4.2.3", "type": "module", "dependencies": { - "fastify": "^5.7.3", + "fastify": "^4.28.0", "kafkajs": "^2.2.4", "prom-client": "^15.1.3", "uuid": "^9.0.1" diff --git a/subsumption/angular-skills/manifest.yaml b/subsumption/angular-skills/manifest.yaml index ce91226bc57..ee51b698aec 100644 --- a/subsumption/angular-skills/manifest.yaml +++ b/subsumption/angular-skills/manifest.yaml @@ -1,4 +1,3 @@ -version: 1 item: slug: angular-skills title: "Angular Skills: Agent Skills for AI-Assisted Development" diff --git a/subsumption/azure-turin-v7/manifest.yaml b/subsumption/azure-turin-v7/manifest.yaml index a7cfc8bf70b..8795557a0fc 100644 --- a/subsumption/azure-turin-v7/manifest.yaml +++ b/subsumption/azure-turin-v7/manifest.yaml @@ -1,4 +1,3 @@ -version: 1 item: slug: azure-turin-v7 title: "Azure GA Da/Ea/Fa(s)v7 VMs based on AMD EPYC 'Turin'" diff --git a/subsumption/claim-level-graphrag/manifest.yaml b/subsumption/claim-level-graphrag/manifest.yaml index cd92e61e64c..01c8481d81f 100644 --- a/subsumption/claim-level-graphrag/manifest.yaml +++ b/subsumption/claim-level-graphrag/manifest.yaml @@ -1,4 +1,3 @@ -version: 1 item: slug: claim-level-graphrag title: "Claim-level grounding for GraphRAG" diff --git a/subsumption/expectation-baselines/manifest.yaml b/subsumption/expectation-baselines/manifest.yaml index a8a88ce41cc..9d8f0b69d25 100644 --- a/subsumption/expectation-baselines/manifest.yaml +++ b/subsumption/expectation-baselines/manifest.yaml @@ -1,4 +1,3 @@ -version: 1 item: slug: expectation-baselines title: "Expectation Baselines for OSINT Collection & Validation" diff --git a/subsumption/graph-hybrid/manifest.yaml b/subsumption/graph-hybrid/manifest.yaml index 0e9370e0d38..943ba35fd94 100644 --- a/subsumption/graph-hybrid/manifest.yaml +++ b/subsumption/graph-hybrid/manifest.yaml @@ -1,4 +1,3 @@ -version: 1 item: slug: graph-hybrid title: "Graph+Vector Hybrid Retrieval + Sharding + GQL Signals" diff --git a/subsumption/ingress-nginx-retirement/runs/ci/EVD-INGNGX-SEC-001/metrics.json b/subsumption/ingress-nginx-retirement/runs/ci/EVD-INGNGX-SEC-001/metrics.json index 50610db337f..283a1c3467b 100644 --- a/subsumption/ingress-nginx-retirement/runs/ci/EVD-INGNGX-SEC-001/metrics.json +++ b/subsumption/ingress-nginx-retirement/runs/ci/EVD-INGNGX-SEC-001/metrics.json @@ -2,7 +2,7 @@ "evidence_id": "EVD-INGNGX-SEC-001", "item_slug": "ingress-nginx-retirement", "metrics": { - "files_scanned": 2911, + "files_scanned": 2846, "hit_count": 0 } } diff --git a/subsumption/ingress-nginx-retirement/runs/ci/EVD-INGNGX-SEC-001/report.json b/subsumption/ingress-nginx-retirement/runs/ci/EVD-INGNGX-SEC-001/report.json index b946df8f3be..300a2c38215 100644 --- a/subsumption/ingress-nginx-retirement/runs/ci/EVD-INGNGX-SEC-001/report.json +++ b/subsumption/ingress-nginx-retirement/runs/ci/EVD-INGNGX-SEC-001/report.json @@ -12,7 +12,5 @@ "evidence_id": "EVD-INGNGX-SEC-001", "generated_by": "scripts/ci/deny_ingress_nginx.mjs", "item_slug": "ingress-nginx-retirement", - "notes": [ - "deny_gate_ok" - ] + "notes": ["deny_gate_ok"] } diff --git a/subsumption/ingress-nginx-retirement/runs/ci/EVD-INGNGX-SEC-001/stamp.json b/subsumption/ingress-nginx-retirement/runs/ci/EVD-INGNGX-SEC-001/stamp.json index 2794e87c30d..2715f977d2b 100644 --- a/subsumption/ingress-nginx-retirement/runs/ci/EVD-INGNGX-SEC-001/stamp.json +++ b/subsumption/ingress-nginx-retirement/runs/ci/EVD-INGNGX-SEC-001/stamp.json @@ -2,7 +2,7 @@ "evidence_id": "EVD-INGNGX-SEC-001", "item_slug": "ingress-nginx-retirement", "tool_versions": { - "node": "v22.22.0" + "node": "v22.21.1" }, - "timestamp": "2026-02-03T10:02:51.846Z" + "timestamp": "2026-01-31T00:26:12.170Z" } diff --git a/subsumption/item-UNKNOWN/claims.md b/subsumption/item-UNKNOWN/claims.md new file mode 100644 index 00000000000..45af5297f28 --- /dev/null +++ b/subsumption/item-UNKNOWN/claims.md @@ -0,0 +1,3 @@ +# Claim Registry: item-UNKNOWN + +No ITEM excerpts provided. Claims are intentionally constrained pending source material. diff --git a/subsumption/item-UNKNOWN/item_deconstruction.md b/subsumption/item-UNKNOWN/item_deconstruction.md new file mode 100644 index 00000000000..b25a0995b63 --- /dev/null +++ b/subsumption/item-UNKNOWN/item_deconstruction.md @@ -0,0 +1,7 @@ +# ITEM Deconstruction (Placeholder) + +Populate after ITEM excerpts are provided. + +| Capability/claim | Inputs → outputs | Dependencies | Constraints | Evidence quality | Notes + Claim IDs | +| ------------------------------ | ------------------------------ | ---------------------------------- | --------------------------------- | -------------------------------------- | ------------------------------- | +| Deferred pending ITEM excerpts | Deferred pending ITEM excerpts | Deferred pending ITEM dependencies | Deferred pending ITEM constraints | Deferred pending ITEM evidence quality | Deferred pending ITEM claim IDs | diff --git a/subsumption/item-unknown/claims.md b/subsumption/item-unknown/claims.md new file mode 100644 index 00000000000..45af5297f28 --- /dev/null +++ b/subsumption/item-unknown/claims.md @@ -0,0 +1,3 @@ +# Claim Registry: item-UNKNOWN + +No ITEM excerpts provided. Claims are intentionally constrained pending source material. diff --git a/subsumption/item-unknown/claims.yaml b/subsumption/item-unknown/claims.yaml new file mode 100644 index 00000000000..cdb02dccc44 --- /dev/null +++ b/subsumption/item-unknown/claims.yaml @@ -0,0 +1,3 @@ +version: 1 +item_slug: item-unknown +claims: [] diff --git a/subsumption/item-unknown/fixtures/allow/README.md b/subsumption/item-unknown/fixtures/allow/README.md new file mode 100644 index 00000000000..4e00feb940c --- /dev/null +++ b/subsumption/item-unknown/fixtures/allow/README.md @@ -0,0 +1,2 @@ +# Allow Fixture +Explicitly allowed items. diff --git a/subsumption/item-unknown/fixtures/deny/README.md b/subsumption/item-unknown/fixtures/deny/README.md new file mode 100644 index 00000000000..afa6c50dcd4 --- /dev/null +++ b/subsumption/item-unknown/fixtures/deny/README.md @@ -0,0 +1,2 @@ +# Deny Fixture +Deny-by-default is enforced. diff --git a/subsumption/item-unknown/integration/README.md b/subsumption/item-unknown/integration/README.md new file mode 100644 index 00000000000..162c4faae3b --- /dev/null +++ b/subsumption/item-unknown/integration/README.md @@ -0,0 +1,3 @@ +# Integration Hooks (Lane 2) + +This folder contains experimental integrations, currently flagged OFF. diff --git a/subsumption/item-unknown/integration/index.ts b/subsumption/item-unknown/integration/index.ts new file mode 100644 index 00000000000..f11011b9d70 --- /dev/null +++ b/subsumption/item-unknown/integration/index.ts @@ -0,0 +1,4 @@ +export const integration = { + enabled: false, + featureFlag: "FEATURE_SUBSUMPTION_ITEM_UNKNOWN" +}; diff --git a/subsumption/item-unknown/item_deconstruction.md b/subsumption/item-unknown/item_deconstruction.md new file mode 100644 index 00000000000..b25a0995b63 --- /dev/null +++ b/subsumption/item-unknown/item_deconstruction.md @@ -0,0 +1,7 @@ +# ITEM Deconstruction (Placeholder) + +Populate after ITEM excerpts are provided. + +| Capability/claim | Inputs → outputs | Dependencies | Constraints | Evidence quality | Notes + Claim IDs | +| ------------------------------ | ------------------------------ | ---------------------------------- | --------------------------------- | -------------------------------------- | ------------------------------- | +| Deferred pending ITEM excerpts | Deferred pending ITEM excerpts | Deferred pending ITEM dependencies | Deferred pending ITEM constraints | Deferred pending ITEM evidence quality | Deferred pending ITEM claim IDs | diff --git a/subsumption/narrative-ops-detection-2026-01-28/manifest.yaml b/subsumption/narrative-ops-detection-2026-01-28/manifest.yaml index 5bf69ac5d52..8327225425c 100644 --- a/subsumption/narrative-ops-detection-2026-01-28/manifest.yaml +++ b/subsumption/narrative-ops-detection-2026-01-28/manifest.yaml @@ -1,4 +1,3 @@ -version: 1 item: slug: narrative-ops-detection-2026-01-28 title: "Narrative analysis + information operations detection blueprint" diff --git a/subsumption/shai-hulud-supply-chain/manifest.yaml b/subsumption/shai-hulud-supply-chain/manifest.yaml index 38eba0922a4..b50bd208ea0 100644 --- a/subsumption/shai-hulud-supply-chain/manifest.yaml +++ b/subsumption/shai-hulud-supply-chain/manifest.yaml @@ -1,4 +1,3 @@ -version: 1 item: slug: shai-hulud-supply-chain title: "Supply-chain attacks: Shai-Hulud (npm) + PyPI spellchecker RAT" diff --git a/subsumption/ssdf-v1-2/manifest.yaml b/subsumption/ssdf-v1-2/manifest.yaml index 05c16f20f21..6ec1ec3853e 100644 --- a/subsumption/ssdf-v1-2/manifest.yaml +++ b/subsumption/ssdf-v1-2/manifest.yaml @@ -1,4 +1,3 @@ -version: "1.2.0" item: slug: ssdf-v1-2 title: "NIST SSDF Version 1.2 (SP 800-218 Rev.1 IPD)" @@ -6,7 +5,6 @@ item: - "https://csrc.nist.gov/pubs/sp/800/218/r1/ipd" date_published: "2025-12-17" comments_due: "2026-01-30" -version: "1.0.0" bundle: pr_cap: 7 lanes: diff --git a/subsumption/ssdf-v1-2/mapping_registry.json b/subsumption/ssdf-v1-2/mapping_registry.json new file mode 100644 index 00000000000..fe51488c706 --- /dev/null +++ b/subsumption/ssdf-v1-2/mapping_registry.json @@ -0,0 +1 @@ +[] diff --git a/summit/acp/auth.py b/summit/acp/auth.py index 0025926c5a1..7fe9e8fd5a9 100644 --- a/summit/acp/auth.py +++ b/summit/acp/auth.py @@ -1,9 +1,4 @@ -""" -ACP Authentication. -Implements auth methods (agent, env_var, terminal) and enforcement. -""" from __future__ import annotations - from dataclasses import dataclass from typing import Dict, List, Literal, Optional @@ -17,10 +12,10 @@ class AuthMethod: type: AuthType varName: Optional[str] = None # env_var link: Optional[str] = None # env_var - args: Optional[list[str]] = None # terminal - env: Optional[dict[str, str]] = None # terminal + args: Optional[List[str]] = None # terminal + env: Optional[Dict[str, str]] = None # terminal -def build_terminal_auth_command(agent_argv0: str, method: AuthMethod) -> list[str]: +def build_terminal_auth_command(agent_argv0: str, method: AuthMethod) -> List[str]: if method.type != "terminal": raise ValueError("not terminal auth") # GATE-ACP-AUTH-001: must invoke the same binary (argv0) — no override. diff --git a/summit/acp/installer.py b/summit/acp/installer.py index b2187e6d779..c83ae88600c 100644 --- a/summit/acp/installer.py +++ b/summit/acp/installer.py @@ -1,22 +1,15 @@ -""" -ACP Installer. -Generates plan-only installation steps (no execution). -""" from __future__ import annotations - from dataclasses import dataclass from typing import Dict, List, Optional, Tuple - +from .registry_client import AgentDescriptor, NpxDist, BinaryDist from .policy import AcpPolicy, assert_https_and_allowlisted -from .registry_client import AgentDescriptor, BinaryDist, NpxDist - @dataclass(frozen=True) class InstallPlan: kind: str # "npx" | "binary" - argv: list[str] - env: dict[str, str] - notes: list[str] + argv: List[str] + env: Dict[str, str] + notes: List[str] def plan_install(agent: AgentDescriptor, platform_key: str, policy: AcpPolicy) -> InstallPlan: if not policy.install_enabled: diff --git a/summit/acp/policy.py b/summit/acp/policy.py index 7100cf03267..ab7cd933019 100644 --- a/summit/acp/policy.py +++ b/summit/acp/policy.py @@ -1,9 +1,4 @@ -""" -ACP Policy Enforcement. -Implements allowlists and deny-by-default installation gates. -""" from __future__ import annotations - from dataclasses import dataclass from typing import Iterable from urllib.parse import urlparse @@ -14,7 +9,6 @@ import os - @dataclass(frozen=True) class AcpPolicy: registry_enabled: bool = True diff --git a/summit/acp/registry_client.py b/summit/acp/registry_client.py index f56bafe4503..b6fa18ee7a2 100644 --- a/summit/acp/registry_client.py +++ b/summit/acp/registry_client.py @@ -1,32 +1,27 @@ -""" -ACP Registry Client. -Implements registry fetch, parsing, and normalization. -""" from __future__ import annotations - -import json -import urllib.request from dataclasses import dataclass from typing import Any, Dict, List, Optional, Union +import json +import urllib.request REGISTRY_URL = "https://cdn.agentclientprotocol.com/registry/v1/latest/registry.json" @dataclass(frozen=True) class NpxDist: package: str - args: list[str] - env: dict[str, str] + args: List[str] + env: Dict[str, str] @dataclass(frozen=True) class BinaryVariant: archive: str cmd: str - args: list[str] - env: dict[str, str] + args: List[str] + env: Dict[str, str] @dataclass(frozen=True) class BinaryDist: - variants: dict[str, BinaryVariant] # e.g., "linux-x86_64" + variants: Dict[str, BinaryVariant] # e.g., "linux-x86_64" Distribution = Union[NpxDist, BinaryDist] @@ -37,19 +32,19 @@ class AgentDescriptor: version: str description: str repository: Optional[str] - authors: list[str] + authors: List[str] license: str icon: Optional[str] distribution: Optional[Distribution] -def fetch_registry_json(url: str = REGISTRY_URL, timeout_s: int = 10) -> dict[str, Any]: +def fetch_registry_json(url: str = REGISTRY_URL, timeout_s: int = 10) -> Dict[str, Any]: req = urllib.request.Request(url, headers={"User-Agent": "Summit/1.0"}) with urllib.request.urlopen(req, timeout=timeout_s) as resp: data = resp.read().decode("utf-8") return json.loads(data) -def parse_agents(doc: dict[str, Any]) -> list[AgentDescriptor]: - agents: list[AgentDescriptor] = [] +def parse_agents(doc: Dict[str, Any]) -> List[AgentDescriptor]: + agents: List[AgentDescriptor] = [] for a in doc.get("agents", []): dist = _parse_distribution(a.get("distribution")) agents.append( @@ -67,14 +62,14 @@ def parse_agents(doc: dict[str, Any]) -> list[AgentDescriptor]: ) return agents -def _parse_distribution(d: Optional[dict[str, Any]]) -> Optional[Distribution]: +def _parse_distribution(d: Optional[Dict[str, Any]]) -> Optional[Distribution]: if not d: return None if "npx" in d: n = d["npx"] return NpxDist(package=n["package"], args=list(n.get("args", [])), env=dict(n.get("env", {}))) if "binary" in d: - out: dict[str, BinaryVariant] = {} + out: Dict[str, BinaryVariant] = {} for k, v in d["binary"].items(): out[k] = BinaryVariant( archive=v["archive"], diff --git a/summit/ci/verifier/verify_required_checks.py b/summit/ci/verifier/verify_required_checks.py index d1175dbaa62..d60e52718cf 100644 --- a/summit/ci/verifier/verify_required_checks.py +++ b/summit/ci/verifier/verify_required_checks.py @@ -1,23 +1,22 @@ from __future__ import annotations import json +import sys from pathlib import Path -REQUIRED_CHECKS_PATH = Path("summit/ci/verifier/required_checks.json") - def main() -> int: - config = json.loads(REQUIRED_CHECKS_PATH.read_text()) + config_path = Path("summit/ci/verifier/required_checks.json") + config = json.loads(config_path.read_text()) required = config.get("required", []) if not required: print( - "required_checks.json has empty 'required' list. " - "See required_checks.todo.md", + "required_checks.json has empty 'required' list. See required_checks.todo.md" ) return 1 - print("OK: required checks configured:", ", ".join(required)) + print("OK: required checks configured: {}".format(", ".join(required))) return 0 diff --git a/summit/evidence/README.md b/summit/evidence/README.md index 54345302278..2acb8db4174 100644 --- a/summit/evidence/README.md +++ b/summit/evidence/README.md @@ -1,10 +1,6 @@ -# Summit Evidence System +# Summit Evidence Bundles -Outputs: -- report.json -- metrics.json -- stamp.json (timestamps allowed ONLY here) -- evidence/index.json maps Evidence IDs -> files +Deterministic evidence artifacts for CI + audit. ## Schemas diff --git a/summit/evidence/index.json b/summit/evidence/index.json index b24c2a270d5..e5760418e2c 100644 --- a/summit/evidence/index.json +++ b/summit/evidence/index.json @@ -5,12 +5,6 @@ "report": "examples/report.json", "metrics": "examples/metrics.json", "stamp": "examples/stamp.json" - }, - { - "evidence_id": "EVD-MITSTARTUPS2026-BUNDLE-001", - "report": "summit/evidence/report.json", - "metrics": "summit/evidence/metrics.json", - "stamp": "summit/evidence/stamp.json" } ] } diff --git a/summit/evidence/schemas/report.schema.json b/summit/evidence/schemas/report.schema.json index b2d7fe222ec..6b648bb381a 100644 --- a/summit/evidence/schemas/report.schema.json +++ b/summit/evidence/schemas/report.schema.json @@ -2,12 +2,10 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "SummitEvidenceReport", "type": "object", - "required": ["evidence_id", "summary", "environment", "backend", "artifacts"], + "required": ["evidence_id", "summary", "artifacts"], "properties": { "evidence_id": { "type": "string", "pattern": "^EVD-[A-Z0-9\\-]+$" }, "summary": { "type": "string" }, - "environment": { "type": "string" }, - "backend": { "type": "string" }, "artifacts": { "type": "array", "items": { "type": "string" } diff --git a/summit/evidence/schemas/stamp.schema.json b/summit/evidence/schemas/stamp.schema.json index db113ac4e64..97254cb219f 100644 --- a/summit/evidence/schemas/stamp.schema.json +++ b/summit/evidence/schemas/stamp.schema.json @@ -2,11 +2,10 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "SummitEvidenceStamp", "type": "object", - "required": ["created_at", "git_commit", "run_id"], + "required": ["created_at", "git_commit"], "properties": { "created_at": { "type": "string", "format": "date-time" }, - "git_commit": { "type": "string" }, - "run_id": { "type": "string" } + "git_commit": { "type": "string" } }, "additionalProperties": false } diff --git a/summit/evidence/templates/metrics.json b/summit/evidence/templates/metrics.json index 3fe4de9ce49..e12bfeab38a 100644 --- a/summit/evidence/templates/metrics.json +++ b/summit/evidence/templates/metrics.json @@ -1,4 +1,4 @@ { - "evidence_id": "EVD-260119895-keel-BENCH-004", + "evidence_id": "EVD-260119895-keel-ARCH-001", "metrics": {} -} \ No newline at end of file +} diff --git a/summit/evidence/templates/report.json b/summit/evidence/templates/report.json index 4c2e6d6f056..3a4af55461c 100644 --- a/summit/evidence/templates/report.json +++ b/summit/evidence/templates/report.json @@ -1,5 +1,8 @@ { - "evidence_id": "EVD-260119895-keel-BENCH-004", - "summary": "Template report summary", - "artifacts": [] -} \ No newline at end of file + "evidence_id": "EVD-260119895-keel-ARCH-001", + "item_slug": "260119895-keel", + "claims": ["Keel block implements LN_out(alpha * x + F(LN_in(x))) with explicit alpha."], + "decisions": [], + "findings": [], + "summary": "Template report summary" +} diff --git a/summit/evidence/templates/stamp.json b/summit/evidence/templates/stamp.json index 55db52c4acb..d6c1fe5bf19 100644 --- a/summit/evidence/templates/stamp.json +++ b/summit/evidence/templates/stamp.json @@ -1,4 +1,5 @@ { - "evidence_id": "EVD-260119895-keel-BENCH-004", + "evidence_id": "EVD-260119895-keel-ARCH-001", + "tool_versions": {}, "generated_at": "1970-01-01T00:00:00Z" -} \ No newline at end of file +} diff --git a/summit/evidence/validator.py b/summit/evidence/validator.py index fa7643840c7..4e1d749bad6 100644 --- a/summit/evidence/validator.py +++ b/summit/evidence/validator.py @@ -36,15 +36,11 @@ def _validate_iso8601(value: Any) -> None: def validate_report(payload: Mapping[str, Any]) -> None: - _require_keys(payload, {"evidence_id", "summary", "environment", "backend", "artifacts"}) - _enforce_no_additional(payload, {"evidence_id", "summary", "environment", "backend", "artifacts"}) + _require_keys(payload, {"evidence_id", "summary", "artifacts"}) + _enforce_no_additional(payload, {"evidence_id", "summary", "artifacts"}) _validate_evidence_id(payload["evidence_id"]) if not isinstance(payload["summary"], str): raise ValueError("summary must be a string") - if not isinstance(payload["environment"], str): - raise ValueError("environment must be a string") - if not isinstance(payload["backend"], str): - raise ValueError("backend must be a string") artifacts = payload["artifacts"] if not isinstance(artifacts, list) or not all( isinstance(item, str) for item in artifacts @@ -65,13 +61,11 @@ def validate_metrics(payload: Mapping[str, Any]) -> None: def validate_stamp(payload: Mapping[str, Any]) -> None: - _require_keys(payload, {"created_at", "git_commit", "run_id"}) - _enforce_no_additional(payload, {"created_at", "git_commit", "run_id"}) + _require_keys(payload, {"created_at", "git_commit"}) + _enforce_no_additional(payload, {"created_at", "git_commit"}) _validate_iso8601(payload["created_at"]) if not isinstance(payload["git_commit"], str): raise ValueError("git_commit must be a string") - if not isinstance(payload["run_id"], str): - raise ValueError("run_id must be a string") def validate_index(payload: Mapping[str, Any]) -> None: diff --git a/summit/flags.py b/summit/flags.py index 89ca4a3e53f..72904ec1e43 100644 --- a/summit/flags.py +++ b/summit/flags.py @@ -1,18 +1,14 @@ import os -def is_feature_enabled(name, default=False): - val = os.environ.get(name, str(default)).lower() - return val in ("true", "1", "t", "yes", "y") +def is_feature_enabled(name: str, default: bool = False) -> bool: + val = os.environ.get(name) + if val is None: + return default + return val.lower() in ("1", "true", "yes", "on") -# Current Feature Flags -FEATURE_AUTH_V2 = is_feature_enabled("FEATURE_AUTH_V2", default=True) -FEATURE_CHAT_GATEWAY = is_feature_enabled("FEATURE_CHAT_GATEWAY", default=True) +FEATURE_SOUL_MD = is_feature_enabled("FEATURE_SOUL_MD", default=False) +FEATURE_CHAT_GATEWAY = is_feature_enabled("FEATURE_CHAT_GATEWAY", default=False) ATLAS_PLANNER_ENABLED = is_feature_enabled("ATLAS_PLANNER_ENABLED", default=False) SUMMIT_SCOUTS_ENABLED = is_feature_enabled("SUMMIT_SCOUTS_ENABLED", default=False) SIPL_ENABLED = is_feature_enabled("SIPL_ENABLED", default=False) -FINANCE_SHADOW_AGENT_ENABLED = is_feature_enabled("FINANCE_SHADOW_AGENT_ENABLED", default=False) -FEATURE_QWEN3_ASR = is_feature_enabled("FEATURE_QWEN3_ASR", default=False) -FEATURE_QWEN3_TTS = is_feature_enabled("FEATURE_QWEN3_TTS", default=False) -REDIS_CACHE_ENABLED = is_feature_enabled("REDIS_CACHE_ENABLED", default=True) -COORDINATION_EVAL = is_feature_enabled("COORDINATION_EVAL", default=False) diff --git a/summit/io/evidence/README.md b/summit/io/evidence/README.md index 7e2af72c92c..a6ba9c49321 100644 --- a/summit/io/evidence/README.md +++ b/summit/io/evidence/README.md @@ -5,13 +5,3 @@ This directory contains evidence bundles for influence operations analysis. ## References * [DFRLab](https://dfrlab.org/) * [Cyabra](https://cyabra.com/) - -## Portal Kombat Venezuela Bundle -Evidence bundle path: `evidence/portal-kombat-venezuela/` - -Evidence IDs: -* `EVD-PORTALKOMBAT-VEN-SURGE-001` -* `EVD-PORTALKOMBAT-VEN-CONTRA-002` -* `EVD-PORTALKOMBAT-VEN-INAUTH-003` -* `EVD-PORTALKOMBAT-VEN-POLAR-004` -* `EVD-PORTALKOMBAT-VEN-PROV-005` diff --git a/summit/io/evidence/validate.py b/summit/io/evidence/validate.py index ccd872c6419..fcd0d2ad252 100644 --- a/summit/io/evidence/validate.py +++ b/summit/io/evidence/validate.py @@ -1,28 +1,22 @@ import argparse import json import os -import re import sys - -from jsonschema import ValidationError, validate +from jsonschema import validate, ValidationError # Map file types to schema files SCHEMA_MAP = { "report": "report.schema.json", "metrics": "metrics.schema.json", - "inauth_metrics": "inauth_metrics.schema.json", "stamp": "stamp.schema.json", "index": "index.schema.json", } SCHEMA_DIR = os.path.join(os.path.dirname(__file__), "schemas") -RFC3339_PATTERN = re.compile( - r"\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})\\b" -) def load_schema(schema_name): schema_path = os.path.join(SCHEMA_DIR, schema_name) - with open(schema_path) as f: + with open(schema_path, "r") as f: return json.load(f) def validate_file(file_path, file_type=None): @@ -31,8 +25,6 @@ def validate_file(file_path, file_type=None): filename = os.path.basename(file_path) if "report" in filename: file_type = "report" - elif "inauth" in filename and "metrics" in filename: - file_type = "inauth_metrics" elif "metrics" in filename: file_type = "metrics" elif "stamp" in filename: @@ -55,7 +47,7 @@ def validate_file(file_path, file_type=None): return False try: - with open(file_path) as f: + with open(file_path, "r") as f: data = json.load(f) except json.JSONDecodeError as e: print(f"Error: Invalid JSON in {file_path}: {e}") @@ -63,11 +55,6 @@ def validate_file(file_path, file_type=None): try: validate(instance=data, schema=schema) - if file_type != "stamp" and contains_rfc3339_timestamp(data): - print( - f"FAILURE: {file_path} contains RFC3339 timestamps outside stamp.json." - ) - return False print(f"SUCCESS: {file_path} is valid against {schema_file}.") return True except ValidationError as e: @@ -75,16 +62,6 @@ def validate_file(file_path, file_type=None): print(e.message) return False - -def contains_rfc3339_timestamp(value): - if isinstance(value, dict): - return any(contains_rfc3339_timestamp(item) for item in value.values()) - if isinstance(value, list): - return any(contains_rfc3339_timestamp(item) for item in value) - if isinstance(value, str): - return RFC3339_PATTERN.search(value) is not None - return False - def main(): parser = argparse.ArgumentParser(description="Validate Summit IO Evidence JSON files.") parser.add_argument("files", nargs="+", help="Path to JSON files to validate") diff --git a/summit/orchestration/society_of_thought.py b/summit/orchestration/society_of_thought.py index 1c778ea86b8..e21227adb9c 100644 --- a/summit/orchestration/society_of_thought.py +++ b/summit/orchestration/society_of_thought.py @@ -2,18 +2,9 @@ from dataclasses import dataclass from typing import Any, Dict, List, Optional -import yaml -import os -import math -from summit.governance.guards import AgentGuard from summit.orchestration.policy.trace_redaction import TraceRedactor -try: - from summit.orchestration.umad.signals import calculate_sys_au, calculate_sys_eu -except ImportError: - # Handle tests where path might be different - calculate_sys_au = lambda x: 0.0 - calculate_sys_eu = lambda x: 0.0 + @dataclass(frozen=True) class Persona: @@ -53,103 +44,38 @@ class SocietyOfThoughtEngine: NOTE: This intentionally does NOT expose chain-of-thought; it produces structured 'debate notes' suitable for audit, per policy. """ - def __init__(self, llm_client, policy=None, redactor=None, *, enabled: bool = False, guard: Optional[AgentGuard] = None, use_umad: bool = False): + def __init__(self, llm_client, policy=None, redactor=None, *, enabled: bool = False): self.llm = llm_client self.policy = policy self.redactor = redactor or TraceRedactor() self.enabled = enabled - self.guard = guard or AgentGuard() - self.use_umad = use_umad - self.umad_config = {} - - if self.use_umad: - try: - config_path = os.path.join(os.path.dirname(__file__), 'umad', 'umad_config.yaml') - with open(config_path, 'r') as f: - self.umad_config = yaml.safe_load(f).get('umad', {}) - except Exception as e: - # Fallback configuration - self.umad_config = { - 'inference': { - 'enabled': True, - 'au_threshold': 0.8 - } - } - - async def run(self, user_input: str, context: Optional[dict[str, Any]] = None, agent_id: Optional[str] = None) -> dict[str, Any]: - if agent_id: - self.guard.check_allowed(agent_id, context or {}) + async def run(self, user_input: str, context: Optional[dict[str, Any]] = None) -> dict[str, Any]: if not self.enabled: # Assume llm_client has a 'complete' method as per the plan return {"mode": "baseline", "output": await self.llm.complete(user_input, context=context)} personas = DEFAULT_PERSONAS debate: list[dict[str, str]] = [] - umad_signals = {} # turn 1: Planner - proposal, p_probs = await self._persona_turn_with_probs(personas[0], user_input, context) + proposal = await self._persona_turn(personas[0], user_input, context) debate.append({"persona": personas[0].name, "text": proposal}) # turn 2: CriticalVerifier - critique, c_probs = await self._persona_turn_with_probs(personas[1], user_input, context, prior=proposal) + critique = await self._persona_turn(personas[1], user_input, context, prior=proposal) debate.append({"persona": personas[1].name, "text": critique}) # turn 3: Reconciler - final, r_probs = await self._persona_turn_with_probs(personas[2], user_input, context, prior=f"PROPOSAL:\n{proposal}\n\nCRITIQUE:\n{critique}") + final = await self._persona_turn(personas[2], user_input, context, prior=f"PROPOSAL:\n{proposal}\n\nCRITIQUE:\n{critique}") debate.append({"persona": personas[2].name, "text": final}) - if self.use_umad and self.umad_config.get('inference', {}).get('enabled', False): - # In a real implementation, p_probs would be the token probability distribution - # returned by the LLM. Here we use dummy probabilities if none are returned. - # Calculate Aleatoric Uncertainty (Sys-AU) for each turn - planner_au = calculate_sys_au(p_probs or [0.8, 0.1, 0.1]) - critic_au = calculate_sys_au(c_probs or [0.6, 0.3, 0.1]) - reconciler_au = calculate_sys_au(r_probs or [0.9, 0.05, 0.05]) - - # Calculate Epistemic Uncertainty (Sys-EU) across the agent beliefs - # For a full implementation, this needs comparable distributions (e.g. over answer options) - # Using dummy distributions for demonstration of the UMAD integration - dist_p = p_probs or [0.8, 0.1, 0.1] - dist_c = c_probs or [0.2, 0.7, 0.1] # Critic disagrees - dist_r = r_probs or [0.7, 0.2, 0.1] # Reconciler leans toward planner - - # Normalize distributions to ensure they are valid for JSD calculation - def normalize(dist): - s = sum(dist) - return [p/s for p in dist] if s > 0 else dist - - sys_eu = calculate_sys_eu([normalize(dist_p), normalize(dist_c), normalize(dist_r)]) - - umad_signals = { - "sys_au": { - "planner": planner_au, - "critic": critic_au, - "reconciler": reconciler_au, - "avg_au": (planner_au + critic_au + reconciler_au) / 3 - }, - "sys_eu": sys_eu - } - if self.policy: self.policy.assert_ok(debate=debate, user_input=user_input, context=context or {}) redacted_debate = self.redactor.redact_debate(debate) - result = {"mode": "society_of_thought", "debate": redacted_debate, "output": final} - if self.use_umad: - result["umad_signals"] = umad_signals - - return result - - async def _persona_turn_with_probs(self, persona: Persona, user_input: str, context: Optional[dict[str, Any]], prior: str = "") -> tuple[str, list[float]]: - """Helper method to return text and simulated token probabilities for UMAD.""" - text = await self._persona_turn(persona, user_input, context, prior) - # Simulate returned probability distribution from LLM - # In practice, this would extract logprobs from the LLM response - probs = [0.8, 0.1, 0.05, 0.05] - return text, probs + return {"mode": "society_of_thought", "debate": redacted_debate, "output": final} async def _persona_turn(self, persona: Persona, user_input: str, context: Optional[dict[str, Any]], prior: str = "") -> str: system = ( diff --git a/summit/precision/detectors.py b/summit/precision/detectors.py index c94f8f8417f..314641c4a58 100644 --- a/summit/precision/detectors.py +++ b/summit/precision/detectors.py @@ -1,11 +1,8 @@ from __future__ import annotations -import math from dataclasses import dataclass from typing import Any, Dict -import torch - @dataclass class MismatchReport: @@ -14,40 +11,9 @@ class MismatchReport: violations: int = 0 def compute_mismatch_metrics(train_vals: dict[str, Any], rollout_vals: dict[str, Any]) -> MismatchReport: - train_logprobs = train_vals.get("logprobs") - if train_logprobs is None: - train_logprobs = train_vals.get("log_probs") - - rollout_logprobs = rollout_vals.get("logprobs") - if rollout_logprobs is None: - rollout_logprobs = rollout_vals.get("log_probs") - - if train_logprobs is None or rollout_logprobs is None: - return MismatchReport() - - if torch is None: - raise ImportError("torch is required for computing mismatch metrics involving tensors") - - delta = (train_logprobs - rollout_logprobs).abs() - - return MismatchReport( - max_abs_logprob_delta=delta.max().item(), - mean_abs_logprob_delta=delta.mean().item(), - violations=0, - ) - + # TODO: wire real tensors; keep API stable. + return MismatchReport() def collapse_alarm(metrics: dict[str, Any]) -> bool: - # Check for NaNs - for v in metrics.values(): - if isinstance(v, float) and math.isnan(v): - return True - - # Check heuristics - if metrics.get("reward_mean", 0.0) < -10.0: - return True - - if metrics.get("kl_divergence", 0.0) > 100.0: - return True - + # TODO: implement reward/kl/nan heuristics return False diff --git a/summit/registry/model.py b/summit/registry/model.py index 8c8494090d3..171a3007a9b 100644 --- a/summit/registry/model.py +++ b/summit/registry/model.py @@ -1,15 +1,7 @@ -from dataclasses import dataclass, field -from enum import Enum +from dataclasses import dataclass from typing import Dict, List, Optional -class RiskTier(str, Enum): - LOW = "low" - MEDIUM = "medium" - HIGH = "high" - CRITICAL = "critical" - - @dataclass(frozen=True) class Capability: capability_id: str @@ -20,26 +12,8 @@ class Capability: constraints: dict trust: dict -@dataclass(frozen=True) -class AgentDefinition: - id: str - name: str - owner: str - risk_tier: RiskTier - version: str - updated_at: str - capabilities: list[str] = field(default_factory=list) - tools: list[str] = field(default_factory=list) - data_domains: list[str] = field(default_factory=list) - residency_tags: list[str] = field(default_factory=list) - compliance_tags: list[str] = field(default_factory=list) - allowed_backends: list[str] = field(default_factory=list) - defaults: dict = field(default_factory=dict) - deprecated: bool = False - @dataclass(frozen=True) class RegistryDocument: version: str - capabilities: list[Capability] = field(default_factory=list) - agents: list[AgentDefinition] = field(default_factory=list) + capabilities: list[Capability] signature: Optional[str] = None # placeholder for cosign/DSSE integration diff --git a/summit/registry/store.py b/summit/registry/store.py index a5f785dd334..31553e282bc 100644 --- a/summit/registry/store.py +++ b/summit/registry/store.py @@ -1,49 +1,10 @@ -import dataclasses import json -from typing import Any -from .model import AgentDefinition, Capability, RegistryDocument, RiskTier +from .model import Capability, RegistryDocument -def _dict_to_agent(d: dict) -> AgentDefinition: - # Handle Enum conversion - if "risk_tier" in d and isinstance(d["risk_tier"], str): - try: - d["risk_tier"] = RiskTier(d["risk_tier"]) - except ValueError: - # Fallback or error handling? For now let it raise or handle gracefully - # If the value is invalid, RiskTier(val) will raise ValueError - pass - return AgentDefinition(**d) - def load_registry(path: str) -> RegistryDocument: - try: - with open(path, encoding="utf-8") as f: - obj = json.loads(f.read()) - except FileNotFoundError: - # Return empty document if file doesn't exist? Or let it crash? - # The original code crashed. I'll stick to mostly original behavior but safe open. - # Actually, original code just did `with open(path...)`. - raise - + with open(path, encoding="utf-8") as f: + obj = json.loads(f.read()) caps = [Capability(**c) for c in obj.get("capabilities", [])] - agents = [_dict_to_agent(a) for a in obj.get("agents", [])] - - return RegistryDocument( - version=obj.get("version", "1.0"), - capabilities=caps, - agents=agents, - signature=obj.get("signature") - ) - -class EnhancedJSONEncoder(json.JSONEncoder): - def default(self, o): - if dataclasses.is_dataclass(o): - return dataclasses.asdict(o) - if isinstance(o, RiskTier): - return o.value - return super().default(o) - -def save_registry(path: str, doc: RegistryDocument) -> None: - with open(path, "w", encoding="utf-8") as f: - json.dump(doc, f, cls=EnhancedJSONEncoder, indent=2) + return RegistryDocument(version=obj["version"], capabilities=caps, signature=obj.get("signature")) diff --git a/summit/scouts/base.py b/summit/scouts/base.py index ac35ecced59..dd8515e46ab 100644 --- a/summit/scouts/base.py +++ b/summit/scouts/base.py @@ -1,11 +1,7 @@ -import time from abc import ABC, abstractmethod from dataclasses import dataclass, field from typing import Any, List -from summit.telemetry.instrumentation import get_telemetry -from summit.telemetry.metrics import get_metrics - @dataclass class Result: @@ -23,24 +19,6 @@ class Scout(ABC): def name(self) -> str: pass - def run(self, ctx: Any, cfg: Config) -> Result: - tracer = get_telemetry().tracer - metrics = get_metrics() - - with tracer.start_as_current_span(f"scout.{self.name()}") as span: - start_time = time.time() - try: - result = self._run(ctx, cfg) - status = "success" - metrics.record_scout_run(self.name(), time.time() - start_time, status, result.cost_ms) - return result - except Exception as e: - status = "error" - metrics.record_scout_error(self.name(), type(e).__name__) - metrics.record_scout_run(self.name(), time.time() - start_time, status) - span.record_exception(e) - raise - @abstractmethod - def _run(self, ctx: Any, cfg: Config) -> Result: + def run(self, ctx: Any, cfg: Config) -> Result: pass diff --git a/summit/scouts/repo_map.py b/summit/scouts/repo_map.py index a0786ef94f9..3f1798707c9 100644 --- a/summit/scouts/repo_map.py +++ b/summit/scouts/repo_map.py @@ -1,73 +1,12 @@ -import hashlib -import os -import time from typing import Any from .base import Config, Result, Scout -def hash_file(filepath: str) -> str: - """Compute the SHA256 hash of a file.""" - hasher = hashlib.sha256() - try: - with open(filepath, 'rb') as f: - for chunk in iter(lambda: f.read(4096), b""): - hasher.update(chunk) - return hasher.hexdigest() - except Exception: - # If we can't read the file (permissions, etc), return a zero hash or handle it - return "0" * 64 - - -def deterministic_tree_walk(root_dir: str, max_cost_ms: int) -> list[str]: - """ - Finds files in a deterministic order and computes their hashes. - Respects the time limit. - """ - start_time = time.perf_counter() - artifacts = [] - - for root, dirs, files in os.walk(root_dir): - # Deterministic order - dirs.sort() - files.sort() - - # Exclude hidden directories and node_modules for consistency with other scouts - dirs[:] = [d for d in dirs if not d.startswith('.') and d != 'node_modules' and d != '__pycache__'] - - for file in files: - # Check time limit - if (time.perf_counter() - start_time) * 1000 > max_cost_ms: - return artifacts - - # Ignore hidden files or whatever - if not file.startswith('.'): - full_path = os.path.join(root, file) - file_hash = hash_file(full_path) - rel_path = os.path.relpath(full_path, root_dir) - - # Format: "hash filepath" - artifacts.append(f"{file_hash} {rel_path}") - - return artifacts - - class RepoMapScout(Scout): def name(self) -> str: return "repo_map" - def _run(self, ctx: Any, cfg: Config) -> Result: - root_dir = "." - if hasattr(ctx, "path"): - root_dir = ctx.path - elif isinstance(ctx, dict) and "path" in ctx: - root_dir = ctx["path"] - - if not os.path.exists(root_dir): - root_dir = "." - - start_time = time.perf_counter() - artifacts = deterministic_tree_walk(root_dir, cfg.max_cost_ms) - cost_ms = int((time.perf_counter() - start_time) * 1000) - - return Result(artifacts=artifacts, cost_ms=cost_ms) + def run(self, ctx: Any, cfg: Config) -> Result: + # TODO: implement deterministic tree walk + hash list + return Result() diff --git a/tests/fixtures/evidence/pass_bundle/report.json b/tests/fixtures/evidence/pass_bundle/report.json index c4f6634b8fb..1dabbb306c4 100644 --- a/tests/fixtures/evidence/pass_bundle/report.json +++ b/tests/fixtures/evidence/pass_bundle/report.json @@ -1,7 +1,5 @@ { "evidence_id": "EVD-SCOUT-CI-005", "summary": "Schema validation fixtures for evidence bundle.", - "environment": "ci", - "backend": "mock", "artifacts": ["metrics.json", "stamp.json", "evidence/index.json"] } diff --git a/tests/fixtures/evidence/pass_bundle/stamp.json b/tests/fixtures/evidence/pass_bundle/stamp.json index 3151fdcc8c0..32bf8a35228 100644 --- a/tests/fixtures/evidence/pass_bundle/stamp.json +++ b/tests/fixtures/evidence/pass_bundle/stamp.json @@ -1,5 +1,4 @@ { "created_at": "2026-02-01T12:00:00Z", - "git_commit": "deadbeef", - "run_id": "run-12345" + "git_commit": "deadbeef" } diff --git a/tests/io/test_evidence_schemas.py b/tests/io/test_evidence_schemas.py index 75a0bb2db09..74688c51b4a 100644 --- a/tests/io/test_evidence_schemas.py +++ b/tests/io/test_evidence_schemas.py @@ -1,12 +1,9 @@ import os - import pytest - from summit.io.evidence.validate import validate_file # Reuse template files for testing TEMPLATE_DIR = os.path.join(os.path.dirname(__file__), "..", "..", "summit", "io", "evidence", "templates") -FIXTURE_DIR = os.path.join(os.path.dirname(__file__), "..", "fixtures", "io") def test_validate_report_template(): path = os.path.join(TEMPLATE_DIR, "report.json") @@ -23,7 +20,3 @@ def test_validate_stamp_template(): def test_validate_index_template(): path = os.path.join(TEMPLATE_DIR, "index.json") assert validate_file(path, "index") == True - -def test_validate_inauth_metrics_fixture(): - path = os.path.join(FIXTURE_DIR, "inauth_metrics.json") - assert validate_file(path, "inauth_metrics") == True diff --git a/tests/test_asr_contract.py b/tests/test_asr_contract.py index ebc1cca38f0..e95a8b3576c 100644 --- a/tests/test_asr_contract.py +++ b/tests/test_asr_contract.py @@ -1,10 +1,8 @@ -import os - import pytest -from summit.audio.asr.provider import ASRProvider -from summit.audio.asr.providers.qwen3_asr_provider import Qwen3ASRProvider -from summit.audio.asr.types import ASRRequest, ASRResult, ASRSegment +from asr.provider import ASRProvider +from asr.providers.qwen3_asr_stub import Qwen3ASRProvider +from asr.types import ASRRequest, ASRResult, ASRSegment class StubProvider(ASRProvider): @@ -26,59 +24,17 @@ def test_contract_roundtrip() -> None: def test_qwen3_provider_disabled_by_default(monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.delenv("SUMMIT_ASR_ENABLED", raising=False) - monkeypatch.setenv("FEATURE_QWEN3_ASR", "0") provider = Qwen3ASRProvider() request = ASRRequest(audio="clip.wav", audio_type="path") - with pytest.raises(RuntimeError, match="disabled"): + with pytest.raises(RuntimeError, match="SUMMIT_ASR_ENABLED"): provider.transcribe(request) -def test_qwen3_provider_mock_output(monkeypatch: pytest.MonkeyPatch) -> None: +def test_qwen3_provider_not_implemented(monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.setenv("SUMMIT_ASR_ENABLED", "1") - monkeypatch.setenv("RUN_ASR_INTEGRATION", "0") - provider = Qwen3ASRProvider(backend="transformers") - request = ASRRequest(audio="clip.wav", audio_type="path") - - result = provider.transcribe(request) - assert "[Transformers Mock]" in result.text - -def test_qwen3_provider_vllm_mock(monkeypatch: pytest.MonkeyPatch) -> None: - monkeypatch.setenv("SUMMIT_ASR_ENABLED", "1") - monkeypatch.setenv("RUN_ASR_INTEGRATION", "0") - monkeypatch.setenv("ASR_BACKEND", "vllm") provider = Qwen3ASRProvider() request = ASRRequest(audio="clip.wav", audio_type="path") - result = provider.transcribe(request) - assert "[vLLM Mock]" in result.text - -def test_qwen3_provider_timestamps(monkeypatch: pytest.MonkeyPatch) -> None: - monkeypatch.setenv("SUMMIT_ASR_ENABLED", "1") - monkeypatch.setenv("RUN_ASR_INTEGRATION", "0") - provider = Qwen3ASRProvider(backend="transformers") - request = ASRRequest(audio="clip.wav", audio_type="path", return_timestamps=True) - - result = provider.transcribe(request) - assert result.segments[0].start_ms == 0 - assert result.segments[0].end_ms == 1000 - -def test_qwen3_provider_no_timestamps(monkeypatch: pytest.MonkeyPatch) -> None: - monkeypatch.setenv("SUMMIT_ASR_ENABLED", "1") - monkeypatch.setenv("RUN_ASR_INTEGRATION", "0") - provider = Qwen3ASRProvider(backend="transformers") - request = ASRRequest(audio="clip.wav", audio_type="path", return_timestamps=False) - - result = provider.transcribe(request) - assert result.segments[0].start_ms is None - assert result.segments[0].end_ms is None - -def test_asr_request_new_fields(): - req = ASRRequest( - audio="clip.wav", - audio_type="path", - device="cuda", - attention_backend="flash" - ) - assert req.device == "cuda" - assert req.attention_backend == "flash" + with pytest.raises(NotImplementedError, match="clean-room stub"): + provider.transcribe(request) diff --git a/tests/test_asr_redaction.py b/tests/test_asr_redaction.py index ec3e5bb7708..ee6a5bcbd63 100644 --- a/tests/test_asr_redaction.py +++ b/tests/test_asr_redaction.py @@ -1,4 +1,4 @@ -from summit.audio.asr.security import redact_for_logs +from asr.security import redact_for_logs def test_redact_for_logs_masks_sensitive_fields() -> None: diff --git a/tests/test_autonomy_budget.py b/tests/test_autonomy_budget.py index 63a97c93445..fb0c5efe2e4 100644 --- a/tests/test_autonomy_budget.py +++ b/tests/test_autonomy_budget.py @@ -3,12 +3,6 @@ from summit.policy.autonomy import AutonomyBudget, enforce_budget -def test_autonomy_budget_within_limits() -> None: - budget = AutonomyBudget(max_steps=3, max_tool_calls=2, max_messages=4) - enforce_budget(step=3, tool_calls=2, messages=4, budget=budget) - - -def test_autonomy_budget_exceeds_steps() -> None: - budget = AutonomyBudget(max_steps=1, max_tool_calls=2, max_messages=3) - with pytest.raises(RuntimeError, match="steps"): - enforce_budget(step=2, tool_calls=1, messages=1, budget=budget) +def test_budget_denies_by_default(): + with pytest.raises(RuntimeError): + enforce_budget(step=21, tool_calls=0, messages=0, budget=AutonomyBudget()) diff --git a/tests/test_evidence_determinism.py b/tests/test_evidence_determinism.py index 4be73cb1f46..ba89d712810 100644 --- a/tests/test_evidence_determinism.py +++ b/tests/test_evidence_determinism.py @@ -18,28 +18,3 @@ def test_determinism(tmp_path): write_normalized(events, str(p2)) assert p1.read_bytes() == p2.read_bytes() - - -from pathlib import Path - -from summit_harness.evidence import EvidenceWriter - - -def test_harness_evidence_writer_determinism(tmp_path): - writer = EvidenceWriter(tmp_path) - report = {"evidence_id": "EVD-1", "summary": "test", "item_slug": "slug", "artifacts": ["a.txt"]} - metrics = {"evidence_id": "EVD-1", "metrics": {"m1": 1.0}} - - # Run twice - writer.write(report, metrics) - p1 = tmp_path / "report.json" - content1 = p1.read_text() - - writer.write(report, metrics) - content2 = p1.read_text() - - assert content1 == content2 - # Check that keys are sorted in output - data = json.loads(content1) - keys = list(data.keys()) - assert keys == sorted(keys) diff --git a/tests/test_evidence_verifier.py b/tests/test_evidence_verifier.py index 9167c00fbdc..866a4cd87fa 100644 --- a/tests/test_evidence_verifier.py +++ b/tests/test_evidence_verifier.py @@ -6,7 +6,8 @@ import unittest from pathlib import Path -# Add scripts to path so we can import verify_evidence +# Add scripts to path so we can import verify_evidence if needed, +# but we'll mostly run it as a subprocess or import main. sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from scripts import verify_evidence @@ -16,91 +17,45 @@ def setUp(self): self.test_dir = tempfile.mkdtemp() self.evidence_dir = Path(self.test_dir) / "evidence" self.evidence_dir.mkdir() - self.schema_dir = self.evidence_dir / "schema" - self.schema_dir.mkdir() - # Copy real schemas to temp dir - real_schema_dir = Path(__file__).resolve().parents[1] / "evidence" / "schema" - for schema_file in real_schema_dir.glob("*.schema.json"): - shutil.copy(schema_file, self.schema_dir) - - # Patch verify_evidence.ROOT, EVD, and SCHEMA_DIR + # Patch verify_evidence.ROOT and EVID self.original_root = verify_evidence.ROOT - self.original_evd = verify_evidence.EVD - self.original_schema_dir = verify_evidence.SCHEMA_DIR + self.original_evid = verify_evidence.EVID verify_evidence.ROOT = Path(self.test_dir) - verify_evidence.EVD = self.evidence_dir - verify_evidence.SCHEMA_DIR = self.schema_dir + verify_evidence.EVID = self.evidence_dir def tearDown(self): verify_evidence.ROOT = self.original_root - verify_evidence.EVD = self.original_evd - verify_evidence.SCHEMA_DIR = self.original_schema_dir + verify_evidence.EVID = self.original_evid shutil.rmtree(self.test_dir) - def create_required_files(self): - index_content = { - "version": "1.0", - "items": [ - { - "evidence_id": "EVD-TEST-001", - "report": "evidence/report.json", - "metrics": "evidence/metrics.json", - "stamp": "evidence/stamp.json" - } - ] - } - (self.evidence_dir / "index.json").write_text(json.dumps(index_content)) - - report_content = { - "evidence_id": "EVD-TEST-001", - "item_slug": "test-item", - "claims": [], - "assessments": [] - } - (self.evidence_dir / "report.json").write_text(json.dumps(report_content)) - - metrics_content = { - "evidence_id": "EVD-TEST-001", - "metrics": {"m1": 1.0} - } - (self.evidence_dir / "metrics.json").write_text(json.dumps(metrics_content)) + def create_required_files(self, index_content=None): + if index_content is None: + index_content = {"version": "1.0", "evidence": {}} - stamp_content = { - "evidence_id": "EVD-TEST-001", - "generated_at": "2025-10-31T23:59:59Z", - "git_commit": "abc" - } - (self.evidence_dir / "stamp.json").write_text(json.dumps(stamp_content)) + (self.evidence_dir / "index.json").write_text(json.dumps(index_content)) + (self.evidence_dir / "report.json").write_text(json.dumps({"id": "test"})) + (self.evidence_dir / "metrics.json").write_text(json.dumps({"val": 1})) + (self.evidence_dir / "stamp.json").write_text(json.dumps({"ts": "2026-01-27"})) def test_pass_minimal_compliant(self): self.create_required_files() self.assertEqual(verify_evidence.main(), 0) def test_fail_missing_files(self): - # Only index exists - (self.evidence_dir / "index.json").write_text(json.dumps({"version": "1.0", "items": []})) - # items is empty, but if index is missing other files mentioned in it, it should fail. - # Let's add an item but not the files. - index_content = { - "version": "1.0", - "items": [ - { - "evidence_id": "EVD-TEST-001", - "report": "evidence/report.json", - "metrics": "evidence/metrics.json", - "stamp": "evidence/stamp.json" - } - ] - } - (self.evidence_dir / "index.json").write_text(json.dumps(index_content)) - self.assertNotEqual(verify_evidence.main(), 0) + (self.evidence_dir / "index.json").write_text(json.dumps({"evidence": {}})) + # missing others + self.assertEqual(verify_evidence.main(), 2) + + def test_fail_invalid_index(self): + self.create_required_files(index_content={"no_evidence_key": {}}) + self.assertEqual(verify_evidence.main(), 3) def test_fail_timestamp_outside_stamp(self): self.create_required_files() # Add a file with a timestamp - (self.evidence_dir / "other.json").write_text(json.dumps({"date": "2025-10-31T10:00:00"})) - self.assertNotEqual(verify_evidence.main(), 0) + (self.evidence_dir / "other.json").write_text(json.dumps({"date": "2026-01-27T10:00:00Z"})) + self.assertEqual(verify_evidence.main(), 4) if __name__ == "__main__": unittest.main() diff --git a/tests/test_qwen3_flags.py b/tests/test_qwen3_flags.py index bef13ffb929..b98e1782c21 100644 --- a/tests/test_qwen3_flags.py +++ b/tests/test_qwen3_flags.py @@ -1,10 +1,7 @@ import pytest - -import summit.flags from summit.audio.tts.qwen3.adapter import Qwen3TTSAdapter, Qwen3TTSRequest from summit.flags import FEATURE_QWEN3_TTS - def test_adapter_disabled_by_default(): # FEATURE_QWEN3_TTS defaults to False in flags.py adapter = Qwen3TTSAdapter(enabled=FEATURE_QWEN3_TTS) @@ -20,27 +17,3 @@ def test_adapter_enabled(): res = adapter.synthesize(req) assert res["sample_rate"] == 0 assert res["metrics"]["attention_backend"] == "auto" - -from summit.audio.asr.providers.qwen3_asr_provider import Qwen3ASRProvider -from summit.audio.asr.types import ASRRequest -from summit.flags import FEATURE_QWEN3_ASR - - -def test_asr_provider_respects_flags(monkeypatch): - monkeypatch.setenv("SUMMIT_ASR_ENABLED", "0") - monkeypatch.setattr(summit.flags, "FEATURE_QWEN3_ASR", False) - provider = Qwen3ASRProvider() - req = ASRRequest(audio="clip.wav", audio_type="path") - - with pytest.raises(RuntimeError, match="disabled"): - provider.transcribe(req) - -def test_asr_provider_enabled_by_feature_flag(monkeypatch): - monkeypatch.setenv("SUMMIT_ASR_ENABLED", "0") - monkeypatch.setattr(summit.flags, "FEATURE_QWEN3_ASR", True) - monkeypatch.setenv("RUN_ASR_INTEGRATION", "0") - provider = Qwen3ASRProvider() - req = ASRRequest(audio="clip.wav", audio_type="path") - - result = provider.transcribe(req) - assert "[Transformers Mock]" in result.text diff --git a/tests/test_redaction.py b/tests/test_redaction.py index f2b52628fee..7838a27b1c6 100644 --- a/tests/test_redaction.py +++ b/tests/test_redaction.py @@ -41,27 +41,3 @@ def test_dataset_card_markdown(): md = card.to_markdown() assert "# Dataset Card: Test Data" in md assert "**License**: Proprietary" in md - - -from summit_harness.redaction import redact_dict -from summit_harness.redaction import redact_text as harness_redact_text - - -def test_harness_redact_dict_secrets(): - data = {"api_key": "secret123", "user": "alice", "nested": {"password": "p1"}} - redacted = redact_dict(data) - assert redacted["api_key"] == "[REDACTED]" - assert redacted["user"] == "alice" - assert redacted["nested"]["password"] == "[REDACTED]" - -def test_harness_redact_api_key_text(): - text = "My key is sk-1234567890123456789012345" - redacted = harness_redact_text(text) - assert "sk-1234567890123456789012345" not in redacted - assert "[REDACTED_API_KEY]" in redacted - -def test_harness_redact_pii_text(): - text = "Email me at alice@example.com" - redacted = harness_redact_text(text) - assert "alice@example.com" not in redacted - assert "[REDACTED_EMAIL]" in redacted diff --git a/tests/test_verify_evidence.py b/tests/test_verify_evidence.py index 64a5e38f964..bd45c57621e 100644 --- a/tests/test_verify_evidence.py +++ b/tests/test_verify_evidence.py @@ -1,78 +1,15 @@ -import json -import pathlib -import shutil -import tempfile -import unittest - -from scripts.verify_evidence import check_determinism, validate_file - - -class TestVerifyEvidence(unittest.TestCase): - def setUp(self): - self.test_dir = pathlib.Path(tempfile.mkdtemp()) - self.evd_dir = self.test_dir / "evidence" - self.evd_dir.mkdir() - self.schema_dir = self.evd_dir / "schema" - self.schema_dir.mkdir() - - # Copy real schemas to temp dir for testing - real_schema_dir = pathlib.Path(__file__).resolve().parents[1] / "evidence" / "schema" - for schema_file in real_schema_dir.glob("*.schema.json"): - shutil.copy(schema_file, self.schema_dir) - - def tearDown(self): - shutil.rmtree(self.test_dir) - - def test_validate_valid_report(self): - report_path = self.evd_dir / "report.json" - report_data = { - "evidence_id": "EVD-TEST-001", - "item_slug": "test-item", - "claims": [ - { - "claim_id": "C1", - "text": "The earth is round.", - "extractor": "manual", - "confidence": 1.0 - } - ], - "assessments": [] - } - report_path.write_text(json.dumps(report_data)) - - # Patching global variables in scripts.verify_evidence - import scripts.verify_evidence - original_evd = scripts.verify_evidence.EVD - original_schema_dir = scripts.verify_evidence.SCHEMA_DIR - scripts.verify_evidence.EVD = self.evd_dir - scripts.verify_evidence.SCHEMA_DIR = self.schema_dir - - try: - self.assertTrue(validate_file(report_path, "report")) - finally: - scripts.verify_evidence.EVD = original_evd - scripts.verify_evidence.SCHEMA_DIR = original_schema_dir - - def test_validate_invalid_report(self): - report_path = self.evd_dir / "report.json" - report_data = { - "evidence_id": "EVD-TEST-001", - # missing item_slug - "claims": [] - } - report_path.write_text(json.dumps(report_data)) - - import scripts.verify_evidence - original_evd = scripts.verify_evidence.EVD - original_schema_dir = scripts.verify_evidence.SCHEMA_DIR - scripts.verify_evidence.EVD = self.evd_dir - scripts.verify_evidence.SCHEMA_DIR = self.schema_dir - - try: - self.assertFalse(validate_file(report_path, "report")) - finally: - scripts.verify_evidence.EVD = original_evd - scripts.verify_evidence.SCHEMA_DIR = original_schema_dir - -if __name__ == "__main__": - unittest.main() +import subprocess +import sys +from pathlib import Path + +def test_verify_evidence_runs(): + repo_root = Path(__file__).resolve().parents[1] + script = repo_root / "tools" / "ci" / "verify_evidence.py" + res = subprocess.run([sys.executable, str(script)], capture_output=True, text=True) + # It might fail if index.json is invalid (which it currently is), but we will fix it in Step 7. + # So this test will eventually pass. + # For now, we just assert it ran (returncode might be 1 if validation fails). + # But the plan expects it to pass at the end. + + # NOTE: We assert returncode == 0 assuming the test runs AFTER the fix. + assert res.returncode == 0, res.stderr diff --git a/tools/ci/denylist_openai_assistants.py b/tools/ci/denylist_openai_assistants.py new file mode 100644 index 00000000000..8affff73f82 --- /dev/null +++ b/tools/ci/denylist_openai_assistants.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +import os +import re +import argparse +import json +import sys +from pathlib import Path + +# Patterns to detect OpenAI Assistants API usage +DENYLIST_PATTERNS = [ + (r"/v1/assistants\b", "Endpoint /v1/assistants"), + (r"/v1/threads\b", "Endpoint /v1/threads"), + (r"(? None: fail("evidence/index.json must contain non-empty 'items' map") for evd_id, meta in items.items(): - if isinstance(meta, list): - files = meta - base = ROOT - elif isinstance(meta, dict) and "path" in meta: - base = ROOT / meta["path"] - files = meta.get("files", []) - else: + if "path" not in meta: # Skip legacy items or items not following the new schema continue + base = ROOT / meta["path"] + files = meta.get("files", []) for fn in files: fp = base / fn if not fp.exists(): fail(f"{evd_id} missing file: {fp}") - if any(name.endswith("report.json") for name in files): - report_path = base / next(name for name in files if name.endswith("report.json")) - report = load(report_path) + # enforce timestamp isolation: only stamp.json may contain time-like fields + if "report.json" in files: + report = load(base / "report.json") if report.get("evidence_id") != evd_id: fail(f"{evd_id} report.json evidence_id mismatch") - if any(name.endswith("metrics.json") for name in files): - metrics_path = base / next(name for name in files if name.endswith("metrics.json")) - metrics = load(metrics_path) + if "metrics.json" in files: + metrics = load(base / "metrics.json") if metrics.get("evidence_id") != evd_id: fail(f"{evd_id} metrics.json evidence_id mismatch") - if any(name.endswith("stamp.json") for name in files): - stamp_path = base / next(name for name in files if name.endswith("stamp.json")) - stamp = load(stamp_path) + if "stamp.json" in files: + stamp = load(base / "stamp.json") if stamp.get("evidence_id") != evd_id: fail(f"{evd_id} stamp.json evidence_id mismatch") - if not any(key in stamp for key in ("generated_at_utc", "generated_at", "created_at")): - fail(f"{evd_id} stamp.json missing generated time field") + if "generated_at_utc" not in stamp: + fail(f"{evd_id} stamp.json missing generated_at_utc") print("[verify_evidence] OK") diff --git a/tools/evidence_validate.py b/tools/evidence_validate.py index be279658ebc..1ab50208187 100644 --- a/tools/evidence_validate.py +++ b/tools/evidence_validate.py @@ -1,114 +1,138 @@ -#!/usr/bin/env python3 +import argparse import json import os import sys +from typing import Any, Dict, List +import jsonschema -def validate_json_file(filepath): + +def load_json(path: str) -> Any: try: - with open(filepath) as f: + with open(path) as f: return json.load(f) - except json.JSONDecodeError as e: - print(f"ERROR: Invalid JSON in {filepath}: {e}") - return None except FileNotFoundError: - print(f"ERROR: File not found: {filepath}") + print(f"Error: File not found: {path}") + return None + except json.JSONDecodeError as e: + print(f"Error: Invalid JSON in {path}: {e}") return None -def check_no_timestamps(filepath, data): - """ - Enforce determinism: report.json and metrics.json should not contain - wall-clock timestamps. - """ - filename = os.path.basename(filepath) - if filename == 'stamp.json': +def validate_schema(data: Any, schema: dict[str, Any], context: str) -> bool: + try: + jsonschema.validate(instance=data, schema=schema) return True - - # keys to look for - forbidden_keys = ['timestamp', 'created_at', 'updated_at', 'generated_at', 'date_created'] - - def recursive_search(obj, path=""): - issues = [] - if isinstance(obj, dict): - for k, v in obj.items(): - if any(f in k.lower() for f in forbidden_keys): - issues.append(f"{path}.{k}") - issues.extend(recursive_search(v, f"{path}.{k}")) - elif isinstance(obj, list): - for i, item in enumerate(obj): - issues.extend(recursive_search(item, f"{path}[{i}]")) - return issues - - issues = recursive_search(data) - if issues: - print(f"ERROR: Potential timestamps found in {filepath} (determinism violation): {issues}") + except jsonschema.ValidationError as e: + print(f"Validation failed for {context}: {e.message}") return False + +def check_timestamps(data: Any, path: str, allowed: bool) -> bool: + if isinstance(data, dict): + for key, value in data.items(): + if key in ["timestamp", "created_at", "updated_at", "ts", "generated_at"]: + if not allowed: + print(f"Error: Timestamp field '{key}' found in {path}. Timestamps are only allowed in stamp.json.") + return False + if not check_timestamps(value, path, allowed): + return False + elif isinstance(data, list): + for item in data: + if not check_timestamps(item, path, allowed): + return False return True -def validate_evidence_index(index_path='evidence/index.json'): - print(f"Validating evidence index: {index_path}") - index_data = validate_json_file(index_path) - if not index_data: +def main(): + parser = argparse.ArgumentParser(description="Validate evidence artifacts against schemas.") + parser.add_argument("--schemas", required=True, help="Directory containing schemas") + parser.add_argument("--evidence", required=True, help="Root directory for evidence") + args = parser.parse_args() + + # Load Schemas + try: + index_schema = load_json(os.path.join(args.schemas, "index.schema.json")) + report_schema = load_json(os.path.join(args.schemas, "report.schema.json")) + metrics_schema = load_json(os.path.join(args.schemas, "metrics.schema.json")) + stamp_schema = load_json(os.path.join(args.schemas, "stamp.schema.json")) + except Exception as e: + print(f"Failed to load schemas: {e}") + sys.exit(1) + + if not all([index_schema, report_schema, metrics_schema, stamp_schema]): + sys.exit(1) + + # Validate Index + index_path = os.path.join(args.evidence, "index.json") + index_data = load_json(index_path) + if index_data is None: sys.exit(1) - items = index_data.get('items', {}) - if not items: - print("WARNING: No items found in evidence/index.json") + if not validate_schema(index_data, index_schema, "index.json"): + sys.exit(1) + + success = True - errors = 0 + # Validate Items + for item in index_data.get("items", []): + evidence_id = item.get("id") + path = item.get("path") - for key, item in items.items(): - print(f"Checking {key}...") + # If path is relative, make it absolute relative to repo root (or args.evidence parent) + # Assuming args.evidence points to 'evidence/' dir. + # But index.json paths seem to be relative to repo root e.g. "evidence/report.json" - # Check artifacts/files list - # index.json structure seems to mix 'artifacts' and 'files' based on my previous cat - # I should support both or normalize. - files = item.get('artifacts', []) - if not files: - files = item.get('files', []) + # If path is a directory, look for standard artifacts + # If path is a file, strictly it doesn't match the new standard but let's see. - if not files: - print(f" WARNING: No artifacts/files declared for {key}") + full_path = path + if not os.path.exists(full_path): + print(f"Warning: Path not found for evidence {evidence_id}: {full_path}") + # Non-fatal for now unless strict continue - for file_ref in files: - # Handle relative paths from repo root - # Assume file_ref is relative to repo root - if not os.path.exists(file_ref): - # Try relative to evidence dir? No, standard is repo root. - print(f" ERROR: Artifact missing: {file_ref}") - errors += 1 - continue + artifacts_to_check = [] + if os.path.isdir(full_path): + artifacts_to_check = [ + ("report.json", report_schema, False), + ("metrics.json", metrics_schema, False), + ("stamp.json", stamp_schema, True) + ] + base_dir = full_path + else: + # It's a file. check what it is based on name? + # Existing entries point to 'evidence/report.json'. + # We can skip validation for legacy or try to guess. + # For this plan, we care about the new IDs which are directories. + if "LIMY-AGENTICWEB" in evidence_id: + print(f"Error: Agentic Web evidence {evidence_id} points to a file, expected directory.") + success = False + continue - data = validate_json_file(file_ref) + for filename, schema, allow_timestamps in artifacts_to_check: + filepath = os.path.join(base_dir, filename) + if not os.path.exists(filepath): + print(f"Missing artifact {filename} in {base_dir}") + # For now, require all? The plan says "Required artifacts per run". + # If we are validating *existence*, yes. + # But if we are just validating what exists, maybe optional. + # Plan implies mandatory. + success = False + continue + + data = load_json(filepath) if data is None: - errors += 1 + success = False continue - # Basic schema checks - basename = os.path.basename(file_ref) - - # Check determinism - if not check_no_timestamps(file_ref, data): - errors += 1 + if not validate_schema(data, schema, f"{evidence_id}/{filename}"): + success = False - # Check Evidence ID match - if 'evidence_id' in data: - if data['evidence_id'] != key: - # Some items might reference shared files or templates, so maybe not strict? - # But ideally they match. - # Let's verify if they match or if the data doesn't have evidence_id - pass + if not check_timestamps(data, filepath, allow_timestamps): + success = False - if errors > 0: - print(f"Validation failed with {errors} errors.") + if not success: sys.exit(1) - else: - print("Validation successful.") -if __name__ == "__main__": - if not os.path.exists('evidence/index.json'): - print("ERROR: evidence/index.json not found in current directory.") - sys.exit(1) + print("Validation successful.") - validate_evidence_index() +if __name__ == "__main__": + main() diff --git a/tsconfig.base.json b/tsconfig.base.json index 6db60d317a3..32b951bca8e 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -2,10 +2,7 @@ "compilerOptions": { "target": "ES2022", "module": "ESNext", - "lib": [ - "ES2022", - "DOM" - ], + "lib": ["ES2022", "DOM"], "strict": true, "esModuleInterop": true, "skipLibCheck": true, @@ -15,33 +12,16 @@ "resolveJsonModule": true, "baseUrl": ".", "paths": { - "@intelgraph/maestro-sdk/*": [ - "packages/maestro-sdk/src/*" - ], - "@summitsec/vcr-kit/*": [ - "packages/vcr-kit/src/*" - ], - "@intelgraph/flags/*": [ - "libs/flags/node/*" - ], - "@intelgraph/audit/*": [ - "libs/audit/node/*" - ], - "@summit/agent-gym": [ - "packages/agent-gym/src/index.ts" - ], - "@summit/agent-gym-metrics": [ - "packages/agent-gym-metrics/src/index.ts" - ], - "@summit/receipts": [ - "packages/receipts/src/index.ts" - ], - "@summit/export": [ - "packages/export/src/index.ts" - ], - "@summit/mcp": [ - "packages/mcp/src/index.ts" - ] + "@intelgraph/maestro-sdk/*": ["packages/maestro-sdk/src/*"], + "@summitsec/vcr-kit/*": ["packages/vcr-kit/src/*"], + "@intelgraph/flags/*": ["libs/flags/node/*"], + "@intelgraph/audit/*": ["libs/audit/node/*"], + "@intelgraph/llm-gateway": ["libs/llm-gateway/src/index.ts"], + "@intelgraph/llm-gateway/*": ["libs/llm-gateway/src/*"], + "@intelgraph/openai-responses": ["libs/providers/openai-responses/src/index.ts"], + "@intelgraph/openai-responses/*": ["libs/providers/openai-responses/src/*"], + "@summit/agent-gym": ["packages/agent-gym/src/index.ts"], + "@summit/agent-gym-metrics": ["packages/agent-gym-metrics/src/index.ts"] } } -} \ No newline at end of file +}