feat:增加hive模块
This commit is contained in:
@@ -1,12 +1,28 @@
|
|||||||
import 'package:flisp_app/provider/app_provider.dart';
|
import 'package:flisp_app/provider/app_provider.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||||
|
import 'package:hive_flutter/adapters.dart';
|
||||||
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import 'layout/main_screen.dart';
|
import 'layout/main_screen.dart';
|
||||||
|
import 'models/todo.dart';
|
||||||
import 'provider/todo_provider.dart';
|
import 'provider/todo_provider.dart';
|
||||||
|
|
||||||
void main() {
|
void main() async{
|
||||||
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
// 初始化Hive
|
||||||
|
await Hive.initFlutter();
|
||||||
|
|
||||||
|
// 注册适配器
|
||||||
|
Hive.registerAdapter(TodoAdapter());
|
||||||
|
|
||||||
|
// 打开Box
|
||||||
|
await Hive.openBox<Todo>('todos');
|
||||||
|
|
||||||
|
final appDir = await getApplicationDocumentsDirectory();
|
||||||
|
print('📁 Hive数据库路径: ${appDir.path}');
|
||||||
|
|
||||||
runApp(const MyApp());
|
runApp(const MyApp());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,48 +1,81 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hive/hive.dart';
|
||||||
|
|
||||||
class TodoItem {
|
part 'todo.g.dart';
|
||||||
num id;
|
|
||||||
String title;
|
|
||||||
String content;
|
|
||||||
bool isCompleted;
|
|
||||||
DateTime? dueDate;
|
|
||||||
TodoPriority priority;
|
|
||||||
|
|
||||||
TodoItem({
|
@HiveType(typeId: 0)
|
||||||
required this.id,
|
class Todo extends HiveObject {
|
||||||
|
@HiveField(0)
|
||||||
|
late int id;
|
||||||
|
|
||||||
|
@HiveField(1)
|
||||||
|
late String title;
|
||||||
|
|
||||||
|
@HiveField(2)
|
||||||
|
late String content;
|
||||||
|
|
||||||
|
@HiveField(3)
|
||||||
|
late bool isCompleted;
|
||||||
|
|
||||||
|
@HiveField(4)
|
||||||
|
late DateTime? dueDate;
|
||||||
|
|
||||||
|
@HiveField(5)
|
||||||
|
late int priorityIndex;
|
||||||
|
|
||||||
|
@HiveField(6)
|
||||||
|
late DateTime createTime;
|
||||||
|
|
||||||
|
@HiveField(7)
|
||||||
|
late DateTime updateTime;
|
||||||
|
|
||||||
|
TodoPriority get priority => TodoPriority.values[priorityIndex];
|
||||||
|
set priority(TodoPriority value) => priorityIndex = value.index;
|
||||||
|
|
||||||
|
Todo({
|
||||||
|
int? id,
|
||||||
required this.title,
|
required this.title,
|
||||||
required this.content,
|
this.content = '',
|
||||||
this.isCompleted = false,
|
this.isCompleted = false,
|
||||||
this.dueDate,
|
this.dueDate,
|
||||||
this.priority = TodoPriority.medium,
|
TodoPriority priority = TodoPriority.medium,
|
||||||
});
|
DateTime? createTime,
|
||||||
|
DateTime? updateTime,
|
||||||
|
}) {
|
||||||
|
// 简单时间戳ID
|
||||||
|
this.id = id ?? DateTime.now().millisecondsSinceEpoch;
|
||||||
|
this.priorityIndex = priority.index;
|
||||||
|
this.createTime = createTime ?? DateTime.now();
|
||||||
|
this.updateTime = updateTime ?? DateTime.now();
|
||||||
|
}
|
||||||
|
|
||||||
TodoItem copyWith({
|
Todo copyWith({
|
||||||
num? id,
|
|
||||||
String? title,
|
String? title,
|
||||||
String? content,
|
String? content,
|
||||||
bool? isCompleted,
|
bool? isCompleted,
|
||||||
DateTime? dueDate,
|
DateTime? dueDate,
|
||||||
TodoPriority? priority,
|
TodoPriority? priority,
|
||||||
}) {
|
}) {
|
||||||
return TodoItem(
|
return Todo(
|
||||||
id: id ?? this.id,
|
id: id,
|
||||||
title: title ?? this.title,
|
title: title ?? this.title,
|
||||||
content: content ?? this.content,
|
content: content ?? this.content,
|
||||||
isCompleted: isCompleted ?? this.isCompleted,
|
isCompleted: isCompleted ?? this.isCompleted,
|
||||||
dueDate: dueDate ?? this.dueDate,
|
dueDate: dueDate ?? this.dueDate,
|
||||||
priority: priority ?? this.priority,
|
priority: priority ?? this.priority,
|
||||||
|
createTime: createTime,
|
||||||
|
updateTime: DateTime.now(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static TodoItem getEmpty() {
|
static Todo getEmpty() {
|
||||||
return TodoItem(
|
return Todo(
|
||||||
id: 0,
|
id: 0,
|
||||||
title: '',
|
title: '',
|
||||||
content: '',
|
content: '',
|
||||||
isCompleted: false,
|
isCompleted: false,
|
||||||
dueDate: null,
|
dueDate: null,
|
||||||
priority: TodoPriority.medium,
|
priority: TodoPriority.medium,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
61
lib/models/todo.g.dart
Normal file
61
lib/models/todo.g.dart
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
|
||||||
|
part of 'todo.dart';
|
||||||
|
|
||||||
|
// **************************************************************************
|
||||||
|
// TypeAdapterGenerator
|
||||||
|
// **************************************************************************
|
||||||
|
|
||||||
|
class TodoAdapter extends TypeAdapter<Todo> {
|
||||||
|
@override
|
||||||
|
final int typeId = 0;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Todo read(BinaryReader reader) {
|
||||||
|
final numOfFields = reader.readByte();
|
||||||
|
final fields = <int, dynamic>{
|
||||||
|
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
|
||||||
|
};
|
||||||
|
return Todo(
|
||||||
|
id: fields[0] as int?,
|
||||||
|
title: fields[1] as String,
|
||||||
|
content: fields[2] as String,
|
||||||
|
isCompleted: fields[3] as bool,
|
||||||
|
dueDate: fields[4] as DateTime?,
|
||||||
|
createTime: fields[6] as DateTime?,
|
||||||
|
updateTime: fields[7] as DateTime?,
|
||||||
|
)..priorityIndex = fields[5] as int;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void write(BinaryWriter writer, Todo obj) {
|
||||||
|
writer
|
||||||
|
..writeByte(8)
|
||||||
|
..writeByte(0)
|
||||||
|
..write(obj.id)
|
||||||
|
..writeByte(1)
|
||||||
|
..write(obj.title)
|
||||||
|
..writeByte(2)
|
||||||
|
..write(obj.content)
|
||||||
|
..writeByte(3)
|
||||||
|
..write(obj.isCompleted)
|
||||||
|
..writeByte(4)
|
||||||
|
..write(obj.dueDate)
|
||||||
|
..writeByte(5)
|
||||||
|
..write(obj.priorityIndex)
|
||||||
|
..writeByte(6)
|
||||||
|
..write(obj.createTime)
|
||||||
|
..writeByte(7)
|
||||||
|
..write(obj.updateTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode => typeId.hashCode;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) =>
|
||||||
|
identical(this, other) ||
|
||||||
|
other is TodoAdapter &&
|
||||||
|
runtimeType == other.runtimeType &&
|
||||||
|
typeId == other.typeId;
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:flisp_app/provider/todo_provider.dart';
|
import 'package:flisp_app/provider/todo_provider.dart';
|
||||||
|
import 'package:flisp_app/service/todo_service.dart';
|
||||||
import 'package:flisp_app/widgets/awesome_dialog.dart';
|
import 'package:flisp_app/widgets/awesome_dialog.dart';
|
||||||
import 'package:flisp_app/widgets/todo_widget.dart';
|
import 'package:flisp_app/widgets/todo_widget.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -19,13 +20,15 @@ class TodoPage extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class TodoPageState extends State<TodoPage> {
|
class TodoPageState extends State<TodoPage> {
|
||||||
|
final TodoService todoService = TodoService();
|
||||||
|
|
||||||
// 待办事项列表
|
// 待办事项列表
|
||||||
final List<TodoItem> _todos = [];
|
late List<Todo> _todos = [];
|
||||||
|
|
||||||
TodoTab _currentTab = TodoTab.all;
|
TodoTab _currentTab = TodoTab.all;
|
||||||
|
|
||||||
// 获取过滤后的待办事项
|
// 获取过滤后的待办事项
|
||||||
List<TodoItem> get _activeTodos {
|
List<Todo> get _activeTodos {
|
||||||
return getActiveTodos(_currentTab, _todos);
|
return getActiveTodos(_currentTab, _todos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,6 +37,38 @@ class TodoPageState extends State<TodoPage> {
|
|||||||
_showTodoDialog(false, null);
|
_showTodoDialog(false, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
|
||||||
|
// _testAddTodo();
|
||||||
|
_testQueryTodos();
|
||||||
|
}
|
||||||
|
|
||||||
|
void _testQueryTodos() {
|
||||||
|
try {
|
||||||
|
_todos = todoService.getAllTodos();
|
||||||
|
} catch (e) {
|
||||||
|
print("失败");
|
||||||
|
print(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _testAddTodo() async {
|
||||||
|
try {
|
||||||
|
// final newTodo = await todoService.addTodo(
|
||||||
|
// title: '测试待办事项',
|
||||||
|
// content: '这是一个测试内容',
|
||||||
|
// priority: TodoPriority.high,
|
||||||
|
// dueDate: DateTime.now().add(Duration(days: 3)),
|
||||||
|
// );
|
||||||
|
print("成功");
|
||||||
|
} catch (e) {
|
||||||
|
print("失败");
|
||||||
|
print(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return buildBody(
|
return buildBody(
|
||||||
@@ -86,7 +121,7 @@ class TodoPageState extends State<TodoPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 显示对话框
|
// 显示对话框
|
||||||
void _showTodoDialog(bool isEditing, TodoItem? todo) {
|
void _showTodoDialog(bool isEditing, Todo? todo) {
|
||||||
final todoProvider = Provider.of<TodoProvider>(context, listen: false);
|
final todoProvider = Provider.of<TodoProvider>(context, listen: false);
|
||||||
|
|
||||||
if (isEditing) {
|
if (isEditing) {
|
||||||
@@ -113,7 +148,7 @@ class TodoPageState extends State<TodoPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 保存待办事项
|
// 保存待办事项
|
||||||
void _saveTodo(bool isEditing, TodoItem todo) {
|
void _saveTodo(bool isEditing, Todo todo) {
|
||||||
final store = Provider.of<TodoProvider>(context, listen: false);
|
final store = Provider.of<TodoProvider>(context, listen: false);
|
||||||
|
|
||||||
setState(() {
|
setState(() {
|
||||||
|
|||||||
@@ -2,16 +2,16 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flisp_app/models/todo.dart';
|
import 'package:flisp_app/models/todo.dart';
|
||||||
|
|
||||||
class TodoProvider with ChangeNotifier {
|
class TodoProvider with ChangeNotifier {
|
||||||
TodoItem _formItem = TodoItem.getEmpty();
|
Todo _formItem = Todo.getEmpty();
|
||||||
|
|
||||||
TodoItem get formItem => _formItem;
|
Todo get formItem => _formItem;
|
||||||
|
|
||||||
void resetForm() {
|
void resetForm() {
|
||||||
_formItem = TodoItem.getEmpty();
|
_formItem = Todo.getEmpty();
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
void initForm(TodoItem todo) {
|
void initForm(Todo todo) {
|
||||||
_formItem.title = todo.title;
|
_formItem.title = todo.title;
|
||||||
_formItem.content = todo.content ?? '';
|
_formItem.content = todo.content ?? '';
|
||||||
_formItem.dueDate = todo.dueDate;
|
_formItem.dueDate = todo.dueDate;
|
||||||
|
|||||||
24
lib/service/todo_service.dart
Normal file
24
lib/service/todo_service.dart
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import 'package:flisp_app/models/todo.dart';
|
||||||
|
import 'package:hive_flutter/hive_flutter.dart';
|
||||||
|
|
||||||
|
class TodoService {
|
||||||
|
static const String boxName = 'todos';
|
||||||
|
|
||||||
|
Box<Todo> get box => Hive.box<Todo>(boxName);
|
||||||
|
|
||||||
|
Future<void> addTodo(Todo todo) async {
|
||||||
|
await box.add(todo);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Todo> getAllTodos() {
|
||||||
|
return box.values.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> updateTodo(Todo todo) async {
|
||||||
|
await todo.save();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> deleteTodo(Todo todo) async {
|
||||||
|
await todo.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:flisp_app/models/todo.dart';
|
import 'package:flisp_app/models/todo.dart';
|
||||||
|
|
||||||
List<TodoItem> getActiveTodos(TodoTab currentTab, List<TodoItem> todos) {
|
List<Todo> getActiveTodos(TodoTab currentTab, List<Todo> todos) {
|
||||||
switch (currentTab) {
|
switch (currentTab) {
|
||||||
case TodoTab.active:
|
case TodoTab.active:
|
||||||
return todos.where((todo) => !todo.isCompleted).toList();
|
return todos.where((todo) => !todo.isCompleted).toList();
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import 'package:flisp_app/utils/date_utils.dart';
|
|||||||
class TodoForm extends StatefulWidget {
|
class TodoForm extends StatefulWidget {
|
||||||
final GlobalKey<FormBuilderState> formKey;
|
final GlobalKey<FormBuilderState> formKey;
|
||||||
final bool isEditing;
|
final bool isEditing;
|
||||||
final TodoItem? initialTodo;
|
final Todo? initialTodo;
|
||||||
|
|
||||||
const TodoForm({
|
const TodoForm({
|
||||||
super.key,
|
super.key,
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:toggle_switch/toggle_switch.dart';
|
import 'package:toggle_switch/toggle_switch.dart';
|
||||||
|
|
||||||
// 统计卡片
|
// 统计卡片
|
||||||
Widget buildStatsCard(List<TodoItem> todos) {
|
Widget buildStatsCard(List<Todo> todos) {
|
||||||
int totalCount = todos.length;
|
int totalCount = todos.length;
|
||||||
|
|
||||||
int activeCount = todos.where((todo) => !todo.isCompleted).length;
|
int activeCount = todos.where((todo) => !todo.isCompleted).length;
|
||||||
@@ -70,9 +70,9 @@ Widget buildTabs({
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget buildTodoList({
|
Widget buildTodoList({
|
||||||
required List<TodoItem> todos,
|
required List<Todo> todos,
|
||||||
required ValueChanged<String> onToggleTodo,
|
required ValueChanged<String> onToggleTodo,
|
||||||
required ValueChanged<TodoItem> onEditTodo,
|
required ValueChanged<Todo> onEditTodo,
|
||||||
}) {
|
}) {
|
||||||
return ListView.separated(
|
return ListView.separated(
|
||||||
itemCount: todos.length,
|
itemCount: todos.length,
|
||||||
@@ -89,9 +89,9 @@ Widget buildTodoList({
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildTodoItem({
|
Widget _buildTodoItem({
|
||||||
required TodoItem todo,
|
required Todo todo,
|
||||||
required ValueChanged<String> onToggle,
|
required ValueChanged<String> onToggle,
|
||||||
required ValueChanged<TodoItem> onEdit,
|
required ValueChanged<Todo> onEdit,
|
||||||
}) {
|
}) {
|
||||||
return buildCard(
|
return buildCard(
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
@@ -113,7 +113,7 @@ Widget _buildTodoItem({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildTodoTitle(TodoItem todo) {
|
Widget _buildTodoTitle(Todo todo) {
|
||||||
return Text(
|
return Text(
|
||||||
todo.title,
|
todo.title,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
@@ -125,7 +125,7 @@ Widget _buildTodoTitle(TodoItem todo) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 构建待办事项副标题
|
// 构建待办事项副标题
|
||||||
Widget? _buildTodoSubtitle(TodoItem todo) {
|
Widget? _buildTodoSubtitle(Todo todo) {
|
||||||
final isOverdue =
|
final isOverdue =
|
||||||
todo.dueDate != null &&
|
todo.dueDate != null &&
|
||||||
todo.dueDate!.isBefore(DateTime.now()) &&
|
todo.dueDate!.isBefore(DateTime.now()) &&
|
||||||
|
|||||||
@@ -5,10 +5,12 @@
|
|||||||
import FlutterMacOS
|
import FlutterMacOS
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
|
import path_provider_foundation
|
||||||
import rive_native
|
import rive_native
|
||||||
import shared_preferences_foundation
|
import shared_preferences_foundation
|
||||||
|
|
||||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||||
|
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
||||||
RiveNativePlugin.register(with: registry.registrar(forPlugin: "RiveNativePlugin"))
|
RiveNativePlugin.register(with: registry.registrar(forPlugin: "RiveNativePlugin"))
|
||||||
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
|
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
|
||||||
}
|
}
|
||||||
|
|||||||
365
pubspec.lock
365
pubspec.lock
@@ -1,6 +1,27 @@
|
|||||||
# Generated by pub
|
# Generated by pub
|
||||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||||
packages:
|
packages:
|
||||||
|
_fe_analyzer_shared:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: _fe_analyzer_shared
|
||||||
|
sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "76.0.0"
|
||||||
|
_macros:
|
||||||
|
dependency: transitive
|
||||||
|
description: dart
|
||||||
|
source: sdk
|
||||||
|
version: "0.3.3"
|
||||||
|
analyzer:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: analyzer
|
||||||
|
sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "6.11.0"
|
||||||
args:
|
args:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -33,6 +54,70 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.2"
|
version: "2.1.2"
|
||||||
|
build:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: build
|
||||||
|
sha256: "51dc711996cbf609b90cbe5b335bbce83143875a9d58e4b5c6d3c4f684d3dda7"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.5.4"
|
||||||
|
build_config:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: build_config
|
||||||
|
sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.1.2"
|
||||||
|
build_daemon:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: build_daemon
|
||||||
|
sha256: "409002f1adeea601018715d613115cfaf0e31f512cb80ae4534c79867ae2363d"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "4.1.0"
|
||||||
|
build_resolvers:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: build_resolvers
|
||||||
|
sha256: ee4257b3f20c0c90e72ed2b57ad637f694ccba48839a821e87db762548c22a62
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.5.4"
|
||||||
|
build_runner:
|
||||||
|
dependency: "direct dev"
|
||||||
|
description:
|
||||||
|
name: build_runner
|
||||||
|
sha256: "382a4d649addbfb7ba71a3631df0ec6a45d5ab9b098638144faf27f02778eb53"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.5.4"
|
||||||
|
build_runner_core:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: build_runner_core
|
||||||
|
sha256: "85fbbb1036d576d966332a3f5ce83f2ce66a40bea1a94ad2d5fc29a19a0d3792"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "9.1.2"
|
||||||
|
built_collection:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: built_collection
|
||||||
|
sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "5.1.1"
|
||||||
|
built_value:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: built_value
|
||||||
|
sha256: a30f0a0e38671e89a492c44d005b5545b830a961575bbd8336d42869ff71066d
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "8.12.0"
|
||||||
characters:
|
characters:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -41,6 +126,14 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.4.0"
|
version: "1.4.0"
|
||||||
|
checked_yaml:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: checked_yaml
|
||||||
|
sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.3"
|
||||||
clock:
|
clock:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -49,6 +142,14 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.2"
|
version: "1.1.2"
|
||||||
|
code_builder:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: code_builder
|
||||||
|
sha256: "11654819532ba94c34de52ff5feb52bd81cba1de00ef2ed622fd50295f9d4243"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "4.11.0"
|
||||||
collection:
|
collection:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -57,6 +158,22 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.19.1"
|
version: "1.19.1"
|
||||||
|
convert:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: convert
|
||||||
|
sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "3.1.2"
|
||||||
|
crypto:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: crypto
|
||||||
|
sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.7"
|
||||||
cupertino_icons:
|
cupertino_icons:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -65,6 +182,14 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.8"
|
version: "1.0.8"
|
||||||
|
dart_style:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: dart_style
|
||||||
|
sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.3.8"
|
||||||
fake_async:
|
fake_async:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -89,6 +214,14 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "7.0.1"
|
version: "7.0.1"
|
||||||
|
fixnum:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: fixnum
|
||||||
|
sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.1.1"
|
||||||
flutter:
|
flutter:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description: flutter
|
description: flutter
|
||||||
@@ -141,6 +274,22 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.0.1"
|
version: "10.0.1"
|
||||||
|
frontend_server_client:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: frontend_server_client
|
||||||
|
sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "4.0.0"
|
||||||
|
glob:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: glob
|
||||||
|
sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.3"
|
||||||
graphs:
|
graphs:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -149,6 +298,30 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.3.2"
|
version: "2.3.2"
|
||||||
|
hive:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: hive
|
||||||
|
sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.2.3"
|
||||||
|
hive_flutter:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: hive_flutter
|
||||||
|
sha256: dca1da446b1d808a51689fb5d0c6c9510c0a2ba01e22805d492c73b68e33eecc
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.1.0"
|
||||||
|
hive_generator:
|
||||||
|
dependency: "direct dev"
|
||||||
|
description:
|
||||||
|
name: hive_generator
|
||||||
|
sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.1"
|
||||||
http:
|
http:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -157,6 +330,14 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.5.0"
|
version: "1.5.0"
|
||||||
|
http_multi_server:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: http_multi_server
|
||||||
|
sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "3.2.2"
|
||||||
http_parser:
|
http_parser:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -173,6 +354,30 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.19.0"
|
version: "0.19.0"
|
||||||
|
io:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: io
|
||||||
|
sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.5"
|
||||||
|
js:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: js
|
||||||
|
sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "0.7.2"
|
||||||
|
json_annotation:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: json_annotation
|
||||||
|
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "4.9.0"
|
||||||
leak_tracker:
|
leak_tracker:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -205,6 +410,22 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.1.1"
|
version: "5.1.1"
|
||||||
|
logging:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: logging
|
||||||
|
sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.3.0"
|
||||||
|
macros:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: macros
|
||||||
|
sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "0.1.3-main.0"
|
||||||
matcher:
|
matcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -229,6 +450,14 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.16.0"
|
version: "1.16.0"
|
||||||
|
mime:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: mime
|
||||||
|
sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.0"
|
||||||
nested:
|
nested:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -237,6 +466,14 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.0"
|
version: "1.0.0"
|
||||||
|
package_config:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: package_config
|
||||||
|
sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.2.0"
|
||||||
path:
|
path:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -245,6 +482,30 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.1"
|
version: "1.9.1"
|
||||||
|
path_provider:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: path_provider
|
||||||
|
sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.5"
|
||||||
|
path_provider_android:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: path_provider_android
|
||||||
|
sha256: "3b4c1fc3aa55ddc9cd4aa6759984330d5c8e66aa7702a6223c61540dc6380c37"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.2.19"
|
||||||
|
path_provider_foundation:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: path_provider_foundation
|
||||||
|
sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.4.2"
|
||||||
path_provider_linux:
|
path_provider_linux:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -285,6 +546,14 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.8"
|
version: "2.1.8"
|
||||||
|
pool:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: pool
|
||||||
|
sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.5.2"
|
||||||
provider:
|
provider:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -293,6 +562,22 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.5+1"
|
version: "6.1.5+1"
|
||||||
|
pub_semver:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: pub_semver
|
||||||
|
sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.2.0"
|
||||||
|
pubspec_parse:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: pubspec_parse
|
||||||
|
sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.5.0"
|
||||||
rive:
|
rive:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -365,11 +650,43 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.1"
|
version: "2.4.1"
|
||||||
|
shelf:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: shelf
|
||||||
|
sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.4.2"
|
||||||
|
shelf_web_socket:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: shelf_web_socket
|
||||||
|
sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.0"
|
||||||
sky_engine:
|
sky_engine:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description: flutter
|
description: flutter
|
||||||
source: sdk
|
source: sdk
|
||||||
version: "0.0.0"
|
version: "0.0.0"
|
||||||
|
source_gen:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: source_gen
|
||||||
|
sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.5.0"
|
||||||
|
source_helper:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: source_helper
|
||||||
|
sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.3.5"
|
||||||
source_span:
|
source_span:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -394,6 +711,14 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.4"
|
version: "2.1.4"
|
||||||
|
stream_transform:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: stream_transform
|
||||||
|
sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.1"
|
||||||
string_scanner:
|
string_scanner:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -418,6 +743,14 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.4"
|
version: "0.7.4"
|
||||||
|
timing:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: timing
|
||||||
|
sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.2"
|
||||||
toggle_switch:
|
toggle_switch:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -450,6 +783,14 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "14.3.1"
|
version: "14.3.1"
|
||||||
|
watcher:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: watcher
|
||||||
|
sha256: "592ab6e2892f67760543fb712ff0177f4ec76c031f02f5b4ff8d3fc5eb9fb61a"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.1.4"
|
||||||
web:
|
web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -458,6 +799,22 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.1"
|
version: "1.1.1"
|
||||||
|
web_socket:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: web_socket
|
||||||
|
sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c"
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.1"
|
||||||
|
web_socket_channel:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: web_socket_channel
|
||||||
|
sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.3"
|
||||||
xdg_directories:
|
xdg_directories:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -466,6 +823,14 @@ packages:
|
|||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.0"
|
version: "1.1.0"
|
||||||
|
yaml:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: yaml
|
||||||
|
sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "3.1.3"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.7.0 <4.0.0"
|
dart: ">=3.7.0 <4.0.0"
|
||||||
flutter: ">=3.29.0"
|
flutter: ">=3.29.0"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
name: flisp_app
|
name: flisp_app
|
||||||
Reference in New Issue
Block a user