mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
opt.: sync immediately after changes (#577)
This commit is contained in:
@@ -4,16 +4,16 @@ import 'package:fl_lib/fl_lib.dart';
|
|||||||
import 'package:server_box/data/model/app/backup.dart';
|
import 'package:server_box/data/model/app/backup.dart';
|
||||||
import 'package:server_box/data/store/no_backup.dart';
|
import 'package:server_box/data/store/no_backup.dart';
|
||||||
|
|
||||||
const sync = Sync._();
|
const bakSync = BakSyncer._();
|
||||||
|
|
||||||
final class Sync extends SyncCfg {
|
final class BakSyncer extends SyncIface<Backup> {
|
||||||
const Sync._() : super();
|
const BakSyncer._() : super();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> saveToFile() => Backup.backup();
|
Future<void> saveToFile() => Backup.backup();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Mergeable> fromFile(String path) async {
|
Future<Backup> fromFile(String path) async {
|
||||||
final content = await File(path).readAsString();
|
final content = await File(path).readAsString();
|
||||||
return Backup.fromJsonString(content);
|
return Backup.fromJsonString(content);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:fl_lib/fl_lib.dart';
|
import 'package:fl_lib/fl_lib.dart';
|
||||||
|
import 'package:server_box/core/sync.dart';
|
||||||
import 'package:server_box/data/model/server/private_key_info.dart';
|
import 'package:server_box/data/model/server/private_key_info.dart';
|
||||||
import 'package:server_box/data/res/store.dart';
|
import 'package:server_box/data/res/store.dart';
|
||||||
|
|
||||||
@@ -18,12 +19,14 @@ class PrivateKeyProvider extends Provider {
|
|||||||
pkis.value.add(info);
|
pkis.value.add(info);
|
||||||
pkis.notify();
|
pkis.notify();
|
||||||
Stores.key.put(info);
|
Stores.key.put(info);
|
||||||
|
bakSync.sync(milliDelay: 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void delete(PrivateKeyInfo info) {
|
static void delete(PrivateKeyInfo info) {
|
||||||
pkis.value.removeWhere((e) => e.id == info.id);
|
pkis.value.removeWhere((e) => e.id == info.id);
|
||||||
pkis.notify();
|
pkis.notify();
|
||||||
Stores.key.delete(info);
|
Stores.key.delete(info);
|
||||||
|
bakSync.sync(milliDelay: 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void update(PrivateKeyInfo old, PrivateKeyInfo newInfo) {
|
static void update(PrivateKeyInfo old, PrivateKeyInfo newInfo) {
|
||||||
@@ -37,5 +40,6 @@ class PrivateKeyProvider extends Provider {
|
|||||||
Stores.key.put(newInfo);
|
Stores.key.put(newInfo);
|
||||||
}
|
}
|
||||||
pkis.notify();
|
pkis.notify();
|
||||||
|
bakSync.sync(milliDelay: 1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'package:computer/computer.dart';
|
|||||||
import 'package:dartssh2/dartssh2.dart';
|
import 'package:dartssh2/dartssh2.dart';
|
||||||
import 'package:fl_lib/fl_lib.dart';
|
import 'package:fl_lib/fl_lib.dart';
|
||||||
import 'package:server_box/core/extension/ssh_client.dart';
|
import 'package:server_box/core/extension/ssh_client.dart';
|
||||||
|
import 'package:server_box/core/sync.dart';
|
||||||
import 'package:server_box/core/utils/ssh_auth.dart';
|
import 'package:server_box/core/utils/ssh_auth.dart';
|
||||||
import 'package:server_box/data/model/app/error.dart';
|
import 'package:server_box/data/model/app/error.dart';
|
||||||
import 'package:server_box/data/model/app/shell_func.dart';
|
import 'package:server_box/data/model/app/shell_func.dart';
|
||||||
@@ -190,6 +191,7 @@ class ServerProvider extends Provider {
|
|||||||
Stores.setting.serverOrder.put(serverOrder.value);
|
Stores.setting.serverOrder.put(serverOrder.value);
|
||||||
_updateTags();
|
_updateTags();
|
||||||
refresh(spi: spi);
|
refresh(spi: spi);
|
||||||
|
bakSync.sync(milliDelay: 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void delServer(String id) {
|
static void delServer(String id) {
|
||||||
@@ -199,6 +201,7 @@ class ServerProvider extends Provider {
|
|||||||
Stores.setting.serverOrder.put(serverOrder.value);
|
Stores.setting.serverOrder.put(serverOrder.value);
|
||||||
Stores.server.delete(id);
|
Stores.server.delete(id);
|
||||||
_updateTags();
|
_updateTags();
|
||||||
|
bakSync.sync(milliDelay: 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void deleteAll() {
|
static void deleteAll() {
|
||||||
@@ -234,6 +237,7 @@ class ServerProvider extends Provider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
_updateTags();
|
_updateTags();
|
||||||
|
bakSync.sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _setServerState(VNode<Server> s, ServerConn ss) {
|
static void _setServerState(VNode<Server> s, ServerConn ss) {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:fl_lib/fl_lib.dart';
|
import 'package:fl_lib/fl_lib.dart';
|
||||||
|
import 'package:server_box/core/sync.dart';
|
||||||
import 'package:server_box/data/model/server/snippet.dart';
|
import 'package:server_box/data/model/server/snippet.dart';
|
||||||
import 'package:server_box/data/res/store.dart';
|
import 'package:server_box/data/res/store.dart';
|
||||||
|
|
||||||
@@ -44,6 +45,7 @@ class SnippetProvider extends Provider {
|
|||||||
snippets.notify();
|
snippets.notify();
|
||||||
Stores.snippet.put(snippet);
|
Stores.snippet.put(snippet);
|
||||||
_updateTags();
|
_updateTags();
|
||||||
|
bakSync.sync(milliDelay: 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void del(Snippet snippet) {
|
static void del(Snippet snippet) {
|
||||||
@@ -51,6 +53,7 @@ class SnippetProvider extends Provider {
|
|||||||
snippets.notify();
|
snippets.notify();
|
||||||
Stores.snippet.delete(snippet);
|
Stores.snippet.delete(snippet);
|
||||||
_updateTags();
|
_updateTags();
|
||||||
|
bakSync.sync(milliDelay: 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void update(Snippet old, Snippet newOne) {
|
static void update(Snippet old, Snippet newOne) {
|
||||||
@@ -60,6 +63,7 @@ class SnippetProvider extends Provider {
|
|||||||
Stores.snippet.delete(old);
|
Stores.snippet.delete(old);
|
||||||
Stores.snippet.put(newOne);
|
Stores.snippet.put(newOne);
|
||||||
_updateTags();
|
_updateTags();
|
||||||
|
bakSync.sync(milliDelay: 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void renameTag(String old, String newOne) {
|
static void renameTag(String old, String newOne) {
|
||||||
@@ -71,5 +75,6 @@ class SnippetProvider extends Provider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
_updateTags();
|
_updateTags();
|
||||||
|
bakSync.sync(milliDelay: 1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,35 +1,38 @@
|
|||||||
import 'package:fl_lib/fl_lib.dart';
|
import 'package:fl_lib/fl_lib.dart';
|
||||||
import 'package:server_box/data/store/container.dart';
|
import 'package:server_box/data/store/container.dart';
|
||||||
import 'package:server_box/data/store/history.dart';
|
import 'package:server_box/data/store/history.dart';
|
||||||
|
import 'package:server_box/data/store/no_backup.dart';
|
||||||
import 'package:server_box/data/store/private_key.dart';
|
import 'package:server_box/data/store/private_key.dart';
|
||||||
import 'package:server_box/data/store/server.dart';
|
import 'package:server_box/data/store/server.dart';
|
||||||
import 'package:server_box/data/store/setting.dart';
|
import 'package:server_box/data/store/setting.dart';
|
||||||
import 'package:server_box/data/store/snippet.dart';
|
import 'package:server_box/data/store/snippet.dart';
|
||||||
|
|
||||||
abstract final class Stores {
|
abstract final class Stores {
|
||||||
static final setting = SettingStore();
|
static final setting = SettingStore.instance;
|
||||||
static final server = ServerStore();
|
static final server = ServerStore.instance;
|
||||||
static final container = ContainerStore();
|
static final container = ContainerStore.instance;
|
||||||
static final history = HistoryStore();
|
static final key = PrivateKeyStore.instance;
|
||||||
static final key = PrivateKeyStore();
|
static final snippet = SnippetStore.instance;
|
||||||
static final snippet = SnippetStore();
|
static final history = HistoryStore.instance;
|
||||||
|
|
||||||
static final List<PersistentStore> all = [
|
/// All stores that need backup
|
||||||
setting,
|
static final List<PersistentStore> _allBackup = [
|
||||||
server,
|
SettingStore.instance,
|
||||||
container,
|
ServerStore.instance,
|
||||||
history,
|
ContainerStore.instance,
|
||||||
key,
|
PrivateKeyStore.instance,
|
||||||
snippet,
|
SnippetStore.instance,
|
||||||
|
HistoryStore.instance,
|
||||||
];
|
];
|
||||||
|
|
||||||
static Future<void> init() async {
|
static Future<void> init() async {
|
||||||
await Future.wait(all.map((store) => store.init()));
|
await Future.wait(_allBackup.map((store) => store.init()));
|
||||||
|
await NoBackupStore.instance.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
static int? get lastModTime {
|
static int? get lastModTime {
|
||||||
int? lastModTime = 0;
|
int? lastModTime = 0;
|
||||||
for (final store in all) {
|
for (final store in _allBackup) {
|
||||||
final last = store.box.lastModified ?? 0;
|
final last = store.box.lastModified ?? 0;
|
||||||
if (last > (lastModTime ?? 0)) {
|
if (last > (lastModTime ?? 0)) {
|
||||||
lastModTime = last;
|
lastModTime = last;
|
||||||
|
|||||||
@@ -5,7 +5,9 @@ import 'package:server_box/data/res/store.dart';
|
|||||||
const _keyConfig = 'providerConfig';
|
const _keyConfig = 'providerConfig';
|
||||||
|
|
||||||
class ContainerStore extends PersistentStore {
|
class ContainerStore extends PersistentStore {
|
||||||
ContainerStore() : super('docker');
|
ContainerStore._() : super('docker');
|
||||||
|
|
||||||
|
static final instance = ContainerStore._();
|
||||||
|
|
||||||
String? fetch(String? id) {
|
String? fetch(String? id) {
|
||||||
return box.get(id);
|
return box.get(id);
|
||||||
|
|||||||
@@ -46,7 +46,9 @@ class _MapHistory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class HistoryStore extends PersistentStore {
|
class HistoryStore extends PersistentStore {
|
||||||
HistoryStore() : super('history');
|
HistoryStore._() : super('history');
|
||||||
|
|
||||||
|
static final instance = HistoryStore._();
|
||||||
|
|
||||||
/// Paths that user has visited by 'Locate' button
|
/// Paths that user has visited by 'Locate' button
|
||||||
late final sftpGoPath = _ListHistory(box: box, name: 'sftpPath');
|
late final sftpGoPath = _ListHistory(box: box, name: 'sftpPath');
|
||||||
|
|||||||
@@ -3,7 +3,9 @@ import 'package:fl_lib/fl_lib.dart';
|
|||||||
import 'package:server_box/data/model/server/private_key_info.dart';
|
import 'package:server_box/data/model/server/private_key_info.dart';
|
||||||
|
|
||||||
class PrivateKeyStore extends PersistentStore {
|
class PrivateKeyStore extends PersistentStore {
|
||||||
PrivateKeyStore() : super('key');
|
PrivateKeyStore._() : super('key');
|
||||||
|
|
||||||
|
static final instance = PrivateKeyStore._();
|
||||||
|
|
||||||
void put(PrivateKeyInfo info) {
|
void put(PrivateKeyInfo info) {
|
||||||
box.put(info.id, info);
|
box.put(info.id, info);
|
||||||
|
|||||||
@@ -3,7 +3,9 @@ import 'package:fl_lib/fl_lib.dart';
|
|||||||
import 'package:server_box/data/model/server/server_private_info.dart';
|
import 'package:server_box/data/model/server/server_private_info.dart';
|
||||||
|
|
||||||
class ServerStore extends PersistentStore {
|
class ServerStore extends PersistentStore {
|
||||||
ServerStore() : super('server');
|
ServerStore._() : super('server');
|
||||||
|
|
||||||
|
static final instance = ServerStore._();
|
||||||
|
|
||||||
void put(Spi info) {
|
void put(Spi info) {
|
||||||
box.put(info.id, info);
|
box.put(info.id, info);
|
||||||
|
|||||||
@@ -7,7 +7,9 @@ import 'package:server_box/data/model/app/net_view.dart';
|
|||||||
import 'package:server_box/data/res/default.dart';
|
import 'package:server_box/data/res/default.dart';
|
||||||
|
|
||||||
class SettingStore extends PersistentStore {
|
class SettingStore extends PersistentStore {
|
||||||
SettingStore() : super('setting');
|
SettingStore._() : super('setting');
|
||||||
|
|
||||||
|
static final instance = SettingStore._();
|
||||||
|
|
||||||
// ------BEGIN------
|
// ------BEGIN------
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -3,7 +3,9 @@ import 'package:fl_lib/fl_lib.dart';
|
|||||||
import 'package:server_box/data/model/server/snippet.dart';
|
import 'package:server_box/data/model/server/snippet.dart';
|
||||||
|
|
||||||
class SnippetStore extends PersistentStore {
|
class SnippetStore extends PersistentStore {
|
||||||
SnippetStore() : super('snippet');
|
SnippetStore._() : super('snippet');
|
||||||
|
|
||||||
|
static final instance = SnippetStore._();
|
||||||
|
|
||||||
void put(Snippet snippet) {
|
void put(Snippet snippet) {
|
||||||
box.put(snippet.name, snippet);
|
box.put(snippet.name, snippet);
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ void _doPlatformRelated() async {
|
|||||||
// Plus 1 to avoid 0.
|
// Plus 1 to avoid 0.
|
||||||
Computer.shared.turnOn(workersCount: (serversCount / 3).round() + 1);
|
Computer.shared.turnOn(workersCount: (serversCount / 3).round() + 1);
|
||||||
|
|
||||||
sync.sync();
|
bakSync.sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
// It may contains some async heavy funcs.
|
// It may contains some async heavy funcs.
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ class BackupPage extends StatelessWidget {
|
|||||||
callback: (val) async {
|
callback: (val) async {
|
||||||
if (val) {
|
if (val) {
|
||||||
icloudLoading.value = true;
|
icloudLoading.value = true;
|
||||||
await sync.sync(rs: icloud);
|
await bakSync.sync(rs: icloud);
|
||||||
icloudLoading.value = false;
|
icloudLoading.value = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -147,7 +147,7 @@ class BackupPage extends StatelessWidget {
|
|||||||
callback: (val) async {
|
callback: (val) async {
|
||||||
if (val) {
|
if (val) {
|
||||||
webdavLoading.value = true;
|
webdavLoading.value = true;
|
||||||
await sync.sync(rs: webdav);
|
await bakSync.sync(rs: webdav);
|
||||||
webdavLoading.value = false;
|
webdavLoading.value = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ final class _AppBar extends CustomAppBar {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final placeholder = SizedBox(
|
final placeholder = SizedBox(
|
||||||
height: CustomAppBar.barHeight ?? 0 + MediaQuery.of(context).padding.top,
|
height: CustomAppBar.sysStatusBarHeight ?? 0 + MediaQuery.of(context).padding.top,
|
||||||
);
|
);
|
||||||
return selectIndex.listenVal(
|
return selectIndex.listenVal(
|
||||||
(idx) {
|
(idx) {
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ class SSHPageState extends State<SSHPage>
|
|||||||
_media.padding.top,
|
_media.padding.top,
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: EdgeInsets.only(
|
padding: EdgeInsets.only(
|
||||||
top: widget.notFromTab ? CustomAppBar.barHeight ?? 0 : 0,
|
top: widget.notFromTab ? CustomAppBar.sysStatusBarHeight ?? 0 : 0,
|
||||||
left: _horizonPadding,
|
left: _horizonPadding,
|
||||||
right: _horizonPadding,
|
right: _horizonPadding,
|
||||||
),
|
),
|
||||||
@@ -155,7 +155,7 @@ class SSHPageState extends State<SSHPage>
|
|||||||
showToolbar: isMobile,
|
showToolbar: isMobile,
|
||||||
viewOffset: Offset(
|
viewOffset: Offset(
|
||||||
2 * _horizonPadding,
|
2 * _horizonPadding,
|
||||||
CustomAppBar.barHeight ?? _media.padding.top,
|
CustomAppBar.sysStatusBarHeight ?? _media.padding.top,
|
||||||
),
|
),
|
||||||
hideScrollBar: false,
|
hideScrollBar: false,
|
||||||
focusNode: widget.focusNode,
|
focusNode: widget.focusNode,
|
||||||
|
|||||||
96
pubspec.lock
96
pubspec.lock
@@ -470,8 +470,8 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
path: "."
|
path: "."
|
||||||
ref: "v1.0.150"
|
ref: "v1.0.167"
|
||||||
resolved-ref: "53c92f43fff4cf643fc03e186a22268b64085e86"
|
resolved-ref: "655787d3766c3795c8185e261c15fae620f0e7f6"
|
||||||
url: "https://github.com/lppcg/fl_lib"
|
url: "https://github.com/lppcg/fl_lib"
|
||||||
source: git
|
source: git
|
||||||
version: "0.0.1"
|
version: "0.0.1"
|
||||||
@@ -575,14 +575,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.0.0"
|
version: "4.0.0"
|
||||||
functions_client:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: functions_client
|
|
||||||
sha256: e63f49cd3b41727f47b3bde284a11a4ac62839e0604f64077d4257487510e484
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.3.2"
|
|
||||||
glob:
|
glob:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -591,14 +583,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.2"
|
version: "2.1.2"
|
||||||
gotrue:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: gotrue
|
|
||||||
sha256: "8703db795511f69194fe77125a0c838bbb6befc2f95717b6e40331784a8bdecb"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.8.4"
|
|
||||||
graphs:
|
graphs:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -751,14 +735,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.8.0"
|
version: "6.8.0"
|
||||||
jwt_decode:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: jwt_decode
|
|
||||||
sha256: d2e9f68c052b2225130977429d30f187aa1981d789c76ad104a32243cfdebfbb
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "0.3.1"
|
|
||||||
leak_tracker:
|
leak_tracker:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -899,10 +875,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: mime
|
name: mime
|
||||||
sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2"
|
sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.5"
|
version: "1.0.6"
|
||||||
nested:
|
nested:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1056,14 +1032,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.5.1"
|
version: "1.5.1"
|
||||||
postgrest:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: postgrest
|
|
||||||
sha256: c4197238601c7c3103b03a4bb77f2050b17d0064bf8b968309421abdebbb7f0e
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.1.4"
|
|
||||||
pretty_qr_code:
|
pretty_qr_code:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1120,30 +1088,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.2.1"
|
version: "3.2.1"
|
||||||
realtime_client:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: realtime_client
|
|
||||||
sha256: d897a65ee3b1b5ddc1cf606f0b83792262d38fd5679c2df7e38da29c977513da
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.2.1"
|
|
||||||
retry:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: retry
|
|
||||||
sha256: "822e118d5b3aafed083109c72d5f484c6dc66707885e07c0fbcb8b986bba7efc"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "3.1.2"
|
|
||||||
rxdart:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: rxdart
|
|
||||||
sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "0.28.0"
|
|
||||||
screen_retriever:
|
screen_retriever:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1293,14 +1237,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.11.1"
|
version: "1.11.1"
|
||||||
storage_client:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: storage_client
|
|
||||||
sha256: "28c147c805304dbc2b762becd1fc26ee0cb621ace3732b9ae61ef979aab8b367"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.0.3"
|
|
||||||
stream_channel:
|
stream_channel:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1325,22 +1261,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.0"
|
version: "1.2.0"
|
||||||
supabase:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: supabase
|
|
||||||
sha256: "4ed1cf3298f39865c05b2d8557f92eb131a9b9af70e32e218672a0afce01a6bc"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.3.0"
|
|
||||||
supabase_flutter:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: supabase_flutter
|
|
||||||
sha256: ff6ba3048fd47d831fdc0027d3efb99346d99b95becfcb406562454bd9b229c5
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.6.0"
|
|
||||||
term_glyph:
|
term_glyph:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1664,14 +1584,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.2"
|
version: "3.1.2"
|
||||||
yet_another_json_isolate:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: yet_another_json_isolate
|
|
||||||
sha256: "47ed3900e6b0e4dfe378811a4402e85b7fc126a7daa94f840fef65ea9c8e46f4"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.0.2"
|
|
||||||
zmodem:
|
zmodem:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ dependencies:
|
|||||||
fl_lib:
|
fl_lib:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/lppcg/fl_lib
|
url: https://github.com/lppcg/fl_lib
|
||||||
ref: v1.0.150
|
ref: v1.0.167
|
||||||
|
|
||||||
dependency_overrides:
|
dependency_overrides:
|
||||||
# dartssh2:
|
# dartssh2:
|
||||||
|
|||||||
Reference in New Issue
Block a user