mirror of
https://gitlab.com/mysocialportal/fediverse-archiving-tools.git
synced 2024-10-18 08:53:31 +00:00
Merge branch 'mastodon-reader' into 'main'
Mastodon reader See merge request mysocialportal/fediverse-archiving-tools!8
This commit is contained in:
commit
4362d16ffc
23 changed files with 774 additions and 116 deletions
|
@ -9,7 +9,7 @@ import 'marker_data.dart';
|
|||
extension GeoSpatialPostExtensions on TimelineEntry {
|
||||
MarkerData toMarkerData(MapTransformer transformer, Color color) {
|
||||
final latLon = LatLng(locationData.latitude, locationData.longitude);
|
||||
final offset = transformer.fromLatLngToXYCoords(latLon);
|
||||
final offset = transformer.toOffset(latLon);
|
||||
return MarkerData(this, offset, color);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,9 +20,9 @@ class MapBounds {
|
|||
|
||||
static MapBounds computed(MapTransformer transformer) {
|
||||
final mapSize = transformer.constraints.biggest;
|
||||
final upperLeft = transformer.fromXYCoordsToLatLng(Offset.zero);
|
||||
final upperLeft = transformer.toLatLng(Offset.zero);
|
||||
final lowerRight =
|
||||
transformer.fromXYCoordsToLatLng(Offset(mapSize.width, mapSize.height));
|
||||
transformer.toLatLng(Offset(mapSize.width, mapSize.height));
|
||||
final idealLeftLongitude = max(-180.0, upperLeft.longitude);
|
||||
final idealRightLongitude = min(180.0, lowerRight.longitude);
|
||||
final idealUpperLatitude = min(85.0, upperLeft.latitude);
|
||||
|
|
|
@ -25,10 +25,6 @@ class TreeEntryCard extends StatelessWidget {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (Scrollable.recommendDeferredLoadingForContext(context)) {
|
||||
return const SizedBox();
|
||||
}
|
||||
|
||||
const double spacingHeight = 5.0;
|
||||
final formatter =
|
||||
Provider.of<SettingsController>(context).dateTimeFormatter;
|
||||
|
|
|
@ -88,25 +88,13 @@ class _HomeState extends State<Home> {
|
|||
}
|
||||
|
||||
Widget _buildNavBar() {
|
||||
return LayoutBuilder(builder: (context, constraint) {
|
||||
return Scrollbar(
|
||||
isAlwaysShown: true,
|
||||
child: SingleChildScrollView(
|
||||
child: ConstrainedBox(
|
||||
constraints: BoxConstraints(minHeight: constraint.maxHeight),
|
||||
child: IntrinsicHeight(
|
||||
child: NavigationRail(
|
||||
return NavigationRail(
|
||||
destinations:
|
||||
_pageData.map((p) => p.navRailDestination).toList(),
|
||||
selectedIndex: _selectedIndex,
|
||||
onDestinationSelected: _setSelectedIndex,
|
||||
labelType: NavigationRailLabelType.all,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Widget _buildMainArea() {
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
import '../../models/media_attachment.dart';
|
||||
|
||||
MediaAttachment mediaAttachmentfromMastodonJson(Map<String, dynamic> json) {
|
||||
final uri = Uri.parse(json['url']);
|
||||
const creationTimestamp = 0;
|
||||
final explicitType = (json['mediaType'] ?? '').startsWith('image')
|
||||
? AttachmentMediaType.image
|
||||
: (json['mimetype'] ?? '').startsWith('video')
|
||||
? AttachmentMediaType.video
|
||||
: AttachmentMediaType.unknown;
|
||||
final thumbnailUri = Uri();
|
||||
final title = json['name'] ?? '';
|
||||
final description = json['blurhash'] ?? '';
|
||||
|
||||
return MediaAttachment(
|
||||
uri: uri,
|
||||
creationTimestamp: creationTimestamp,
|
||||
metadata: {},
|
||||
thumbnailUri: thumbnailUri,
|
||||
title: title,
|
||||
explicitType: explicitType,
|
||||
description: description);
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
import 'package:fediverse_archive_browser/src/mastodon/serializers/mastodon_media_attachment_serializer.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
||||
import '../../models/location_data.dart';
|
||||
import '../../models/timeline_entry.dart';
|
||||
import '../../utils/offsetdatetime_utils.dart';
|
||||
|
||||
final _logger = Logger('timelineEntryFromMastodonJson');
|
||||
TimelineEntry timelineEntryFromMastodonJson(Map<String, dynamic> json) {
|
||||
final int timestamp = json.containsKey('published')
|
||||
? OffsetDateTimeUtils.epochSecTimeFromTimeZoneString(json['published'])
|
||||
.fold(
|
||||
onSuccess: (value) => value,
|
||||
onError: (error) {
|
||||
_logger.severe("Couldn't read date time string: $error");
|
||||
return 0;
|
||||
})
|
||||
: 0;
|
||||
final id = json['id'] ?? '';
|
||||
final isReshare = json.containsKey('reblogged');
|
||||
final parentId = json['inReplyTo'] ?? '';
|
||||
final parentAuthor = json['in_reply_to_account_id'] ?? '';
|
||||
final parentAuthorId = json['in_reply_to_account_id'] ?? '';
|
||||
final body = json['content'] ?? '';
|
||||
final author = json['attributedTo'] ?? '';
|
||||
final authorId = json['attributedTo'] ?? '';
|
||||
const title = '';
|
||||
final externalLink = json['url'] ?? '';
|
||||
final actualLocationData = LocationData();
|
||||
final modificationTimestamp = timestamp;
|
||||
final backdatedTimestamp = timestamp;
|
||||
final mediaAttachments = (json['attachment'] as List<dynamic>? ?? [])
|
||||
.map((json) => mediaAttachmentfromMastodonJson(json))
|
||||
.toList();
|
||||
return TimelineEntry(
|
||||
creationTimestamp: timestamp,
|
||||
modificationTimestamp: modificationTimestamp,
|
||||
backdatedTimestamp: backdatedTimestamp,
|
||||
locationData: actualLocationData,
|
||||
body: body,
|
||||
isReshare: isReshare,
|
||||
id: id,
|
||||
parentId: parentId,
|
||||
parentAuthorId: parentAuthorId,
|
||||
externalLink: externalLink,
|
||||
author: author,
|
||||
authorId: authorId,
|
||||
parentAuthor: parentAuthor,
|
||||
title: title,
|
||||
links: [],
|
||||
mediaAttachments: mediaAttachments,
|
||||
);
|
||||
}
|
|
@ -0,0 +1,145 @@
|
|||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:result_monad/result_monad.dart';
|
||||
|
||||
import '../../models/entry_tree_item.dart';
|
||||
import '../../models/local_image_archive_entry.dart';
|
||||
import '../../services/archive_service_interface.dart';
|
||||
import '../../services/connections_manager.dart';
|
||||
import '../../utils/exec_error.dart';
|
||||
import '../serializers/mastodon_timeline_entry_serializer.dart';
|
||||
import 'mastodon_path_mapping_service.dart';
|
||||
|
||||
class MastodonArchiveService implements ArchiveService {
|
||||
@override
|
||||
final MastodonPathMappingService pathMappingService;
|
||||
|
||||
final Map<String, ImageEntry> _imagesByRequestUrl = {};
|
||||
final List<EntryTreeItem> _postEntries = [];
|
||||
final List<EntryTreeItem> _orphanedCommentEntries = [];
|
||||
final List<EntryTreeItem> _allComments = [];
|
||||
@override
|
||||
final ConnectionsManager connectionsManager = ConnectionsManager();
|
||||
|
||||
MastodonArchiveService({required this.pathMappingService});
|
||||
|
||||
@override
|
||||
// TODO: implement ownersName
|
||||
String get ownersName => throw UnimplementedError();
|
||||
|
||||
@override
|
||||
void clearCaches() {
|
||||
connectionsManager.clearCaches();
|
||||
_imagesByRequestUrl.clear();
|
||||
_orphanedCommentEntries.clear();
|
||||
_allComments.clear();
|
||||
_postEntries.clear();
|
||||
}
|
||||
|
||||
@override
|
||||
FutureResult<List<EntryTreeItem>, ExecError> getPosts() async {
|
||||
if (_postEntries.isEmpty && _allComments.isEmpty) {
|
||||
_loadEntries();
|
||||
}
|
||||
|
||||
return Result.ok(_postEntries);
|
||||
}
|
||||
|
||||
@override
|
||||
FutureResult<List<EntryTreeItem>, ExecError> getAllComments() async {
|
||||
if (_postEntries.isEmpty && _allComments.isEmpty) {
|
||||
_loadEntries();
|
||||
}
|
||||
|
||||
return Result.ok(_allComments);
|
||||
}
|
||||
|
||||
@override
|
||||
FutureResult<List<EntryTreeItem>, ExecError> getOrphanedComments() async {
|
||||
if (_postEntries.isEmpty && _allComments.isEmpty) {
|
||||
_loadEntries();
|
||||
}
|
||||
|
||||
return Result.ok(_orphanedCommentEntries);
|
||||
}
|
||||
|
||||
@override
|
||||
Result<ImageEntry, ExecError> getImageByUrl(String url) {
|
||||
if (_imagesByRequestUrl.isEmpty) {
|
||||
_loadImages();
|
||||
}
|
||||
|
||||
final result = _imagesByRequestUrl[url];
|
||||
return result == null
|
||||
? Result.error(ExecError(errorMessage: '$url not found'))
|
||||
: Result.ok(result);
|
||||
}
|
||||
|
||||
String get _baseArchiveFolder => pathMappingService.rootFolder;
|
||||
|
||||
void _loadEntries() {
|
||||
final entriesJsonPath = p.join(_baseArchiveFolder, 'outbox.json');
|
||||
final jsonFile = File(entriesJsonPath);
|
||||
try {
|
||||
if (jsonFile.existsSync()) {
|
||||
final jsonText = jsonFile.readAsStringSync();
|
||||
final json = jsonDecode(jsonText) as Map<String, dynamic>;
|
||||
final entriesJson = json['orderedItems'] as List<dynamic>;
|
||||
final entries = entriesJson
|
||||
.where((e) => 'Create' == e['type'])
|
||||
.map((e) => e['object'])
|
||||
.map((e) => timelineEntryFromMastodonJson(e))
|
||||
.toList();
|
||||
final topLevelEntries =
|
||||
entries.where((element) => element.parentId.isEmpty);
|
||||
final commentEntries =
|
||||
entries.where((element) => element.parentId.isNotEmpty).toList();
|
||||
final entryTrees = <String, EntryTreeItem>{};
|
||||
|
||||
final postTreeEntries = <EntryTreeItem>[];
|
||||
for (final entry in topLevelEntries) {
|
||||
final treeEntry = EntryTreeItem(entry, false);
|
||||
entryTrees[entry.id] = treeEntry;
|
||||
postTreeEntries.add(treeEntry);
|
||||
}
|
||||
|
||||
final commentTreeEntries = <EntryTreeItem>[];
|
||||
commentEntries.sort(
|
||||
(c1, c2) => c1.creationTimestamp.compareTo(c2.creationTimestamp));
|
||||
for (final entry in commentEntries) {
|
||||
final parent = entryTrees[entry.parentId];
|
||||
final treeEntry = EntryTreeItem(entry, parent == null);
|
||||
parent?.addChild(treeEntry);
|
||||
entryTrees[entry.id] = treeEntry;
|
||||
commentTreeEntries.add(treeEntry);
|
||||
}
|
||||
|
||||
_postEntries.clear();
|
||||
_postEntries.addAll(postTreeEntries);
|
||||
|
||||
_allComments.clear();
|
||||
_allComments.addAll(commentTreeEntries);
|
||||
|
||||
_orphanedCommentEntries.clear();
|
||||
_orphanedCommentEntries
|
||||
.addAll(entryTrees.values.where((element) => element.isOrphaned));
|
||||
}
|
||||
} catch (e) {
|
||||
print(e);
|
||||
}
|
||||
}
|
||||
|
||||
void _loadImages() {
|
||||
final imageJsonPath = p.join(_baseArchiveFolder, 'images.json');
|
||||
final jsonFile = File(imageJsonPath);
|
||||
if (jsonFile.existsSync()) {
|
||||
final json = jsonDecode(jsonFile.readAsStringSync()) as List<dynamic>;
|
||||
final imageEntries = json.map((j) => ImageEntry.fromJson(j));
|
||||
for (final entry in imageEntries) {
|
||||
_imagesByRequestUrl[entry.url] = entry;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:fediverse_archive_browser/src/settings/settings_controller.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
|
||||
import '../../services/path_mapper_service_interface.dart';
|
||||
|
||||
class MastodonPathMappingService implements PathMappingService {
|
||||
static final _logger = Logger('$MastodonPathMappingService');
|
||||
final SettingsController settings;
|
||||
final _archiveDirectories = <FileSystemEntity>[];
|
||||
|
||||
MastodonPathMappingService(this.settings) {
|
||||
refresh();
|
||||
}
|
||||
|
||||
String get rootFolder => settings.rootFolder;
|
||||
|
||||
List<FileSystemEntity> get archiveDirectories =>
|
||||
List.unmodifiable(_archiveDirectories);
|
||||
|
||||
void refresh() {
|
||||
_logger.fine('Refreshing path mapping service directory data.');
|
||||
if (!Directory(settings.rootFolder).existsSync()) {
|
||||
_logger.severe(
|
||||
"Base directory does not exist! can't do mapping of ${settings.rootFolder}");
|
||||
return;
|
||||
}
|
||||
_archiveDirectories.clear();
|
||||
|
||||
final recursive = !_calcRootIsSingleArchiveFolder();
|
||||
_archiveDirectories.addAll(Directory(settings.rootFolder)
|
||||
.listSync(recursive: recursive)
|
||||
.where((element) =>
|
||||
element.statSync().type == FileSystemEntityType.directory &&
|
||||
p.basename(element.path) == 'media_attachments')
|
||||
.map((d) => d.parent));
|
||||
}
|
||||
|
||||
String toFullPath(String relPath) {
|
||||
for (final file in _archiveDirectories) {
|
||||
final fullPath =
|
||||
p.join(file.path, relPath[0] == '/' ? relPath.substring(1) : relPath);
|
||||
if (File(fullPath).existsSync()) {
|
||||
return fullPath;
|
||||
}
|
||||
}
|
||||
|
||||
_logger.fine(
|
||||
'Did not find a file with this relPath anywhere therefore returning the relPath');
|
||||
return relPath;
|
||||
}
|
||||
|
||||
bool _calcRootIsSingleArchiveFolder() {
|
||||
for (final entity in Directory(rootFolder).listSync(recursive: false)) {
|
||||
if (_knownRootFilesAndFolders.contains(entity.uri.pathSegments
|
||||
.where((element) => element.isNotEmpty)
|
||||
.last)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static final _knownRootFilesAndFolders = [
|
||||
'media_attachments',
|
||||
'actor.json',
|
||||
'likes.json',
|
||||
'outbox.json',
|
||||
];
|
||||
}
|
|
@ -2,4 +2,5 @@ enum ArchiveType {
|
|||
unknown,
|
||||
diaspora,
|
||||
friendica,
|
||||
mastodon,
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:fediverse_archive_browser/src/components/filter_control_component.dart';
|
||||
import 'package:fediverse_archive_browser/src/components/tree_entry_card.dart';
|
||||
import 'package:fediverse_archive_browser/src/models/entry_tree_item.dart';
|
||||
|
@ -6,6 +5,7 @@ import 'package:fediverse_archive_browser/src/models/model_utils.dart';
|
|||
import 'package:fediverse_archive_browser/src/screens/error_screen.dart';
|
||||
import 'package:fediverse_archive_browser/src/settings/settings_controller.dart';
|
||||
import 'package:fediverse_archive_browser/src/utils/exec_error.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:result_monad/result_monad.dart';
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
import 'dart:math';
|
||||
|
||||
import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fediverse_archive_browser/src/components/geo/geo_extensions.dart';
|
||||
import 'package:fediverse_archive_browser/src/components/tree_entry_card.dart';
|
||||
import 'package:fediverse_archive_browser/src/friendica/services/friendica_path_mapping_service.dart';
|
||||
|
@ -14,6 +12,8 @@ import 'package:fediverse_archive_browser/src/services/archive_service_provider.
|
|||
import 'package:fediverse_archive_browser/src/settings/settings_controller.dart';
|
||||
import 'package:fediverse_archive_browser/src/utils/exec_error.dart';
|
||||
import 'package:fediverse_archive_browser/src/utils/temp_file_builder.dart';
|
||||
import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:latlng/latlng.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
@ -191,7 +191,7 @@ class _GeospatialViewState extends State<GeospatialView> {
|
|||
postList,
|
||||
],
|
||||
initialWeights: const [0.3],
|
||||
minimalWeight: 0.2,
|
||||
globalMinimalWeight: 0.2,
|
||||
);
|
||||
|
||||
return MultiSplitViewTheme(
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:fediverse_archive_browser/src/diaspora/services/diaspora_archive_service.dart';
|
||||
import 'package:fediverse_archive_browser/src/diaspora/services/diaspora_path_mapping_service.dart';
|
||||
import 'package:fediverse_archive_browser/src/friendica/services/friendica_archive_service.dart';
|
||||
import 'package:fediverse_archive_browser/src/friendica/services/friendica_path_mapping_service.dart';
|
||||
import 'package:fediverse_archive_browser/src/mastodon/services/mastodon_archive_service.dart';
|
||||
import 'package:fediverse_archive_browser/src/mastodon/services/mastodon_path_mapping_service.dart';
|
||||
import 'package:fediverse_archive_browser/src/services/archive_service_interface.dart';
|
||||
import 'package:fediverse_archive_browser/src/services/connections_manager.dart';
|
||||
import 'package:fediverse_archive_browser/src/services/path_mapper_service_interface.dart';
|
||||
import 'package:fediverse_archive_browser/src/settings/settings_controller.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:result_monad/result_monad.dart';
|
||||
|
||||
import '../models/archive_types_enum.dart';
|
||||
|
@ -18,6 +20,7 @@ class ArchiveServiceProvider extends ChangeNotifier implements ArchiveService {
|
|||
final SettingsController settings;
|
||||
late DiasporaArchiveService _diasporaArchiveService;
|
||||
late FriendicaArchiveService _friendicaArchiveService;
|
||||
late MastodonArchiveService _mastodonArchiveService;
|
||||
|
||||
@override
|
||||
ConnectionsManager get connectionsManager =>
|
||||
|
@ -32,6 +35,7 @@ class ArchiveServiceProvider extends ChangeNotifier implements ArchiveService {
|
|||
void clearCaches() {
|
||||
_friendicaArchiveService.clearCaches();
|
||||
_diasporaArchiveService.clearCaches();
|
||||
_mastodonArchiveService.clearCaches();
|
||||
_buildArchiveServices();
|
||||
}
|
||||
|
||||
|
@ -61,17 +65,19 @@ class ArchiveServiceProvider extends ChangeNotifier implements ArchiveService {
|
|||
return _diasporaArchiveService;
|
||||
case ArchiveType.friendica:
|
||||
return _friendicaArchiveService;
|
||||
case ArchiveType.mastodon:
|
||||
return _mastodonArchiveService;
|
||||
default:
|
||||
throw Exception('Unknown archive type');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void _buildArchiveServices() {
|
||||
_diasporaArchiveService = DiasporaArchiveService(
|
||||
pathMappingService: DiasporaPathMappingService(settings));
|
||||
_friendicaArchiveService = FriendicaArchiveService(
|
||||
pathMappingService: FriendicaPathMappingService(settings));
|
||||
_mastodonArchiveService = MastodonArchiveService(
|
||||
pathMappingService: MastodonPathMappingService(settings));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,5 +7,6 @@ class AppScrollingBehavior extends MaterialScrollBehavior {
|
|||
Set<PointerDeviceKind> get dragDevices => {
|
||||
PointerDeviceKind.touch,
|
||||
PointerDeviceKind.mouse,
|
||||
PointerDeviceKind.trackpad,
|
||||
};
|
||||
}
|
||||
|
|
|
@ -7,6 +7,9 @@ list(APPEND FLUTTER_PLUGIN_LIST
|
|||
url_launcher_linux
|
||||
)
|
||||
|
||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
||||
)
|
||||
|
||||
set(PLUGIN_BUNDLED_LIBRARIES)
|
||||
|
||||
foreach(plugin ${FLUTTER_PLUGIN_LIST})
|
||||
|
@ -15,3 +18,8 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST})
|
|||
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
|
||||
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
|
||||
endforeach(plugin)
|
||||
|
||||
foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
|
||||
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin})
|
||||
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
|
||||
endforeach(ffi_plugin)
|
||||
|
|
|
@ -5,14 +5,22 @@
|
|||
import FlutterMacOS
|
||||
import Foundation
|
||||
|
||||
import audio_session
|
||||
import desktop_window
|
||||
import just_audio
|
||||
import path_provider_macos
|
||||
import shared_preferences_macos
|
||||
import sqflite
|
||||
import url_launcher_macos
|
||||
import wakelock_macos
|
||||
|
||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin"))
|
||||
DesktopWindowPlugin.register(with: registry.registrar(forPlugin: "DesktopWindowPlugin"))
|
||||
JustAudioPlugin.register(with: registry.registrar(forPlugin: "JustAudioPlugin"))
|
||||
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
||||
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
|
||||
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
||||
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
||||
WakelockMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockMacosPlugin"))
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
platform :osx, '10.11'
|
||||
platform :osx, '10.13'
|
||||
|
||||
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||
|
|
|
@ -1,40 +1,73 @@
|
|||
PODS:
|
||||
- audio_session (0.0.1):
|
||||
- FlutterMacOS
|
||||
- desktop_window (0.0.1):
|
||||
- FlutterMacOS
|
||||
- FlutterMacOS (1.0.0)
|
||||
- FMDB (2.7.5):
|
||||
- FMDB/standard (= 2.7.5)
|
||||
- FMDB/standard (2.7.5)
|
||||
- just_audio (0.0.1):
|
||||
- FlutterMacOS
|
||||
- path_provider_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
- shared_preferences_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
- sqflite (0.0.2):
|
||||
- FlutterMacOS
|
||||
- FMDB (>= 2.7.5)
|
||||
- url_launcher_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
- wakelock_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
|
||||
DEPENDENCIES:
|
||||
- audio_session (from `Flutter/ephemeral/.symlinks/plugins/audio_session/macos`)
|
||||
- desktop_window (from `Flutter/ephemeral/.symlinks/plugins/desktop_window/macos`)
|
||||
- FlutterMacOS (from `Flutter/ephemeral`)
|
||||
- just_audio (from `Flutter/ephemeral/.symlinks/plugins/just_audio/macos`)
|
||||
- path_provider_macos (from `Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos`)
|
||||
- shared_preferences_macos (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_macos/macos`)
|
||||
- sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/macos`)
|
||||
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
|
||||
- wakelock_macos (from `Flutter/ephemeral/.symlinks/plugins/wakelock_macos/macos`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- FMDB
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
audio_session:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/audio_session/macos
|
||||
desktop_window:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/desktop_window/macos
|
||||
FlutterMacOS:
|
||||
:path: Flutter/ephemeral
|
||||
just_audio:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/just_audio/macos
|
||||
path_provider_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos
|
||||
shared_preferences_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_macos/macos
|
||||
sqflite:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/sqflite/macos
|
||||
url_launcher_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos
|
||||
wakelock_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/wakelock_macos/macos
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
audio_session: dea1f41890dbf1718f04a56f1d6150fd50039b72
|
||||
desktop_window: fb7c4f12c1129f947ac482296b6f14059d57a3c3
|
||||
FlutterMacOS: 57701585bf7de1b3fc2bb61f6378d73bbdea8424
|
||||
path_provider_macos: 160cab0d5461f0c0e02995469a98f24bdb9a3f1f
|
||||
shared_preferences_macos: 480ce071d0666e37cef23fe6c702293a3d21799e
|
||||
url_launcher_macos: 45af3d61de06997666568a7149c1be98b41c95d4
|
||||
FlutterMacOS: ae6af50a8ea7d6103d888583d46bd8328a7e9811
|
||||
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
|
||||
just_audio: 9b67ca7b97c61cfc9784ea23cd8cc55eb226d489
|
||||
path_provider_macos: 3c0c3b4b0d4a76d2bf989a913c2de869c5641a19
|
||||
shared_preferences_macos: a64dc611287ed6cbe28fd1297898db1336975727
|
||||
sqflite: a5789cceda41d54d23f31d6de539d65bb14100ea
|
||||
url_launcher_macos: 597e05b8e514239626bcf4a850fcf9ef5c856ec3
|
||||
wakelock_macos: bc3f2a9bd8d2e6c89fee1e1822e7ddac3bd004a9
|
||||
|
||||
PODFILE CHECKSUM: 6eac6b3292e5142cfc23bdeb71848a40ec51c14c
|
||||
PODFILE CHECKSUM: a884f6dd3f7494f3892ee6c81feea3a3abbf9153
|
||||
|
||||
COCOAPODS: 1.10.2
|
||||
COCOAPODS: 1.11.3
|
||||
|
|
|
@ -405,7 +405,7 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.13;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
|
@ -486,7 +486,7 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.13;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
|
@ -533,7 +533,7 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.13;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
|
|
|
@ -7,14 +7,21 @@ packages:
|
|||
name: args
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.3.0"
|
||||
version: "2.3.1"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.8.2"
|
||||
version: "2.9.0"
|
||||
audio_session:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: audio_session
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.1.10"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -22,13 +29,34 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
cached_network_image:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: cached_network_image
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.2.2"
|
||||
cached_network_image_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: cached_network_image_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
cached_network_image_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: cached_network_image_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.2"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
version: "1.2.1"
|
||||
charcode:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -50,34 +78,48 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.12.0"
|
||||
chewie:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: chewie
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.3.5"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
version: "1.1.1"
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.15.0"
|
||||
version: "1.16.0"
|
||||
crypto:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: crypto
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.1"
|
||||
version: "3.0.2"
|
||||
csslib:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: csslib
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.17.1"
|
||||
version: "0.17.2"
|
||||
cupertino_icons:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: cupertino_icons
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.5"
|
||||
desktop_window:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -91,33 +133,54 @@ packages:
|
|||
name: fake_async
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
version: "1.3.1"
|
||||
ffi:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: ffi
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.2"
|
||||
version: "1.2.1"
|
||||
file:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: file
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.1.2"
|
||||
version: "6.1.4"
|
||||
file_picker:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: file_picker
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.2.7"
|
||||
version: "4.6.1"
|
||||
fixnum:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fixnum
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.1"
|
||||
flutter:
|
||||
dependency: "direct main"
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_blurhash:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_blurhash
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.7.0"
|
||||
flutter_cache_manager:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_cache_manager
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.3.0"
|
||||
flutter_lints:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
|
@ -136,7 +199,14 @@ packages:
|
|||
name: flutter_plugin_android_lifecycle
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.5"
|
||||
version: "2.0.7"
|
||||
flutter_svg:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_svg
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.6"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
|
@ -147,41 +217,90 @@ packages:
|
|||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_widget_from_html_core:
|
||||
flutter_widget_from_html:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_widget_from_html
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.9.0"
|
||||
flutter_widget_from_html_core:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_widget_from_html_core
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.8.4"
|
||||
version: "0.9.0"
|
||||
fwfh_cached_network_image:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fwfh_cached_network_image
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.7.0+3"
|
||||
fwfh_chewie:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fwfh_chewie
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.7.0+2"
|
||||
fwfh_just_audio:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fwfh_just_audio
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.9.0"
|
||||
fwfh_svg:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fwfh_svg
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.7.2+1"
|
||||
fwfh_text_style:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fwfh_text_style
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.7.2"
|
||||
version: "2.22.08+1"
|
||||
fwfh_url_launcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fwfh_url_launcher
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.9.0"
|
||||
fwfh_webview:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fwfh_webview
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.6.2+4"
|
||||
html:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: html
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.15.0"
|
||||
version: "0.15.1"
|
||||
http:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: http
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.13.4"
|
||||
version: "0.13.5"
|
||||
http_parser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: http_parser
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.0.0"
|
||||
version: "4.0.2"
|
||||
intl:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -195,14 +314,35 @@ packages:
|
|||
name: js
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.6.3"
|
||||
version: "0.6.4"
|
||||
just_audio:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: just_audio
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.9.30"
|
||||
just_audio_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: just_audio_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.2.0"
|
||||
just_audio_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: just_audio_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.4.7"
|
||||
latlng:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: latlng
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.1.0"
|
||||
version: "0.1.1"
|
||||
lints:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -216,14 +356,14 @@ packages:
|
|||
name: logging
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.2"
|
||||
version: "1.1.0"
|
||||
map:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: map
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
version: "1.2.0"
|
||||
markdown:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -237,21 +377,21 @@ packages:
|
|||
name: matcher
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.12.11"
|
||||
version: "0.12.12"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.1.3"
|
||||
version: "0.1.5"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.7.0"
|
||||
version: "1.8.0"
|
||||
metadata_fetch:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -265,7 +405,7 @@ packages:
|
|||
name: multi_split_view
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.10.0+1"
|
||||
version: "1.13.0"
|
||||
nested:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -279,63 +419,98 @@ packages:
|
|||
name: network_to_file_image
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.3"
|
||||
version: "3.1.0"
|
||||
octo_image:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: octo_image
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.2"
|
||||
path:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: path
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.8.0"
|
||||
version: "1.8.2"
|
||||
path_drawing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_drawing
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.1"
|
||||
path_parsing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_parsing
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.1"
|
||||
path_provider:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: path_provider
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.8"
|
||||
version: "2.0.11"
|
||||
path_provider_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_android
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.9"
|
||||
version: "2.0.21"
|
||||
path_provider_ios:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_ios
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.7"
|
||||
version: "2.0.11"
|
||||
path_provider_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
version: "2.1.7"
|
||||
path_provider_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.4"
|
||||
version: "2.0.6"
|
||||
path_provider_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "2.0.5"
|
||||
path_provider_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.4"
|
||||
version: "2.0.7"
|
||||
pedantic:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: pedantic
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.11.1"
|
||||
petitparser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: petitparser
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "5.1.0"
|
||||
platform:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -349,7 +524,7 @@ packages:
|
|||
name: plugin_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
version: "2.1.3"
|
||||
process:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -357,20 +532,34 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.2.4"
|
||||
protobuf:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: protobuf
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
provider:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: provider
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.0.1"
|
||||
version: "6.0.4"
|
||||
result_monad:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: result_monad
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.2"
|
||||
version: "2.0.2"
|
||||
rxdart:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: rxdart
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.27.5"
|
||||
scrollable_positioned_list:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -384,56 +573,56 @@ packages:
|
|||
name: shared_preferences
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.10"
|
||||
version: "2.0.15"
|
||||
shared_preferences_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_android
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.9"
|
||||
version: "2.0.14"
|
||||
shared_preferences_ios:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_ios
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.8"
|
||||
version: "2.1.1"
|
||||
shared_preferences_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.3"
|
||||
version: "2.1.1"
|
||||
shared_preferences_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
version: "2.0.4"
|
||||
shared_preferences_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "2.1.0"
|
||||
shared_preferences_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
version: "2.0.4"
|
||||
shared_preferences_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.3"
|
||||
version: "2.1.1"
|
||||
sky_engine:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
|
@ -445,7 +634,21 @@ packages:
|
|||
name: source_span
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.8.1"
|
||||
version: "1.9.0"
|
||||
sqflite:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.2.0+3"
|
||||
sqflite_common:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite_common
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.4.0+2"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -466,7 +669,7 @@ packages:
|
|||
name: string_scanner
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
version: "1.1.1"
|
||||
string_validator:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -474,26 +677,33 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.3.0"
|
||||
synchronized:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: synchronized
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.0+3"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
version: "1.2.1"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.4.8"
|
||||
version: "0.4.12"
|
||||
time_machine:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "."
|
||||
ref: master
|
||||
resolved-ref: "040de1a261df442538ed97f6de5895465d7ca4dd"
|
||||
resolved-ref: "246f3608b16d7fa36ee2155b3a21884b48c75b01"
|
||||
url: "https://github.com/Dana-Ferguson/time_machine"
|
||||
source: git
|
||||
version: "0.9.17"
|
||||
|
@ -503,91 +713,196 @@ packages:
|
|||
name: typed_data
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
version: "1.3.1"
|
||||
url_launcher:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: url_launcher
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.0.17"
|
||||
version: "6.1.6"
|
||||
url_launcher_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_android
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.0.13"
|
||||
version: "6.0.21"
|
||||
url_launcher_ios:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_ios
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.0.13"
|
||||
version: "6.0.17"
|
||||
url_launcher_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
version: "3.0.1"
|
||||
url_launcher_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
version: "3.0.1"
|
||||
url_launcher_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.4"
|
||||
version: "2.1.1"
|
||||
url_launcher_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.5"
|
||||
version: "2.0.13"
|
||||
url_launcher_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
version: "3.0.1"
|
||||
uuid:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: uuid
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.5"
|
||||
version: "3.0.6"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_math
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
version: "2.1.2"
|
||||
video_player:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: video_player
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.4.7"
|
||||
video_player_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: video_player_android
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.3.9"
|
||||
video_player_avfoundation:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: video_player_avfoundation
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.3.7"
|
||||
video_player_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: video_player_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "5.1.4"
|
||||
video_player_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: video_player_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.12"
|
||||
wakelock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: wakelock
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.6.2"
|
||||
wakelock_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: wakelock_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.4.0"
|
||||
wakelock_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: wakelock_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.3.0"
|
||||
wakelock_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: wakelock_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.4.0"
|
||||
wakelock_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: wakelock_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
webview_flutter:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.4"
|
||||
webview_flutter_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter_android
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.10.4"
|
||||
webview_flutter_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.9.5"
|
||||
webview_flutter_wkwebview:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter_wkwebview
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.9.5"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: win32
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.3.1"
|
||||
version: "2.6.1"
|
||||
xdg_directories:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: xdg_directories
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
version: "0.2.0+2"
|
||||
xml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: xml
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.1.0"
|
||||
sdks:
|
||||
dart: ">=2.14.4 <3.0.0"
|
||||
flutter: ">=2.6.0-0"
|
||||
dart: ">=2.18.2 <3.0.0"
|
||||
flutter: ">=3.3.0"
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
name: fediverse_archive_browser
|
||||
description: An Archive Browser for various fediverse projects (Friendica, Diaspora)
|
||||
description: An Archive Browser for various fediverse projects (Friendica, Diaspora, Mastodon)
|
||||
|
||||
# Prevent accidental publishing to pub.dev.
|
||||
publish_to: 'none'
|
||||
|
||||
version: 1.0.0
|
||||
version: 2.0.0
|
||||
|
||||
environment:
|
||||
sdk: ">=2.14.0 <3.0.0"
|
||||
sdk: '>=2.18.2 <3.0.0'
|
||||
|
||||
dependencies:
|
||||
desktop_window: ^0.4.0
|
||||
|
@ -17,7 +17,7 @@ dependencies:
|
|||
charts_flutter: ^0.12.0
|
||||
flutter_localizations:
|
||||
sdk: flutter
|
||||
flutter_widget_from_html_core: ^0.8.4
|
||||
flutter_widget_from_html: ^0.9.0
|
||||
intl: ^0.17.0
|
||||
logging: ^1.0.2
|
||||
latlng: ^0.1.0
|
||||
|
@ -28,7 +28,7 @@ dependencies:
|
|||
path: ^1.8.0
|
||||
path_provider: ^2.0.6
|
||||
provider: ^6.0.0
|
||||
result_monad: ^1.0.2
|
||||
result_monad: ^2.0.2
|
||||
scrollable_positioned_list: ^0.2.2
|
||||
shared_preferences: ^2.0.8
|
||||
time_machine:
|
||||
|
|
|
@ -7,6 +7,9 @@ list(APPEND FLUTTER_PLUGIN_LIST
|
|||
url_launcher_windows
|
||||
)
|
||||
|
||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
||||
)
|
||||
|
||||
set(PLUGIN_BUNDLED_LIBRARIES)
|
||||
|
||||
foreach(plugin ${FLUTTER_PLUGIN_LIST})
|
||||
|
@ -15,3 +18,8 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST})
|
|||
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
|
||||
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
|
||||
endforeach(plugin)
|
||||
|
||||
foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
|
||||
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})
|
||||
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
|
||||
endforeach(ffi_plugin)
|
||||
|
|
|
@ -63,13 +63,13 @@ IDI_APP_ICON ICON "resources\\fediverse_archive_re
|
|||
#ifdef FLUTTER_BUILD_NUMBER
|
||||
#define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER
|
||||
#else
|
||||
#define VERSION_AS_NUMBER 1,0,0
|
||||
#define VERSION_AS_NUMBER 2,0,0
|
||||
#endif
|
||||
|
||||
#ifdef FLUTTER_BUILD_NAME
|
||||
#define VERSION_AS_STRING #FLUTTER_BUILD_NAME
|
||||
#else
|
||||
#define VERSION_AS_STRING "1.0.0"
|
||||
#define VERSION_AS_STRING "2.0.0"
|
||||
#endif
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
|
|
Loading…
Reference in a new issue