-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpubspec.yaml
More file actions
126 lines (109 loc) · 5.12 KB
/
Copy pathpubspec.yaml
File metadata and controls
126 lines (109 loc) · 5.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
name: notes_tech
description: "Notes Tech — notes Markdown chiffrées avec coffres par dossier, dictée vocale on-device et backlinks. 100 % local, zéro permission Internet."
publish_to: 'none'
version: 2.0.4+52
environment:
sdk: ^3.11.5
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
cupertino_icons: ^1.0.8
# State / DI
provider: ^6.1.2
# Storage : sqflite_sqlcipher embarque sa propre SQLite (avec FTS5),
# contrairement au sqflite "vanilla" qui dépend du SQLite système Android
# — certains OEM (Samsung) compilent SQLite sans FTS5.
# Le chiffrement at-rest (Argon2id KEK + clé scellée Keystore) sera
# activé en v0.5 avec le vault.
sqflite_sqlcipher: ^3.1.0
path: ^1.9.0
path_provider: ^2.1.4
shared_preferences: ^2.3.2
# Import de fichiers (modèle de dictée vocale, import/export)
file_picker: ^10.3.3
# Utils
uuid: ^4.5.1
intl: ^0.20.0
crypto: ^3.0.5
# Sécurité v0.5 — KEK 32 octets stockée via flutter_secure_storage,
# clé maître scellée par AndroidKeystore (hardware-backed sur S24+).
# v0.9.10 : migration 9.x → 10.x. Le backend 9.x (EncryptedSharedPreferences /
# Jetpack Crypto) est déprécié et non maintenu. La 10.x utilise ses propres
# ciphers (RSA-OAEP wrap + AES-256-GCM contenu) avec migration AUTOMATIQUE
# depuis 9.x via `migrateOnAlgorithmChange: true` (défaut).
# ⚠️ NE PAS bumper vers 11.x sans tester explicitement la persistance de
# la KEK SQLCipher : v11 retirera complètement le backend ESP, donc tout
# device qui n'aurait pas migré depuis 9.x perdrait sa KEK → notes illisibles.
# Avant v11 : ajouter un test E2E ou forcer un boot intermédiaire en 10.x.
flutter_secure_storage: ^10.0.0
# v0.6 — Speech-to-Text on-device (Whisper) via package partagé sibling.
# Pas de permission INTERNET ajoutée : l'utilisateur importe le modèle
# .bin manuellement (cf. VoiceSetupScreen), même pattern que Gemma.
# Même raison que files_tech_core ci-dessous : un chemin relatif rend l'application
# incompilable hors de l'arborescence de développement.
files_tech_voice:
git:
url: https://github.com/gitubpatrice/files_tech_voice.git
ref: dca1e1dadd97b8f5dff4351eabdff768fe8b05c3
# v0.9.7 — Helpers crypto partagés (SecretBytes : randomBytes, wipe,
# constantTimeEq) factorisés depuis pass_tech / read_files_tech.
# Dépendance git et non chemin relatif : `path: ../files_tech_core` ne résout que dans
# l'arborescence de développement. Hors de celle-ci — un clone du dépôt, la CI, le buildserver
# F-Droid — `pub get` échoue sur « could not find package files_tech_core ». L'application était
# donc incompilable par quiconque n'a pas les dépôts frères côte à côte, ce qui contredit le fait
# de publier les sources. Épinglé à un commit pour rester reproductible ; pass_tech procède ainsi
# depuis sa v2.6.0.
files_tech_core:
git:
url: https://github.com/gitubpatrice/files_tech_core.git
ref: 9d6734474aaa7dfa2c1dd726d0dab1a349ebdd0e
# v0.8 — Vault par dossier (Argon2id passphrase + AES-256-GCM par note).
# Le package `cryptography` (Dart pur, pas de natif additionnel)
# fournit Argon2id RFC 9106 et AesGcm via `package:cryptography/dart.dart`.
# On garde la constante `crypto: ^3.0.5` pour le SHA-256 streaming
# (vérification modèles ML, hash export) — usages distincts.
cryptography: ^2.7.0
# Lancer une URL HuggingFace dans le navigateur système (option B du
# flow voix v0.6) : c'est Chrome/Firefox/Brave qui télécharge le .bin
# dans `/Downloads/`, l'app n'a JAMAIS la permission INTERNET. Notes
# Tech ne fait que demander à l'OS d'ouvrir un lien.
url_launcher: ^6.3.0
# v0.7 — Export Markdown (sortie de secours, portabilité des notes).
# `share_plus` ouvre le sheet de partage Android pour transmettre le
# fichier (.md ou .zip) à n'importe quelle app : Drive, mail, USB, etc.
# `archive` produit un ZIP pure-Dart (pas de natif), arborescence
# par dossier conservée. Pas de permission Internet : c'est l'OS qui
# gère le transfert via Intent.
share_plus: ^10.0.0
archive: ^4.0.0
# v1.0 — Markdown rendu pour les pages légales (PRIVACY.{fr,en}.md,
# TERMS.{fr,en}.md). Identique aux autres apps Files Tech.
flutter_markdown: ^0.7.4
dev_dependencies:
flutter_test:
sdk: flutter
# Tests exécutés SUR L'APPAREIL. Indispensables ici : la chaîne de sécurité
# de cette app (SQLCipher, Keystore Android, Argon2id, triggers FTS5) ne
# s'instancie pas dans un test pure-Dart, et c'est précisément là que se
# logent les défauts — le bug qui déchiffrait une note de coffre à
# l'épinglage n'était visible qu'en écrivant dans la vraie base.
integration_test:
sdk: flutter
flutter_lints: ^6.0.0
image: ^4.3.0
flutter_launcher_icons: ^0.14.1
flutter_launcher_icons:
android: true
ios: false
image_path: "assets/icon/app_icon.png"
adaptive_icon_background: "#262660"
adaptive_icon_foreground: "assets/icon/app_icon.png"
flutter:
uses-material-design: true
generate: true
assets:
- assets/icon/app_icon.png
- assets/logo_damier.png
- assets/legal/