الباك إند: - تعيين أول أدمن صار يُنشئ المستخدم إن لم يوجد — كان يشترط دخولاً سابقاً، وهي بيضة ودجاجة تمنع الدخول إلى لوحة أي مستأجر جديد أصلاً. - OTP_DEV_MODE كان يفشل مفتوحاً (`!== 'false'`): غياب المتغيّر أو خطأ مطبعي يترك الإنتاج برمز ثابت يفتح كل حساب، ويحرس السحب المالي كذلك. صار `=== 'true'` في الإعداد وفي قارئَيه، مع تحذير عند الإقلاع. - N2: التحقّق من اللوغو عند الرفع (PNG/JPEG · 512+ · مربّع · سقف 5MB) عبر قراءة الترويسة بلا اعتمادية — بدل اكتشاف أيقونة ممطوطة بعد النشر. N3: السكربت يولّد build_config.dart بأعلام const (طبقات docs/22 §1.5)، ويضبط bundle IDs واسم التطبيق والأيقونات/splash، و--build يشغّل Shorebird. فلاتر: - docs/23: قانون مُلزِم للتطبيقين (البنية · Cubit · طبقة الشبكة · الأعلام). - السائق: أُزيل Dart القديم (GetX) مع الإبقاء على الأصيل والإضافات وشهادات التوقيع وShorebird وFirebase الخاص به، وأُعيد هيكلته مطابقاً للراكب. - طبقة الشبكة ترسل x-device-id وتجدّد التوكن عند 401 مرة واحدة فقط. - الحزم موحّدة بين التطبيقين، والـAPI https حصراً في الاثنين. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
85 lines
2.7 KiB
YAML
Executable File
85 lines
2.7 KiB
YAML
Executable File
# تطبيق السائق — أُعيد بناء طبقة Dart بالكامل (Cubit+Bloc، لا GetX).
|
|
# الاسم `sefer_driver` مُبقًى عمداً: تغييره يمسّ مراجع أصيلة قائمة.
|
|
# الحزم محكومة بجدول docs/23 §9 — إضافة حزمة خارجه تُوثَّق هناك أولاً.
|
|
name: sefer_driver
|
|
description: Tripz — تطبيق السائق
|
|
publish_to: "none"
|
|
|
|
version: 1.0.0+1
|
|
|
|
environment:
|
|
sdk: ">=3.5.0 <4.0.0"
|
|
|
|
dependencies:
|
|
flutter:
|
|
sdk: flutter
|
|
flutter_localizations:
|
|
sdk: flutter
|
|
|
|
# ---- الإضافات الأصيلة المُعاد استعمالها (docs/23 §7) — لا يُعاد بناؤها ----
|
|
secure_string_operations:
|
|
path: ./secure_string_operations
|
|
trip_overlay_plugin:
|
|
path: ./trip_overlay_plugin
|
|
bubble_head:
|
|
path: ./bubble-master
|
|
|
|
# ---- البنية المعتمدة (docs/23 §9) ----
|
|
flutter_bloc: ^9.1.1 # الحالة
|
|
equatable: ^2.0.7
|
|
get_it: ^8.0.3 # الحقن
|
|
dio: ^5.7.0 # الشبكة — نقطة النداء الوحيدة
|
|
go_router: ^14.6.2 # التنقّل
|
|
flutter_secure_storage: ^9.2.2 # التوكنات (لا SharedPreferences)
|
|
|
|
# ---- الخرائط: flutter_map + بلاطات انطلق، لا google_maps_flutter ----
|
|
flutter_map: ^7.0.2
|
|
latlong2: ^0.9.1
|
|
|
|
# ---- الزمن الحقيقي والإشعارات ----
|
|
socket_io_client: ^3.0.2
|
|
firebase_core: ^4.1.1
|
|
firebase_messaging: ^16.0.2
|
|
flutter_local_notifications: ^18.0.1
|
|
|
|
# ---- خاصّ بالسائق: الموقع في الخلفية والعرض الطافي (docs/23 §10) ----
|
|
geolocator: ^13.0.2
|
|
flutter_background_service: ^5.1.0
|
|
flutter_background_service_android: ^6.3.1
|
|
flutter_overlay_window: ^0.4.5
|
|
battery_plus: ^6.2.0 # متحكّم الموقع واعٍ للبطارية
|
|
wakelock_plus: ^1.2.10
|
|
vibration: ^3.1.2
|
|
|
|
# ---- أدوات مساعدة ----
|
|
device_info_plus: ^11.2.0 # بصمة الجهاز (x-device-id — docs/17 D2)
|
|
connectivity_plus: ^6.1.0
|
|
permission_handler: ^11.3.1
|
|
package_info_plus: ^8.1.2
|
|
image_picker: ^1.1.2 # صور الوثائق
|
|
local_auth: ^2.3.0 # حيوية/تحقّق السائق
|
|
url_launcher: ^6.3.1
|
|
intl: ^0.20.2
|
|
cupertino_icons: ^1.0.8
|
|
|
|
dev_dependencies:
|
|
flutter_test:
|
|
sdk: flutter
|
|
flutter_lints: ^6.0.0
|
|
flutter_launcher_icons: ^0.14.2 # يستدعيها سكربت التوليد (N3)
|
|
flutter_native_splash: ^2.4.3
|
|
|
|
flutter:
|
|
uses-material-design: true
|
|
assets:
|
|
- assets/
|
|
- assets/images/
|
|
- assets/fonts/
|
|
- assets/lang/
|
|
- shorebird.yaml
|
|
|
|
fonts:
|
|
- family: digit
|
|
fonts:
|
|
- asset: assets/fonts/digit.ttf
|