Post #2966
299

FL @flutterpulse
Showing posts older than #2967 · Back to latest

// кто читает
accessFilter: (user, model) => user.id == model.ownerId
// кто пишет
allowSave: (user, model) => user.role == 'admin'
// валидация
validateSave: (model) => model.amount > 0
// в той же транзакции
beforeSaveTransaction: (model, tx) => tx.createAuditLog(model)ref.watchModelList<Booking>()watchModelList, сессии, переживающие рестарт, умная обработка ошибок.DwButton. UI-кит приезжает исходником — и дальше он твой.dartway create — проект за секунды), линты/чекер конвенций, опционально Telegram Mini Apps, мост в DartWay Studio.UserProfile — в твоей базе, с твоими полями и ролями. Не «расширь наш UserInfo», не форк модуля. Чужую модель не расширить — форк тащится через каждое обновление.SwipeableActionTile — физика свайпов с пружинистым откликом, поддержкой двух сторон, инерцией и тактильной отдачей. Готовый к кастомизации через SwipeableActionTileStyle.detectFileTypeFromPathOrBlob теперь читает только первые 512 байт через стримы — нет OOM на больших файлах и ускорено определение..gz), Ogg (.ogg, .ogv), FLAC (.flac).FileMagicNumber.registerCustomType для динамической регистрации своих MIME, расширений и сигнатур.mime обновлён до ^2.0.0 — устранены конфликты с Firebase и pdf_combiner.allOf, anyOf, $ref), с понятными ошибками валидации.SchemaRegistry — теперь можно управлять ссылками на схемы при валидации компонентов.ChatMessage, Part, ToolDefinition) для кросспровайдерных GenAI-приложений на Dart.print на log для корректного логирования.package:a2ui_core — типы сообщений (A2uiMessage, CreateSurface и др.) теперь оттуда.SurfaceController.store и DataModelStore удалены; доступ к модели через contextFor(id).dataModel.SurfaceDefinition.validate стал асинхронным (поддержка $ref через SchemaRegistry).PromptBuilder методы стали асинхронными (createChat, createCustom).DataModel стала строже (брасывает исключения, заполняет пропуски в списках null).
UserProfile — это их UserInfo. Таблицы — их таблицы. Расширить нельзя. Два пути: городить костыли с параллельными таблицами и склейками 🛠️ или форкать модуль. А форк — это навсегда: тащи его через каждое обновление фреймворка. Ад поддержки чистой воды. 😱UserProfile, в твоей базе, с твоими полями (роли, аватар, доменная логика). Нужно поле — добавил поле. Никаких форков. ✨devtools_extensions.dart (без dart:io) и devtools_extensions_io.dart (с dart:io). Версионирование теперь отделено от devtools_app.UIScene на iOS (фикс работы в мультиоконном режиме).AirshipEmbeddedView добавлен параметр selection для приоритизации отображения. В EmbeddedInfo появились instanceId, priority, extras.flush() в SSHSocket, SSHClient и SSHChannel для принудительной отправки буферизованных данных (#183).tools.ozone.queue.defs: поля reportTypes и subjectTypes стали опциональными. tools.ozone.report.defs: добавлено поле isAutomated в reportView. Обновлены лексиконы.ChangeNotifier, ValueNotifier или родным MinNotifier (с жизненным циклом onInit/onReady). Встроенный сервис-локатор MinService и провайдеры с авто-диспоузом.
video_player, flick_video_player и др. Работает через локальный прокси: качает и отдаёт сегменты одновременно, умеет префетчить, резюмить загрузки и игнорировать токены в URL.416 (Range Not Satisfiable) при запросе уже закешированных диапазонов.AtsStreamExitStructureType добавлен constant.number — позволяет отправлять значения ATAK как нативные JSON-числа, а не строки.Legacy codebase. Not maintained. — мигрируйте на актуальные альтернативы.cache-first (мгновенный старт с токеном из кэша, фоновая валидация). Web: редирект через status-driven redirect.html — убраны мигания и баги с историей. Событие OidcTokenRefreshFailedEvent — ошибки рефреша не теряются. TTL-кэш Discovery-документа и контроль валидности токенов.OidcTokenRefreshFailedEvent. Фиксы: защита PKCE code_verifier, поддержка expectedIssuer для Entra multi-tenant, отправка dpop_jkt, парсинг ошибок deleteClientConfiguration.atproto поднята до 1.7.0. Появился bsky.atproto.sync.subscribeReposAsMessages() — удобная подписка на Firehose, отдающая расшифрованные типизированные сообщения вместо сырых кадров.
.dart. Мы узнаем, как сделать так, чтобы импорты сортировались и удалялись автоматически, если не используются. 🤔settings.json:
“editor.codeActionsOnSave”: {
“source.organizeImports”: true
}
analysis_options.yaml:
linter:
rules:
- directives_ordering
linter:
rules:
directives_ordering: true
import ‘dart:async’;
import ‘package:flutter/material.dart’;
import ‘package:flutter_bloc/flutter_bloc.dart’;
import ‘package:my_app/common/widgets.dart’;
import ‘widgets/app_bar.dart’;
import ‘../../navigation.dart’;

