Files
Omika/Directory.Packages.props
2026-10-23 18:46:50 +02:00

129 lines
9.0 KiB
XML

<Project>
<!-- ============================================================
Omika - Central Package Management (CPM)
Toutes les versions de packages NuGet sont définies ici.
https://learn.microsoft.com/en-us/nuget/consume-packages/central-package-management
============================================================ -->
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<!-- Épingle aussi les dépendances transitives : permet de forcer
Microsoft.OpenApi corrigé partout où il apparaît. -->
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<ItemGroup>
<!-- ===== Avalonia (garder les versions synchronisées) ===== -->
<PackageVersion Include="Avalonia" Version="12.1.1" />
<PackageVersion Include="Avalonia.Themes.Fluent" Version="12.1.1" />
<PackageVersion Include="Avalonia.Fonts.Inter" Version="12.1.1" />
<PackageVersion Include="Avalonia.Desktop" Version="12.1.1" />
<PackageVersion Include="Avalonia.Android" Version="12.1.1" />
<PackageVersion Include="Avalonia.iOS" Version="12.1.1" />
<PackageVersion Include="Avalonia.Headless" Version="12.1.1" />
<PackageVersion Include="Avalonia.Skia" Version="12.1.1" />
<PackageVersion Include="AvaloniaUI.DiagnosticsSupport" Version="2.2.3" />
<PackageVersion Include="Mapsui.Avalonia" Version="5.1.0" />
<PackageVersion Include="Mapsui.Avalonia12" Version="5.1.0" />
<PackageVersion Include="Mapsui.Tiling" Version="5.1.0" />
<PackageVersion Include="Xamarin.AndroidX.Core.SplashScreen" Version="1.0.1.15" />
<!-- ===== Traitement d'image (optimisation du poids des photos) =====
Déjà présent de façon transitive via Avalonia.Skia, avec ses assets natifs
sur Android / iOS / Windows. On le référence explicitement pour figer la
version et ne pas dépendre d'un transitif : aucune nouvelle dépendance
native n'est introduite. -->
<PackageVersion Include="SkiaSharp" Version="3.119.4" />
<!-- ===== Lecture des métadonnées de fichier (date de création réelle) =====
SkiaSharp n'expose AUCUNE API EXIF (vérifié sur l'assembly 3.119.4 :
ni Exif, ni DateTimeOriginal, ni SKMetadata ; seul EncodedOrigin est
disponible). Or la date métier d'un document doit être la date réelle
de prise de vue, lue en priorité dans EXIF DateTimeOriginal.
MetadataExtractor couvre JPEG, TIFF, PNG, WebP, GIF ET HEIF — le HEIF
est indispensable : les photos iPhone sont en HEIC par défaut, et un
lecteur EXIF limité au JPEG retomberait sur la date système pour une
large part des photos réelles. Bibliothèque managée pure, sans asset
natif : aucun impact sur les trois têtes (Desktop/Android/iOS). -->
<PackageVersion Include="MetadataExtractor" Version="2.9.0" />
<!-- ===== MVVM ===== -->
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.2" />
<!-- ===== QR code (inscription licence mobile) ===== -->
<PackageVersion Include="QRCoder" Version="1.6.0" />
<!-- Décodage QR côté Android (lecture caméra). QRCoder ne fait QUE générer ;
ZXing.Net (managé pur, netstandard2.0) est le décodeur standard, utilisé
uniquement par la tête Android pour transformer un frame YUV en texte. -->
<PackageVersion Include="ZXing.Net" Version="0.16.11" />
<!-- ===== API ASP.NET Core ===== -->
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="10.0.10" />
<!-- Microsoft.AspNetCore.OpenApi génère du code contre l'API 2.x de Microsoft.OpenApi.
On force la dernière version 2.x (API compatible + correctif de sécurité
si publié sur la branche 2.x). -->
<PackageVersion Include="Microsoft.OpenApi" Version="2.11.0" />
<!-- ===== Tests xUnit ===== -->
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageVersion Include="xunit" Version="2.9.3" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.4" />
<!-- ===== Microsoft.Extensions (Options / Configuration pour Omika.Data) ===== -->
<PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.10" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.10" />
<!-- Nécessaire pour OptionsBuilder.ValidateOnStart() (IStartupValidator). -->
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.10" />
<!-- Chargement de la configuration locale HFSQL de test (JSON + variables d'environnement). -->
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="10.0.10" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="10.0.10" />
<!-- ===== Accès HFSQL via ODBC (provider standard .NET) ===== -->
<PackageVersion Include="System.Data.Odbc" Version="10.0.0" />
<!-- ===== Code-page encodings (Windows-1252 for HFSQL legacy password derivation) ===== -->
<PackageVersion Include="System.Text.Encoding.CodePages" Version="10.0.0" />
<!-- ===== Accès HFSQL via OLE DB (diagnostic tools only) ===== -->
<PackageVersion Include="System.Data.OleDb" Version="10.0.0" />
<!-- ===== DI pour les tests d'infrastructure (Omika.Tests) ===== -->
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.10" />
<!-- ===== Hosting pour le Worker de synchronisation serveur (Omika.Worker) ===== -->
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.10" />
<!-- ===== Tests HTTP (WebApplicationFactory) ===== -->
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.10" />
<!-- ===== SQLite local (offline-first mobile) ===== -->
<PackageVersion Include="Microsoft.Data.Sqlite" Version="10.0.10" />
<!-- Épingle SQLitePCLRaw en 2.1.12 (correctif CVE-2025-6965 / GHSA-2m69-gcr7-jv3q :
le bundle e_sqlite3 2.1.11 embarque une bibliothèque SQLite native < 3.50.2,
vulnérable à une troncature d'entier dans findOrCreateAggInfoColumn). On reste
en 2.x (drop-in, ABI-compatible) — PAS de saut vers 3.x (breaking, cf.
https://github.com/ericsink/SQLitePCL.raw/issues/634). Transitive pinning déjà
activé (CentralPackageTransitivePinningEnabled). -->
<PackageVersion Include="SQLitePCLRaw.bundle_e_sqlite3" Version="2.1.12" />
<PackageVersion Include="SQLitePCLRaw.core" Version="2.1.12" />
<PackageVersion Include="SQLitePCLRaw.lib.e_sqlite3" Version="2.1.12" />
<PackageVersion Include="SQLitePCLRaw.provider.e_sqlite3" Version="2.1.12" />
<!-- ===== Logging mobile (offline-first) ===== -->
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.10" />
<!-- ===== Traduction hors ligne : moteur d'inférence ONNX =====
Embarque les bibliothèques natives (une par architecture : arm64, x64…),
soit ~15 Mo sur le disque d'un téléphone — à comparer aux 500 Mo à
1,15 Go d'UN pack de langue. Sans ce paquet, la traduction répond
« indisponible » : le moteur n'est pas compilé (voir
OnnxRuntimeInferenceSessionFactory dans Omika.App.Local). -->
<PackageVersion Include="Microsoft.ML.OnnxRuntime" Version="1.20.1" />
<!-- ===== Email (SMTP) ===== -->
<PackageVersion Include="MailKit" Version="4.16.0" />
<!-- ===== Remplissage des modèles de rapport DOCX (OpenXML SDK) ===== -->
<PackageVersion Include="DocumentFormat.OpenXml" Version="3.1.1" />
<!-- Épingle le correctif transitif System.IO.Packaging (CVE-2024-43483/43484). -->
<PackageVersion Include="System.IO.Packaging" Version="8.0.1" />
<!-- ===== OpenTelemetry (Phase 5) =====
Localisés UNIQUEMENT dans le projet infrastructure dédié
(src/Omika.Observability.External) ; jamais dans Omika.Core, jamais dans
le métier (Omika.App / Omika.App.Local / Omika.Data).
Train stable 1.18.0 (corrige NU1902 présents en 1.13.0), aligné entre le
SDK et l'exporter OTLP.
Protocole retenu : OTLP HTTP/protobuf (pas de gRPC natif, HttpClient pur). -->
<PackageVersion Include="OpenTelemetry" Version="1.18.0" />
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.18.0" />
<!-- ===== Diagnostic Center (Phase 5) =====
Accès PostgreSQL de l'outil support (base dédiée omika_diagnostics).
Npgsql direct (pas d'ORM) : simple, explicite, pooling intégré. -->
<PackageVersion Include="Npgsql" Version="10.0.3" />
<!-- Support Windows Service officiel pour Omika.Diagnostics.Worker.
Package séparé du train Microsoft.Extensions.Hosting (10.0.10 aligné).
Nécessite un accès NuGet (restauration) au moment du publish service. -->
<PackageVersion Include="Microsoft.Extensions.Hosting.WindowsServices" Version="10.0.10" />
</ItemGroup>
</Project>