manager-app/pubspec.yaml
Thomas Fransolet 608231f71c C4 : compression des images à l'upload, 2560 px / JPEG q82
flutter build web vert. Un seul helper, ImageCompressor, appelé par les
DEUX chemins d'upload de resources_screen — c'est le motif qui a fait
diverger Create et Upload côté serveur deux fois de suite : sur
StoragePath en C1, sur le pré-vol de quota en C3.

La compression se fait AVANT resourceCreate, pas avant l'upload. Le
contrôle de quota livré en C3 porte sur sizeBytes à la création : le
faire après aurait fait décider le serveur sur la taille du fichier
d'origine, et compté au quota une image qui n'existe pas. Un quota qui
compte 12x trop se remplit 12x trop vite.

Deux écarts assumés par rapport à l'énoncé « 2560 px / JPEG q82 » :

- Un PNG à canal alpha reste un PNG. Le passer en JPEG remplirait la
  transparence de noir, ce qui abîmerait logos et filigranes. Le
  redimensionnement s'applique dans les deux cas ; seul l'encodage
  diffère, et le type MIME suit — sinon Firebase servirait un JPEG
  étiqueté PNG.
- Si le ré-encodage produit un fichier plus gros que l'original — ce
  qui arrive sur une petite image déjà bien encodée — l'original est
  conservé. Un échec de décodage renvoie aussi l'original plutôt que
  de bloquer l'upload.

Défaut préexistant corrigé au passage : le second chemin d'upload ne
renseignait sizeBytes ni avant ni après. Toutes les ressources créées
par ce chemin comptent donc 0 octet au quota sur l'existant — même
famille que ce que C1 et C3 ont trouvé côté serveur, et un argument de
plus pour le backfill C2.

image 4.2.0 déclarée explicitement : elle était déjà présente en
transitif, dépendre d'un hasard de résolution pour une fonction
utilisateur n'est pas tenable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 15:52:14 +02:00

168 lines
5.2 KiB
YAML

name: manager_app
description: A new Flutter application.
# The following line prevents the package from being accidentally published to
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 3.0.0+10
environment:
sdk: ">=3.1.0 <4.0.0"
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
rxdart:
provider:
auto_size_text:
#flutter_colorpicker: ^1.0.3
flutter_hsvcolor_picker: ^1.5.0
multiselect_formfield: ^0.1.7
material_segmented_control: ^5.0.0
convert: ^3.1.1
collection: any
#filepicker_windows: ^2.0.0
file_picker: ^6.1.1
image: ^4.2.0 # compression des images à l'upload (C4) — était déjà là en transitif
flare_flutter: ^3.0.1
flutter_svg: ^2.2.1
#dart_vlc: ^0.0.6
#video_player: ^2.1.1
drag_and_drop_lists: ^0.3.2
#path_provider: ^2.0.2
encrypt: ^5.0.3
qr_flutter: ^4.1.0
just_audio: ^0.9.42
just_audio_web: ^0.4.13
pdf: ^3.10.4
multi_select_flutter: ^4.1.3
youtube_player_iframe: ^5.0.0
location_picker_flutter_map: ^3.0.1
flutter_map: ^6.2.1
latlong2: ^0.9.1
go_router: ^16.2.0
#msix: ^2.1.3
#window_size:
# git:
# url: git://github.com/google/flutter-desktop-embedding.git
# path: plugins/window_size
# ref: 927f8cbc09b35d85245c095f2db8df9b186f6618
password_credential: ^0.3.2
diacritic: ^0.1.4
pasteboard: ^0.2.0
package_info_plus: ^4.2.0
manager_api_new:
path: manager_api_new
myinfomate_layout:
path: myinfomate_layout
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.6
flutter_quill: 11.5.1
vsc_quill_delta_to_html: ^1.0.5
flutter_quill_delta_from_html: ^1.5.3
html: ^0.15.6
responsive_framework: ^1.4.0
tab_container: ^2.0.0
flutter_widget_from_html: ^0.15.3
firebase_storage: ^12.0.1
firebase_core: ^3.1.0
fl_chart: ^0.69.0
toastification: ^2.3.0
http: ^1.4.0
#another_flushbar: ^1.12.30
dependency_overrides:
intl: ^0.20.2
dev_dependencies:
flutter_test:
sdk: flutter
build_runner:
openapi_generator: ^6.1.0
flutter_web_plugins:
sdk: flutter
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec
# The following section is specific to Flutter.
flutter:
# The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in
# the material Icons class.
generate: true
uses-material-design: true
# To add assets to your application, add an assets section, like this:
assets:
- assets/images/
- assets/animations/
- assets/files/
- assets/files/policy_text.text
- assets/config/
- assets/fonts/
msix_config:
display_name: Manager
publisher_name: Manager-App
identity_name: Unov.Manager
msix_version: 1.0.0.0
certificate_path: C:/Users/Thomas Fransolet/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/msix-2.1.3/lib/assets/test_certificate.pfx
certificate_password: 1234
certificate_subject: CN=Unov
logo_path: C:\Users\Thomas Fransolet\Downloads\download.png
start_menu_icon_path: C:\Users\Thomas Fransolet\Downloads\download.png
tile_icon_path: C:\Users\Thomas Fransolet\Downloads\download.png
icons_background_color: ffffff
architecture: x64
capabilities: 'internetClient'
fonts:
- family: OpenSans
fonts:
- asset: fonts/OpenSans-Medium.ttf
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware.
# For details regarding adding assets from package dependencies, see
# https://flutter.dev/assets-and-images/#from-packages
# To add custom fonts to your application, add a fonts section here,
# in this "flutter" section. Each entry in this list should have a
# "family" key with the font family name, and a "fonts" key with a
# list giving the asset and other descriptors for the font. For
# example:
# fonts:
# - family: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts from package dependencies,
# see https://flutter.dev/custom-fonts/#from-packages