removed dart
9
dart/packages/lbry/.gitignore
vendored
|
@ -1,9 +0,0 @@
|
||||||
# Files and directories created by pub
|
|
||||||
.dart_tool/
|
|
||||||
.packages
|
|
||||||
|
|
||||||
# Conventional directory for build outputs
|
|
||||||
build/
|
|
||||||
|
|
||||||
# Directory created by dartdoc
|
|
||||||
doc/api/
|
|
|
@ -1,3 +0,0 @@
|
||||||
## 1.0.0
|
|
||||||
|
|
||||||
- Initial version, created by Stagehand
|
|
|
@ -1 +0,0 @@
|
||||||
LBRY SDK in Dart.
|
|
|
@ -1,14 +0,0 @@
|
||||||
# Defines a default set of lint rules enforced for
|
|
||||||
# projects at Google. For details and rationale,
|
|
||||||
# see https://github.com/dart-lang/pedantic#enabled-lints.
|
|
||||||
include: package:pedantic/analysis_options.yaml
|
|
||||||
|
|
||||||
# For lint rules and documentation, see http://dart-lang.github.io/linter/lints.
|
|
||||||
# Uncomment to specify additional rules.
|
|
||||||
# linter:
|
|
||||||
# rules:
|
|
||||||
# - camel_case_types
|
|
||||||
|
|
||||||
analyzer:
|
|
||||||
# exclude:
|
|
||||||
# - path/to/excluded/files/**
|
|
|
@ -1,6 +0,0 @@
|
||||||
import 'package:lbry/src/load_generator.dart' as load;
|
|
||||||
//import 'package:lbry/src/server_connection.dart' as load;
|
|
||||||
|
|
||||||
main(List<String> arguments) {
|
|
||||||
load.generate_load();
|
|
||||||
}
|
|
|
@ -1,2 +0,0 @@
|
||||||
export 'src/load_generator.dart';
|
|
||||||
export 'src/server_connection.dart';
|
|
|
@ -1,153 +0,0 @@
|
||||||
import 'dart:async';
|
|
||||||
import 'dart:io';
|
|
||||||
import 'dart:convert';
|
|
||||||
|
|
||||||
|
|
||||||
class LoadRequest {
|
|
||||||
final String host;
|
|
||||||
final int port;
|
|
||||||
final Map payload;
|
|
||||||
Completer completer;
|
|
||||||
Stopwatch timer;
|
|
||||||
Socket socket;
|
|
||||||
|
|
||||||
bool get isDone => completer.isCompleted;
|
|
||||||
int get elapsed => timer.elapsedMilliseconds;
|
|
||||||
|
|
||||||
LoadRequest(this.host, this.port, this.payload);
|
|
||||||
|
|
||||||
LoadRequest start() {
|
|
||||||
completer = Completer();
|
|
||||||
timer = Stopwatch()..start();
|
|
||||||
completer.future.whenComplete(() => timer.stop());
|
|
||||||
try {
|
|
||||||
Socket.connect(this.host, this.port).then((socket) {
|
|
||||||
this.socket = socket;
|
|
||||||
utf8.decoder.bind(socket).listen((r) {
|
|
||||||
if (r.contains('"jsonrpc": "2.0", "result": ')) {
|
|
||||||
socket.close();
|
|
||||||
completer.complete();
|
|
||||||
}
|
|
||||||
}, onError: (e) {print(e); completer.complete();});
|
|
||||||
try {
|
|
||||||
socket.write(jsonEncode(payload) + '\n');
|
|
||||||
} catch (exception, stackTrace) {
|
|
||||||
print(exception);
|
|
||||||
print(stackTrace);
|
|
||||||
completer.complete();
|
|
||||||
}
|
|
||||||
}, onError: (e) {print(e);completer.complete();});
|
|
||||||
} catch (exception, stackTrace) {
|
|
||||||
print(exception);
|
|
||||||
print(stackTrace);
|
|
||||||
completer.complete();
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef bool LoadTickCallback(ClientLoadGenerator load_generator, ClientLoadDataPoint stats);
|
|
||||||
|
|
||||||
class ClientLoadGenerator {
|
|
||||||
Timer _timer;
|
|
||||||
|
|
||||||
final String host;
|
|
||||||
final int port;
|
|
||||||
final LoadTickCallback tickCallback;
|
|
||||||
int load = 1;
|
|
||||||
Map query;
|
|
||||||
List<LoadRequest> backlog = [];
|
|
||||||
|
|
||||||
ClientLoadGenerator(this.host, this.port, {this.tickCallback, this.query}) {
|
|
||||||
if (query == null) {
|
|
||||||
query = {
|
|
||||||
'id': 1,
|
|
||||||
'method': 'blockchain.claimtrie.resolve',
|
|
||||||
'params': ['one', 'two', 'three']
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
start() {
|
|
||||||
var previous = spawn_requests();
|
|
||||||
backlog = <LoadRequest>[];
|
|
||||||
_timer = Timer.periodic(Duration(seconds: 1), (t) {
|
|
||||||
var stat = ClientLoadDataPoint(t.tick);
|
|
||||||
backlog.removeWhere((r) {
|
|
||||||
if (r.isDone) stat.addCatchup(r);
|
|
||||||
return r.isDone;
|
|
||||||
});
|
|
||||||
for (var f in previous) {
|
|
||||||
if (f.isDone) {
|
|
||||||
stat.addSuccess(f);
|
|
||||||
} else {
|
|
||||||
backlog.add(f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stat.backlog = backlog.length;
|
|
||||||
stat.load = load;
|
|
||||||
stat.close();
|
|
||||||
if (tickCallback(this, stat)) {
|
|
||||||
previous = spawn_requests();
|
|
||||||
} else {
|
|
||||||
stop();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
stop() {
|
|
||||||
_timer.cancel();
|
|
||||||
for (var remaining in backlog) {
|
|
||||||
remaining?.socket?.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
List<LoadRequest> spawn_requests() {
|
|
||||||
var requests = <LoadRequest>[];
|
|
||||||
for (var _ in Iterable.generate(load)) {
|
|
||||||
requests.add(LoadRequest(this.host, this.port, this.query).start());
|
|
||||||
}
|
|
||||||
return requests;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
class ClientLoadDataPoint {
|
|
||||||
final int tick;
|
|
||||||
int success = 0;
|
|
||||||
int errored = 0;
|
|
||||||
int backlog = 0;
|
|
||||||
int catchup = 0;
|
|
||||||
int _success_total = 0;
|
|
||||||
int avg_success = 0;
|
|
||||||
int _catchup_total = 0;
|
|
||||||
int avg_catchup = 0;
|
|
||||||
int load = 0;
|
|
||||||
|
|
||||||
ClientLoadDataPoint(this.tick);
|
|
||||||
ClientLoadDataPoint.empty(): this(0);
|
|
||||||
|
|
||||||
addSuccess(LoadRequest r) {
|
|
||||||
success++; _success_total += r.elapsed;
|
|
||||||
}
|
|
||||||
|
|
||||||
addCatchup(LoadRequest r) {
|
|
||||||
catchup++; _catchup_total += r.elapsed;
|
|
||||||
}
|
|
||||||
|
|
||||||
close() {
|
|
||||||
avg_success = _success_total > 0 ? (_success_total/success).round() : 0;
|
|
||||||
avg_catchup = _catchup_total > 0 ? (_catchup_total/catchup).round() : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
generate_load() {
|
|
||||||
var runs = 1;
|
|
||||||
ClientLoadGenerator('localhost', 50001, tickCallback: (t, stats) {
|
|
||||||
print("run ${runs}: ${stats.load} load, ${stats.success} success, ${stats.backlog} backlog");
|
|
||||||
t.load = (runs < 4 ? t.load*2 : t.load/2).round();
|
|
||||||
return runs++ < 10;
|
|
||||||
}).start();
|
|
||||||
}
|
|
|
@ -1,2 +0,0 @@
|
||||||
build:
|
|
||||||
protoc --dart_out=v2 -I ../../../../../../../types/v2/proto/ ../../../../../../../types/v2/proto/*.proto
|
|
|
@ -1,625 +0,0 @@
|
||||||
///
|
|
||||||
// Generated code. Do not modify.
|
|
||||||
// source: claim.proto
|
|
||||||
///
|
|
||||||
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
|
|
||||||
|
|
||||||
import 'dart:core' as $core show bool, Deprecated, double, int, List, Map, override, pragma, String;
|
|
||||||
|
|
||||||
import 'package:fixnum/fixnum.dart';
|
|
||||||
import 'package:protobuf/protobuf.dart' as $pb;
|
|
||||||
|
|
||||||
import 'claim.pbenum.dart';
|
|
||||||
|
|
||||||
export 'claim.pbenum.dart';
|
|
||||||
|
|
||||||
enum Claim_Type {
|
|
||||||
stream,
|
|
||||||
channel,
|
|
||||||
collection,
|
|
||||||
repost,
|
|
||||||
notSet
|
|
||||||
}
|
|
||||||
|
|
||||||
class Claim extends $pb.GeneratedMessage {
|
|
||||||
static const $core.Map<$core.int, Claim_Type> _Claim_TypeByTag = {
|
|
||||||
1 : Claim_Type.stream,
|
|
||||||
2 : Claim_Type.channel,
|
|
||||||
3 : Claim_Type.collection,
|
|
||||||
4 : Claim_Type.repost,
|
|
||||||
0 : Claim_Type.notSet
|
|
||||||
};
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Claim', package: const $pb.PackageName('pb'))
|
|
||||||
..oo(0, [1, 2, 3, 4])
|
|
||||||
..a<Stream>(1, 'stream', $pb.PbFieldType.OM, Stream.getDefault, Stream.create)
|
|
||||||
..a<Channel>(2, 'channel', $pb.PbFieldType.OM, Channel.getDefault, Channel.create)
|
|
||||||
..a<ClaimList>(3, 'collection', $pb.PbFieldType.OM, ClaimList.getDefault, ClaimList.create)
|
|
||||||
..a<ClaimReference>(4, 'repost', $pb.PbFieldType.OM, ClaimReference.getDefault, ClaimReference.create)
|
|
||||||
..aOS(8, 'title')
|
|
||||||
..aOS(9, 'description')
|
|
||||||
..a<Source>(10, 'thumbnail', $pb.PbFieldType.OM, Source.getDefault, Source.create)
|
|
||||||
..pPS(11, 'tags')
|
|
||||||
..pc<Language>(12, 'languages', $pb.PbFieldType.PM,Language.create)
|
|
||||||
..pc<Location>(13, 'locations', $pb.PbFieldType.PM,Location.create)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Claim._() : super();
|
|
||||||
factory Claim() => create();
|
|
||||||
factory Claim.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Claim.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Claim clone() => Claim()..mergeFromMessage(this);
|
|
||||||
Claim copyWith(void Function(Claim) updates) => super.copyWith((message) => updates(message as Claim));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Claim create() => Claim._();
|
|
||||||
Claim createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Claim> createRepeated() => $pb.PbList<Claim>();
|
|
||||||
static Claim getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Claim _defaultInstance;
|
|
||||||
|
|
||||||
Claim_Type whichType() => _Claim_TypeByTag[$_whichOneof(0)];
|
|
||||||
void clearType() => clearField($_whichOneof(0));
|
|
||||||
|
|
||||||
Stream get stream => $_getN(0);
|
|
||||||
set stream(Stream v) { setField(1, v); }
|
|
||||||
$core.bool hasStream() => $_has(0);
|
|
||||||
void clearStream() => clearField(1);
|
|
||||||
|
|
||||||
Channel get channel => $_getN(1);
|
|
||||||
set channel(Channel v) { setField(2, v); }
|
|
||||||
$core.bool hasChannel() => $_has(1);
|
|
||||||
void clearChannel() => clearField(2);
|
|
||||||
|
|
||||||
ClaimList get collection => $_getN(2);
|
|
||||||
set collection(ClaimList v) { setField(3, v); }
|
|
||||||
$core.bool hasCollection() => $_has(2);
|
|
||||||
void clearCollection() => clearField(3);
|
|
||||||
|
|
||||||
ClaimReference get repost => $_getN(3);
|
|
||||||
set repost(ClaimReference v) { setField(4, v); }
|
|
||||||
$core.bool hasRepost() => $_has(3);
|
|
||||||
void clearRepost() => clearField(4);
|
|
||||||
|
|
||||||
$core.String get title => $_getS(4, '');
|
|
||||||
set title($core.String v) { $_setString(4, v); }
|
|
||||||
$core.bool hasTitle() => $_has(4);
|
|
||||||
void clearTitle() => clearField(8);
|
|
||||||
|
|
||||||
$core.String get description => $_getS(5, '');
|
|
||||||
set description($core.String v) { $_setString(5, v); }
|
|
||||||
$core.bool hasDescription() => $_has(5);
|
|
||||||
void clearDescription() => clearField(9);
|
|
||||||
|
|
||||||
Source get thumbnail => $_getN(6);
|
|
||||||
set thumbnail(Source v) { setField(10, v); }
|
|
||||||
$core.bool hasThumbnail() => $_has(6);
|
|
||||||
void clearThumbnail() => clearField(10);
|
|
||||||
|
|
||||||
$core.List<$core.String> get tags => $_getList(7);
|
|
||||||
|
|
||||||
$core.List<Language> get languages => $_getList(8);
|
|
||||||
|
|
||||||
$core.List<Location> get locations => $_getList(9);
|
|
||||||
}
|
|
||||||
|
|
||||||
enum Stream_Type {
|
|
||||||
image,
|
|
||||||
video,
|
|
||||||
audio,
|
|
||||||
software,
|
|
||||||
notSet
|
|
||||||
}
|
|
||||||
|
|
||||||
class Stream extends $pb.GeneratedMessage {
|
|
||||||
static const $core.Map<$core.int, Stream_Type> _Stream_TypeByTag = {
|
|
||||||
10 : Stream_Type.image,
|
|
||||||
11 : Stream_Type.video,
|
|
||||||
12 : Stream_Type.audio,
|
|
||||||
13 : Stream_Type.software,
|
|
||||||
0 : Stream_Type.notSet
|
|
||||||
};
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Stream', package: const $pb.PackageName('pb'))
|
|
||||||
..oo(0, [10, 11, 12, 13])
|
|
||||||
..a<Source>(1, 'source', $pb.PbFieldType.OM, Source.getDefault, Source.create)
|
|
||||||
..aOS(2, 'author')
|
|
||||||
..aOS(3, 'license')
|
|
||||||
..aOS(4, 'licenseUrl')
|
|
||||||
..aInt64(5, 'releaseTime')
|
|
||||||
..a<Fee>(6, 'fee', $pb.PbFieldType.OM, Fee.getDefault, Fee.create)
|
|
||||||
..a<Image>(10, 'image', $pb.PbFieldType.OM, Image.getDefault, Image.create)
|
|
||||||
..a<Video>(11, 'video', $pb.PbFieldType.OM, Video.getDefault, Video.create)
|
|
||||||
..a<Audio>(12, 'audio', $pb.PbFieldType.OM, Audio.getDefault, Audio.create)
|
|
||||||
..a<Software>(13, 'software', $pb.PbFieldType.OM, Software.getDefault, Software.create)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Stream._() : super();
|
|
||||||
factory Stream() => create();
|
|
||||||
factory Stream.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Stream.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Stream clone() => Stream()..mergeFromMessage(this);
|
|
||||||
Stream copyWith(void Function(Stream) updates) => super.copyWith((message) => updates(message as Stream));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Stream create() => Stream._();
|
|
||||||
Stream createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Stream> createRepeated() => $pb.PbList<Stream>();
|
|
||||||
static Stream getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Stream _defaultInstance;
|
|
||||||
|
|
||||||
Stream_Type whichType() => _Stream_TypeByTag[$_whichOneof(0)];
|
|
||||||
void clearType() => clearField($_whichOneof(0));
|
|
||||||
|
|
||||||
Source get source => $_getN(0);
|
|
||||||
set source(Source v) { setField(1, v); }
|
|
||||||
$core.bool hasSource() => $_has(0);
|
|
||||||
void clearSource() => clearField(1);
|
|
||||||
|
|
||||||
$core.String get author => $_getS(1, '');
|
|
||||||
set author($core.String v) { $_setString(1, v); }
|
|
||||||
$core.bool hasAuthor() => $_has(1);
|
|
||||||
void clearAuthor() => clearField(2);
|
|
||||||
|
|
||||||
$core.String get license => $_getS(2, '');
|
|
||||||
set license($core.String v) { $_setString(2, v); }
|
|
||||||
$core.bool hasLicense() => $_has(2);
|
|
||||||
void clearLicense() => clearField(3);
|
|
||||||
|
|
||||||
$core.String get licenseUrl => $_getS(3, '');
|
|
||||||
set licenseUrl($core.String v) { $_setString(3, v); }
|
|
||||||
$core.bool hasLicenseUrl() => $_has(3);
|
|
||||||
void clearLicenseUrl() => clearField(4);
|
|
||||||
|
|
||||||
Int64 get releaseTime => $_getI64(4);
|
|
||||||
set releaseTime(Int64 v) { $_setInt64(4, v); }
|
|
||||||
$core.bool hasReleaseTime() => $_has(4);
|
|
||||||
void clearReleaseTime() => clearField(5);
|
|
||||||
|
|
||||||
Fee get fee => $_getN(5);
|
|
||||||
set fee(Fee v) { setField(6, v); }
|
|
||||||
$core.bool hasFee() => $_has(5);
|
|
||||||
void clearFee() => clearField(6);
|
|
||||||
|
|
||||||
Image get image => $_getN(6);
|
|
||||||
set image(Image v) { setField(10, v); }
|
|
||||||
$core.bool hasImage() => $_has(6);
|
|
||||||
void clearImage() => clearField(10);
|
|
||||||
|
|
||||||
Video get video => $_getN(7);
|
|
||||||
set video(Video v) { setField(11, v); }
|
|
||||||
$core.bool hasVideo() => $_has(7);
|
|
||||||
void clearVideo() => clearField(11);
|
|
||||||
|
|
||||||
Audio get audio => $_getN(8);
|
|
||||||
set audio(Audio v) { setField(12, v); }
|
|
||||||
$core.bool hasAudio() => $_has(8);
|
|
||||||
void clearAudio() => clearField(12);
|
|
||||||
|
|
||||||
Software get software => $_getN(9);
|
|
||||||
set software(Software v) { setField(13, v); }
|
|
||||||
$core.bool hasSoftware() => $_has(9);
|
|
||||||
void clearSoftware() => clearField(13);
|
|
||||||
}
|
|
||||||
|
|
||||||
class Channel extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Channel', package: const $pb.PackageName('pb'))
|
|
||||||
..a<$core.List<$core.int>>(1, 'publicKey', $pb.PbFieldType.OY)
|
|
||||||
..aOS(2, 'email')
|
|
||||||
..aOS(3, 'websiteUrl')
|
|
||||||
..a<Source>(4, 'cover', $pb.PbFieldType.OM, Source.getDefault, Source.create)
|
|
||||||
..a<ClaimList>(5, 'featured', $pb.PbFieldType.OM, ClaimList.getDefault, ClaimList.create)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Channel._() : super();
|
|
||||||
factory Channel() => create();
|
|
||||||
factory Channel.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Channel.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Channel clone() => Channel()..mergeFromMessage(this);
|
|
||||||
Channel copyWith(void Function(Channel) updates) => super.copyWith((message) => updates(message as Channel));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Channel create() => Channel._();
|
|
||||||
Channel createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Channel> createRepeated() => $pb.PbList<Channel>();
|
|
||||||
static Channel getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Channel _defaultInstance;
|
|
||||||
|
|
||||||
$core.List<$core.int> get publicKey => $_getN(0);
|
|
||||||
set publicKey($core.List<$core.int> v) { $_setBytes(0, v); }
|
|
||||||
$core.bool hasPublicKey() => $_has(0);
|
|
||||||
void clearPublicKey() => clearField(1);
|
|
||||||
|
|
||||||
$core.String get email => $_getS(1, '');
|
|
||||||
set email($core.String v) { $_setString(1, v); }
|
|
||||||
$core.bool hasEmail() => $_has(1);
|
|
||||||
void clearEmail() => clearField(2);
|
|
||||||
|
|
||||||
$core.String get websiteUrl => $_getS(2, '');
|
|
||||||
set websiteUrl($core.String v) { $_setString(2, v); }
|
|
||||||
$core.bool hasWebsiteUrl() => $_has(2);
|
|
||||||
void clearWebsiteUrl() => clearField(3);
|
|
||||||
|
|
||||||
Source get cover => $_getN(3);
|
|
||||||
set cover(Source v) { setField(4, v); }
|
|
||||||
$core.bool hasCover() => $_has(3);
|
|
||||||
void clearCover() => clearField(4);
|
|
||||||
|
|
||||||
ClaimList get featured => $_getN(4);
|
|
||||||
set featured(ClaimList v) { setField(5, v); }
|
|
||||||
$core.bool hasFeatured() => $_has(4);
|
|
||||||
void clearFeatured() => clearField(5);
|
|
||||||
}
|
|
||||||
|
|
||||||
class ClaimReference extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('ClaimReference', package: const $pb.PackageName('pb'))
|
|
||||||
..a<$core.List<$core.int>>(1, 'claimHash', $pb.PbFieldType.OY)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
ClaimReference._() : super();
|
|
||||||
factory ClaimReference() => create();
|
|
||||||
factory ClaimReference.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory ClaimReference.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
ClaimReference clone() => ClaimReference()..mergeFromMessage(this);
|
|
||||||
ClaimReference copyWith(void Function(ClaimReference) updates) => super.copyWith((message) => updates(message as ClaimReference));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static ClaimReference create() => ClaimReference._();
|
|
||||||
ClaimReference createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<ClaimReference> createRepeated() => $pb.PbList<ClaimReference>();
|
|
||||||
static ClaimReference getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static ClaimReference _defaultInstance;
|
|
||||||
|
|
||||||
$core.List<$core.int> get claimHash => $_getN(0);
|
|
||||||
set claimHash($core.List<$core.int> v) { $_setBytes(0, v); }
|
|
||||||
$core.bool hasClaimHash() => $_has(0);
|
|
||||||
void clearClaimHash() => clearField(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
class ClaimList extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('ClaimList', package: const $pb.PackageName('pb'))
|
|
||||||
..e<ClaimList_ListType>(1, 'listType', $pb.PbFieldType.OE, ClaimList_ListType.COLLECTION, ClaimList_ListType.valueOf, ClaimList_ListType.values)
|
|
||||||
..pc<ClaimReference>(2, 'claimReferences', $pb.PbFieldType.PM,ClaimReference.create)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
ClaimList._() : super();
|
|
||||||
factory ClaimList() => create();
|
|
||||||
factory ClaimList.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory ClaimList.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
ClaimList clone() => ClaimList()..mergeFromMessage(this);
|
|
||||||
ClaimList copyWith(void Function(ClaimList) updates) => super.copyWith((message) => updates(message as ClaimList));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static ClaimList create() => ClaimList._();
|
|
||||||
ClaimList createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<ClaimList> createRepeated() => $pb.PbList<ClaimList>();
|
|
||||||
static ClaimList getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static ClaimList _defaultInstance;
|
|
||||||
|
|
||||||
ClaimList_ListType get listType => $_getN(0);
|
|
||||||
set listType(ClaimList_ListType v) { setField(1, v); }
|
|
||||||
$core.bool hasListType() => $_has(0);
|
|
||||||
void clearListType() => clearField(1);
|
|
||||||
|
|
||||||
$core.List<ClaimReference> get claimReferences => $_getList(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
class Source extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Source', package: const $pb.PackageName('pb'))
|
|
||||||
..a<$core.List<$core.int>>(1, 'hash', $pb.PbFieldType.OY)
|
|
||||||
..aOS(2, 'name')
|
|
||||||
..a<Int64>(3, 'size', $pb.PbFieldType.OU6, Int64.ZERO)
|
|
||||||
..aOS(4, 'mediaType')
|
|
||||||
..aOS(5, 'url')
|
|
||||||
..a<$core.List<$core.int>>(6, 'sdHash', $pb.PbFieldType.OY)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Source._() : super();
|
|
||||||
factory Source() => create();
|
|
||||||
factory Source.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Source.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Source clone() => Source()..mergeFromMessage(this);
|
|
||||||
Source copyWith(void Function(Source) updates) => super.copyWith((message) => updates(message as Source));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Source create() => Source._();
|
|
||||||
Source createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Source> createRepeated() => $pb.PbList<Source>();
|
|
||||||
static Source getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Source _defaultInstance;
|
|
||||||
|
|
||||||
$core.List<$core.int> get hash => $_getN(0);
|
|
||||||
set hash($core.List<$core.int> v) { $_setBytes(0, v); }
|
|
||||||
$core.bool hasHash() => $_has(0);
|
|
||||||
void clearHash() => clearField(1);
|
|
||||||
|
|
||||||
$core.String get name => $_getS(1, '');
|
|
||||||
set name($core.String v) { $_setString(1, v); }
|
|
||||||
$core.bool hasName() => $_has(1);
|
|
||||||
void clearName() => clearField(2);
|
|
||||||
|
|
||||||
Int64 get size => $_getI64(2);
|
|
||||||
set size(Int64 v) { $_setInt64(2, v); }
|
|
||||||
$core.bool hasSize() => $_has(2);
|
|
||||||
void clearSize() => clearField(3);
|
|
||||||
|
|
||||||
$core.String get mediaType => $_getS(3, '');
|
|
||||||
set mediaType($core.String v) { $_setString(3, v); }
|
|
||||||
$core.bool hasMediaType() => $_has(3);
|
|
||||||
void clearMediaType() => clearField(4);
|
|
||||||
|
|
||||||
$core.String get url => $_getS(4, '');
|
|
||||||
set url($core.String v) { $_setString(4, v); }
|
|
||||||
$core.bool hasUrl() => $_has(4);
|
|
||||||
void clearUrl() => clearField(5);
|
|
||||||
|
|
||||||
$core.List<$core.int> get sdHash => $_getN(5);
|
|
||||||
set sdHash($core.List<$core.int> v) { $_setBytes(5, v); }
|
|
||||||
$core.bool hasSdHash() => $_has(5);
|
|
||||||
void clearSdHash() => clearField(6);
|
|
||||||
}
|
|
||||||
|
|
||||||
class Fee extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Fee', package: const $pb.PackageName('pb'))
|
|
||||||
..e<Fee_Currency>(1, 'currency', $pb.PbFieldType.OE, Fee_Currency.UNKNOWN_CURRENCY, Fee_Currency.valueOf, Fee_Currency.values)
|
|
||||||
..a<$core.List<$core.int>>(2, 'address', $pb.PbFieldType.OY)
|
|
||||||
..a<Int64>(3, 'amount', $pb.PbFieldType.OU6, Int64.ZERO)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Fee._() : super();
|
|
||||||
factory Fee() => create();
|
|
||||||
factory Fee.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Fee.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Fee clone() => Fee()..mergeFromMessage(this);
|
|
||||||
Fee copyWith(void Function(Fee) updates) => super.copyWith((message) => updates(message as Fee));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Fee create() => Fee._();
|
|
||||||
Fee createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Fee> createRepeated() => $pb.PbList<Fee>();
|
|
||||||
static Fee getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Fee _defaultInstance;
|
|
||||||
|
|
||||||
Fee_Currency get currency => $_getN(0);
|
|
||||||
set currency(Fee_Currency v) { setField(1, v); }
|
|
||||||
$core.bool hasCurrency() => $_has(0);
|
|
||||||
void clearCurrency() => clearField(1);
|
|
||||||
|
|
||||||
$core.List<$core.int> get address => $_getN(1);
|
|
||||||
set address($core.List<$core.int> v) { $_setBytes(1, v); }
|
|
||||||
$core.bool hasAddress() => $_has(1);
|
|
||||||
void clearAddress() => clearField(2);
|
|
||||||
|
|
||||||
Int64 get amount => $_getI64(2);
|
|
||||||
set amount(Int64 v) { $_setInt64(2, v); }
|
|
||||||
$core.bool hasAmount() => $_has(2);
|
|
||||||
void clearAmount() => clearField(3);
|
|
||||||
}
|
|
||||||
|
|
||||||
class Image extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Image', package: const $pb.PackageName('pb'))
|
|
||||||
..a<$core.int>(1, 'width', $pb.PbFieldType.OU3)
|
|
||||||
..a<$core.int>(2, 'height', $pb.PbFieldType.OU3)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Image._() : super();
|
|
||||||
factory Image() => create();
|
|
||||||
factory Image.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Image.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Image clone() => Image()..mergeFromMessage(this);
|
|
||||||
Image copyWith(void Function(Image) updates) => super.copyWith((message) => updates(message as Image));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Image create() => Image._();
|
|
||||||
Image createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Image> createRepeated() => $pb.PbList<Image>();
|
|
||||||
static Image getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Image _defaultInstance;
|
|
||||||
|
|
||||||
$core.int get width => $_get(0, 0);
|
|
||||||
set width($core.int v) { $_setUnsignedInt32(0, v); }
|
|
||||||
$core.bool hasWidth() => $_has(0);
|
|
||||||
void clearWidth() => clearField(1);
|
|
||||||
|
|
||||||
$core.int get height => $_get(1, 0);
|
|
||||||
set height($core.int v) { $_setUnsignedInt32(1, v); }
|
|
||||||
$core.bool hasHeight() => $_has(1);
|
|
||||||
void clearHeight() => clearField(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
class Video extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Video', package: const $pb.PackageName('pb'))
|
|
||||||
..a<$core.int>(1, 'width', $pb.PbFieldType.OU3)
|
|
||||||
..a<$core.int>(2, 'height', $pb.PbFieldType.OU3)
|
|
||||||
..a<$core.int>(3, 'duration', $pb.PbFieldType.OU3)
|
|
||||||
..a<Audio>(15, 'audio', $pb.PbFieldType.OM, Audio.getDefault, Audio.create)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Video._() : super();
|
|
||||||
factory Video() => create();
|
|
||||||
factory Video.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Video.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Video clone() => Video()..mergeFromMessage(this);
|
|
||||||
Video copyWith(void Function(Video) updates) => super.copyWith((message) => updates(message as Video));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Video create() => Video._();
|
|
||||||
Video createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Video> createRepeated() => $pb.PbList<Video>();
|
|
||||||
static Video getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Video _defaultInstance;
|
|
||||||
|
|
||||||
$core.int get width => $_get(0, 0);
|
|
||||||
set width($core.int v) { $_setUnsignedInt32(0, v); }
|
|
||||||
$core.bool hasWidth() => $_has(0);
|
|
||||||
void clearWidth() => clearField(1);
|
|
||||||
|
|
||||||
$core.int get height => $_get(1, 0);
|
|
||||||
set height($core.int v) { $_setUnsignedInt32(1, v); }
|
|
||||||
$core.bool hasHeight() => $_has(1);
|
|
||||||
void clearHeight() => clearField(2);
|
|
||||||
|
|
||||||
$core.int get duration => $_get(2, 0);
|
|
||||||
set duration($core.int v) { $_setUnsignedInt32(2, v); }
|
|
||||||
$core.bool hasDuration() => $_has(2);
|
|
||||||
void clearDuration() => clearField(3);
|
|
||||||
|
|
||||||
Audio get audio => $_getN(3);
|
|
||||||
set audio(Audio v) { setField(15, v); }
|
|
||||||
$core.bool hasAudio() => $_has(3);
|
|
||||||
void clearAudio() => clearField(15);
|
|
||||||
}
|
|
||||||
|
|
||||||
class Audio extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Audio', package: const $pb.PackageName('pb'))
|
|
||||||
..a<$core.int>(1, 'duration', $pb.PbFieldType.OU3)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Audio._() : super();
|
|
||||||
factory Audio() => create();
|
|
||||||
factory Audio.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Audio.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Audio clone() => Audio()..mergeFromMessage(this);
|
|
||||||
Audio copyWith(void Function(Audio) updates) => super.copyWith((message) => updates(message as Audio));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Audio create() => Audio._();
|
|
||||||
Audio createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Audio> createRepeated() => $pb.PbList<Audio>();
|
|
||||||
static Audio getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Audio _defaultInstance;
|
|
||||||
|
|
||||||
$core.int get duration => $_get(0, 0);
|
|
||||||
set duration($core.int v) { $_setUnsignedInt32(0, v); }
|
|
||||||
$core.bool hasDuration() => $_has(0);
|
|
||||||
void clearDuration() => clearField(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
class Software extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Software', package: const $pb.PackageName('pb'))
|
|
||||||
..aOS(1, 'os')
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Software._() : super();
|
|
||||||
factory Software() => create();
|
|
||||||
factory Software.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Software.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Software clone() => Software()..mergeFromMessage(this);
|
|
||||||
Software copyWith(void Function(Software) updates) => super.copyWith((message) => updates(message as Software));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Software create() => Software._();
|
|
||||||
Software createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Software> createRepeated() => $pb.PbList<Software>();
|
|
||||||
static Software getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Software _defaultInstance;
|
|
||||||
|
|
||||||
$core.String get os => $_getS(0, '');
|
|
||||||
set os($core.String v) { $_setString(0, v); }
|
|
||||||
$core.bool hasOs() => $_has(0);
|
|
||||||
void clearOs() => clearField(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
class Language extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Language', package: const $pb.PackageName('pb'))
|
|
||||||
..e<Language_Language>(1, 'language', $pb.PbFieldType.OE, Language_Language.UNKNOWN_LANGUAGE, Language_Language.valueOf, Language_Language.values)
|
|
||||||
..e<Language_Script>(2, 'script', $pb.PbFieldType.OE, Language_Script.UNKNOWN_SCRIPT, Language_Script.valueOf, Language_Script.values)
|
|
||||||
..e<Location_Country>(3, 'region', $pb.PbFieldType.OE, Location_Country.UNKNOWN_COUNTRY, Location_Country.valueOf, Location_Country.values)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Language._() : super();
|
|
||||||
factory Language() => create();
|
|
||||||
factory Language.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Language.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Language clone() => Language()..mergeFromMessage(this);
|
|
||||||
Language copyWith(void Function(Language) updates) => super.copyWith((message) => updates(message as Language));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Language create() => Language._();
|
|
||||||
Language createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Language> createRepeated() => $pb.PbList<Language>();
|
|
||||||
static Language getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Language _defaultInstance;
|
|
||||||
|
|
||||||
Language_Language get language => $_getN(0);
|
|
||||||
set language(Language_Language v) { setField(1, v); }
|
|
||||||
$core.bool hasLanguage() => $_has(0);
|
|
||||||
void clearLanguage() => clearField(1);
|
|
||||||
|
|
||||||
Language_Script get script => $_getN(1);
|
|
||||||
set script(Language_Script v) { setField(2, v); }
|
|
||||||
$core.bool hasScript() => $_has(1);
|
|
||||||
void clearScript() => clearField(2);
|
|
||||||
|
|
||||||
Location_Country get region => $_getN(2);
|
|
||||||
set region(Location_Country v) { setField(3, v); }
|
|
||||||
$core.bool hasRegion() => $_has(2);
|
|
||||||
void clearRegion() => clearField(3);
|
|
||||||
}
|
|
||||||
|
|
||||||
class Location extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Location', package: const $pb.PackageName('pb'))
|
|
||||||
..e<Location_Country>(1, 'country', $pb.PbFieldType.OE, Location_Country.UNKNOWN_COUNTRY, Location_Country.valueOf, Location_Country.values)
|
|
||||||
..aOS(2, 'state')
|
|
||||||
..aOS(3, 'city')
|
|
||||||
..aOS(4, 'code')
|
|
||||||
..a<$core.int>(5, 'latitude', $pb.PbFieldType.OS3)
|
|
||||||
..a<$core.int>(6, 'longitude', $pb.PbFieldType.OS3)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Location._() : super();
|
|
||||||
factory Location() => create();
|
|
||||||
factory Location.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Location.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Location clone() => Location()..mergeFromMessage(this);
|
|
||||||
Location copyWith(void Function(Location) updates) => super.copyWith((message) => updates(message as Location));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Location create() => Location._();
|
|
||||||
Location createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Location> createRepeated() => $pb.PbList<Location>();
|
|
||||||
static Location getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Location _defaultInstance;
|
|
||||||
|
|
||||||
Location_Country get country => $_getN(0);
|
|
||||||
set country(Location_Country v) { setField(1, v); }
|
|
||||||
$core.bool hasCountry() => $_has(0);
|
|
||||||
void clearCountry() => clearField(1);
|
|
||||||
|
|
||||||
$core.String get state => $_getS(1, '');
|
|
||||||
set state($core.String v) { $_setString(1, v); }
|
|
||||||
$core.bool hasState() => $_has(1);
|
|
||||||
void clearState() => clearField(2);
|
|
||||||
|
|
||||||
$core.String get city => $_getS(2, '');
|
|
||||||
set city($core.String v) { $_setString(2, v); }
|
|
||||||
$core.bool hasCity() => $_has(2);
|
|
||||||
void clearCity() => clearField(3);
|
|
||||||
|
|
||||||
$core.String get code => $_getS(3, '');
|
|
||||||
set code($core.String v) { $_setString(3, v); }
|
|
||||||
$core.bool hasCode() => $_has(3);
|
|
||||||
void clearCode() => clearField(4);
|
|
||||||
|
|
||||||
$core.int get latitude => $_get(4, 0);
|
|
||||||
set latitude($core.int v) { $_setSignedInt32(4, v); }
|
|
||||||
$core.bool hasLatitude() => $_has(4);
|
|
||||||
void clearLatitude() => clearField(5);
|
|
||||||
|
|
||||||
$core.int get longitude => $_get(5, 0);
|
|
||||||
set longitude($core.int v) { $_setSignedInt32(5, v); }
|
|
||||||
$core.bool hasLongitude() => $_has(5);
|
|
||||||
void clearLongitude() => clearField(6);
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,833 +0,0 @@
|
||||||
///
|
|
||||||
// Generated code. Do not modify.
|
|
||||||
// source: claim.proto
|
|
||||||
///
|
|
||||||
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
|
|
||||||
|
|
||||||
const Claim$json = const {
|
|
||||||
'1': 'Claim',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'stream', '3': 1, '4': 1, '5': 11, '6': '.pb.Stream', '9': 0, '10': 'stream'},
|
|
||||||
const {'1': 'channel', '3': 2, '4': 1, '5': 11, '6': '.pb.Channel', '9': 0, '10': 'channel'},
|
|
||||||
const {'1': 'collection', '3': 3, '4': 1, '5': 11, '6': '.pb.ClaimList', '9': 0, '10': 'collection'},
|
|
||||||
const {'1': 'repost', '3': 4, '4': 1, '5': 11, '6': '.pb.ClaimReference', '9': 0, '10': 'repost'},
|
|
||||||
const {'1': 'title', '3': 8, '4': 1, '5': 9, '10': 'title'},
|
|
||||||
const {'1': 'description', '3': 9, '4': 1, '5': 9, '10': 'description'},
|
|
||||||
const {'1': 'thumbnail', '3': 10, '4': 1, '5': 11, '6': '.pb.Source', '10': 'thumbnail'},
|
|
||||||
const {'1': 'tags', '3': 11, '4': 3, '5': 9, '10': 'tags'},
|
|
||||||
const {'1': 'languages', '3': 12, '4': 3, '5': 11, '6': '.pb.Language', '10': 'languages'},
|
|
||||||
const {'1': 'locations', '3': 13, '4': 3, '5': 11, '6': '.pb.Location', '10': 'locations'},
|
|
||||||
],
|
|
||||||
'8': const [
|
|
||||||
const {'1': 'type'},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Stream$json = const {
|
|
||||||
'1': 'Stream',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'source', '3': 1, '4': 1, '5': 11, '6': '.pb.Source', '10': 'source'},
|
|
||||||
const {'1': 'author', '3': 2, '4': 1, '5': 9, '10': 'author'},
|
|
||||||
const {'1': 'license', '3': 3, '4': 1, '5': 9, '10': 'license'},
|
|
||||||
const {'1': 'license_url', '3': 4, '4': 1, '5': 9, '10': 'licenseUrl'},
|
|
||||||
const {'1': 'release_time', '3': 5, '4': 1, '5': 3, '10': 'releaseTime'},
|
|
||||||
const {'1': 'fee', '3': 6, '4': 1, '5': 11, '6': '.pb.Fee', '10': 'fee'},
|
|
||||||
const {'1': 'image', '3': 10, '4': 1, '5': 11, '6': '.pb.Image', '9': 0, '10': 'image'},
|
|
||||||
const {'1': 'video', '3': 11, '4': 1, '5': 11, '6': '.pb.Video', '9': 0, '10': 'video'},
|
|
||||||
const {'1': 'audio', '3': 12, '4': 1, '5': 11, '6': '.pb.Audio', '9': 0, '10': 'audio'},
|
|
||||||
const {'1': 'software', '3': 13, '4': 1, '5': 11, '6': '.pb.Software', '9': 0, '10': 'software'},
|
|
||||||
],
|
|
||||||
'8': const [
|
|
||||||
const {'1': 'type'},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Channel$json = const {
|
|
||||||
'1': 'Channel',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'public_key', '3': 1, '4': 1, '5': 12, '10': 'publicKey'},
|
|
||||||
const {'1': 'email', '3': 2, '4': 1, '5': 9, '10': 'email'},
|
|
||||||
const {'1': 'website_url', '3': 3, '4': 1, '5': 9, '10': 'websiteUrl'},
|
|
||||||
const {'1': 'cover', '3': 4, '4': 1, '5': 11, '6': '.pb.Source', '10': 'cover'},
|
|
||||||
const {'1': 'featured', '3': 5, '4': 1, '5': 11, '6': '.pb.ClaimList', '10': 'featured'},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const ClaimReference$json = const {
|
|
||||||
'1': 'ClaimReference',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'claim_hash', '3': 1, '4': 1, '5': 12, '10': 'claimHash'},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const ClaimList$json = const {
|
|
||||||
'1': 'ClaimList',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'list_type', '3': 1, '4': 1, '5': 14, '6': '.pb.ClaimList.ListType', '10': 'listType'},
|
|
||||||
const {'1': 'claim_references', '3': 2, '4': 3, '5': 11, '6': '.pb.ClaimReference', '10': 'claimReferences'},
|
|
||||||
],
|
|
||||||
'4': const [ClaimList_ListType$json],
|
|
||||||
};
|
|
||||||
|
|
||||||
const ClaimList_ListType$json = const {
|
|
||||||
'1': 'ListType',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'COLLECTION', '2': 0},
|
|
||||||
const {'1': 'DERIVATION', '2': 2},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Source$json = const {
|
|
||||||
'1': 'Source',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'hash', '3': 1, '4': 1, '5': 12, '10': 'hash'},
|
|
||||||
const {'1': 'name', '3': 2, '4': 1, '5': 9, '10': 'name'},
|
|
||||||
const {'1': 'size', '3': 3, '4': 1, '5': 4, '10': 'size'},
|
|
||||||
const {'1': 'media_type', '3': 4, '4': 1, '5': 9, '10': 'mediaType'},
|
|
||||||
const {'1': 'url', '3': 5, '4': 1, '5': 9, '10': 'url'},
|
|
||||||
const {'1': 'sd_hash', '3': 6, '4': 1, '5': 12, '10': 'sdHash'},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Fee$json = const {
|
|
||||||
'1': 'Fee',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'currency', '3': 1, '4': 1, '5': 14, '6': '.pb.Fee.Currency', '10': 'currency'},
|
|
||||||
const {'1': 'address', '3': 2, '4': 1, '5': 12, '10': 'address'},
|
|
||||||
const {'1': 'amount', '3': 3, '4': 1, '5': 4, '10': 'amount'},
|
|
||||||
],
|
|
||||||
'4': const [Fee_Currency$json],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Fee_Currency$json = const {
|
|
||||||
'1': 'Currency',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'UNKNOWN_CURRENCY', '2': 0},
|
|
||||||
const {'1': 'LBC', '2': 1},
|
|
||||||
const {'1': 'BTC', '2': 2},
|
|
||||||
const {'1': 'USD', '2': 3},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Image$json = const {
|
|
||||||
'1': 'Image',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'width', '3': 1, '4': 1, '5': 13, '10': 'width'},
|
|
||||||
const {'1': 'height', '3': 2, '4': 1, '5': 13, '10': 'height'},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Video$json = const {
|
|
||||||
'1': 'Video',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'width', '3': 1, '4': 1, '5': 13, '10': 'width'},
|
|
||||||
const {'1': 'height', '3': 2, '4': 1, '5': 13, '10': 'height'},
|
|
||||||
const {'1': 'duration', '3': 3, '4': 1, '5': 13, '10': 'duration'},
|
|
||||||
const {'1': 'audio', '3': 15, '4': 1, '5': 11, '6': '.pb.Audio', '10': 'audio'},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Audio$json = const {
|
|
||||||
'1': 'Audio',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'duration', '3': 1, '4': 1, '5': 13, '10': 'duration'},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Software$json = const {
|
|
||||||
'1': 'Software',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'os', '3': 1, '4': 1, '5': 9, '10': 'os'},
|
|
||||||
],
|
|
||||||
'4': const [Software_OS$json],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Software_OS$json = const {
|
|
||||||
'1': 'OS',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'UNKNOWN_OS', '2': 0},
|
|
||||||
const {'1': 'ANY', '2': 1},
|
|
||||||
const {'1': 'LINUX', '2': 2},
|
|
||||||
const {'1': 'WINDOWS', '2': 3},
|
|
||||||
const {'1': 'MAC', '2': 4},
|
|
||||||
const {'1': 'ANDROID', '2': 5},
|
|
||||||
const {'1': 'IOS', '2': 6},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Language$json = const {
|
|
||||||
'1': 'Language',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'language', '3': 1, '4': 1, '5': 14, '6': '.pb.Language.Language', '10': 'language'},
|
|
||||||
const {'1': 'script', '3': 2, '4': 1, '5': 14, '6': '.pb.Language.Script', '10': 'script'},
|
|
||||||
const {'1': 'region', '3': 3, '4': 1, '5': 14, '6': '.pb.Location.Country', '10': 'region'},
|
|
||||||
],
|
|
||||||
'4': const [Language_Language$json, Language_Script$json],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Language_Language$json = const {
|
|
||||||
'1': 'Language',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'UNKNOWN_LANGUAGE', '2': 0},
|
|
||||||
const {'1': 'en', '2': 1},
|
|
||||||
const {'1': 'aa', '2': 2},
|
|
||||||
const {'1': 'ab', '2': 3},
|
|
||||||
const {'1': 'ae', '2': 4},
|
|
||||||
const {'1': 'af', '2': 5},
|
|
||||||
const {'1': 'ak', '2': 6},
|
|
||||||
const {'1': 'am', '2': 7},
|
|
||||||
const {'1': 'an', '2': 8},
|
|
||||||
const {'1': 'ar', '2': 9},
|
|
||||||
const {'1': 'as', '2': 10},
|
|
||||||
const {'1': 'av', '2': 11},
|
|
||||||
const {'1': 'ay', '2': 12},
|
|
||||||
const {'1': 'az', '2': 13},
|
|
||||||
const {'1': 'ba', '2': 14},
|
|
||||||
const {'1': 'be', '2': 15},
|
|
||||||
const {'1': 'bg', '2': 16},
|
|
||||||
const {'1': 'bh', '2': 17},
|
|
||||||
const {'1': 'bi', '2': 18},
|
|
||||||
const {'1': 'bm', '2': 19},
|
|
||||||
const {'1': 'bn', '2': 20},
|
|
||||||
const {'1': 'bo', '2': 21},
|
|
||||||
const {'1': 'br', '2': 22},
|
|
||||||
const {'1': 'bs', '2': 23},
|
|
||||||
const {'1': 'ca', '2': 24},
|
|
||||||
const {'1': 'ce', '2': 25},
|
|
||||||
const {'1': 'ch', '2': 26},
|
|
||||||
const {'1': 'co', '2': 27},
|
|
||||||
const {'1': 'cr', '2': 28},
|
|
||||||
const {'1': 'cs', '2': 29},
|
|
||||||
const {'1': 'cu', '2': 30},
|
|
||||||
const {'1': 'cv', '2': 31},
|
|
||||||
const {'1': 'cy', '2': 32},
|
|
||||||
const {'1': 'da', '2': 33},
|
|
||||||
const {'1': 'de', '2': 34},
|
|
||||||
const {'1': 'dv', '2': 35},
|
|
||||||
const {'1': 'dz', '2': 36},
|
|
||||||
const {'1': 'ee', '2': 37},
|
|
||||||
const {'1': 'el', '2': 38},
|
|
||||||
const {'1': 'eo', '2': 39},
|
|
||||||
const {'1': 'es', '2': 40},
|
|
||||||
const {'1': 'et', '2': 41},
|
|
||||||
const {'1': 'eu', '2': 42},
|
|
||||||
const {'1': 'fa', '2': 43},
|
|
||||||
const {'1': 'ff', '2': 44},
|
|
||||||
const {'1': 'fi', '2': 45},
|
|
||||||
const {'1': 'fj', '2': 46},
|
|
||||||
const {'1': 'fo', '2': 47},
|
|
||||||
const {'1': 'fr', '2': 48},
|
|
||||||
const {'1': 'fy', '2': 49},
|
|
||||||
const {'1': 'ga', '2': 50},
|
|
||||||
const {'1': 'gd', '2': 51},
|
|
||||||
const {'1': 'gl', '2': 52},
|
|
||||||
const {'1': 'gn', '2': 53},
|
|
||||||
const {'1': 'gu', '2': 54},
|
|
||||||
const {'1': 'gv', '2': 55},
|
|
||||||
const {'1': 'ha', '2': 56},
|
|
||||||
const {'1': 'he', '2': 57},
|
|
||||||
const {'1': 'hi', '2': 58},
|
|
||||||
const {'1': 'ho', '2': 59},
|
|
||||||
const {'1': 'hr', '2': 60},
|
|
||||||
const {'1': 'ht', '2': 61},
|
|
||||||
const {'1': 'hu', '2': 62},
|
|
||||||
const {'1': 'hy', '2': 63},
|
|
||||||
const {'1': 'hz', '2': 64},
|
|
||||||
const {'1': 'ia', '2': 65},
|
|
||||||
const {'1': 'id', '2': 66},
|
|
||||||
const {'1': 'ie', '2': 67},
|
|
||||||
const {'1': 'ig', '2': 68},
|
|
||||||
const {'1': 'ii', '2': 69},
|
|
||||||
const {'1': 'ik', '2': 70},
|
|
||||||
const {'1': 'io', '2': 71},
|
|
||||||
const {'1': 'is', '2': 72},
|
|
||||||
const {'1': 'it', '2': 73},
|
|
||||||
const {'1': 'iu', '2': 74},
|
|
||||||
const {'1': 'ja', '2': 75},
|
|
||||||
const {'1': 'jv', '2': 76},
|
|
||||||
const {'1': 'ka', '2': 77},
|
|
||||||
const {'1': 'kg', '2': 78},
|
|
||||||
const {'1': 'ki', '2': 79},
|
|
||||||
const {'1': 'kj', '2': 80},
|
|
||||||
const {'1': 'kk', '2': 81},
|
|
||||||
const {'1': 'kl', '2': 82},
|
|
||||||
const {'1': 'km', '2': 83},
|
|
||||||
const {'1': 'kn', '2': 84},
|
|
||||||
const {'1': 'ko', '2': 85},
|
|
||||||
const {'1': 'kr', '2': 86},
|
|
||||||
const {'1': 'ks', '2': 87},
|
|
||||||
const {'1': 'ku', '2': 88},
|
|
||||||
const {'1': 'kv', '2': 89},
|
|
||||||
const {'1': 'kw', '2': 90},
|
|
||||||
const {'1': 'ky', '2': 91},
|
|
||||||
const {'1': 'la', '2': 92},
|
|
||||||
const {'1': 'lb', '2': 93},
|
|
||||||
const {'1': 'lg', '2': 94},
|
|
||||||
const {'1': 'li', '2': 95},
|
|
||||||
const {'1': 'ln', '2': 96},
|
|
||||||
const {'1': 'lo', '2': 97},
|
|
||||||
const {'1': 'lt', '2': 98},
|
|
||||||
const {'1': 'lu', '2': 99},
|
|
||||||
const {'1': 'lv', '2': 100},
|
|
||||||
const {'1': 'mg', '2': 101},
|
|
||||||
const {'1': 'mh', '2': 102},
|
|
||||||
const {'1': 'mi', '2': 103},
|
|
||||||
const {'1': 'mk', '2': 104},
|
|
||||||
const {'1': 'ml', '2': 105},
|
|
||||||
const {'1': 'mn', '2': 106},
|
|
||||||
const {'1': 'mr', '2': 107},
|
|
||||||
const {'1': 'ms', '2': 108},
|
|
||||||
const {'1': 'mt', '2': 109},
|
|
||||||
const {'1': 'my', '2': 110},
|
|
||||||
const {'1': 'na', '2': 111},
|
|
||||||
const {'1': 'nb', '2': 112},
|
|
||||||
const {'1': 'nd', '2': 113},
|
|
||||||
const {'1': 'ne', '2': 114},
|
|
||||||
const {'1': 'ng', '2': 115},
|
|
||||||
const {'1': 'nl', '2': 116},
|
|
||||||
const {'1': 'nn', '2': 117},
|
|
||||||
const {'1': 'no', '2': 118},
|
|
||||||
const {'1': 'nr', '2': 119},
|
|
||||||
const {'1': 'nv', '2': 120},
|
|
||||||
const {'1': 'ny', '2': 121},
|
|
||||||
const {'1': 'oc', '2': 122},
|
|
||||||
const {'1': 'oj', '2': 123},
|
|
||||||
const {'1': 'om', '2': 124},
|
|
||||||
const {'1': 'or', '2': 125},
|
|
||||||
const {'1': 'os', '2': 126},
|
|
||||||
const {'1': 'pa', '2': 127},
|
|
||||||
const {'1': 'pi', '2': 128},
|
|
||||||
const {'1': 'pl', '2': 129},
|
|
||||||
const {'1': 'ps', '2': 130},
|
|
||||||
const {'1': 'pt', '2': 131},
|
|
||||||
const {'1': 'qu', '2': 132},
|
|
||||||
const {'1': 'rm', '2': 133},
|
|
||||||
const {'1': 'rn', '2': 134},
|
|
||||||
const {'1': 'ro', '2': 135},
|
|
||||||
const {'1': 'ru', '2': 136},
|
|
||||||
const {'1': 'rw', '2': 137},
|
|
||||||
const {'1': 'sa', '2': 138},
|
|
||||||
const {'1': 'sc', '2': 139},
|
|
||||||
const {'1': 'sd', '2': 140},
|
|
||||||
const {'1': 'se', '2': 141},
|
|
||||||
const {'1': 'sg', '2': 142},
|
|
||||||
const {'1': 'si', '2': 143},
|
|
||||||
const {'1': 'sk', '2': 144},
|
|
||||||
const {'1': 'sl', '2': 145},
|
|
||||||
const {'1': 'sm', '2': 146},
|
|
||||||
const {'1': 'sn', '2': 147},
|
|
||||||
const {'1': 'so', '2': 148},
|
|
||||||
const {'1': 'sq', '2': 149},
|
|
||||||
const {'1': 'sr', '2': 150},
|
|
||||||
const {'1': 'ss', '2': 151},
|
|
||||||
const {'1': 'st', '2': 152},
|
|
||||||
const {'1': 'su', '2': 153},
|
|
||||||
const {'1': 'sv', '2': 154},
|
|
||||||
const {'1': 'sw', '2': 155},
|
|
||||||
const {'1': 'ta', '2': 156},
|
|
||||||
const {'1': 'te', '2': 157},
|
|
||||||
const {'1': 'tg', '2': 158},
|
|
||||||
const {'1': 'th', '2': 159},
|
|
||||||
const {'1': 'ti', '2': 160},
|
|
||||||
const {'1': 'tk', '2': 161},
|
|
||||||
const {'1': 'tl', '2': 162},
|
|
||||||
const {'1': 'tn', '2': 163},
|
|
||||||
const {'1': 'to', '2': 164},
|
|
||||||
const {'1': 'tr', '2': 165},
|
|
||||||
const {'1': 'ts', '2': 166},
|
|
||||||
const {'1': 'tt', '2': 167},
|
|
||||||
const {'1': 'tw', '2': 168},
|
|
||||||
const {'1': 'ty', '2': 169},
|
|
||||||
const {'1': 'ug', '2': 170},
|
|
||||||
const {'1': 'uk', '2': 171},
|
|
||||||
const {'1': 'ur', '2': 172},
|
|
||||||
const {'1': 'uz', '2': 173},
|
|
||||||
const {'1': 've', '2': 174},
|
|
||||||
const {'1': 'vi', '2': 175},
|
|
||||||
const {'1': 'vo', '2': 176},
|
|
||||||
const {'1': 'wa', '2': 177},
|
|
||||||
const {'1': 'wo', '2': 178},
|
|
||||||
const {'1': 'xh', '2': 179},
|
|
||||||
const {'1': 'yi', '2': 180},
|
|
||||||
const {'1': 'yo', '2': 181},
|
|
||||||
const {'1': 'za', '2': 182},
|
|
||||||
const {'1': 'zh', '2': 183},
|
|
||||||
const {'1': 'zu', '2': 184},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Language_Script$json = const {
|
|
||||||
'1': 'Script',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'UNKNOWN_SCRIPT', '2': 0},
|
|
||||||
const {'1': 'Adlm', '2': 1},
|
|
||||||
const {'1': 'Afak', '2': 2},
|
|
||||||
const {'1': 'Aghb', '2': 3},
|
|
||||||
const {'1': 'Ahom', '2': 4},
|
|
||||||
const {'1': 'Arab', '2': 5},
|
|
||||||
const {'1': 'Aran', '2': 6},
|
|
||||||
const {'1': 'Armi', '2': 7},
|
|
||||||
const {'1': 'Armn', '2': 8},
|
|
||||||
const {'1': 'Avst', '2': 9},
|
|
||||||
const {'1': 'Bali', '2': 10},
|
|
||||||
const {'1': 'Bamu', '2': 11},
|
|
||||||
const {'1': 'Bass', '2': 12},
|
|
||||||
const {'1': 'Batk', '2': 13},
|
|
||||||
const {'1': 'Beng', '2': 14},
|
|
||||||
const {'1': 'Bhks', '2': 15},
|
|
||||||
const {'1': 'Blis', '2': 16},
|
|
||||||
const {'1': 'Bopo', '2': 17},
|
|
||||||
const {'1': 'Brah', '2': 18},
|
|
||||||
const {'1': 'Brai', '2': 19},
|
|
||||||
const {'1': 'Bugi', '2': 20},
|
|
||||||
const {'1': 'Buhd', '2': 21},
|
|
||||||
const {'1': 'Cakm', '2': 22},
|
|
||||||
const {'1': 'Cans', '2': 23},
|
|
||||||
const {'1': 'Cari', '2': 24},
|
|
||||||
const {'1': 'Cham', '2': 25},
|
|
||||||
const {'1': 'Cher', '2': 26},
|
|
||||||
const {'1': 'Cirt', '2': 27},
|
|
||||||
const {'1': 'Copt', '2': 28},
|
|
||||||
const {'1': 'Cpmn', '2': 29},
|
|
||||||
const {'1': 'Cprt', '2': 30},
|
|
||||||
const {'1': 'Cyrl', '2': 31},
|
|
||||||
const {'1': 'Cyrs', '2': 32},
|
|
||||||
const {'1': 'Deva', '2': 33},
|
|
||||||
const {'1': 'Dogr', '2': 34},
|
|
||||||
const {'1': 'Dsrt', '2': 35},
|
|
||||||
const {'1': 'Dupl', '2': 36},
|
|
||||||
const {'1': 'Egyd', '2': 37},
|
|
||||||
const {'1': 'Egyh', '2': 38},
|
|
||||||
const {'1': 'Egyp', '2': 39},
|
|
||||||
const {'1': 'Elba', '2': 40},
|
|
||||||
const {'1': 'Elym', '2': 41},
|
|
||||||
const {'1': 'Ethi', '2': 42},
|
|
||||||
const {'1': 'Geok', '2': 43},
|
|
||||||
const {'1': 'Geor', '2': 44},
|
|
||||||
const {'1': 'Glag', '2': 45},
|
|
||||||
const {'1': 'Gong', '2': 46},
|
|
||||||
const {'1': 'Gonm', '2': 47},
|
|
||||||
const {'1': 'Goth', '2': 48},
|
|
||||||
const {'1': 'Gran', '2': 49},
|
|
||||||
const {'1': 'Grek', '2': 50},
|
|
||||||
const {'1': 'Gujr', '2': 51},
|
|
||||||
const {'1': 'Guru', '2': 52},
|
|
||||||
const {'1': 'Hanb', '2': 53},
|
|
||||||
const {'1': 'Hang', '2': 54},
|
|
||||||
const {'1': 'Hani', '2': 55},
|
|
||||||
const {'1': 'Hano', '2': 56},
|
|
||||||
const {'1': 'Hans', '2': 57},
|
|
||||||
const {'1': 'Hant', '2': 58},
|
|
||||||
const {'1': 'Hatr', '2': 59},
|
|
||||||
const {'1': 'Hebr', '2': 60},
|
|
||||||
const {'1': 'Hira', '2': 61},
|
|
||||||
const {'1': 'Hluw', '2': 62},
|
|
||||||
const {'1': 'Hmng', '2': 63},
|
|
||||||
const {'1': 'Hmnp', '2': 64},
|
|
||||||
const {'1': 'Hrkt', '2': 65},
|
|
||||||
const {'1': 'Hung', '2': 66},
|
|
||||||
const {'1': 'Inds', '2': 67},
|
|
||||||
const {'1': 'Ital', '2': 68},
|
|
||||||
const {'1': 'Jamo', '2': 69},
|
|
||||||
const {'1': 'Java', '2': 70},
|
|
||||||
const {'1': 'Jpan', '2': 71},
|
|
||||||
const {'1': 'Jurc', '2': 72},
|
|
||||||
const {'1': 'Kali', '2': 73},
|
|
||||||
const {'1': 'Kana', '2': 74},
|
|
||||||
const {'1': 'Khar', '2': 75},
|
|
||||||
const {'1': 'Khmr', '2': 76},
|
|
||||||
const {'1': 'Khoj', '2': 77},
|
|
||||||
const {'1': 'Kitl', '2': 78},
|
|
||||||
const {'1': 'Kits', '2': 79},
|
|
||||||
const {'1': 'Knda', '2': 80},
|
|
||||||
const {'1': 'Kore', '2': 81},
|
|
||||||
const {'1': 'Kpel', '2': 82},
|
|
||||||
const {'1': 'Kthi', '2': 83},
|
|
||||||
const {'1': 'Lana', '2': 84},
|
|
||||||
const {'1': 'Laoo', '2': 85},
|
|
||||||
const {'1': 'Latf', '2': 86},
|
|
||||||
const {'1': 'Latg', '2': 87},
|
|
||||||
const {'1': 'Latn', '2': 88},
|
|
||||||
const {'1': 'Leke', '2': 89},
|
|
||||||
const {'1': 'Lepc', '2': 90},
|
|
||||||
const {'1': 'Limb', '2': 91},
|
|
||||||
const {'1': 'Lina', '2': 92},
|
|
||||||
const {'1': 'Linb', '2': 93},
|
|
||||||
const {'1': 'Lisu', '2': 94},
|
|
||||||
const {'1': 'Loma', '2': 95},
|
|
||||||
const {'1': 'Lyci', '2': 96},
|
|
||||||
const {'1': 'Lydi', '2': 97},
|
|
||||||
const {'1': 'Mahj', '2': 98},
|
|
||||||
const {'1': 'Maka', '2': 99},
|
|
||||||
const {'1': 'Mand', '2': 100},
|
|
||||||
const {'1': 'Mani', '2': 101},
|
|
||||||
const {'1': 'Marc', '2': 102},
|
|
||||||
const {'1': 'Maya', '2': 103},
|
|
||||||
const {'1': 'Medf', '2': 104},
|
|
||||||
const {'1': 'Mend', '2': 105},
|
|
||||||
const {'1': 'Merc', '2': 106},
|
|
||||||
const {'1': 'Mero', '2': 107},
|
|
||||||
const {'1': 'Mlym', '2': 108},
|
|
||||||
const {'1': 'Modi', '2': 109},
|
|
||||||
const {'1': 'Mong', '2': 110},
|
|
||||||
const {'1': 'Moon', '2': 111},
|
|
||||||
const {'1': 'Mroo', '2': 112},
|
|
||||||
const {'1': 'Mtei', '2': 113},
|
|
||||||
const {'1': 'Mult', '2': 114},
|
|
||||||
const {'1': 'Mymr', '2': 115},
|
|
||||||
const {'1': 'Nand', '2': 116},
|
|
||||||
const {'1': 'Narb', '2': 117},
|
|
||||||
const {'1': 'Nbat', '2': 118},
|
|
||||||
const {'1': 'Newa', '2': 119},
|
|
||||||
const {'1': 'Nkdb', '2': 120},
|
|
||||||
const {'1': 'Nkgb', '2': 121},
|
|
||||||
const {'1': 'Nkoo', '2': 122},
|
|
||||||
const {'1': 'Nshu', '2': 123},
|
|
||||||
const {'1': 'Ogam', '2': 124},
|
|
||||||
const {'1': 'Olck', '2': 125},
|
|
||||||
const {'1': 'Orkh', '2': 126},
|
|
||||||
const {'1': 'Orya', '2': 127},
|
|
||||||
const {'1': 'Osge', '2': 128},
|
|
||||||
const {'1': 'Osma', '2': 129},
|
|
||||||
const {'1': 'Palm', '2': 130},
|
|
||||||
const {'1': 'Pauc', '2': 131},
|
|
||||||
const {'1': 'Perm', '2': 132},
|
|
||||||
const {'1': 'Phag', '2': 133},
|
|
||||||
const {'1': 'Phli', '2': 134},
|
|
||||||
const {'1': 'Phlp', '2': 135},
|
|
||||||
const {'1': 'Phlv', '2': 136},
|
|
||||||
const {'1': 'Phnx', '2': 137},
|
|
||||||
const {'1': 'Plrd', '2': 138},
|
|
||||||
const {'1': 'Piqd', '2': 139},
|
|
||||||
const {'1': 'Prti', '2': 140},
|
|
||||||
const {'1': 'Qaaa', '2': 141},
|
|
||||||
const {'1': 'Qabx', '2': 142},
|
|
||||||
const {'1': 'Rjng', '2': 143},
|
|
||||||
const {'1': 'Rohg', '2': 144},
|
|
||||||
const {'1': 'Roro', '2': 145},
|
|
||||||
const {'1': 'Runr', '2': 146},
|
|
||||||
const {'1': 'Samr', '2': 147},
|
|
||||||
const {'1': 'Sara', '2': 148},
|
|
||||||
const {'1': 'Sarb', '2': 149},
|
|
||||||
const {'1': 'Saur', '2': 150},
|
|
||||||
const {'1': 'Sgnw', '2': 151},
|
|
||||||
const {'1': 'Shaw', '2': 152},
|
|
||||||
const {'1': 'Shrd', '2': 153},
|
|
||||||
const {'1': 'Shui', '2': 154},
|
|
||||||
const {'1': 'Sidd', '2': 155},
|
|
||||||
const {'1': 'Sind', '2': 156},
|
|
||||||
const {'1': 'Sinh', '2': 157},
|
|
||||||
const {'1': 'Sogd', '2': 158},
|
|
||||||
const {'1': 'Sogo', '2': 159},
|
|
||||||
const {'1': 'Sora', '2': 160},
|
|
||||||
const {'1': 'Soyo', '2': 161},
|
|
||||||
const {'1': 'Sund', '2': 162},
|
|
||||||
const {'1': 'Sylo', '2': 163},
|
|
||||||
const {'1': 'Syrc', '2': 164},
|
|
||||||
const {'1': 'Syre', '2': 165},
|
|
||||||
const {'1': 'Syrj', '2': 166},
|
|
||||||
const {'1': 'Syrn', '2': 167},
|
|
||||||
const {'1': 'Tagb', '2': 168},
|
|
||||||
const {'1': 'Takr', '2': 169},
|
|
||||||
const {'1': 'Tale', '2': 170},
|
|
||||||
const {'1': 'Talu', '2': 171},
|
|
||||||
const {'1': 'Taml', '2': 172},
|
|
||||||
const {'1': 'Tang', '2': 173},
|
|
||||||
const {'1': 'Tavt', '2': 174},
|
|
||||||
const {'1': 'Telu', '2': 175},
|
|
||||||
const {'1': 'Teng', '2': 176},
|
|
||||||
const {'1': 'Tfng', '2': 177},
|
|
||||||
const {'1': 'Tglg', '2': 178},
|
|
||||||
const {'1': 'Thaa', '2': 179},
|
|
||||||
const {'1': 'Thai', '2': 180},
|
|
||||||
const {'1': 'Tibt', '2': 181},
|
|
||||||
const {'1': 'Tirh', '2': 182},
|
|
||||||
const {'1': 'Ugar', '2': 183},
|
|
||||||
const {'1': 'Vaii', '2': 184},
|
|
||||||
const {'1': 'Visp', '2': 185},
|
|
||||||
const {'1': 'Wara', '2': 186},
|
|
||||||
const {'1': 'Wcho', '2': 187},
|
|
||||||
const {'1': 'Wole', '2': 188},
|
|
||||||
const {'1': 'Xpeo', '2': 189},
|
|
||||||
const {'1': 'Xsux', '2': 190},
|
|
||||||
const {'1': 'Yiii', '2': 191},
|
|
||||||
const {'1': 'Zanb', '2': 192},
|
|
||||||
const {'1': 'Zinh', '2': 193},
|
|
||||||
const {'1': 'Zmth', '2': 194},
|
|
||||||
const {'1': 'Zsye', '2': 195},
|
|
||||||
const {'1': 'Zsym', '2': 196},
|
|
||||||
const {'1': 'Zxxx', '2': 197},
|
|
||||||
const {'1': 'Zyyy', '2': 198},
|
|
||||||
const {'1': 'Zzzz', '2': 199},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Location$json = const {
|
|
||||||
'1': 'Location',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'country', '3': 1, '4': 1, '5': 14, '6': '.pb.Location.Country', '10': 'country'},
|
|
||||||
const {'1': 'state', '3': 2, '4': 1, '5': 9, '10': 'state'},
|
|
||||||
const {'1': 'city', '3': 3, '4': 1, '5': 9, '10': 'city'},
|
|
||||||
const {'1': 'code', '3': 4, '4': 1, '5': 9, '10': 'code'},
|
|
||||||
const {'1': 'latitude', '3': 5, '4': 1, '5': 17, '10': 'latitude'},
|
|
||||||
const {'1': 'longitude', '3': 6, '4': 1, '5': 17, '10': 'longitude'},
|
|
||||||
],
|
|
||||||
'4': const [Location_Country$json],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Location_Country$json = const {
|
|
||||||
'1': 'Country',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'UNKNOWN_COUNTRY', '2': 0},
|
|
||||||
const {'1': 'AF', '2': 1},
|
|
||||||
const {'1': 'AX', '2': 2},
|
|
||||||
const {'1': 'AL', '2': 3},
|
|
||||||
const {'1': 'DZ', '2': 4},
|
|
||||||
const {'1': 'AS', '2': 5},
|
|
||||||
const {'1': 'AD', '2': 6},
|
|
||||||
const {'1': 'AO', '2': 7},
|
|
||||||
const {'1': 'AI', '2': 8},
|
|
||||||
const {'1': 'AQ', '2': 9},
|
|
||||||
const {'1': 'AG', '2': 10},
|
|
||||||
const {'1': 'AR', '2': 11},
|
|
||||||
const {'1': 'AM', '2': 12},
|
|
||||||
const {'1': 'AW', '2': 13},
|
|
||||||
const {'1': 'AU', '2': 14},
|
|
||||||
const {'1': 'AT', '2': 15},
|
|
||||||
const {'1': 'AZ', '2': 16},
|
|
||||||
const {'1': 'BS', '2': 17},
|
|
||||||
const {'1': 'BH', '2': 18},
|
|
||||||
const {'1': 'BD', '2': 19},
|
|
||||||
const {'1': 'BB', '2': 20},
|
|
||||||
const {'1': 'BY', '2': 21},
|
|
||||||
const {'1': 'BE', '2': 22},
|
|
||||||
const {'1': 'BZ', '2': 23},
|
|
||||||
const {'1': 'BJ', '2': 24},
|
|
||||||
const {'1': 'BM', '2': 25},
|
|
||||||
const {'1': 'BT', '2': 26},
|
|
||||||
const {'1': 'BO', '2': 27},
|
|
||||||
const {'1': 'BQ', '2': 28},
|
|
||||||
const {'1': 'BA', '2': 29},
|
|
||||||
const {'1': 'BW', '2': 30},
|
|
||||||
const {'1': 'BV', '2': 31},
|
|
||||||
const {'1': 'BR', '2': 32},
|
|
||||||
const {'1': 'IO', '2': 33},
|
|
||||||
const {'1': 'BN', '2': 34},
|
|
||||||
const {'1': 'BG', '2': 35},
|
|
||||||
const {'1': 'BF', '2': 36},
|
|
||||||
const {'1': 'BI', '2': 37},
|
|
||||||
const {'1': 'KH', '2': 38},
|
|
||||||
const {'1': 'CM', '2': 39},
|
|
||||||
const {'1': 'CA', '2': 40},
|
|
||||||
const {'1': 'CV', '2': 41},
|
|
||||||
const {'1': 'KY', '2': 42},
|
|
||||||
const {'1': 'CF', '2': 43},
|
|
||||||
const {'1': 'TD', '2': 44},
|
|
||||||
const {'1': 'CL', '2': 45},
|
|
||||||
const {'1': 'CN', '2': 46},
|
|
||||||
const {'1': 'CX', '2': 47},
|
|
||||||
const {'1': 'CC', '2': 48},
|
|
||||||
const {'1': 'CO', '2': 49},
|
|
||||||
const {'1': 'KM', '2': 50},
|
|
||||||
const {'1': 'CG', '2': 51},
|
|
||||||
const {'1': 'CD', '2': 52},
|
|
||||||
const {'1': 'CK', '2': 53},
|
|
||||||
const {'1': 'CR', '2': 54},
|
|
||||||
const {'1': 'CI', '2': 55},
|
|
||||||
const {'1': 'HR', '2': 56},
|
|
||||||
const {'1': 'CU', '2': 57},
|
|
||||||
const {'1': 'CW', '2': 58},
|
|
||||||
const {'1': 'CY', '2': 59},
|
|
||||||
const {'1': 'CZ', '2': 60},
|
|
||||||
const {'1': 'DK', '2': 61},
|
|
||||||
const {'1': 'DJ', '2': 62},
|
|
||||||
const {'1': 'DM', '2': 63},
|
|
||||||
const {'1': 'DO', '2': 64},
|
|
||||||
const {'1': 'EC', '2': 65},
|
|
||||||
const {'1': 'EG', '2': 66},
|
|
||||||
const {'1': 'SV', '2': 67},
|
|
||||||
const {'1': 'GQ', '2': 68},
|
|
||||||
const {'1': 'ER', '2': 69},
|
|
||||||
const {'1': 'EE', '2': 70},
|
|
||||||
const {'1': 'ET', '2': 71},
|
|
||||||
const {'1': 'FK', '2': 72},
|
|
||||||
const {'1': 'FO', '2': 73},
|
|
||||||
const {'1': 'FJ', '2': 74},
|
|
||||||
const {'1': 'FI', '2': 75},
|
|
||||||
const {'1': 'FR', '2': 76},
|
|
||||||
const {'1': 'GF', '2': 77},
|
|
||||||
const {'1': 'PF', '2': 78},
|
|
||||||
const {'1': 'TF', '2': 79},
|
|
||||||
const {'1': 'GA', '2': 80},
|
|
||||||
const {'1': 'GM', '2': 81},
|
|
||||||
const {'1': 'GE', '2': 82},
|
|
||||||
const {'1': 'DE', '2': 83},
|
|
||||||
const {'1': 'GH', '2': 84},
|
|
||||||
const {'1': 'GI', '2': 85},
|
|
||||||
const {'1': 'GR', '2': 86},
|
|
||||||
const {'1': 'GL', '2': 87},
|
|
||||||
const {'1': 'GD', '2': 88},
|
|
||||||
const {'1': 'GP', '2': 89},
|
|
||||||
const {'1': 'GU', '2': 90},
|
|
||||||
const {'1': 'GT', '2': 91},
|
|
||||||
const {'1': 'GG', '2': 92},
|
|
||||||
const {'1': 'GN', '2': 93},
|
|
||||||
const {'1': 'GW', '2': 94},
|
|
||||||
const {'1': 'GY', '2': 95},
|
|
||||||
const {'1': 'HT', '2': 96},
|
|
||||||
const {'1': 'HM', '2': 97},
|
|
||||||
const {'1': 'VA', '2': 98},
|
|
||||||
const {'1': 'HN', '2': 99},
|
|
||||||
const {'1': 'HK', '2': 100},
|
|
||||||
const {'1': 'HU', '2': 101},
|
|
||||||
const {'1': 'IS', '2': 102},
|
|
||||||
const {'1': 'IN', '2': 103},
|
|
||||||
const {'1': 'ID', '2': 104},
|
|
||||||
const {'1': 'IR', '2': 105},
|
|
||||||
const {'1': 'IQ', '2': 106},
|
|
||||||
const {'1': 'IE', '2': 107},
|
|
||||||
const {'1': 'IM', '2': 108},
|
|
||||||
const {'1': 'IL', '2': 109},
|
|
||||||
const {'1': 'IT', '2': 110},
|
|
||||||
const {'1': 'JM', '2': 111},
|
|
||||||
const {'1': 'JP', '2': 112},
|
|
||||||
const {'1': 'JE', '2': 113},
|
|
||||||
const {'1': 'JO', '2': 114},
|
|
||||||
const {'1': 'KZ', '2': 115},
|
|
||||||
const {'1': 'KE', '2': 116},
|
|
||||||
const {'1': 'KI', '2': 117},
|
|
||||||
const {'1': 'KP', '2': 118},
|
|
||||||
const {'1': 'KR', '2': 119},
|
|
||||||
const {'1': 'KW', '2': 120},
|
|
||||||
const {'1': 'KG', '2': 121},
|
|
||||||
const {'1': 'LA', '2': 122},
|
|
||||||
const {'1': 'LV', '2': 123},
|
|
||||||
const {'1': 'LB', '2': 124},
|
|
||||||
const {'1': 'LS', '2': 125},
|
|
||||||
const {'1': 'LR', '2': 126},
|
|
||||||
const {'1': 'LY', '2': 127},
|
|
||||||
const {'1': 'LI', '2': 128},
|
|
||||||
const {'1': 'LT', '2': 129},
|
|
||||||
const {'1': 'LU', '2': 130},
|
|
||||||
const {'1': 'MO', '2': 131},
|
|
||||||
const {'1': 'MK', '2': 132},
|
|
||||||
const {'1': 'MG', '2': 133},
|
|
||||||
const {'1': 'MW', '2': 134},
|
|
||||||
const {'1': 'MY', '2': 135},
|
|
||||||
const {'1': 'MV', '2': 136},
|
|
||||||
const {'1': 'ML', '2': 137},
|
|
||||||
const {'1': 'MT', '2': 138},
|
|
||||||
const {'1': 'MH', '2': 139},
|
|
||||||
const {'1': 'MQ', '2': 140},
|
|
||||||
const {'1': 'MR', '2': 141},
|
|
||||||
const {'1': 'MU', '2': 142},
|
|
||||||
const {'1': 'YT', '2': 143},
|
|
||||||
const {'1': 'MX', '2': 144},
|
|
||||||
const {'1': 'FM', '2': 145},
|
|
||||||
const {'1': 'MD', '2': 146},
|
|
||||||
const {'1': 'MC', '2': 147},
|
|
||||||
const {'1': 'MN', '2': 148},
|
|
||||||
const {'1': 'ME', '2': 149},
|
|
||||||
const {'1': 'MS', '2': 150},
|
|
||||||
const {'1': 'MA', '2': 151},
|
|
||||||
const {'1': 'MZ', '2': 152},
|
|
||||||
const {'1': 'MM', '2': 153},
|
|
||||||
const {'1': 'NA', '2': 154},
|
|
||||||
const {'1': 'NR', '2': 155},
|
|
||||||
const {'1': 'NP', '2': 156},
|
|
||||||
const {'1': 'NL', '2': 157},
|
|
||||||
const {'1': 'NC', '2': 158},
|
|
||||||
const {'1': 'NZ', '2': 159},
|
|
||||||
const {'1': 'NI', '2': 160},
|
|
||||||
const {'1': 'NE', '2': 161},
|
|
||||||
const {'1': 'NG', '2': 162},
|
|
||||||
const {'1': 'NU', '2': 163},
|
|
||||||
const {'1': 'NF', '2': 164},
|
|
||||||
const {'1': 'MP', '2': 165},
|
|
||||||
const {'1': 'NO', '2': 166},
|
|
||||||
const {'1': 'OM', '2': 167},
|
|
||||||
const {'1': 'PK', '2': 168},
|
|
||||||
const {'1': 'PW', '2': 169},
|
|
||||||
const {'1': 'PS', '2': 170},
|
|
||||||
const {'1': 'PA', '2': 171},
|
|
||||||
const {'1': 'PG', '2': 172},
|
|
||||||
const {'1': 'PY', '2': 173},
|
|
||||||
const {'1': 'PE', '2': 174},
|
|
||||||
const {'1': 'PH', '2': 175},
|
|
||||||
const {'1': 'PN', '2': 176},
|
|
||||||
const {'1': 'PL', '2': 177},
|
|
||||||
const {'1': 'PT', '2': 178},
|
|
||||||
const {'1': 'PR', '2': 179},
|
|
||||||
const {'1': 'QA', '2': 180},
|
|
||||||
const {'1': 'RE', '2': 181},
|
|
||||||
const {'1': 'RO', '2': 182},
|
|
||||||
const {'1': 'RU', '2': 183},
|
|
||||||
const {'1': 'RW', '2': 184},
|
|
||||||
const {'1': 'BL', '2': 185},
|
|
||||||
const {'1': 'SH', '2': 186},
|
|
||||||
const {'1': 'KN', '2': 187},
|
|
||||||
const {'1': 'LC', '2': 188},
|
|
||||||
const {'1': 'MF', '2': 189},
|
|
||||||
const {'1': 'PM', '2': 190},
|
|
||||||
const {'1': 'VC', '2': 191},
|
|
||||||
const {'1': 'WS', '2': 192},
|
|
||||||
const {'1': 'SM', '2': 193},
|
|
||||||
const {'1': 'ST', '2': 194},
|
|
||||||
const {'1': 'SA', '2': 195},
|
|
||||||
const {'1': 'SN', '2': 196},
|
|
||||||
const {'1': 'RS', '2': 197},
|
|
||||||
const {'1': 'SC', '2': 198},
|
|
||||||
const {'1': 'SL', '2': 199},
|
|
||||||
const {'1': 'SG', '2': 200},
|
|
||||||
const {'1': 'SX', '2': 201},
|
|
||||||
const {'1': 'SK', '2': 202},
|
|
||||||
const {'1': 'SI', '2': 203},
|
|
||||||
const {'1': 'SB', '2': 204},
|
|
||||||
const {'1': 'SO', '2': 205},
|
|
||||||
const {'1': 'ZA', '2': 206},
|
|
||||||
const {'1': 'GS', '2': 207},
|
|
||||||
const {'1': 'SS', '2': 208},
|
|
||||||
const {'1': 'ES', '2': 209},
|
|
||||||
const {'1': 'LK', '2': 210},
|
|
||||||
const {'1': 'SD', '2': 211},
|
|
||||||
const {'1': 'SR', '2': 212},
|
|
||||||
const {'1': 'SJ', '2': 213},
|
|
||||||
const {'1': 'SZ', '2': 214},
|
|
||||||
const {'1': 'SE', '2': 215},
|
|
||||||
const {'1': 'CH', '2': 216},
|
|
||||||
const {'1': 'SY', '2': 217},
|
|
||||||
const {'1': 'TW', '2': 218},
|
|
||||||
const {'1': 'TJ', '2': 219},
|
|
||||||
const {'1': 'TZ', '2': 220},
|
|
||||||
const {'1': 'TH', '2': 221},
|
|
||||||
const {'1': 'TL', '2': 222},
|
|
||||||
const {'1': 'TG', '2': 223},
|
|
||||||
const {'1': 'TK', '2': 224},
|
|
||||||
const {'1': 'TO', '2': 225},
|
|
||||||
const {'1': 'TT', '2': 226},
|
|
||||||
const {'1': 'TN', '2': 227},
|
|
||||||
const {'1': 'TR', '2': 228},
|
|
||||||
const {'1': 'TM', '2': 229},
|
|
||||||
const {'1': 'TC', '2': 230},
|
|
||||||
const {'1': 'TV', '2': 231},
|
|
||||||
const {'1': 'UG', '2': 232},
|
|
||||||
const {'1': 'UA', '2': 233},
|
|
||||||
const {'1': 'AE', '2': 234},
|
|
||||||
const {'1': 'GB', '2': 235},
|
|
||||||
const {'1': 'US', '2': 236},
|
|
||||||
const {'1': 'UM', '2': 237},
|
|
||||||
const {'1': 'UY', '2': 238},
|
|
||||||
const {'1': 'UZ', '2': 239},
|
|
||||||
const {'1': 'VU', '2': 240},
|
|
||||||
const {'1': 'VE', '2': 241},
|
|
||||||
const {'1': 'VN', '2': 242},
|
|
||||||
const {'1': 'VG', '2': 243},
|
|
||||||
const {'1': 'VI', '2': 244},
|
|
||||||
const {'1': 'WF', '2': 245},
|
|
||||||
const {'1': 'EH', '2': 246},
|
|
||||||
const {'1': 'YE', '2': 247},
|
|
||||||
const {'1': 'ZM', '2': 248},
|
|
||||||
const {'1': 'ZW', '2': 249},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
///
|
|
||||||
// Generated code. Do not modify.
|
|
||||||
// source: claim.proto
|
|
||||||
///
|
|
||||||
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
|
|
||||||
|
|
||||||
export 'claim.pb.dart';
|
|
||||||
|
|
|
@ -1,260 +0,0 @@
|
||||||
///
|
|
||||||
// Generated code. Do not modify.
|
|
||||||
// source: result.proto
|
|
||||||
///
|
|
||||||
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
|
|
||||||
|
|
||||||
import 'dart:core' as $core show bool, Deprecated, double, int, List, Map, override, pragma, String;
|
|
||||||
|
|
||||||
import 'package:fixnum/fixnum.dart';
|
|
||||||
import 'package:protobuf/protobuf.dart' as $pb;
|
|
||||||
|
|
||||||
import 'result.pbenum.dart';
|
|
||||||
|
|
||||||
export 'result.pbenum.dart';
|
|
||||||
|
|
||||||
class Outputs extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Outputs', package: const $pb.PackageName('pb'))
|
|
||||||
..pc<Output>(1, 'txos', $pb.PbFieldType.PM,Output.create)
|
|
||||||
..pc<Output>(2, 'extraTxos', $pb.PbFieldType.PM,Output.create)
|
|
||||||
..a<$core.int>(3, 'total', $pb.PbFieldType.OU3)
|
|
||||||
..a<$core.int>(4, 'offset', $pb.PbFieldType.OU3)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Outputs._() : super();
|
|
||||||
factory Outputs() => create();
|
|
||||||
factory Outputs.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Outputs.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Outputs clone() => Outputs()..mergeFromMessage(this);
|
|
||||||
Outputs copyWith(void Function(Outputs) updates) => super.copyWith((message) => updates(message as Outputs));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Outputs create() => Outputs._();
|
|
||||||
Outputs createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Outputs> createRepeated() => $pb.PbList<Outputs>();
|
|
||||||
static Outputs getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Outputs _defaultInstance;
|
|
||||||
|
|
||||||
$core.List<Output> get txos => $_getList(0);
|
|
||||||
|
|
||||||
$core.List<Output> get extraTxos => $_getList(1);
|
|
||||||
|
|
||||||
$core.int get total => $_get(2, 0);
|
|
||||||
set total($core.int v) { $_setUnsignedInt32(2, v); }
|
|
||||||
$core.bool hasTotal() => $_has(2);
|
|
||||||
void clearTotal() => clearField(3);
|
|
||||||
|
|
||||||
$core.int get offset => $_get(3, 0);
|
|
||||||
set offset($core.int v) { $_setUnsignedInt32(3, v); }
|
|
||||||
$core.bool hasOffset() => $_has(3);
|
|
||||||
void clearOffset() => clearField(4);
|
|
||||||
}
|
|
||||||
|
|
||||||
enum Output_Meta {
|
|
||||||
claim,
|
|
||||||
error,
|
|
||||||
notSet
|
|
||||||
}
|
|
||||||
|
|
||||||
class Output extends $pb.GeneratedMessage {
|
|
||||||
static const $core.Map<$core.int, Output_Meta> _Output_MetaByTag = {
|
|
||||||
7 : Output_Meta.claim,
|
|
||||||
15 : Output_Meta.error,
|
|
||||||
0 : Output_Meta.notSet
|
|
||||||
};
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Output', package: const $pb.PackageName('pb'))
|
|
||||||
..oo(0, [7, 15])
|
|
||||||
..a<$core.List<$core.int>>(1, 'txHash', $pb.PbFieldType.OY)
|
|
||||||
..a<$core.int>(2, 'nout', $pb.PbFieldType.OU3)
|
|
||||||
..a<$core.int>(3, 'height', $pb.PbFieldType.OU3)
|
|
||||||
..a<ClaimMeta>(7, 'claim', $pb.PbFieldType.OM, ClaimMeta.getDefault, ClaimMeta.create)
|
|
||||||
..a<Error>(15, 'error', $pb.PbFieldType.OM, Error.getDefault, Error.create)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Output._() : super();
|
|
||||||
factory Output() => create();
|
|
||||||
factory Output.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Output.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Output clone() => Output()..mergeFromMessage(this);
|
|
||||||
Output copyWith(void Function(Output) updates) => super.copyWith((message) => updates(message as Output));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Output create() => Output._();
|
|
||||||
Output createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Output> createRepeated() => $pb.PbList<Output>();
|
|
||||||
static Output getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Output _defaultInstance;
|
|
||||||
|
|
||||||
Output_Meta whichMeta() => _Output_MetaByTag[$_whichOneof(0)];
|
|
||||||
void clearMeta() => clearField($_whichOneof(0));
|
|
||||||
|
|
||||||
$core.List<$core.int> get txHash => $_getN(0);
|
|
||||||
set txHash($core.List<$core.int> v) { $_setBytes(0, v); }
|
|
||||||
$core.bool hasTxHash() => $_has(0);
|
|
||||||
void clearTxHash() => clearField(1);
|
|
||||||
|
|
||||||
$core.int get nout => $_get(1, 0);
|
|
||||||
set nout($core.int v) { $_setUnsignedInt32(1, v); }
|
|
||||||
$core.bool hasNout() => $_has(1);
|
|
||||||
void clearNout() => clearField(2);
|
|
||||||
|
|
||||||
$core.int get height => $_get(2, 0);
|
|
||||||
set height($core.int v) { $_setUnsignedInt32(2, v); }
|
|
||||||
$core.bool hasHeight() => $_has(2);
|
|
||||||
void clearHeight() => clearField(3);
|
|
||||||
|
|
||||||
ClaimMeta get claim => $_getN(3);
|
|
||||||
set claim(ClaimMeta v) { setField(7, v); }
|
|
||||||
$core.bool hasClaim() => $_has(3);
|
|
||||||
void clearClaim() => clearField(7);
|
|
||||||
|
|
||||||
Error get error => $_getN(4);
|
|
||||||
set error(Error v) { setField(15, v); }
|
|
||||||
$core.bool hasError() => $_has(4);
|
|
||||||
void clearError() => clearField(15);
|
|
||||||
}
|
|
||||||
|
|
||||||
class ClaimMeta extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('ClaimMeta', package: const $pb.PackageName('pb'))
|
|
||||||
..a<Output>(1, 'channel', $pb.PbFieldType.OM, Output.getDefault, Output.create)
|
|
||||||
..aOS(2, 'shortUrl')
|
|
||||||
..aOS(3, 'canonicalUrl')
|
|
||||||
..aOB(4, 'isControlling')
|
|
||||||
..a<$core.int>(5, 'takeOverHeight', $pb.PbFieldType.OU3)
|
|
||||||
..a<$core.int>(6, 'creationHeight', $pb.PbFieldType.OU3)
|
|
||||||
..a<$core.int>(7, 'activationHeight', $pb.PbFieldType.OU3)
|
|
||||||
..a<$core.int>(8, 'expirationHeight', $pb.PbFieldType.OU3)
|
|
||||||
..a<$core.int>(9, 'claimsInChannel', $pb.PbFieldType.OU3)
|
|
||||||
..a<Int64>(10, 'effectiveAmount', $pb.PbFieldType.OU6, Int64.ZERO)
|
|
||||||
..a<Int64>(11, 'supportAmount', $pb.PbFieldType.OU6, Int64.ZERO)
|
|
||||||
..a<$core.int>(12, 'trendingGroup', $pb.PbFieldType.OU3)
|
|
||||||
..a<$core.double>(13, 'trendingMixed', $pb.PbFieldType.OF)
|
|
||||||
..a<$core.double>(14, 'trendingLocal', $pb.PbFieldType.OF)
|
|
||||||
..a<$core.double>(15, 'trendingGlobal', $pb.PbFieldType.OF)
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
ClaimMeta._() : super();
|
|
||||||
factory ClaimMeta() => create();
|
|
||||||
factory ClaimMeta.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory ClaimMeta.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
ClaimMeta clone() => ClaimMeta()..mergeFromMessage(this);
|
|
||||||
ClaimMeta copyWith(void Function(ClaimMeta) updates) => super.copyWith((message) => updates(message as ClaimMeta));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static ClaimMeta create() => ClaimMeta._();
|
|
||||||
ClaimMeta createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<ClaimMeta> createRepeated() => $pb.PbList<ClaimMeta>();
|
|
||||||
static ClaimMeta getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static ClaimMeta _defaultInstance;
|
|
||||||
|
|
||||||
Output get channel => $_getN(0);
|
|
||||||
set channel(Output v) { setField(1, v); }
|
|
||||||
$core.bool hasChannel() => $_has(0);
|
|
||||||
void clearChannel() => clearField(1);
|
|
||||||
|
|
||||||
$core.String get shortUrl => $_getS(1, '');
|
|
||||||
set shortUrl($core.String v) { $_setString(1, v); }
|
|
||||||
$core.bool hasShortUrl() => $_has(1);
|
|
||||||
void clearShortUrl() => clearField(2);
|
|
||||||
|
|
||||||
$core.String get canonicalUrl => $_getS(2, '');
|
|
||||||
set canonicalUrl($core.String v) { $_setString(2, v); }
|
|
||||||
$core.bool hasCanonicalUrl() => $_has(2);
|
|
||||||
void clearCanonicalUrl() => clearField(3);
|
|
||||||
|
|
||||||
$core.bool get isControlling => $_get(3, false);
|
|
||||||
set isControlling($core.bool v) { $_setBool(3, v); }
|
|
||||||
$core.bool hasIsControlling() => $_has(3);
|
|
||||||
void clearIsControlling() => clearField(4);
|
|
||||||
|
|
||||||
$core.int get takeOverHeight => $_get(4, 0);
|
|
||||||
set takeOverHeight($core.int v) { $_setUnsignedInt32(4, v); }
|
|
||||||
$core.bool hasTakeOverHeight() => $_has(4);
|
|
||||||
void clearTakeOverHeight() => clearField(5);
|
|
||||||
|
|
||||||
$core.int get creationHeight => $_get(5, 0);
|
|
||||||
set creationHeight($core.int v) { $_setUnsignedInt32(5, v); }
|
|
||||||
$core.bool hasCreationHeight() => $_has(5);
|
|
||||||
void clearCreationHeight() => clearField(6);
|
|
||||||
|
|
||||||
$core.int get activationHeight => $_get(6, 0);
|
|
||||||
set activationHeight($core.int v) { $_setUnsignedInt32(6, v); }
|
|
||||||
$core.bool hasActivationHeight() => $_has(6);
|
|
||||||
void clearActivationHeight() => clearField(7);
|
|
||||||
|
|
||||||
$core.int get expirationHeight => $_get(7, 0);
|
|
||||||
set expirationHeight($core.int v) { $_setUnsignedInt32(7, v); }
|
|
||||||
$core.bool hasExpirationHeight() => $_has(7);
|
|
||||||
void clearExpirationHeight() => clearField(8);
|
|
||||||
|
|
||||||
$core.int get claimsInChannel => $_get(8, 0);
|
|
||||||
set claimsInChannel($core.int v) { $_setUnsignedInt32(8, v); }
|
|
||||||
$core.bool hasClaimsInChannel() => $_has(8);
|
|
||||||
void clearClaimsInChannel() => clearField(9);
|
|
||||||
|
|
||||||
Int64 get effectiveAmount => $_getI64(9);
|
|
||||||
set effectiveAmount(Int64 v) { $_setInt64(9, v); }
|
|
||||||
$core.bool hasEffectiveAmount() => $_has(9);
|
|
||||||
void clearEffectiveAmount() => clearField(10);
|
|
||||||
|
|
||||||
Int64 get supportAmount => $_getI64(10);
|
|
||||||
set supportAmount(Int64 v) { $_setInt64(10, v); }
|
|
||||||
$core.bool hasSupportAmount() => $_has(10);
|
|
||||||
void clearSupportAmount() => clearField(11);
|
|
||||||
|
|
||||||
$core.int get trendingGroup => $_get(11, 0);
|
|
||||||
set trendingGroup($core.int v) { $_setUnsignedInt32(11, v); }
|
|
||||||
$core.bool hasTrendingGroup() => $_has(11);
|
|
||||||
void clearTrendingGroup() => clearField(12);
|
|
||||||
|
|
||||||
$core.double get trendingMixed => $_getN(12);
|
|
||||||
set trendingMixed($core.double v) { $_setFloat(12, v); }
|
|
||||||
$core.bool hasTrendingMixed() => $_has(12);
|
|
||||||
void clearTrendingMixed() => clearField(13);
|
|
||||||
|
|
||||||
$core.double get trendingLocal => $_getN(13);
|
|
||||||
set trendingLocal($core.double v) { $_setFloat(13, v); }
|
|
||||||
$core.bool hasTrendingLocal() => $_has(13);
|
|
||||||
void clearTrendingLocal() => clearField(14);
|
|
||||||
|
|
||||||
$core.double get trendingGlobal => $_getN(14);
|
|
||||||
set trendingGlobal($core.double v) { $_setFloat(14, v); }
|
|
||||||
$core.bool hasTrendingGlobal() => $_has(14);
|
|
||||||
void clearTrendingGlobal() => clearField(15);
|
|
||||||
}
|
|
||||||
|
|
||||||
class Error extends $pb.GeneratedMessage {
|
|
||||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Error', package: const $pb.PackageName('pb'))
|
|
||||||
..e<Error_Code>(1, 'code', $pb.PbFieldType.OE, Error_Code.UNKNOWN_CODE, Error_Code.valueOf, Error_Code.values)
|
|
||||||
..aOS(2, 'text')
|
|
||||||
..hasRequiredFields = false
|
|
||||||
;
|
|
||||||
|
|
||||||
Error._() : super();
|
|
||||||
factory Error() => create();
|
|
||||||
factory Error.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
|
||||||
factory Error.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
|
||||||
Error clone() => Error()..mergeFromMessage(this);
|
|
||||||
Error copyWith(void Function(Error) updates) => super.copyWith((message) => updates(message as Error));
|
|
||||||
$pb.BuilderInfo get info_ => _i;
|
|
||||||
@$core.pragma('dart2js:noInline')
|
|
||||||
static Error create() => Error._();
|
|
||||||
Error createEmptyInstance() => create();
|
|
||||||
static $pb.PbList<Error> createRepeated() => $pb.PbList<Error>();
|
|
||||||
static Error getDefault() => _defaultInstance ??= create()..freeze();
|
|
||||||
static Error _defaultInstance;
|
|
||||||
|
|
||||||
Error_Code get code => $_getN(0);
|
|
||||||
set code(Error_Code v) { setField(1, v); }
|
|
||||||
$core.bool hasCode() => $_has(0);
|
|
||||||
void clearCode() => clearField(1);
|
|
||||||
|
|
||||||
$core.String get text => $_getS(1, '');
|
|
||||||
set text($core.String v) { $_setString(1, v); }
|
|
||||||
$core.bool hasText() => $_has(1);
|
|
||||||
void clearText() => clearField(2);
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
///
|
|
||||||
// Generated code. Do not modify.
|
|
||||||
// source: result.proto
|
|
||||||
///
|
|
||||||
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
|
|
||||||
|
|
||||||
// ignore_for_file: UNDEFINED_SHOWN_NAME,UNUSED_SHOWN_NAME
|
|
||||||
import 'dart:core' as $core show int, dynamic, String, List, Map;
|
|
||||||
import 'package:protobuf/protobuf.dart' as $pb;
|
|
||||||
|
|
||||||
class Error_Code extends $pb.ProtobufEnum {
|
|
||||||
static const Error_Code UNKNOWN_CODE = Error_Code._(0, 'UNKNOWN_CODE');
|
|
||||||
static const Error_Code NOT_FOUND = Error_Code._(1, 'NOT_FOUND');
|
|
||||||
static const Error_Code INVALID = Error_Code._(2, 'INVALID');
|
|
||||||
|
|
||||||
static const $core.List<Error_Code> values = <Error_Code> [
|
|
||||||
UNKNOWN_CODE,
|
|
||||||
NOT_FOUND,
|
|
||||||
INVALID,
|
|
||||||
];
|
|
||||||
|
|
||||||
static final $core.Map<$core.int, Error_Code> _byValue = $pb.ProtobufEnum.initByValue(values);
|
|
||||||
static Error_Code valueOf($core.int value) => _byValue[value];
|
|
||||||
|
|
||||||
const Error_Code._($core.int v, $core.String n) : super(v, n);
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,69 +0,0 @@
|
||||||
///
|
|
||||||
// Generated code. Do not modify.
|
|
||||||
// source: result.proto
|
|
||||||
///
|
|
||||||
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
|
|
||||||
|
|
||||||
const Outputs$json = const {
|
|
||||||
'1': 'Outputs',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'txos', '3': 1, '4': 3, '5': 11, '6': '.pb.Output', '10': 'txos'},
|
|
||||||
const {'1': 'extra_txos', '3': 2, '4': 3, '5': 11, '6': '.pb.Output', '10': 'extraTxos'},
|
|
||||||
const {'1': 'total', '3': 3, '4': 1, '5': 13, '10': 'total'},
|
|
||||||
const {'1': 'offset', '3': 4, '4': 1, '5': 13, '10': 'offset'},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Output$json = const {
|
|
||||||
'1': 'Output',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'tx_hash', '3': 1, '4': 1, '5': 12, '10': 'txHash'},
|
|
||||||
const {'1': 'nout', '3': 2, '4': 1, '5': 13, '10': 'nout'},
|
|
||||||
const {'1': 'height', '3': 3, '4': 1, '5': 13, '10': 'height'},
|
|
||||||
const {'1': 'claim', '3': 7, '4': 1, '5': 11, '6': '.pb.ClaimMeta', '9': 0, '10': 'claim'},
|
|
||||||
const {'1': 'error', '3': 15, '4': 1, '5': 11, '6': '.pb.Error', '9': 0, '10': 'error'},
|
|
||||||
],
|
|
||||||
'8': const [
|
|
||||||
const {'1': 'meta'},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const ClaimMeta$json = const {
|
|
||||||
'1': 'ClaimMeta',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'channel', '3': 1, '4': 1, '5': 11, '6': '.pb.Output', '10': 'channel'},
|
|
||||||
const {'1': 'short_url', '3': 2, '4': 1, '5': 9, '10': 'shortUrl'},
|
|
||||||
const {'1': 'canonical_url', '3': 3, '4': 1, '5': 9, '10': 'canonicalUrl'},
|
|
||||||
const {'1': 'is_controlling', '3': 4, '4': 1, '5': 8, '10': 'isControlling'},
|
|
||||||
const {'1': 'take_over_height', '3': 5, '4': 1, '5': 13, '10': 'takeOverHeight'},
|
|
||||||
const {'1': 'creation_height', '3': 6, '4': 1, '5': 13, '10': 'creationHeight'},
|
|
||||||
const {'1': 'activation_height', '3': 7, '4': 1, '5': 13, '10': 'activationHeight'},
|
|
||||||
const {'1': 'expiration_height', '3': 8, '4': 1, '5': 13, '10': 'expirationHeight'},
|
|
||||||
const {'1': 'claims_in_channel', '3': 9, '4': 1, '5': 13, '10': 'claimsInChannel'},
|
|
||||||
const {'1': 'effective_amount', '3': 10, '4': 1, '5': 4, '10': 'effectiveAmount'},
|
|
||||||
const {'1': 'support_amount', '3': 11, '4': 1, '5': 4, '10': 'supportAmount'},
|
|
||||||
const {'1': 'trending_group', '3': 12, '4': 1, '5': 13, '10': 'trendingGroup'},
|
|
||||||
const {'1': 'trending_mixed', '3': 13, '4': 1, '5': 2, '10': 'trendingMixed'},
|
|
||||||
const {'1': 'trending_local', '3': 14, '4': 1, '5': 2, '10': 'trendingLocal'},
|
|
||||||
const {'1': 'trending_global', '3': 15, '4': 1, '5': 2, '10': 'trendingGlobal'},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Error$json = const {
|
|
||||||
'1': 'Error',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'code', '3': 1, '4': 1, '5': 14, '6': '.pb.Error.Code', '10': 'code'},
|
|
||||||
const {'1': 'text', '3': 2, '4': 1, '5': 9, '10': 'text'},
|
|
||||||
],
|
|
||||||
'4': const [Error_Code$json],
|
|
||||||
};
|
|
||||||
|
|
||||||
const Error_Code$json = const {
|
|
||||||
'1': 'Code',
|
|
||||||
'2': const [
|
|
||||||
const {'1': 'UNKNOWN_CODE', '2': 0},
|
|
||||||
const {'1': 'NOT_FOUND', '2': 1},
|
|
||||||
const {'1': 'INVALID', '2': 2},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
///
|
|
||||||
// Generated code. Do not modify.
|
|
||||||
// source: result.proto
|
|
||||||
///
|
|
||||||
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
|
|
||||||
|
|
||||||
export 'result.pb.dart';
|
|
||||||
|
|
|
@ -1,159 +0,0 @@
|
||||||
import 'dart:async';
|
|
||||||
import 'dart:convert';
|
|
||||||
|
|
||||||
import 'package:web_socket_channel/io.dart';
|
|
||||||
import 'package:web_socket_channel/status.dart' as status;
|
|
||||||
|
|
||||||
|
|
||||||
class ServerConnection {
|
|
||||||
String url = "";
|
|
||||||
IOWebSocketChannel channel;
|
|
||||||
bool get isConnected => channel != null && channel.closeCode == null;
|
|
||||||
|
|
||||||
final StreamController<ServerLoadDataPoint> _loadDataController = StreamController.broadcast();
|
|
||||||
Stream<ServerLoadDataPoint> get load_data => _loadDataController.stream;
|
|
||||||
|
|
||||||
ServerConnection({this.url});
|
|
||||||
|
|
||||||
open() {
|
|
||||||
if (isConnected) return Future.value('already open');
|
|
||||||
channel = IOWebSocketChannel.connect(this.url);
|
|
||||||
int tick = 1;
|
|
||||||
channel.stream.listen((message) {
|
|
||||||
var data = json.decode(message);
|
|
||||||
print(data);
|
|
||||||
_loadDataController.add(
|
|
||||||
ServerLoadDataPoint.from_map(
|
|
||||||
tick, data
|
|
||||||
)
|
|
||||||
);
|
|
||||||
tick++;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
close() {
|
|
||||||
if (isConnected) {
|
|
||||||
return channel.sink.close(status.goingAway);
|
|
||||||
}
|
|
||||||
return Future.value('already closed');
|
|
||||||
}
|
|
||||||
|
|
||||||
subscribe_to_server_load_data() {
|
|
||||||
if (isConnected) channel.sink.add('subscribe');
|
|
||||||
}
|
|
||||||
|
|
||||||
unsubscribe_from_server_load_data() {
|
|
||||||
if (isConnected) channel.sink.add('unsubscribe');
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class TimeStats {
|
|
||||||
final int avg, min, max;
|
|
||||||
// percentiles
|
|
||||||
final int five;
|
|
||||||
final int twenty_five;
|
|
||||||
final int fifty;
|
|
||||||
final int seventy_five;
|
|
||||||
final int ninety_five;
|
|
||||||
TimeStats(
|
|
||||||
this.avg, this.min, this.five, this.twenty_five,
|
|
||||||
this.fifty, this.seventy_five, this.ninety_five,
|
|
||||||
this.max
|
|
||||||
);
|
|
||||||
TimeStats.from_list(List l): this(
|
|
||||||
l[0], l[1], l[2], l[3], l[4], l[5], l[6], l[7]
|
|
||||||
);
|
|
||||||
TimeStats.from_zeros(): this(
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0
|
|
||||||
);
|
|
||||||
factory TimeStats.from_list_or_zeros(List l) =>
|
|
||||||
l != null ? TimeStats.from_list(l): TimeStats.from_zeros();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class APICallMetrics {
|
|
||||||
// total requests received
|
|
||||||
final int receive_count;
|
|
||||||
// sum of these is total responses made
|
|
||||||
final int cache_response_count;
|
|
||||||
final int query_response_count;
|
|
||||||
final int intrp_response_count;
|
|
||||||
final int error_response_count;
|
|
||||||
// stacked values for chart
|
|
||||||
final int cache_response_stack;
|
|
||||||
final int query_response_stack;
|
|
||||||
final int intrp_response_stack;
|
|
||||||
final int error_response_stack;
|
|
||||||
// millisecond timings for non-cache responses
|
|
||||||
final TimeStats response;
|
|
||||||
final TimeStats interrupt;
|
|
||||||
final TimeStats error;
|
|
||||||
// response, interrupt and error each also report the python, wait and sql stats:
|
|
||||||
final TimeStats python;
|
|
||||||
final TimeStats wait;
|
|
||||||
final TimeStats sql;
|
|
||||||
// extended timings for individual sql executions
|
|
||||||
final TimeStats individual_sql;
|
|
||||||
final int individual_sql_count;
|
|
||||||
// actual queries
|
|
||||||
final List<String> errored_queries;
|
|
||||||
final List<String> interrupted_queries;
|
|
||||||
APICallMetrics(
|
|
||||||
this.receive_count,
|
|
||||||
this.cache_response_count, this.query_response_count,
|
|
||||||
this.intrp_response_count, this.error_response_count,
|
|
||||||
this.response, this.interrupt, this.error,
|
|
||||||
this.python, this.wait, this.sql,
|
|
||||||
this.individual_sql, this.individual_sql_count,
|
|
||||||
this.errored_queries, this.interrupted_queries
|
|
||||||
):
|
|
||||||
cache_response_stack=cache_response_count+query_response_count+intrp_response_count+error_response_count,
|
|
||||||
query_response_stack=query_response_count+intrp_response_count+error_response_count,
|
|
||||||
intrp_response_stack=intrp_response_count+error_response_count,
|
|
||||||
error_response_stack=error_response_count;
|
|
||||||
APICallMetrics.from_map(Map data): this(
|
|
||||||
data["receive_count"] ?? 0,
|
|
||||||
data["cache_response_count"] ?? 0,
|
|
||||||
data["query_response_count"] ?? 0,
|
|
||||||
data["intrp_response_count"] ?? 0,
|
|
||||||
data["error_response_count"] ?? 0,
|
|
||||||
TimeStats.from_list_or_zeros(data["response"]),
|
|
||||||
TimeStats.from_list_or_zeros(data["interrupt"]),
|
|
||||||
TimeStats.from_list_or_zeros(data["error"]),
|
|
||||||
TimeStats.from_list_or_zeros(data["python"]),
|
|
||||||
TimeStats.from_list_or_zeros(data["wait"]),
|
|
||||||
TimeStats.from_list_or_zeros(data["sql"]),
|
|
||||||
TimeStats.from_list_or_zeros(data["individual_sql"]),
|
|
||||||
data["individual_sql_count"] ?? 0,
|
|
||||||
List<String>.from(data["errored_queries"] ?? const []),
|
|
||||||
List<String>.from(data["interrupted_queries"] ?? const []),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class ServerLoadDataPoint {
|
|
||||||
final int tick;
|
|
||||||
final int sessions;
|
|
||||||
final APICallMetrics search;
|
|
||||||
final APICallMetrics resolve;
|
|
||||||
const ServerLoadDataPoint(
|
|
||||||
this.tick, this.sessions, this.search, this.resolve
|
|
||||||
);
|
|
||||||
ServerLoadDataPoint.from_map(int tick, Map data): this(
|
|
||||||
tick, (data['status'] ?? const {})['sessions'] ?? 0,
|
|
||||||
APICallMetrics.from_map((data['api'] ?? const {})['search'] ?? const {}),
|
|
||||||
APICallMetrics.from_map((data['api'] ?? const {})['resolve'] ?? const {})
|
|
||||||
);
|
|
||||||
ServerLoadDataPoint.empty(): this(
|
|
||||||
0, 0, APICallMetrics.from_map(const {}), APICallMetrics.from_map(const {})
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
connect_and_listen_for_load_data() {
|
|
||||||
ServerConnection(url: 'ws://localhost:8181/')..open()..load_data.listen((m) {
|
|
||||||
print(m.search);
|
|
||||||
});
|
|
||||||
}
|
|
|
@ -1,376 +0,0 @@
|
||||||
# Generated by pub
|
|
||||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
|
||||||
packages:
|
|
||||||
analyzer:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: analyzer
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.37.0"
|
|
||||||
args:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: args
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.5.2"
|
|
||||||
async:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: async
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.2.0"
|
|
||||||
boolean_selector:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: boolean_selector
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.0.5"
|
|
||||||
charcode:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: charcode
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.1.2"
|
|
||||||
collection:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: collection
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.14.11"
|
|
||||||
convert:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: convert
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.1.1"
|
|
||||||
crypto:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: crypto
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.0.6"
|
|
||||||
csslib:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: csslib
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.16.1"
|
|
||||||
dart_style:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: dart_style
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.2.9"
|
|
||||||
fixnum:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: fixnum
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.10.9"
|
|
||||||
front_end:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: front_end
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.1.20"
|
|
||||||
glob:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: glob
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.1.7"
|
|
||||||
html:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: html
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.14.0+2"
|
|
||||||
http:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: http
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.12.0+2"
|
|
||||||
http_multi_server:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: http_multi_server
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.1.0"
|
|
||||||
http_parser:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: http_parser
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "3.1.3"
|
|
||||||
io:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: io
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.3.3"
|
|
||||||
js:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: js
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.6.1+1"
|
|
||||||
kernel:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: kernel
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.3.20"
|
|
||||||
matcher:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: matcher
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.12.5"
|
|
||||||
meta:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: meta
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.1.7"
|
|
||||||
mime:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: mime
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.9.6+3"
|
|
||||||
multi_server_socket:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: multi_server_socket
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.0.2"
|
|
||||||
node_preamble:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: node_preamble
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.4.4"
|
|
||||||
package_config:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: package_config
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.0.5"
|
|
||||||
package_resolver:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: package_resolver
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.0.10"
|
|
||||||
path:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: path
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.6.2"
|
|
||||||
pedantic:
|
|
||||||
dependency: "direct dev"
|
|
||||||
description:
|
|
||||||
name: pedantic
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.8.0+1"
|
|
||||||
pool:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: pool
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.4.0"
|
|
||||||
protobuf:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: protobuf
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.13.15"
|
|
||||||
protoc_plugin:
|
|
||||||
dependency: "direct dev"
|
|
||||||
description:
|
|
||||||
name: protoc_plugin
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "17.0.4"
|
|
||||||
pub_semver:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: pub_semver
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.4.2"
|
|
||||||
shelf:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: shelf
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.7.5"
|
|
||||||
shelf_packages_handler:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: shelf_packages_handler
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.0.4"
|
|
||||||
shelf_static:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: shelf_static
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.2.8"
|
|
||||||
shelf_web_socket:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: shelf_web_socket
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.2.3"
|
|
||||||
source_map_stack_trace:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: source_map_stack_trace
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.1.5"
|
|
||||||
source_maps:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: source_maps
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.10.8"
|
|
||||||
source_span:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: source_span
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.5.5"
|
|
||||||
stack_trace:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: stack_trace
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.9.3"
|
|
||||||
stream_channel:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: stream_channel
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.0.0"
|
|
||||||
stream_transform:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: stream_transform
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.0.19"
|
|
||||||
string_scanner:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: string_scanner
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.0.4"
|
|
||||||
term_glyph:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: term_glyph
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.1.0"
|
|
||||||
test:
|
|
||||||
dependency: "direct dev"
|
|
||||||
description:
|
|
||||||
name: test
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.6.5"
|
|
||||||
test_api:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: test_api
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.2.6"
|
|
||||||
test_core:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: test_core
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.2.7"
|
|
||||||
typed_data:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: typed_data
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.1.6"
|
|
||||||
vm_service_lib:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: vm_service_lib
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "3.22.0"
|
|
||||||
watcher:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: watcher
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.9.7+10"
|
|
||||||
web_socket_channel:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: web_socket_channel
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.0.14"
|
|
||||||
yaml:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: yaml
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.1.16"
|
|
||||||
sdks:
|
|
||||||
dart: ">=2.3.0 <3.0.0"
|
|
|
@ -1,19 +0,0 @@
|
||||||
name: lbry
|
|
||||||
description: LBRY SDK in Dart.
|
|
||||||
version: 0.0.1
|
|
||||||
homepage: https://lbry.com
|
|
||||||
author: LBRY Inc. <hello@lbry.com>
|
|
||||||
|
|
||||||
environment:
|
|
||||||
sdk: '>=2.2.0 <3.0.0'
|
|
||||||
|
|
||||||
dependencies:
|
|
||||||
http: ^0.12.0+2
|
|
||||||
path: ^1.4.1
|
|
||||||
protobuf: ^0.13.12
|
|
||||||
web_socket_channel: ^1.0.4
|
|
||||||
|
|
||||||
dev_dependencies:
|
|
||||||
pedantic: ^1.0.0
|
|
||||||
test: ^1.0.0
|
|
||||||
protoc_plugin: ^17.0.2
|
|
|
@ -1,8 +0,0 @@
|
||||||
import 'package:lbry/lbry.dart';
|
|
||||||
import 'package:test/test.dart';
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
test('calculate', () {
|
|
||||||
expect(calculate(), 42);
|
|
||||||
});
|
|
||||||
}
|
|
72
dart/packages/ver/.gitignore
vendored
|
@ -1,72 +0,0 @@
|
||||||
# Miscellaneous
|
|
||||||
*.class
|
|
||||||
*.log
|
|
||||||
*.pyc
|
|
||||||
*.swp
|
|
||||||
.DS_Store
|
|
||||||
.atom/
|
|
||||||
.buildlog/
|
|
||||||
.history
|
|
||||||
.svn/
|
|
||||||
|
|
||||||
# IntelliJ related
|
|
||||||
*.iml
|
|
||||||
*.ipr
|
|
||||||
*.iws
|
|
||||||
.idea/
|
|
||||||
|
|
||||||
# The .vscode folder contains launch configuration and tasks you configure in
|
|
||||||
# VS Code which you may wish to be included in version control, so this line
|
|
||||||
# is commented out by default.
|
|
||||||
#.vscode/
|
|
||||||
|
|
||||||
# Flutter/Dart/Pub related
|
|
||||||
**/doc/api/
|
|
||||||
.dart_tool/
|
|
||||||
.flutter-plugins
|
|
||||||
.packages
|
|
||||||
.pub-cache/
|
|
||||||
.pub/
|
|
||||||
/build/
|
|
||||||
|
|
||||||
# Android related
|
|
||||||
**/android/**/gradle-wrapper.jar
|
|
||||||
**/android/.gradle
|
|
||||||
**/android/captures/
|
|
||||||
**/android/gradlew
|
|
||||||
**/android/gradlew.bat
|
|
||||||
**/android/local.properties
|
|
||||||
**/android/**/GeneratedPluginRegistrant.java
|
|
||||||
|
|
||||||
# iOS/XCode related
|
|
||||||
**/ios/**/*.mode1v3
|
|
||||||
**/ios/**/*.mode2v3
|
|
||||||
**/ios/**/*.moved-aside
|
|
||||||
**/ios/**/*.pbxuser
|
|
||||||
**/ios/**/*.perspectivev3
|
|
||||||
**/ios/**/*sync/
|
|
||||||
**/ios/**/.sconsign.dblite
|
|
||||||
**/ios/**/.tags*
|
|
||||||
**/ios/**/.vagrant/
|
|
||||||
**/ios/**/DerivedData/
|
|
||||||
**/ios/**/Icon?
|
|
||||||
**/ios/**/Pods/
|
|
||||||
**/ios/**/.symlinks/
|
|
||||||
**/ios/**/profile
|
|
||||||
**/ios/**/xcuserdata
|
|
||||||
**/ios/.generated/
|
|
||||||
**/ios/Flutter/App.framework
|
|
||||||
**/ios/Flutter/Flutter.framework
|
|
||||||
**/ios/Flutter/Generated.xcconfig
|
|
||||||
**/ios/Flutter/app.flx
|
|
||||||
**/ios/Flutter/app.zip
|
|
||||||
**/ios/Flutter/flutter_assets/
|
|
||||||
**/ios/ServiceDefinitions.json
|
|
||||||
**/ios/Runner/GeneratedPluginRegistrant.*
|
|
||||||
|
|
||||||
# Exceptions to above rules.
|
|
||||||
!**/ios/**/default.mode1v3
|
|
||||||
!**/ios/**/default.mode2v3
|
|
||||||
!**/ios/**/default.pbxuser
|
|
||||||
!**/ios/**/default.perspectivev3
|
|
||||||
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
|
|
|
@ -1,10 +0,0 @@
|
||||||
# This file tracks properties of this Flutter project.
|
|
||||||
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
|
||||||
#
|
|
||||||
# This file should be version controlled and should not be manually edited.
|
|
||||||
|
|
||||||
version:
|
|
||||||
revision: 871b58986d6d401efb8dd66af67814bf37c42cd1
|
|
||||||
channel: master
|
|
||||||
|
|
||||||
project_type: app
|
|
|
@ -1,16 +0,0 @@
|
||||||
# ver
|
|
||||||
|
|
||||||
A new Flutter project.
|
|
||||||
|
|
||||||
## Getting Started
|
|
||||||
|
|
||||||
This project is a starting point for a Flutter application.
|
|
||||||
|
|
||||||
A few resources to get you started if this is your first Flutter project:
|
|
||||||
|
|
||||||
- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
|
|
||||||
- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
|
|
||||||
|
|
||||||
For help getting started with Flutter, view our
|
|
||||||
[online documentation](https://flutter.dev/docs), which offers tutorials,
|
|
||||||
samples, guidance on mobile development, and a full API reference.
|
|
|
@ -1,61 +0,0 @@
|
||||||
def localProperties = new Properties()
|
|
||||||
def localPropertiesFile = rootProject.file('local.properties')
|
|
||||||
if (localPropertiesFile.exists()) {
|
|
||||||
localPropertiesFile.withReader('UTF-8') { reader ->
|
|
||||||
localProperties.load(reader)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
def flutterRoot = localProperties.getProperty('flutter.sdk')
|
|
||||||
if (flutterRoot == null) {
|
|
||||||
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
|
|
||||||
}
|
|
||||||
|
|
||||||
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
|
|
||||||
if (flutterVersionCode == null) {
|
|
||||||
flutterVersionCode = '1'
|
|
||||||
}
|
|
||||||
|
|
||||||
def flutterVersionName = localProperties.getProperty('flutter.versionName')
|
|
||||||
if (flutterVersionName == null) {
|
|
||||||
flutterVersionName = '1.0'
|
|
||||||
}
|
|
||||||
|
|
||||||
apply plugin: 'com.android.application'
|
|
||||||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
|
|
||||||
|
|
||||||
android {
|
|
||||||
compileSdkVersion 28
|
|
||||||
|
|
||||||
lintOptions {
|
|
||||||
disable 'InvalidPackage'
|
|
||||||
}
|
|
||||||
|
|
||||||
defaultConfig {
|
|
||||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
|
||||||
applicationId "com.lbry.ver"
|
|
||||||
minSdkVersion 16
|
|
||||||
targetSdkVersion 28
|
|
||||||
versionCode flutterVersionCode.toInteger()
|
|
||||||
versionName flutterVersionName
|
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
|
||||||
}
|
|
||||||
|
|
||||||
buildTypes {
|
|
||||||
release {
|
|
||||||
// TODO: Add your own signing config for the release build.
|
|
||||||
// Signing with the debug keys for now, so `flutter run --release` works.
|
|
||||||
signingConfig signingConfigs.debug
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
flutter {
|
|
||||||
source '../..'
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
testImplementation 'junit:junit:4.12'
|
|
||||||
androidTestImplementation 'com.android.support.test:runner:1.0.2'
|
|
||||||
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
package="com.lbry.ver">
|
|
||||||
<!-- Flutter needs it to communicate with the running application
|
|
||||||
to allow setting breakpoints, to provide hot reload, etc.
|
|
||||||
-->
|
|
||||||
<uses-permission android:name="android.permission.INTERNET"/>
|
|
||||||
</manifest>
|
|
|
@ -1,33 +0,0 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
package="com.lbry.ver">
|
|
||||||
|
|
||||||
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
|
|
||||||
calls FlutterMain.startInitialization(this); in its onCreate method.
|
|
||||||
In most cases you can leave this as-is, but you if you want to provide
|
|
||||||
additional functionality it is fine to subclass or reimplement
|
|
||||||
FlutterApplication and put your custom class here. -->
|
|
||||||
<application
|
|
||||||
android:name="io.flutter.app.FlutterApplication"
|
|
||||||
android:label="ver"
|
|
||||||
android:icon="@mipmap/ic_launcher">
|
|
||||||
<activity
|
|
||||||
android:name=".MainActivity"
|
|
||||||
android:launchMode="singleTop"
|
|
||||||
android:theme="@style/LaunchTheme"
|
|
||||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
|
||||||
android:hardwareAccelerated="true"
|
|
||||||
android:windowSoftInputMode="adjustResize">
|
|
||||||
<!-- This keeps the window background of the activity showing
|
|
||||||
until Flutter renders its first frame. It can be removed if
|
|
||||||
there is no splash screen (such as the default splash screen
|
|
||||||
defined in @style/LaunchTheme). -->
|
|
||||||
<meta-data
|
|
||||||
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
|
|
||||||
android:value="true" />
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
|
||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
|
||||||
</intent-filter>
|
|
||||||
</activity>
|
|
||||||
</application>
|
|
||||||
</manifest>
|
|
|
@ -1,13 +0,0 @@
|
||||||
package com.lbry.ver;
|
|
||||||
|
|
||||||
import android.os.Bundle;
|
|
||||||
import io.flutter.app.FlutterActivity;
|
|
||||||
import io.flutter.plugins.GeneratedPluginRegistrant;
|
|
||||||
|
|
||||||
public class MainActivity extends FlutterActivity {
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
GeneratedPluginRegistrant.registerWith(this);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Modify this file to customize your launch splash screen -->
|
|
||||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<item android:drawable="@android:color/white" />
|
|
||||||
|
|
||||||
<!-- You can insert your own image assets here -->
|
|
||||||
<!-- <item>
|
|
||||||
<bitmap
|
|
||||||
android:gravity="center"
|
|
||||||
android:src="@mipmap/launch_image" />
|
|
||||||
</item> -->
|
|
||||||
</layer-list>
|
|
Before Width: | Height: | Size: 544 B |
Before Width: | Height: | Size: 442 B |
Before Width: | Height: | Size: 721 B |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 1.4 KiB |
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
|
||||||
<!-- Show a splash screen on the activity. Automatically removed when
|
|
||||||
Flutter draws its first frame -->
|
|
||||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
|
||||||
</style>
|
|
||||||
</resources>
|
|
|
@ -1,7 +0,0 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
package="com.lbry.ver">
|
|
||||||
<!-- Flutter needs it to communicate with the running application
|
|
||||||
to allow setting breakpoints, to provide hot reload, etc.
|
|
||||||
-->
|
|
||||||
<uses-permission android:name="android.permission.INTERNET"/>
|
|
||||||
</manifest>
|
|
|
@ -1,29 +0,0 @@
|
||||||
buildscript {
|
|
||||||
repositories {
|
|
||||||
google()
|
|
||||||
jcenter()
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
classpath 'com.android.tools.build:gradle:3.2.1'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
allprojects {
|
|
||||||
repositories {
|
|
||||||
google()
|
|
||||||
jcenter()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
rootProject.buildDir = '../build'
|
|
||||||
subprojects {
|
|
||||||
project.buildDir = "${rootProject.buildDir}/${project.name}"
|
|
||||||
}
|
|
||||||
subprojects {
|
|
||||||
project.evaluationDependsOn(':app')
|
|
||||||
}
|
|
||||||
|
|
||||||
task clean(type: Delete) {
|
|
||||||
delete rootProject.buildDir
|
|
||||||
}
|
|
|
@ -1,2 +0,0 @@
|
||||||
org.gradle.jvmargs=-Xmx1536M
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
#Fri Jun 23 08:50:38 CEST 2017
|
|
||||||
distributionBase=GRADLE_USER_HOME
|
|
||||||
distributionPath=wrapper/dists
|
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
|
||||||
zipStorePath=wrapper/dists
|
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
|
|
|
@ -1,15 +0,0 @@
|
||||||
include ':app'
|
|
||||||
|
|
||||||
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
|
|
||||||
|
|
||||||
def plugins = new Properties()
|
|
||||||
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
|
|
||||||
if (pluginsFile.exists()) {
|
|
||||||
pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
|
|
||||||
}
|
|
||||||
|
|
||||||
plugins.each { name, path ->
|
|
||||||
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
|
|
||||||
include ":$name"
|
|
||||||
project(":$name").projectDir = pluginDirectory
|
|
||||||
}
|
|
|
@ -1,202 +0,0 @@
|
||||||
|
|
||||||
Apache License
|
|
||||||
Version 2.0, January 2004
|
|
||||||
http://www.apache.org/licenses/
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
||||||
|
|
||||||
1. Definitions.
|
|
||||||
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction,
|
|
||||||
and distribution as defined by Sections 1 through 9 of this document.
|
|
||||||
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by
|
|
||||||
the copyright owner that is granting the License.
|
|
||||||
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all
|
|
||||||
other entities that control, are controlled by, or are under common
|
|
||||||
control with that entity. For the purposes of this definition,
|
|
||||||
"control" means (i) the power, direct or indirect, to cause the
|
|
||||||
direction or management of such entity, whether by contract or
|
|
||||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
||||||
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity
|
|
||||||
exercising permissions granted by this License.
|
|
||||||
|
|
||||||
"Source" form shall mean the preferred form for making modifications,
|
|
||||||
including but not limited to software source code, documentation
|
|
||||||
source, and configuration files.
|
|
||||||
|
|
||||||
"Object" form shall mean any form resulting from mechanical
|
|
||||||
transformation or translation of a Source form, including but
|
|
||||||
not limited to compiled object code, generated documentation,
|
|
||||||
and conversions to other media types.
|
|
||||||
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or
|
|
||||||
Object form, made available under the License, as indicated by a
|
|
||||||
copyright notice that is included in or attached to the work
|
|
||||||
(an example is provided in the Appendix below).
|
|
||||||
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object
|
|
||||||
form, that is based on (or derived from) the Work and for which the
|
|
||||||
editorial revisions, annotations, elaborations, or other modifications
|
|
||||||
represent, as a whole, an original work of authorship. For the purposes
|
|
||||||
of this License, Derivative Works shall not include works that remain
|
|
||||||
separable from, or merely link (or bind by name) to the interfaces of,
|
|
||||||
the Work and Derivative Works thereof.
|
|
||||||
|
|
||||||
"Contribution" shall mean any work of authorship, including
|
|
||||||
the original version of the Work and any modifications or additions
|
|
||||||
to that Work or Derivative Works thereof, that is intentionally
|
|
||||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
||||||
or by an individual or Legal Entity authorized to submit on behalf of
|
|
||||||
the copyright owner. For the purposes of this definition, "submitted"
|
|
||||||
means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems,
|
|
||||||
and issue tracking systems that are managed by, or on behalf of, the
|
|
||||||
Licensor for the purpose of discussing and improving the Work, but
|
|
||||||
excluding communication that is conspicuously marked or otherwise
|
|
||||||
designated in writing by the copyright owner as "Not a Contribution."
|
|
||||||
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
||||||
on behalf of whom a Contribution has been received by Licensor and
|
|
||||||
subsequently incorporated within the Work.
|
|
||||||
|
|
||||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the
|
|
||||||
Work and such Derivative Works in Source or Object form.
|
|
||||||
|
|
||||||
3. Grant of Patent License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
(except as stated in this section) patent license to make, have made,
|
|
||||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
||||||
where such license applies only to those patent claims licensable
|
|
||||||
by such Contributor that are necessarily infringed by their
|
|
||||||
Contribution(s) alone or by combination of their Contribution(s)
|
|
||||||
with the Work to which such Contribution(s) was submitted. If You
|
|
||||||
institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
||||||
or a Contribution incorporated within the Work constitutes direct
|
|
||||||
or contributory patent infringement, then any patent licenses
|
|
||||||
granted to You under this License for that Work shall terminate
|
|
||||||
as of the date such litigation is filed.
|
|
||||||
|
|
||||||
4. Redistribution. You may reproduce and distribute copies of the
|
|
||||||
Work or Derivative Works thereof in any medium, with or without
|
|
||||||
modifications, and in Source or Object form, provided that You
|
|
||||||
meet the following conditions:
|
|
||||||
|
|
||||||
(a) You must give any other recipients of the Work or
|
|
||||||
Derivative Works a copy of this License; and
|
|
||||||
|
|
||||||
(b) You must cause any modified files to carry prominent notices
|
|
||||||
stating that You changed the files; and
|
|
||||||
|
|
||||||
(c) You must retain, in the Source form of any Derivative Works
|
|
||||||
that You distribute, all copyright, patent, trademark, and
|
|
||||||
attribution notices from the Source form of the Work,
|
|
||||||
excluding those notices that do not pertain to any part of
|
|
||||||
the Derivative Works; and
|
|
||||||
|
|
||||||
(d) If the Work includes a "NOTICE" text file as part of its
|
|
||||||
distribution, then any Derivative Works that You distribute must
|
|
||||||
include a readable copy of the attribution notices contained
|
|
||||||
within such NOTICE file, excluding those notices that do not
|
|
||||||
pertain to any part of the Derivative Works, in at least one
|
|
||||||
of the following places: within a NOTICE text file distributed
|
|
||||||
as part of the Derivative Works; within the Source form or
|
|
||||||
documentation, if provided along with the Derivative Works; or,
|
|
||||||
within a display generated by the Derivative Works, if and
|
|
||||||
wherever such third-party notices normally appear. The contents
|
|
||||||
of the NOTICE file are for informational purposes only and
|
|
||||||
do not modify the License. You may add Your own attribution
|
|
||||||
notices within Derivative Works that You distribute, alongside
|
|
||||||
or as an addendum to the NOTICE text from the Work, provided
|
|
||||||
that such additional attribution notices cannot be construed
|
|
||||||
as modifying the License.
|
|
||||||
|
|
||||||
You may add Your own copyright statement to Your modifications and
|
|
||||||
may provide additional or different license terms and conditions
|
|
||||||
for use, reproduction, or distribution of Your modifications, or
|
|
||||||
for any such Derivative Works as a whole, provided Your use,
|
|
||||||
reproduction, and distribution of the Work otherwise complies with
|
|
||||||
the conditions stated in this License.
|
|
||||||
|
|
||||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
||||||
any Contribution intentionally submitted for inclusion in the Work
|
|
||||||
by You to the Licensor shall be under the terms and conditions of
|
|
||||||
this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify
|
|
||||||
the terms of any separate license agreement you may have executed
|
|
||||||
with Licensor regarding such Contributions.
|
|
||||||
|
|
||||||
6. Trademarks. This License does not grant permission to use the trade
|
|
||||||
names, trademarks, service marks, or product names of the Licensor,
|
|
||||||
except as required for reasonable and customary use in describing the
|
|
||||||
origin of the Work and reproducing the content of the NOTICE file.
|
|
||||||
|
|
||||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
||||||
agreed to in writing, Licensor provides the Work (and each
|
|
||||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
||||||
implied, including, without limitation, any warranties or conditions
|
|
||||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
||||||
appropriateness of using or redistributing the Work and assume any
|
|
||||||
risks associated with Your exercise of permissions under this License.
|
|
||||||
|
|
||||||
8. Limitation of Liability. In no event and under no legal theory,
|
|
||||||
whether in tort (including negligence), contract, or otherwise,
|
|
||||||
unless required by applicable law (such as deliberate and grossly
|
|
||||||
negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special,
|
|
||||||
incidental, or consequential damages of any character arising as a
|
|
||||||
result of this License or out of the use or inability to use the
|
|
||||||
Work (including but not limited to damages for loss of goodwill,
|
|
||||||
work stoppage, computer failure or malfunction, or any and all
|
|
||||||
other commercial damages or losses), even if such Contributor
|
|
||||||
has been advised of the possibility of such damages.
|
|
||||||
|
|
||||||
9. Accepting Warranty or Additional Liability. While redistributing
|
|
||||||
the Work or Derivative Works thereof, You may choose to offer,
|
|
||||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
||||||
or other liability obligations and/or rights consistent with this
|
|
||||||
License. However, in accepting such obligations, You may act only
|
|
||||||
on Your own behalf and on Your sole responsibility, not on behalf
|
|
||||||
of any other Contributor, and only if You agree to indemnify,
|
|
||||||
defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason
|
|
||||||
of your accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
APPENDIX: How to apply the Apache License to your work.
|
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following
|
|
||||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
||||||
replaced with your own identifying information. (Don't include
|
|
||||||
the brackets!) The text should be enclosed in the appropriate
|
|
||||||
comment syntax for the file format. We also recommend that a
|
|
||||||
file or class name and description of purpose be included on the
|
|
||||||
same "printed page" as the copyright notice for easier
|
|
||||||
identification within third-party archives.
|
|
||||||
|
|
||||||
Copyright [yyyy] [name of copyright owner]
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
|
@ -1,26 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>App</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>io.flutter.flutter.app</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>App</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>FMWK</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>1.0</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>1.0</string>
|
|
||||||
<key>MinimumOSVersion</key>
|
|
||||||
<string>8.0</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -1 +0,0 @@
|
||||||
#include "Generated.xcconfig"
|
|
|
@ -1 +0,0 @@
|
||||||
#include "Generated.xcconfig"
|
|
|
@ -1,519 +0,0 @@
|
||||||
// !$*UTF8*$!
|
|
||||||
{
|
|
||||||
archiveVersion = 1;
|
|
||||||
classes = {
|
|
||||||
};
|
|
||||||
objectVersion = 46;
|
|
||||||
objects = {
|
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
|
||||||
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
|
|
||||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
|
|
||||||
3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
|
|
||||||
3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
|
||||||
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
|
|
||||||
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
|
|
||||||
9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
|
||||||
9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; };
|
|
||||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
|
||||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
|
||||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
|
||||||
/* End PBXBuildFile section */
|
|
||||||
|
|
||||||
/* Begin PBXCopyFilesBuildPhase section */
|
|
||||||
9705A1C41CF9048500538489 /* Embed Frameworks */ = {
|
|
||||||
isa = PBXCopyFilesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
dstPath = "";
|
|
||||||
dstSubfolderSpec = 10;
|
|
||||||
files = (
|
|
||||||
3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */,
|
|
||||||
9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */,
|
|
||||||
);
|
|
||||||
name = "Embed Frameworks";
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXCopyFilesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
|
||||||
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
|
|
||||||
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
|
|
||||||
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
|
|
||||||
3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
|
|
||||||
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
|
|
||||||
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
|
||||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
|
|
||||||
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
|
||||||
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
|
||||||
9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
|
|
||||||
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
||||||
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
|
||||||
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
|
||||||
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
|
||||||
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
|
||||||
/* End PBXFileReference section */
|
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
|
||||||
97C146EB1CF9000F007C117D /* Frameworks */ = {
|
|
||||||
isa = PBXFrameworksBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
|
|
||||||
3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXFrameworksBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
|
||||||
9740EEB11CF90186004384FC /* Flutter */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
3B80C3931E831B6300D905FE /* App.framework */,
|
|
||||||
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
|
|
||||||
9740EEBA1CF902C7004384FC /* Flutter.framework */,
|
|
||||||
9740EEB21CF90195004384FC /* Debug.xcconfig */,
|
|
||||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
|
|
||||||
9740EEB31CF90195004384FC /* Generated.xcconfig */,
|
|
||||||
);
|
|
||||||
name = Flutter;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
97C146E51CF9000F007C117D = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
9740EEB11CF90186004384FC /* Flutter */,
|
|
||||||
97C146F01CF9000F007C117D /* Runner */,
|
|
||||||
97C146EF1CF9000F007C117D /* Products */,
|
|
||||||
);
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
97C146EF1CF9000F007C117D /* Products */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
97C146EE1CF9000F007C117D /* Runner.app */,
|
|
||||||
);
|
|
||||||
name = Products;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
97C146F01CF9000F007C117D /* Runner */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
97C146FA1CF9000F007C117D /* Main.storyboard */,
|
|
||||||
97C146FD1CF9000F007C117D /* Assets.xcassets */,
|
|
||||||
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
|
|
||||||
97C147021CF9000F007C117D /* Info.plist */,
|
|
||||||
97C146F11CF9000F007C117D /* Supporting Files */,
|
|
||||||
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
|
|
||||||
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
|
|
||||||
74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
|
|
||||||
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
|
|
||||||
);
|
|
||||||
path = Runner;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
97C146F11CF9000F007C117D /* Supporting Files */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
);
|
|
||||||
name = "Supporting Files";
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
/* End PBXGroup section */
|
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
|
||||||
97C146ED1CF9000F007C117D /* Runner */ = {
|
|
||||||
isa = PBXNativeTarget;
|
|
||||||
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
|
|
||||||
buildPhases = (
|
|
||||||
9740EEB61CF901F6004384FC /* Run Script */,
|
|
||||||
97C146EA1CF9000F007C117D /* Sources */,
|
|
||||||
97C146EB1CF9000F007C117D /* Frameworks */,
|
|
||||||
97C146EC1CF9000F007C117D /* Resources */,
|
|
||||||
9705A1C41CF9048500538489 /* Embed Frameworks */,
|
|
||||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
|
|
||||||
);
|
|
||||||
buildRules = (
|
|
||||||
);
|
|
||||||
dependencies = (
|
|
||||||
);
|
|
||||||
name = Runner;
|
|
||||||
productName = Runner;
|
|
||||||
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
|
|
||||||
productType = "com.apple.product-type.application";
|
|
||||||
};
|
|
||||||
/* End PBXNativeTarget section */
|
|
||||||
|
|
||||||
/* Begin PBXProject section */
|
|
||||||
97C146E61CF9000F007C117D /* Project object */ = {
|
|
||||||
isa = PBXProject;
|
|
||||||
attributes = {
|
|
||||||
LastUpgradeCheck = 1020;
|
|
||||||
ORGANIZATIONNAME = "The Chromium Authors";
|
|
||||||
TargetAttributes = {
|
|
||||||
97C146ED1CF9000F007C117D = {
|
|
||||||
CreatedOnToolsVersion = 7.3.1;
|
|
||||||
LastSwiftMigration = 0910;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
|
|
||||||
compatibilityVersion = "Xcode 3.2";
|
|
||||||
developmentRegion = en;
|
|
||||||
hasScannedForEncodings = 0;
|
|
||||||
knownRegions = (
|
|
||||||
en,
|
|
||||||
Base,
|
|
||||||
);
|
|
||||||
mainGroup = 97C146E51CF9000F007C117D;
|
|
||||||
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
|
|
||||||
projectDirPath = "";
|
|
||||||
projectRoot = "";
|
|
||||||
targets = (
|
|
||||||
97C146ED1CF9000F007C117D /* Runner */,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
/* End PBXProject section */
|
|
||||||
|
|
||||||
/* Begin PBXResourcesBuildPhase section */
|
|
||||||
97C146EC1CF9000F007C117D /* Resources */ = {
|
|
||||||
isa = PBXResourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
|
|
||||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
|
|
||||||
9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */,
|
|
||||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
|
|
||||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXResourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXShellScriptBuildPhase section */
|
|
||||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
);
|
|
||||||
name = "Thin Binary";
|
|
||||||
outputPaths = (
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin";
|
|
||||||
};
|
|
||||||
9740EEB61CF901F6004384FC /* Run Script */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
);
|
|
||||||
name = "Run Script";
|
|
||||||
outputPaths = (
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
|
|
||||||
};
|
|
||||||
/* End PBXShellScriptBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
|
||||||
97C146EA1CF9000F007C117D /* Sources */ = {
|
|
||||||
isa = PBXSourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
|
|
||||||
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXSourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXVariantGroup section */
|
|
||||||
97C146FA1CF9000F007C117D /* Main.storyboard */ = {
|
|
||||||
isa = PBXVariantGroup;
|
|
||||||
children = (
|
|
||||||
97C146FB1CF9000F007C117D /* Base */,
|
|
||||||
);
|
|
||||||
name = Main.storyboard;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
|
|
||||||
isa = PBXVariantGroup;
|
|
||||||
children = (
|
|
||||||
97C147001CF9000F007C117D /* Base */,
|
|
||||||
);
|
|
||||||
name = LaunchScreen.storyboard;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
/* End PBXVariantGroup section */
|
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
|
||||||
249021D3217E4FDB00AE95B9 /* Profile */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
|
||||||
CLANG_ENABLE_MODULES = YES;
|
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
|
||||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
||||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_COMMA = YES;
|
|
||||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
|
||||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
||||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
||||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
|
||||||
COPY_PHASE_STRIP = NO;
|
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
||||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
|
||||||
SDKROOT = iphoneos;
|
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
|
||||||
VALIDATE_PRODUCT = YES;
|
|
||||||
};
|
|
||||||
name = Profile;
|
|
||||||
};
|
|
||||||
249021D4217E4FDB00AE95B9 /* Profile */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
|
|
||||||
buildSettings = {
|
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
||||||
CLANG_ENABLE_MODULES = YES;
|
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
|
||||||
ENABLE_BITCODE = NO;
|
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
|
||||||
"$(inherited)",
|
|
||||||
"$(PROJECT_DIR)/Flutter",
|
|
||||||
);
|
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
|
||||||
LIBRARY_SEARCH_PATHS = (
|
|
||||||
"$(inherited)",
|
|
||||||
"$(PROJECT_DIR)/Flutter",
|
|
||||||
);
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lbry.ver;
|
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
|
||||||
SWIFT_VERSION = 4.0;
|
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
|
||||||
};
|
|
||||||
name = Profile;
|
|
||||||
};
|
|
||||||
97C147031CF9000F007C117D /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
|
||||||
CLANG_ENABLE_MODULES = YES;
|
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
|
||||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
||||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_COMMA = YES;
|
|
||||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
|
||||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
||||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
||||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
|
||||||
COPY_PHASE_STRIP = NO;
|
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
||||||
ENABLE_TESTABILITY = YES;
|
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
|
||||||
"DEBUG=1",
|
|
||||||
"$(inherited)",
|
|
||||||
);
|
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
||||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
|
||||||
SDKROOT = iphoneos;
|
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
97C147041CF9000F007C117D /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
|
||||||
CLANG_ENABLE_MODULES = YES;
|
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
|
||||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
||||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_COMMA = YES;
|
|
||||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
|
||||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
||||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
||||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
|
||||||
COPY_PHASE_STRIP = NO;
|
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
||||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
|
||||||
SDKROOT = iphoneos;
|
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
|
||||||
VALIDATE_PRODUCT = YES;
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
97C147061CF9000F007C117D /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
|
|
||||||
buildSettings = {
|
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
||||||
CLANG_ENABLE_MODULES = YES;
|
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
|
||||||
ENABLE_BITCODE = NO;
|
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
|
||||||
"$(inherited)",
|
|
||||||
"$(PROJECT_DIR)/Flutter",
|
|
||||||
);
|
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
|
||||||
LIBRARY_SEARCH_PATHS = (
|
|
||||||
"$(inherited)",
|
|
||||||
"$(PROJECT_DIR)/Flutter",
|
|
||||||
);
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lbry.ver;
|
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
|
||||||
SWIFT_VERSION = 4.0;
|
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
97C147071CF9000F007C117D /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
|
|
||||||
buildSettings = {
|
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
||||||
CLANG_ENABLE_MODULES = YES;
|
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
|
||||||
ENABLE_BITCODE = NO;
|
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
|
||||||
"$(inherited)",
|
|
||||||
"$(PROJECT_DIR)/Flutter",
|
|
||||||
);
|
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
|
||||||
LIBRARY_SEARCH_PATHS = (
|
|
||||||
"$(inherited)",
|
|
||||||
"$(PROJECT_DIR)/Flutter",
|
|
||||||
);
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lbry.ver;
|
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
|
||||||
SWIFT_VERSION = 4.0;
|
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
/* End XCBuildConfiguration section */
|
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */
|
|
||||||
97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
97C147031CF9000F007C117D /* Debug */,
|
|
||||||
97C147041CF9000F007C117D /* Release */,
|
|
||||||
249021D3217E4FDB00AE95B9 /* Profile */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
97C147061CF9000F007C117D /* Debug */,
|
|
||||||
97C147071CF9000F007C117D /* Release */,
|
|
||||||
249021D4217E4FDB00AE95B9 /* Profile */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
/* End XCConfigurationList section */
|
|
||||||
|
|
||||||
};
|
|
||||||
rootObject = 97C146E61CF9000F007C117D /* Project object */;
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Workspace
|
|
||||||
version = "1.0">
|
|
||||||
<FileRef
|
|
||||||
location = "group:Runner.xcodeproj">
|
|
||||||
</FileRef>
|
|
||||||
</Workspace>
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "1020"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
|
||||||
BuildableName = "Runner.app"
|
|
||||||
BlueprintName = "Runner"
|
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
|
||||||
BuildableName = "Runner.app"
|
|
||||||
BlueprintName = "Runner"
|
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
|
||||||
BuildableName = "Runner.app"
|
|
||||||
BlueprintName = "Runner"
|
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Profile"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
|
||||||
BuildableName = "Runner.app"
|
|
||||||
BlueprintName = "Runner"
|
|
||||||
ReferencedContainer = "container:Runner.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -1,7 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Workspace
|
|
||||||
version = "1.0">
|
|
||||||
<FileRef
|
|
||||||
location = "group:Runner.xcodeproj">
|
|
||||||
</FileRef>
|
|
||||||
</Workspace>
|
|
|
@ -1,13 +0,0 @@
|
||||||
import UIKit
|
|
||||||
import Flutter
|
|
||||||
|
|
||||||
@UIApplicationMain
|
|
||||||
@objc class AppDelegate: FlutterAppDelegate {
|
|
||||||
override func application(
|
|
||||||
_ application: UIApplication,
|
|
||||||
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
|
||||||
) -> Bool {
|
|
||||||
GeneratedPluginRegistrant.register(with: self)
|
|
||||||
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,122 +0,0 @@
|
||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-20x20@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-20x20@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-29x29@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-29x29@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-29x29@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-40x40@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-40x40@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "60x60",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-60x60@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "60x60",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "Icon-App-60x60@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-20x20@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-20x20@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-29x29@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-29x29@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-40x40@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-40x40@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "76x76",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-76x76@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "76x76",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-76x76@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "83.5x83.5",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "Icon-App-83.5x83.5@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "1024x1024",
|
|
||||||
"idiom" : "ios-marketing",
|
|
||||||
"filename" : "Icon-App-1024x1024@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 564 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 3.5 KiB |
|
@ -1,23 +0,0 @@
|
||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"filename" : "LaunchImage.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"filename" : "LaunchImage@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"filename" : "LaunchImage@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 68 B |
Before Width: | Height: | Size: 68 B |
Before Width: | Height: | Size: 68 B |
|
@ -1,5 +0,0 @@
|
||||||
# Launch Screen Assets
|
|
||||||
|
|
||||||
You can customize the launch screen with your own desired assets by replacing the image files in this directory.
|
|
||||||
|
|
||||||
You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
|
|
|
@ -1,37 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
|
|
||||||
</dependencies>
|
|
||||||
<scenes>
|
|
||||||
<!--View Controller-->
|
|
||||||
<scene sceneID="EHf-IW-A2E">
|
|
||||||
<objects>
|
|
||||||
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
|
|
||||||
<layoutGuides>
|
|
||||||
<viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
|
|
||||||
<viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
|
|
||||||
</layoutGuides>
|
|
||||||
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
|
|
||||||
</imageView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
|
|
||||||
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
|
|
||||||
</constraints>
|
|
||||||
</view>
|
|
||||||
</viewController>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
|
||||||
</objects>
|
|
||||||
<point key="canvasLocation" x="53" y="375"/>
|
|
||||||
</scene>
|
|
||||||
</scenes>
|
|
||||||
<resources>
|
|
||||||
<image name="LaunchImage" width="168" height="185"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
|
@ -1,26 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
|
||||||
</dependencies>
|
|
||||||
<scenes>
|
|
||||||
<!--Flutter View Controller-->
|
|
||||||
<scene sceneID="tne-QT-ifu">
|
|
||||||
<objects>
|
|
||||||
<viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
|
|
||||||
<layoutGuides>
|
|
||||||
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
|
|
||||||
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
|
|
||||||
</layoutGuides>
|
|
||||||
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</viewController>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
|
|
||||||
</objects>
|
|
||||||
</scene>
|
|
||||||
</scenes>
|
|
||||||
</document>
|
|
|
@ -1,45 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>$(EXECUTABLE_NAME)</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>ver</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>APPL</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>$(FLUTTER_BUILD_NAME)</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
|
||||||
<key>LSRequiresIPhoneOS</key>
|
|
||||||
<true/>
|
|
||||||
<key>UILaunchStoryboardName</key>
|
|
||||||
<string>LaunchScreen</string>
|
|
||||||
<key>UIMainStoryboardFile</key>
|
|
||||||
<string>Main</string>
|
|
||||||
<key>UISupportedInterfaceOrientations</key>
|
|
||||||
<array>
|
|
||||||
<string>UIInterfaceOrientationPortrait</string>
|
|
||||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
|
||||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
|
||||||
</array>
|
|
||||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
|
||||||
<array>
|
|
||||||
<string>UIInterfaceOrientationPortrait</string>
|
|
||||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
|
||||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
|
||||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
|
||||||
</array>
|
|
||||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
|
||||||
<false/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -1 +0,0 @@
|
||||||
#import "GeneratedPluginRegistrant.h"
|
|
|
@ -1,83 +0,0 @@
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter/foundation.dart' show debugDefaultTargetPlatformOverride;
|
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
import 'package:ver/src/servers.dart';
|
|
||||||
import 'package:ver/src/models/server.dart';
|
|
||||||
import 'package:ver/utils.dart';
|
|
||||||
|
|
||||||
|
|
||||||
class UnderConstructionPage extends StatelessWidget {
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Scaffold(
|
|
||||||
appBar: AppBar(title: Text('Under Construction')),
|
|
||||||
body: SizedBox.expand(
|
|
||||||
child: Center(child: Text('Under Construction')),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class MainPage extends StatefulWidget {
|
|
||||||
@override
|
|
||||||
_MainPageState createState() => _MainPageState();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class _MainPageState extends State<MainPage> {
|
|
||||||
int _currentIndex = 3;
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Scaffold(
|
|
||||||
body: IndexedStack(
|
|
||||||
index: _currentIndex,
|
|
||||||
children: [
|
|
||||||
UnderConstructionPage(),
|
|
||||||
UnderConstructionPage(),
|
|
||||||
UnderConstructionPage(),
|
|
||||||
ServersSectionNavigation(),
|
|
||||||
UnderConstructionPage(),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
bottomNavigationBar: BottomNavigationBar(
|
|
||||||
items: const <BottomNavigationBarItem>[
|
|
||||||
BottomNavigationBarItem(icon: Icon(Icons.home), title: Text('Home')),
|
|
||||||
BottomNavigationBarItem(icon: Icon(Icons.trending_up), title: Text('Trending')),
|
|
||||||
BottomNavigationBarItem(icon: Icon(Icons.subscriptions), title: Text('Subscriptions')),
|
|
||||||
BottomNavigationBarItem(icon: Icon(Icons.router), title: Text('Servers')),
|
|
||||||
BottomNavigationBarItem(icon: Icon(Icons.folder), title: Text('Library')),
|
|
||||||
],
|
|
||||||
currentIndex: _currentIndex,
|
|
||||||
onTap: (int index) {
|
|
||||||
setState(() {
|
|
||||||
_currentIndex = index;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
selectedItemColor: Colors.amber[800],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
debugDefaultTargetPlatformOverride = getTargetPlatformForDesktop();
|
|
||||||
runApp(
|
|
||||||
MaterialApp(
|
|
||||||
title: 'Ver',
|
|
||||||
theme: ThemeData(
|
|
||||||
brightness: Brightness.dark,
|
|
||||||
//primaryColor: Colors.lightBlue[800],
|
|
||||||
//accentColor: Colors.cyan[600],
|
|
||||||
fontFamily: 'Roboto',
|
|
||||||
),
|
|
||||||
home: MultiProvider(
|
|
||||||
providers: [
|
|
||||||
ChangeNotifierProvider<ServerManager>(builder: (context) => ServerManager())
|
|
||||||
],
|
|
||||||
child: MainPage()
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
|
@ -1,190 +0,0 @@
|
||||||
import 'dart:async';
|
|
||||||
import 'dart:collection';
|
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
import 'package:lbry/lbry.dart';
|
|
||||||
|
|
||||||
|
|
||||||
class ServerManager extends ChangeNotifier {
|
|
||||||
final List<Server> _servers = [];
|
|
||||||
UnmodifiableListView<Server> get items => UnmodifiableListView(_servers);
|
|
||||||
|
|
||||||
add(Server server) {
|
|
||||||
_servers.add(server);
|
|
||||||
notifyListeners();
|
|
||||||
}
|
|
||||||
|
|
||||||
remove(Server server) {
|
|
||||||
server.dispose();
|
|
||||||
_servers.remove(server);
|
|
||||||
notifyListeners();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
super.dispose();
|
|
||||||
for (var server in _servers) {
|
|
||||||
server.dispose();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class Server extends ChangeNotifier {
|
|
||||||
|
|
||||||
String _label = "";
|
|
||||||
String get label => _label;
|
|
||||||
String get labelOrHost => _label.length > 0 ? _label : host;
|
|
||||||
|
|
||||||
String _host = "";
|
|
||||||
String get host => _host;
|
|
||||||
int _port = 8181;
|
|
||||||
int get port => _port;
|
|
||||||
bool _ssl = false;
|
|
||||||
bool get ssl => _ssl;
|
|
||||||
String get url => _connection.url;
|
|
||||||
_setURL(String host, int port, bool ssl) {
|
|
||||||
_host = host;
|
|
||||||
_port = port;
|
|
||||||
_connection.url = "ws${ssl?'s':''}://$host:$port";
|
|
||||||
}
|
|
||||||
|
|
||||||
DateTime _added = new DateTime.now();
|
|
||||||
String get added => _added.toIso8601String();
|
|
||||||
|
|
||||||
bool _isDefault = false;
|
|
||||||
bool get isDefault => _isDefault;
|
|
||||||
|
|
||||||
bool _isEnabled = false;
|
|
||||||
bool get isEnabled => _isEnabled;
|
|
||||||
|
|
||||||
bool _isTrackingServerLoad = false;
|
|
||||||
bool get isTrackingServerLoad => _isTrackingServerLoad;
|
|
||||||
_setIsTrackingServerLoad(bool toggle_tracking) {
|
|
||||||
if (_isTrackingServerLoad && !toggle_tracking) {
|
|
||||||
_connection.unsubscribe_from_server_load_data();
|
|
||||||
} else if (!_isTrackingServerLoad && toggle_tracking) {
|
|
||||||
_connection.subscribe_to_server_load_data();
|
|
||||||
}
|
|
||||||
_isTrackingServerLoad = toggle_tracking;
|
|
||||||
}
|
|
||||||
|
|
||||||
ClientLoadManager clientLoadManager;
|
|
||||||
|
|
||||||
final ServerConnection _connection = ServerConnection();
|
|
||||||
bool get isConnected => _connection.isConnected;
|
|
||||||
Stream<ServerLoadDataPoint> get serverLoadStream => _connection.load_data;
|
|
||||||
final List<ServerLoadDataPoint> serverLoadData = [ServerLoadDataPoint.empty()];
|
|
||||||
|
|
||||||
Server() {
|
|
||||||
clientLoadManager = ClientLoadManager(this);
|
|
||||||
serverLoadStream.listen(serverLoadData.add);
|
|
||||||
}
|
|
||||||
|
|
||||||
update({String host, int port, bool ssl, String label,
|
|
||||||
bool isDefault, bool isEnabled, bool isTrackingServerLoad}) {
|
|
||||||
if (host != null && port != null && ssl != null) {
|
|
||||||
_setURL(host, port, ssl);
|
|
||||||
}
|
|
||||||
if (isTrackingServerLoad != null) {
|
|
||||||
_setIsTrackingServerLoad(isTrackingServerLoad);
|
|
||||||
}
|
|
||||||
_label = label ?? _label;
|
|
||||||
_isDefault = isDefault ?? _isDefault;
|
|
||||||
_isEnabled = isEnabled ?? _isEnabled;
|
|
||||||
notifyListeners();
|
|
||||||
}
|
|
||||||
|
|
||||||
connect() async {
|
|
||||||
await _connection.open();
|
|
||||||
if (_isTrackingServerLoad) {
|
|
||||||
_connection.subscribe_to_server_load_data();
|
|
||||||
}
|
|
||||||
notifyListeners();
|
|
||||||
}
|
|
||||||
|
|
||||||
disconnect() {
|
|
||||||
clientLoadManager.stop();
|
|
||||||
_connection.close();
|
|
||||||
notifyListeners();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
disconnect();
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class ClientLoadManager extends ChangeNotifier {
|
|
||||||
final Server _server;
|
|
||||||
|
|
||||||
ClientLoadGenerator clientLoadGenerator;
|
|
||||||
final StreamController<ClientLoadDataPoint> _loadDataController = StreamController.broadcast();
|
|
||||||
Stream<ClientLoadDataPoint> get clientLoadStream => _loadDataController.stream;
|
|
||||||
final List<ClientLoadDataPoint> clientLoadData = [ClientLoadDataPoint.empty()];
|
|
||||||
|
|
||||||
int _load = 1;
|
|
||||||
int get load => _load;
|
|
||||||
int _offset = 0;
|
|
||||||
int get offset => _offset;
|
|
||||||
bool _noTotals = false;
|
|
||||||
bool get noTotals => _noTotals;
|
|
||||||
|
|
||||||
ClientLoadManager(this._server) {
|
|
||||||
clientLoadStream.listen(clientLoadData.add);
|
|
||||||
}
|
|
||||||
|
|
||||||
update({int load, int offset, bool noTotals}) {
|
|
||||||
_load = load ?? _load;
|
|
||||||
_offset = offset ?? _offset;
|
|
||||||
_noTotals = noTotals ?? _noTotals;
|
|
||||||
notifyListeners();
|
|
||||||
}
|
|
||||||
|
|
||||||
start() {
|
|
||||||
clientLoadData.clear();
|
|
||||||
clientLoadData.add(ClientLoadDataPoint.empty());
|
|
||||||
clientLoadGenerator = ClientLoadGenerator(
|
|
||||||
_server.host, _server.port,
|
|
||||||
query: {
|
|
||||||
'id': 1,
|
|
||||||
'method': 'blockchain.claimtrie.search',
|
|
||||||
'params': {
|
|
||||||
'no_totals': _noTotals,
|
|
||||||
'offset': _offset,
|
|
||||||
'limit': 20,
|
|
||||||
'fee_amount': '<1',
|
|
||||||
//'all_tags': ['funny'],
|
|
||||||
'any_tags': [
|
|
||||||
'crypto',
|
|
||||||
'outdoors',
|
|
||||||
'cars',
|
|
||||||
'automotive'
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}, tickCallback: (t, stats) {
|
|
||||||
_loadDataController.add(stats);
|
|
||||||
//increase = max(1, min(100, increase+2)-stats.backlog);
|
|
||||||
//increase += 1;
|
|
||||||
//t.query['params']['offset'] = (increase/2).ceil()*t.query['params']['limit'];
|
|
||||||
t.load = _load;//rand.nextInt(10)+5;
|
|
||||||
return true;
|
|
||||||
})..start();
|
|
||||||
}
|
|
||||||
|
|
||||||
stop() {
|
|
||||||
if (clientLoadGenerator != null) {
|
|
||||||
clientLoadGenerator.stop();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
super.dispose();
|
|
||||||
stop();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,73 +0,0 @@
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:ver/src/widgets/server.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
import 'models/server.dart';
|
|
||||||
|
|
||||||
|
|
||||||
class ServerListPage extends StatelessWidget {
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) =>
|
|
||||||
Scaffold(
|
|
||||||
appBar: AppBar(title: Text('Servers')),
|
|
||||||
body: ServerList(),
|
|
||||||
floatingActionButton: FloatingActionButton(
|
|
||||||
child: Icon(Icons.add),
|
|
||||||
onPressed: () => Navigator.of(context).pushNamed('/edit', arguments: true),
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class ServerFormPage extends StatelessWidget {
|
|
||||||
|
|
||||||
final bool creating;
|
|
||||||
ServerFormPage(this.creating);
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) =>
|
|
||||||
Scaffold(
|
|
||||||
appBar: AppBar(title: Text(creating ? 'Add Server' : 'Modify Server')),
|
|
||||||
body: ServerForm(creating),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class ServerViewPage extends StatelessWidget {
|
|
||||||
final Server server;
|
|
||||||
ServerViewPage(this.server);
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) =>
|
|
||||||
Scaffold(
|
|
||||||
appBar: AppBar(title: Text(server.labelOrHost)),
|
|
||||||
body: ChangeNotifierProvider<Server>.value(
|
|
||||||
value: server,
|
|
||||||
child: ServerView()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class ServersSectionNavigation extends StatelessWidget {
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Navigator(
|
|
||||||
onGenerateRoute: (RouteSettings settings) {
|
|
||||||
return MaterialPageRoute(
|
|
||||||
settings: settings,
|
|
||||||
builder: (BuildContext context) {
|
|
||||||
switch (settings.name) {
|
|
||||||
case '/':
|
|
||||||
return ServerListPage();
|
|
||||||
case '/edit':
|
|
||||||
return ServerFormPage(settings.arguments);
|
|
||||||
case '/view':
|
|
||||||
return ServerViewPage(settings.arguments);
|
|
||||||
}
|
|
||||||
return ServerListPage();
|
|
||||||
},
|
|
||||||
);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,172 +0,0 @@
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter/services.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
import '../models/server.dart';
|
|
||||||
import 'time_series_chart.dart';
|
|
||||||
|
|
||||||
|
|
||||||
class ServerList extends StatelessWidget {
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Consumer<ServerManager>(
|
|
||||||
builder: (_, servers, __) =>
|
|
||||||
ListView.builder(
|
|
||||||
itemCount: servers.items.length,
|
|
||||||
itemBuilder: (context, index) =>
|
|
||||||
ChangeNotifierProvider<Server>.value(
|
|
||||||
value: servers.items[index],
|
|
||||||
child: ServerListItem()
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class ServerListItem extends StatelessWidget {
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Card(
|
|
||||||
child: Consumer<Server>(
|
|
||||||
builder: (_, server, __) =>
|
|
||||||
ListTile(
|
|
||||||
leading: FlutterLogo(size: 72.0),
|
|
||||||
title: Text(server.labelOrHost),
|
|
||||||
subtitle: Text("${server.url}\nadded ${server.added}"),
|
|
||||||
trailing: Icon(Icons.more_vert),
|
|
||||||
isThreeLine: true,
|
|
||||||
onTap: ()=> Navigator.of(context).pushNamed('/view', arguments: server),
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class ServerView extends StatelessWidget {
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) => ServerCharts();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class ServerForm extends StatefulWidget {
|
|
||||||
final bool creating;
|
|
||||||
|
|
||||||
ServerForm(this.creating);
|
|
||||||
|
|
||||||
@override
|
|
||||||
_ServerFormState createState() => _ServerFormState();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class _ServerFormState extends State<ServerForm> {
|
|
||||||
|
|
||||||
final _formKey = GlobalKey<FormState>();
|
|
||||||
final _formData = {
|
|
||||||
'label': '',
|
|
||||||
'host': 'localhost',
|
|
||||||
'port': 8181,
|
|
||||||
'ssl': false,
|
|
||||||
'isDefault': true,
|
|
||||||
'isEnabled': false,
|
|
||||||
'isTrackingServerLoad': false
|
|
||||||
};
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Form(
|
|
||||||
key: _formKey,
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: <Widget>[
|
|
||||||
ListTile(title: TextFormField(
|
|
||||||
initialValue: _formData['label'],
|
|
||||||
decoration: const InputDecoration(
|
|
||||||
labelText: 'Label',
|
|
||||||
hintText: 'Optional text to display in server list.'
|
|
||||||
),
|
|
||||||
onSaved: (value) => _formData['label'] = value,
|
|
||||||
)),
|
|
||||||
ListTile(title: TextFormField(
|
|
||||||
initialValue: _formData['host'],
|
|
||||||
keyboardType: TextInputType.url,
|
|
||||||
inputFormatters: [
|
|
||||||
WhitelistingTextInputFormatter(RegExp(r'[\w\-\.]+'))
|
|
||||||
],
|
|
||||||
decoration: const InputDecoration(
|
|
||||||
labelText: 'Host Name',
|
|
||||||
hintText: 'Enter the host name of the server.'
|
|
||||||
),
|
|
||||||
validator: (value) => value.isEmpty ? 'A host name is required.' : null,
|
|
||||||
onSaved: (value) => _formData['host'] = value,
|
|
||||||
)),
|
|
||||||
ListTile(title: TextFormField(
|
|
||||||
initialValue: _formData['port'].toString(),
|
|
||||||
keyboardType: TextInputType.number,
|
|
||||||
inputFormatters: [
|
|
||||||
WhitelistingTextInputFormatter.digitsOnly
|
|
||||||
],
|
|
||||||
decoration: const InputDecoration(
|
|
||||||
labelText: 'Port',
|
|
||||||
hintText: 'Enter the port of the server.'
|
|
||||||
),
|
|
||||||
validator: (value) => value.isEmpty ? 'A port is required.' : null,
|
|
||||||
onSaved: (value) => setState(() => _formData['port'] = int.parse(value)),
|
|
||||||
)),
|
|
||||||
SwitchListTile(
|
|
||||||
title: Text('Requires SSL.'),
|
|
||||||
value: _formData['ssl'],
|
|
||||||
onChanged: (value) => setState(() => _formData['ssl'] = value),
|
|
||||||
),
|
|
||||||
SwitchListTile(
|
|
||||||
title: Text('Use this as your primary and default server.'),
|
|
||||||
value: _formData['isDefault'],
|
|
||||||
onChanged: (value) => setState(() => _formData['isDefault'] = value),
|
|
||||||
),
|
|
||||||
SwitchListTile(
|
|
||||||
title: Text('Always stay connected.'),
|
|
||||||
value: _formData['isEnabled'],
|
|
||||||
onChanged: (value) => setState(() => _formData['isEnabled'] = value),
|
|
||||||
),
|
|
||||||
SwitchListTile(
|
|
||||||
title: Text('Track server load.'),
|
|
||||||
value: _formData['isTrackingServerLoad'],
|
|
||||||
onChanged: (value) =>
|
|
||||||
setState(() => _formData['isTrackingServerLoad'] = value),
|
|
||||||
),
|
|
||||||
ListTile(title: RaisedButton(
|
|
||||||
onPressed: () {
|
|
||||||
if (_formKey.currentState.validate()) {
|
|
||||||
_formKey.currentState.save();
|
|
||||||
var manager = Provider.of<ServerManager>(
|
|
||||||
context, listen: false
|
|
||||||
);
|
|
||||||
var server = Server();
|
|
||||||
server.update(
|
|
||||||
label: _formData['label'],
|
|
||||||
host: _formData['host'],
|
|
||||||
port: _formData['port'],
|
|
||||||
ssl: _formData['ssl'],
|
|
||||||
isDefault: _formData['isDefault'],
|
|
||||||
isEnabled: _formData['isEnabled'],
|
|
||||||
isTrackingServerLoad: _formData['isTrackingServerLoad'],
|
|
||||||
);
|
|
||||||
manager.add(server);
|
|
||||||
if (server.isEnabled) {
|
|
||||||
server.connect();
|
|
||||||
}
|
|
||||||
Navigator.of(context).pop();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
child: Text(widget.creating ? 'Add Server' : 'Update Server'),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,354 +0,0 @@
|
||||||
import 'dart:math';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:charts_flutter/flutter.dart' as charts;
|
|
||||||
import 'package:charts_flutter/src/base_chart_state.dart' as state;
|
|
||||||
import 'package:charts_common/common.dart' as common;
|
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
import 'package:lbry/lbry.dart';
|
|
||||||
import '../models/server.dart';
|
|
||||||
|
|
||||||
|
|
||||||
class ServerCharts extends StatelessWidget {
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
var server = Provider.of<Server>(context, listen: false);
|
|
||||||
return ListView(children: <Widget>[
|
|
||||||
SizedBox(height: 300.0, child: APILoadChart(
|
|
||||||
server, "Search", (ServerLoadDataPoint dataPoint) => dataPoint.search
|
|
||||||
)),
|
|
||||||
//SizedBox(height: 300.0, child: APILoadChart(
|
|
||||||
// server, "Resolve", (ServerLoadDataPoint dataPoint) => dataPoint.resolve
|
|
||||||
//)),
|
|
||||||
SizedBox(height: 300.0, child: ServerPerformanceChart(server)),
|
|
||||||
//SizedBox(height: 220.0, child: ClientLoadChart(server.clientLoadManager)),
|
|
||||||
//SizedBox(height: 220.0, child: ClientPerformanceChart(server.clientLoadManager)),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
typedef APICallMetrics APIGetter(ServerLoadDataPoint dataPoint);
|
|
||||||
|
|
||||||
class APILoadChart extends StatefulWidget {
|
|
||||||
final Server server;
|
|
||||||
final String name;
|
|
||||||
final APIGetter getter;
|
|
||||||
APILoadChart(this.server, this.name, this.getter);
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<StatefulWidget> createState() => APILoadChartState();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class APILoadChartState extends State<APILoadChart> {
|
|
||||||
|
|
||||||
List<charts.Series<ServerLoadDataPoint, int>> seriesData;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
seriesData = [
|
|
||||||
/*
|
|
||||||
charts.Series<ServerLoadDataPoint, int>(
|
|
||||||
id: 'Received',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault.lighter,
|
|
||||||
strokeWidthPxFn: (_, __) => 4.0,
|
|
||||||
domainFn: (ServerLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).receive_count,
|
|
||||||
data: widget.server.serverLoadData,
|
|
||||||
),*/
|
|
||||||
charts.Series<ServerLoadDataPoint, int>(
|
|
||||||
id: 'Cache',
|
|
||||||
colorFn: (_, __) =>
|
|
||||||
charts.MaterialPalette.green.shadeDefault,
|
|
||||||
domainFn: (ServerLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).cache_response_stack,
|
|
||||||
data: widget.server.serverLoadData,
|
|
||||||
),
|
|
||||||
charts.Series<ServerLoadDataPoint, int>(
|
|
||||||
id: 'Query',
|
|
||||||
colorFn: (_, __) =>
|
|
||||||
charts.MaterialPalette.blue.shadeDefault,
|
|
||||||
domainFn: (ServerLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).query_response_stack,
|
|
||||||
data: widget.server.serverLoadData,
|
|
||||||
),
|
|
||||||
charts.Series<ServerLoadDataPoint, int>(
|
|
||||||
id: 'Interrupts',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault.lighter,
|
|
||||||
domainFn: (ServerLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).intrp_response_stack,
|
|
||||||
data: widget.server.serverLoadData,
|
|
||||||
),
|
|
||||||
charts.Series<ServerLoadDataPoint, int>(
|
|
||||||
id: 'Errors',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault,
|
|
||||||
domainFn: (ServerLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).error_response_stack,
|
|
||||||
data: widget.server.serverLoadData,
|
|
||||||
),
|
|
||||||
/*
|
|
||||||
charts.Series<ServerLoadDataPoint, int>(
|
|
||||||
id: '${widget.name} Interrupted',
|
|
||||||
colorFn: (_, __) =>
|
|
||||||
charts.MaterialPalette.pink.shadeDefault.lighter,
|
|
||||||
domainFn: (ServerLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).interrupted,
|
|
||||||
strokeWidthPxFn: (ServerLoadDataPoint load, _) => 5.0,
|
|
||||||
data: widget.server.serverLoadData,
|
|
||||||
),
|
|
||||||
charts.Series<ServerLoadDataPoint, int>(
|
|
||||||
id: '${widget.name} Errored',
|
|
||||||
colorFn: (_, __) =>
|
|
||||||
charts.MaterialPalette.red.shadeDefault.darker,
|
|
||||||
domainFn: (ServerLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).errored,
|
|
||||||
strokeWidthPxFn: (ServerLoadDataPoint load, _) => 5.0,
|
|
||||||
data: widget.server.serverLoadData,
|
|
||||||
),
|
|
||||||
charts.Series<ServerLoadDataPoint, int>(
|
|
||||||
id: '${widget.name} From Cache',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.green.shadeDefault.darker,
|
|
||||||
domainFn: (ServerLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).cache_hits,
|
|
||||||
strokeWidthPxFn: (ServerLoadDataPoint load, _) => 3.0,
|
|
||||||
data: widget.server.serverLoadData,
|
|
||||||
),
|
|
||||||
*/
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return StreamBuilder<ServerLoadDataPoint>(
|
|
||||||
stream: widget.server.serverLoadStream,
|
|
||||||
builder: (BuildContext context, _) => BetterLineChart(seriesData,
|
|
||||||
//renderer: new charts.LineRendererConfig<num>(includeArea: true)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class ServerPerformanceChart extends StatefulWidget {
|
|
||||||
final Server server;
|
|
||||||
ServerPerformanceChart(this.server);
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<StatefulWidget> createState() => ServerPerformanceChartState();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class ServerPerformanceChartState extends State<ServerPerformanceChart> {
|
|
||||||
|
|
||||||
List<charts.Series<ServerLoadDataPoint, int>> seriesData;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
seriesData = [
|
|
||||||
charts.Series<ServerLoadDataPoint, int>(
|
|
||||||
id: 'Waiting 95 Percentile',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault.lighter,
|
|
||||||
domainFn: (ServerLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ServerLoadDataPoint load, _) => load.search.wait.ninety_five,
|
|
||||||
data: widget.server.serverLoadData,
|
|
||||||
),
|
|
||||||
charts.Series<ServerLoadDataPoint, int>(
|
|
||||||
id: 'Avg. Waiting',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault.darker,
|
|
||||||
domainFn: (ServerLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ServerLoadDataPoint load, _) => load.search.wait.avg,
|
|
||||||
data: widget.server.serverLoadData,
|
|
||||||
),
|
|
||||||
charts.Series<ServerLoadDataPoint, int>(
|
|
||||||
id: 'Avg. Executing',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.teal.shadeDefault.darker,
|
|
||||||
domainFn: (ServerLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ServerLoadDataPoint load, _) => load.search.python.avg,
|
|
||||||
data: widget.server.serverLoadData,
|
|
||||||
),
|
|
||||||
charts.Series<ServerLoadDataPoint, int>(
|
|
||||||
id: 'SQLite 95 Percentile',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault.lighter,
|
|
||||||
domainFn: (ServerLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ServerLoadDataPoint load, _) => load.search.sql.ninety_five,
|
|
||||||
data: widget.server.serverLoadData,
|
|
||||||
),
|
|
||||||
charts.Series<ServerLoadDataPoint, int>(
|
|
||||||
id: 'Avg. SQLite',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault.darker,
|
|
||||||
domainFn: (ServerLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ServerLoadDataPoint load, _) => load.search.sql.avg,
|
|
||||||
data: widget.server.serverLoadData,
|
|
||||||
),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return StreamBuilder<ServerLoadDataPoint>(
|
|
||||||
stream: widget.server.serverLoadStream,
|
|
||||||
builder: (BuildContext context, _) => BetterLineChart(seriesData)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class ClientLoadChart extends StatefulWidget {
|
|
||||||
final ClientLoadManager client;
|
|
||||||
ClientLoadChart(this.client);
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<StatefulWidget> createState() => ClientLoadChartState();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class ClientLoadChartState extends State<ClientLoadChart> {
|
|
||||||
|
|
||||||
List<charts.Series<ClientLoadDataPoint, int>> seriesData;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
seriesData = [
|
|
||||||
charts.Series<ClientLoadDataPoint, int>(
|
|
||||||
id: 'Load',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.black.darker,
|
|
||||||
domainFn: (ClientLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ClientLoadDataPoint load, _) => load.load,
|
|
||||||
data: widget.client.clientLoadData,
|
|
||||||
),
|
|
||||||
charts.Series<ClientLoadDataPoint, int>(
|
|
||||||
id: 'Success',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.green.shadeDefault,
|
|
||||||
domainFn: (ClientLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ClientLoadDataPoint load, _) => load.success,
|
|
||||||
data: widget.client.clientLoadData,
|
|
||||||
),
|
|
||||||
charts.Series<ClientLoadDataPoint, int>(
|
|
||||||
id: 'Backlog',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault,
|
|
||||||
domainFn: (ClientLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ClientLoadDataPoint load, _) => load.backlog,
|
|
||||||
data: widget.client.clientLoadData,
|
|
||||||
),
|
|
||||||
charts.Series<ClientLoadDataPoint, int>(
|
|
||||||
id: 'Catch-up',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.yellow.shadeDefault,
|
|
||||||
domainFn: (ClientLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ClientLoadDataPoint load, _) => load.catchup,
|
|
||||||
data: widget.client.clientLoadData,
|
|
||||||
)
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return StreamBuilder<ClientLoadDataPoint>(
|
|
||||||
stream: widget.client.clientLoadStream,
|
|
||||||
builder: (BuildContext context, _) => BetterLineChart(seriesData)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class ClientPerformanceChart extends StatefulWidget {
|
|
||||||
final ClientLoadManager client;
|
|
||||||
ClientPerformanceChart(this.client);
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<StatefulWidget> createState() => ClientPerformanceChartState();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class ClientPerformanceChartState extends State<ClientPerformanceChart> {
|
|
||||||
|
|
||||||
List<charts.Series<ClientLoadDataPoint, int>> seriesData;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
seriesData = [
|
|
||||||
charts.Series<ClientLoadDataPoint, int>(
|
|
||||||
id: 'Avg. Success Time',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.green.shadeDefault,
|
|
||||||
domainFn: (ClientLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ClientLoadDataPoint load, _) => load.avg_success,
|
|
||||||
data: widget.client.clientLoadData,
|
|
||||||
),
|
|
||||||
charts.Series<ClientLoadDataPoint, int>(
|
|
||||||
id: 'Avg. Catch-up Time',
|
|
||||||
colorFn: (_, __) => charts.MaterialPalette.yellow.shadeDefault,
|
|
||||||
domainFn: (ClientLoadDataPoint load, _) => load.tick,
|
|
||||||
measureFn: (ClientLoadDataPoint load, _) => load.avg_catchup,
|
|
||||||
data: widget.client.clientLoadData,
|
|
||||||
),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return StreamBuilder<ClientLoadDataPoint>(
|
|
||||||
stream: widget.client.clientLoadStream,
|
|
||||||
builder: (BuildContext context, _) => BetterLineChart(seriesData)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class BetterLineChart extends charts.LineChart {
|
|
||||||
|
|
||||||
final int itemCount;
|
|
||||||
final Object lastItem;
|
|
||||||
|
|
||||||
BetterLineChart(List<charts.Series<dynamic, int>> seriesList, {charts.LineRendererConfig renderer}):
|
|
||||||
itemCount = seriesList[0].data.length,
|
|
||||||
lastItem = seriesList[0].data.last,
|
|
||||||
super(
|
|
||||||
seriesList,
|
|
||||||
animate: false,
|
|
||||||
defaultRenderer: renderer,
|
|
||||||
behaviors: [charts.SeriesLegend()],
|
|
||||||
domainAxis: charts.NumericAxisSpec(
|
|
||||||
viewport: new charts.NumericExtents(
|
|
||||||
max(0, seriesList[0].data.last.tick - 60), seriesList[0].data.last.tick
|
|
||||||
),
|
|
||||||
renderSpec: new charts.SmallTickRendererSpec(
|
|
||||||
labelStyle: new charts.TextStyleSpec(
|
|
||||||
color: charts.MaterialPalette.gray.shade50
|
|
||||||
),
|
|
||||||
lineStyle: new charts.LineStyleSpec(
|
|
||||||
color: charts.MaterialPalette.black
|
|
||||||
)
|
|
||||||
),
|
|
||||||
),
|
|
||||||
primaryMeasureAxis: new charts.NumericAxisSpec(
|
|
||||||
renderSpec: new charts.GridlineRendererSpec(
|
|
||||||
labelStyle: new charts.TextStyleSpec(
|
|
||||||
color: charts.MaterialPalette.white
|
|
||||||
),
|
|
||||||
lineStyle: new charts.LineStyleSpec(
|
|
||||||
color: charts.MaterialPalette.gray.shade100
|
|
||||||
),
|
|
||||||
),
|
|
||||||
tickProviderSpec: new charts.BasicNumericTickProviderSpec(
|
|
||||||
dataIsInWholeNumbers: true,
|
|
||||||
desiredTickCount: 5
|
|
||||||
)
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
@override
|
|
||||||
void updateCommonChart(common.BaseChart baseChart, charts.BaseChart oldWidget,
|
|
||||||
state.BaseChartState chartState) {
|
|
||||||
super.updateCommonChart(baseChart, oldWidget, chartState);
|
|
||||||
final prev = oldWidget as BetterLineChart;
|
|
||||||
if (itemCount != prev?.itemCount || lastItem != prev?.lastItem) {
|
|
||||||
chartState.markChartDirty();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
import 'dart:io';
|
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
|
|
||||||
TargetPlatform getTargetPlatformForDesktop() {
|
|
||||||
// See https://github.com/flutter/flutter/wiki/Desktop-shells#target-platform-override
|
|
||||||
if (Platform.isMacOS || Platform.isIOS) {
|
|
||||||
return TargetPlatform.iOS;
|
|
||||||
} else if (Platform.isAndroid) {
|
|
||||||
return TargetPlatform.android;
|
|
||||||
}
|
|
||||||
return TargetPlatform.fuchsia;
|
|
||||||
}
|
|
||||||
|
|
1
dart/packages/ver/linux/.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
flutter/
|
|
|
@ -1,127 +0,0 @@
|
||||||
# Copyright 2018 Google LLC
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
# Example-specific variables.
|
|
||||||
# To modify this Makefile for a different application, these are the values
|
|
||||||
# that are mostly likely to need to be changed.
|
|
||||||
|
|
||||||
# Executable name.
|
|
||||||
BINARY_NAME=flutter_desktop_example
|
|
||||||
# The C++ code for the embedder application.
|
|
||||||
SOURCES=flutter_embedder_example.cc
|
|
||||||
|
|
||||||
# Default build type. For a release build, set BUILD=release.
|
|
||||||
# Currently this only sets NDEBUG, which is used to control the flags passed
|
|
||||||
# to the Flutter engine in the example shell, and not the complation settings
|
|
||||||
# (e.g., optimization level) of the C++ code.
|
|
||||||
BUILD=debug
|
|
||||||
|
|
||||||
# Configuration provided via flutter tool.
|
|
||||||
include flutter/generated_config
|
|
||||||
|
|
||||||
# Dependency locations
|
|
||||||
FLUTTER_APP_CACHE_DIR=flutter/
|
|
||||||
FLUTTER_APP_DIR=$(CURDIR)/..
|
|
||||||
FLUTTER_APP_BUILD_DIR=$(FLUTTER_APP_DIR)/build
|
|
||||||
|
|
||||||
OUT_DIR=$(FLUTTER_APP_BUILD_DIR)/linux
|
|
||||||
|
|
||||||
# Libraries
|
|
||||||
FLUTTER_LIB_NAME=flutter_linux
|
|
||||||
FLUTTER_LIB=$(FLUTTER_APP_CACHE_DIR)/lib$(FLUTTER_LIB_NAME).so
|
|
||||||
|
|
||||||
# Tools
|
|
||||||
FLUTTER_BIN=$(FLUTTER_ROOT)/bin/flutter
|
|
||||||
LINUX_BUILD=$(FLUTTER_ROOT)/packages/flutter_tools/bin/linux_backend.sh
|
|
||||||
|
|
||||||
# Resources
|
|
||||||
ICU_DATA_NAME=icudtl.dat
|
|
||||||
ICU_DATA_SOURCE=$(FLUTTER_APP_CACHE_DIR)/$(ICU_DATA_NAME)
|
|
||||||
FLUTTER_ASSETS_NAME=flutter_assets
|
|
||||||
FLUTTER_ASSETS_SOURCE=$(FLUTTER_APP_BUILD_DIR)/$(FLUTTER_ASSETS_NAME)
|
|
||||||
|
|
||||||
# Bundle structure
|
|
||||||
BUNDLE_OUT_DIR=$(OUT_DIR)/$(BUILD)
|
|
||||||
BUNDLE_DATA_DIR=$(BUNDLE_OUT_DIR)/data
|
|
||||||
BUNDLE_LIB_DIR=$(BUNDLE_OUT_DIR)/lib
|
|
||||||
|
|
||||||
BIN_OUT=$(BUNDLE_OUT_DIR)/$(BINARY_NAME)
|
|
||||||
ICU_DATA_OUT=$(BUNDLE_DATA_DIR)/$(ICU_DATA_NAME)
|
|
||||||
FLUTTER_LIB_OUT=$(BUNDLE_LIB_DIR)/$(notdir $(FLUTTER_LIB))
|
|
||||||
|
|
||||||
# Add relevant code from the wrapper library, which is intended to be statically
|
|
||||||
# built into the client.
|
|
||||||
WRAPPER_ROOT=$(FLUTTER_APP_CACHE_DIR)/cpp_client_wrapper
|
|
||||||
WRAPPER_SOURCES= \
|
|
||||||
$(WRAPPER_ROOT)/flutter_window_controller.cc \
|
|
||||||
$(WRAPPER_ROOT)/plugin_registrar.cc \
|
|
||||||
$(WRAPPER_ROOT)/engine_method_result.cc
|
|
||||||
SOURCES+=$(WRAPPER_SOURCES)
|
|
||||||
|
|
||||||
# Headers
|
|
||||||
WRAPPER_INCLUDE_DIR=$(WRAPPER_ROOT)/include
|
|
||||||
INCLUDE_DIRS=$(FLUTTER_APP_CACHE_DIR) $(WRAPPER_INCLUDE_DIR)
|
|
||||||
|
|
||||||
# Build settings
|
|
||||||
CXX=clang++
|
|
||||||
CXXFLAGS.release=-DNDEBUG
|
|
||||||
CXXFLAGS=-std=c++14 -Wall -Werror $(CXXFLAGS.$(BUILD))
|
|
||||||
CPPFLAGS=$(patsubst %,-I%,$(INCLUDE_DIRS))
|
|
||||||
LDFLAGS=-L$(BUNDLE_LIB_DIR) \
|
|
||||||
-l$(FLUTTER_LIB_NAME) \
|
|
||||||
-Wl,-rpath=\$$ORIGIN/lib
|
|
||||||
|
|
||||||
# Targets
|
|
||||||
|
|
||||||
.PHONY: all
|
|
||||||
all: $(BIN_OUT) bundle
|
|
||||||
|
|
||||||
# This is a phony target because the flutter tool cannot describe
|
|
||||||
# its inputs and outputs yet.
|
|
||||||
.PHONY: sync
|
|
||||||
sync: flutter/generated_config
|
|
||||||
$(FLUTTER_ROOT)/packages/flutter_tools/bin/tool_backend.sh linux-x64 $(BUILD)
|
|
||||||
|
|
||||||
.PHONY: bundle
|
|
||||||
bundle: $(ICU_DATA_OUT) $(FLUTTER_LIB_OUT) bundleflutterassets
|
|
||||||
|
|
||||||
$(BIN_OUT): $(SOURCES) $(FLUTTER_LIB_OUT)
|
|
||||||
mkdir -p $(@D)
|
|
||||||
$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(SOURCES) $(LDFLAGS) -o $@
|
|
||||||
|
|
||||||
$(WRAPPER_SOURCES) $(FLUTTER_LIB) $(ICU_DATA_SOURCE) $(FLUTTER_ASSETS_SOURCE): \
|
|
||||||
| sync
|
|
||||||
|
|
||||||
$(FLUTTER_LIB_OUT): $(FLUTTER_LIB)
|
|
||||||
mkdir -p $(BUNDLE_LIB_DIR)
|
|
||||||
cp $(FLUTTER_LIB) $(BUNDLE_LIB_DIR)
|
|
||||||
|
|
||||||
$(ICU_DATA_OUT): $(ICU_DATA_SOURCE)
|
|
||||||
mkdir -p $(dir $(ICU_DATA_OUT))
|
|
||||||
cp $(ICU_DATA_SOURCE) $(ICU_DATA_OUT)
|
|
||||||
|
|
||||||
# Fully re-copy the assets directory on each build to avoid having to keep a
|
|
||||||
# comprehensive list of all asset files here, which would be fragile to changes
|
|
||||||
# in the Flutter example (e.g., adding a new font to pubspec.yaml would require
|
|
||||||
# changes here).
|
|
||||||
.PHONY: bundleflutterassets
|
|
||||||
bundleflutterassets: $(FLUTTER_ASSETS_SOURCE)
|
|
||||||
mkdir -p $(BUNDLE_DATA_DIR)
|
|
||||||
rsync -rpu --delete $(FLUTTER_ASSETS_SOURCE) $(BUNDLE_DATA_DIR)
|
|
||||||
|
|
||||||
.PHONY: clean
|
|
||||||
clean:
|
|
||||||
rm -rf $(OUT_DIR); \
|
|
||||||
cd $(FLUTTER_APP_DIR); \
|
|
||||||
$(FLUTTER_BIN) clean
|
|
|
@ -1,71 +0,0 @@
|
||||||
// Copyright 2018 Google LLC
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
#include <linux/limits.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include <cstdlib>
|
|
||||||
#include <iostream>
|
|
||||||
#include <memory>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#include <flutter/flutter_window_controller.h>
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
// Returns the path of the directory containing this executable, or an empty
|
|
||||||
// string if the directory cannot be found.
|
|
||||||
std::string GetExecutableDirectory() {
|
|
||||||
char buffer[PATH_MAX + 1];
|
|
||||||
ssize_t length = readlink("/proc/self/exe", buffer, sizeof(buffer));
|
|
||||||
if (length > PATH_MAX) {
|
|
||||||
std::cerr << "Couldn't locate executable" << std::endl;
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
std::string executable_path(buffer, length);
|
|
||||||
size_t last_separator_position = executable_path.find_last_of('/');
|
|
||||||
if (last_separator_position == std::string::npos) {
|
|
||||||
std::cerr << "Unabled to find parent directory of " << executable_path
|
|
||||||
<< std::endl;
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
return executable_path.substr(0, last_separator_position);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
|
||||||
// Resources are located relative to the executable.
|
|
||||||
std::string base_directory = GetExecutableDirectory();
|
|
||||||
if (base_directory.empty()) {
|
|
||||||
base_directory = ".";
|
|
||||||
}
|
|
||||||
std::string data_directory = base_directory + "/data";
|
|
||||||
std::string assets_path = data_directory + "/flutter_assets";
|
|
||||||
std::string icu_data_path = data_directory + "/icudtl.dat";
|
|
||||||
|
|
||||||
// Arguments for the Flutter Engine.
|
|
||||||
std::vector<std::string> arguments;
|
|
||||||
|
|
||||||
flutter::FlutterWindowController flutter_controller(icu_data_path);
|
|
||||||
|
|
||||||
// Start the engine.
|
|
||||||
if (!flutter_controller.CreateWindow(800, 1200, "ver - lbry workbench",
|
|
||||||
assets_path, arguments)) {
|
|
||||||
return EXIT_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Run until the window is closed.
|
|
||||||
flutter_controller.RunEventLoop();
|
|
||||||
return EXIT_SUCCESS;
|
|
||||||
}
|
|
|
@ -1,237 +0,0 @@
|
||||||
# Generated by pub
|
|
||||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
|
||||||
packages:
|
|
||||||
async:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: async
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.2.0"
|
|
||||||
boolean_selector:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: boolean_selector
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.0.5"
|
|
||||||
charcode:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: charcode
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.1.2"
|
|
||||||
charts_common:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: charts_common
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.6.0"
|
|
||||||
charts_flutter:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: charts_flutter
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.6.0"
|
|
||||||
collection:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: collection
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.14.11"
|
|
||||||
convert:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: convert
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.1.1"
|
|
||||||
crypto:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: crypto
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.0.6"
|
|
||||||
cupertino_icons:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: cupertino_icons
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.1.2"
|
|
||||||
fixnum:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: fixnum
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.10.9"
|
|
||||||
flutter:
|
|
||||||
dependency: "direct main"
|
|
||||||
description: flutter
|
|
||||||
source: sdk
|
|
||||||
version: "0.0.0"
|
|
||||||
flutter_test:
|
|
||||||
dependency: "direct dev"
|
|
||||||
description: flutter
|
|
||||||
source: sdk
|
|
||||||
version: "0.0.0"
|
|
||||||
http:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: http
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.12.0+2"
|
|
||||||
http_parser:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: http_parser
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "3.1.3"
|
|
||||||
intl:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: intl
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.15.8"
|
|
||||||
lbry:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
path: "../lbry"
|
|
||||||
relative: true
|
|
||||||
source: path
|
|
||||||
version: "0.0.1"
|
|
||||||
logging:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: logging
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.11.3+2"
|
|
||||||
matcher:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: matcher
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.12.5"
|
|
||||||
meta:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: meta
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.1.6"
|
|
||||||
path:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: path
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.6.2"
|
|
||||||
pedantic:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: pedantic
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.8.0+1"
|
|
||||||
protobuf:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: protobuf
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.13.15"
|
|
||||||
provider:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: provider
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "3.0.0+1"
|
|
||||||
quiver:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: quiver
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.0.3"
|
|
||||||
sky_engine:
|
|
||||||
dependency: transitive
|
|
||||||
description: flutter
|
|
||||||
source: sdk
|
|
||||||
version: "0.0.99"
|
|
||||||
source_span:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: source_span
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.5.5"
|
|
||||||
stack_trace:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: stack_trace
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.9.3"
|
|
||||||
stream_channel:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: stream_channel
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.0.0"
|
|
||||||
string_scanner:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: string_scanner
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.0.4"
|
|
||||||
term_glyph:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: term_glyph
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.1.0"
|
|
||||||
test_api:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: test_api
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.2.5"
|
|
||||||
typed_data:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: typed_data
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.1.6"
|
|
||||||
vector_math:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: vector_math
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "2.0.8"
|
|
||||||
web_socket_channel:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: web_socket_channel
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "1.0.14"
|
|
||||||
sdks:
|
|
||||||
dart: ">=2.2.2 <3.0.0"
|
|
|
@ -1,54 +0,0 @@
|
||||||
name: ver
|
|
||||||
description: An app for LBRY.
|
|
||||||
version: 0.0.1+1
|
|
||||||
homepage: https://lbry.com
|
|
||||||
author: LBRY Inc. <hello@lbry.com>
|
|
||||||
|
|
||||||
environment:
|
|
||||||
sdk: ">=2.1.0 <3.0.0"
|
|
||||||
|
|
||||||
dependencies:
|
|
||||||
flutter:
|
|
||||||
sdk: flutter
|
|
||||||
cupertino_icons: ^0.1.2
|
|
||||||
charts_flutter: ^0.6.0
|
|
||||||
provider: ^3.0.0
|
|
||||||
lbry:
|
|
||||||
path: ../lbry
|
|
||||||
|
|
||||||
dev_dependencies:
|
|
||||||
flutter_test:
|
|
||||||
sdk: flutter
|
|
||||||
|
|
||||||
flutter:
|
|
||||||
uses-material-design: true
|
|
||||||
# See https://github.com/flutter/flutter/wiki/Desktop-shells#fonts
|
|
||||||
fonts:
|
|
||||||
- family: Roboto
|
|
||||||
fonts:
|
|
||||||
- asset: fonts/Roboto/Roboto-Thin.ttf
|
|
||||||
weight: 100
|
|
||||||
- asset: fonts/Roboto/Roboto-Light.ttf
|
|
||||||
weight: 300
|
|
||||||
- asset: fonts/Roboto/Roboto-Regular.ttf
|
|
||||||
weight: 400
|
|
||||||
- asset: fonts/Roboto/Roboto-Medium.ttf
|
|
||||||
weight: 500
|
|
||||||
- asset: fonts/Roboto/Roboto-Bold.ttf
|
|
||||||
weight: 700
|
|
||||||
- asset: fonts/Roboto/Roboto-Black.ttf
|
|
||||||
weight: 900
|
|
||||||
- family: ""
|
|
||||||
fonts:
|
|
||||||
- asset: fonts/Roboto/Roboto-Thin.ttf
|
|
||||||
weight: 100
|
|
||||||
- asset: fonts/Roboto/Roboto-Light.ttf
|
|
||||||
weight: 300
|
|
||||||
- asset: fonts/Roboto/Roboto-Regular.ttf
|
|
||||||
weight: 400
|
|
||||||
- asset: fonts/Roboto/Roboto-Medium.ttf
|
|
||||||
weight: 500
|
|
||||||
- asset: fonts/Roboto/Roboto-Bold.ttf
|
|
||||||
weight: 700
|
|
||||||
- asset: fonts/Roboto/Roboto-Black.ttf
|
|
||||||
weight: 900
|
|
|
@ -1,30 +0,0 @@
|
||||||
// This is a basic Flutter widget test.
|
|
||||||
//
|
|
||||||
// To perform an interaction with a widget in your test, use the WidgetTester
|
|
||||||
// utility that Flutter provides. For example, you can send tap and scroll
|
|
||||||
// gestures. You can also use WidgetTester to find child widgets in the widget
|
|
||||||
// tree, read text, and verify that the values of widget properties are correct.
|
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
|
||||||
|
|
||||||
import 'package:ver/main.dart';
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
|
|
||||||
// Build our app and trigger a frame.
|
|
||||||
await tester.pumpWidget(MyApp());
|
|
||||||
|
|
||||||
// Verify that our counter starts at 0.
|
|
||||||
expect(find.text('0'), findsOneWidget);
|
|
||||||
expect(find.text('1'), findsNothing);
|
|
||||||
|
|
||||||
// Tap the '+' icon and trigger a frame.
|
|
||||||
await tester.tap(find.byIcon(Icons.add));
|
|
||||||
await tester.pump();
|
|
||||||
|
|
||||||
// Verify that our counter has incremented.
|
|
||||||
expect(find.text('0'), findsNothing);
|
|
||||||
expect(find.text('1'), findsOneWidget);
|
|
||||||
});
|
|
||||||
}
|
|
332
dart/packages/ver/windows/.gitignore
vendored
|
@ -1,332 +0,0 @@
|
||||||
## Ignore Visual Studio temporary files, build results, and
|
|
||||||
## files generated by popular Visual Studio add-ons.
|
|
||||||
##
|
|
||||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
|
||||||
|
|
||||||
# Local additions, not from the link above
|
|
||||||
flutter/
|
|
||||||
|
|
||||||
# User-specific files
|
|
||||||
*.suo
|
|
||||||
*.user
|
|
||||||
*.userosscache
|
|
||||||
*.sln.docstates
|
|
||||||
|
|
||||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
|
||||||
*.userprefs
|
|
||||||
|
|
||||||
# Build results
|
|
||||||
[Dd]ebug/
|
|
||||||
[Dd]ebugPublic/
|
|
||||||
[Rr]elease/
|
|
||||||
[Rr]eleases/
|
|
||||||
x64/
|
|
||||||
x86/
|
|
||||||
bld/
|
|
||||||
[Bb]in/
|
|
||||||
[Oo]bj/
|
|
||||||
[Ll]og/
|
|
||||||
|
|
||||||
# Visual Studio 2015/2017 cache/options directory
|
|
||||||
.vs/
|
|
||||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
|
||||||
#wwwroot/
|
|
||||||
|
|
||||||
# Visual Studio 2017 auto generated files
|
|
||||||
Generated\ Files/
|
|
||||||
|
|
||||||
# MSTest test Results
|
|
||||||
[Tt]est[Rr]esult*/
|
|
||||||
[Bb]uild[Ll]og.*
|
|
||||||
|
|
||||||
# NUNIT
|
|
||||||
*.VisualState.xml
|
|
||||||
TestResult.xml
|
|
||||||
|
|
||||||
# Build Results of an ATL Project
|
|
||||||
[Dd]ebugPS/
|
|
||||||
[Rr]eleasePS/
|
|
||||||
dlldata.c
|
|
||||||
|
|
||||||
# Benchmark Results
|
|
||||||
BenchmarkDotNet.Artifacts/
|
|
||||||
|
|
||||||
# .NET Core
|
|
||||||
project.lock.json
|
|
||||||
project.fragment.lock.json
|
|
||||||
artifacts/
|
|
||||||
|
|
||||||
# StyleCop
|
|
||||||
StyleCopReport.xml
|
|
||||||
|
|
||||||
# Files built by Visual Studio
|
|
||||||
*_i.c
|
|
||||||
*_p.c
|
|
||||||
*_i.h
|
|
||||||
*.ilk
|
|
||||||
*.meta
|
|
||||||
*.obj
|
|
||||||
*.iobj
|
|
||||||
*.pch
|
|
||||||
*.pdb
|
|
||||||
*.ipdb
|
|
||||||
*.pgc
|
|
||||||
*.pgd
|
|
||||||
*.rsp
|
|
||||||
*.sbr
|
|
||||||
*.tlb
|
|
||||||
*.tli
|
|
||||||
*.tlh
|
|
||||||
*.tmp
|
|
||||||
*.tmp_proj
|
|
||||||
*.log
|
|
||||||
*.vspscc
|
|
||||||
*.vssscc
|
|
||||||
.builds
|
|
||||||
*.pidb
|
|
||||||
*.svclog
|
|
||||||
*.scc
|
|
||||||
|
|
||||||
# Chutzpah Test files
|
|
||||||
_Chutzpah*
|
|
||||||
|
|
||||||
# Visual C++ cache files
|
|
||||||
ipch/
|
|
||||||
*.aps
|
|
||||||
*.ncb
|
|
||||||
*.opendb
|
|
||||||
*.opensdf
|
|
||||||
*.sdf
|
|
||||||
*.cachefile
|
|
||||||
*.VC.db
|
|
||||||
*.VC.VC.opendb
|
|
||||||
|
|
||||||
# Visual Studio profiler
|
|
||||||
*.psess
|
|
||||||
*.vsp
|
|
||||||
*.vspx
|
|
||||||
*.sap
|
|
||||||
|
|
||||||
# Visual Studio Trace Files
|
|
||||||
*.e2e
|
|
||||||
|
|
||||||
# TFS 2012 Local Workspace
|
|
||||||
$tf/
|
|
||||||
|
|
||||||
# Guidance Automation Toolkit
|
|
||||||
*.gpState
|
|
||||||
|
|
||||||
# ReSharper is a .NET coding add-in
|
|
||||||
_ReSharper*/
|
|
||||||
*.[Rr]e[Ss]harper
|
|
||||||
*.DotSettings.user
|
|
||||||
|
|
||||||
# JustCode is a .NET coding add-in
|
|
||||||
.JustCode
|
|
||||||
|
|
||||||
# TeamCity is a build add-in
|
|
||||||
_TeamCity*
|
|
||||||
|
|
||||||
# DotCover is a Code Coverage Tool
|
|
||||||
*.dotCover
|
|
||||||
|
|
||||||
# AxoCover is a Code Coverage Tool
|
|
||||||
.axoCover/*
|
|
||||||
!.axoCover/settings.json
|
|
||||||
|
|
||||||
# Visual Studio code coverage results
|
|
||||||
*.coverage
|
|
||||||
*.coveragexml
|
|
||||||
|
|
||||||
# NCrunch
|
|
||||||
_NCrunch_*
|
|
||||||
.*crunch*.local.xml
|
|
||||||
nCrunchTemp_*
|
|
||||||
|
|
||||||
# MightyMoose
|
|
||||||
*.mm.*
|
|
||||||
AutoTest.Net/
|
|
||||||
|
|
||||||
# Web workbench (sass)
|
|
||||||
.sass-cache/
|
|
||||||
|
|
||||||
# Installshield output folder
|
|
||||||
[Ee]xpress/
|
|
||||||
|
|
||||||
# DocProject is a documentation generator add-in
|
|
||||||
DocProject/buildhelp/
|
|
||||||
DocProject/Help/*.HxT
|
|
||||||
DocProject/Help/*.HxC
|
|
||||||
DocProject/Help/*.hhc
|
|
||||||
DocProject/Help/*.hhk
|
|
||||||
DocProject/Help/*.hhp
|
|
||||||
DocProject/Help/Html2
|
|
||||||
DocProject/Help/html
|
|
||||||
|
|
||||||
# Click-Once directory
|
|
||||||
publish/
|
|
||||||
|
|
||||||
# Publish Web Output
|
|
||||||
*.[Pp]ublish.xml
|
|
||||||
*.azurePubxml
|
|
||||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
|
||||||
# but database connection strings (with potential passwords) will be unencrypted
|
|
||||||
*.pubxml
|
|
||||||
*.publishproj
|
|
||||||
|
|
||||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
|
||||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
|
||||||
# in these scripts will be unencrypted
|
|
||||||
PublishScripts/
|
|
||||||
|
|
||||||
# NuGet Packages
|
|
||||||
*.nupkg
|
|
||||||
# The packages folder can be ignored because of Package Restore
|
|
||||||
**/[Pp]ackages/*
|
|
||||||
# except build/, which is used as an MSBuild target.
|
|
||||||
!**/[Pp]ackages/build/
|
|
||||||
# Uncomment if necessary however generally it will be regenerated when needed
|
|
||||||
#!**/[Pp]ackages/repositories.config
|
|
||||||
# NuGet v3's project.json files produces more ignorable files
|
|
||||||
*.nuget.props
|
|
||||||
*.nuget.targets
|
|
||||||
|
|
||||||
# Microsoft Azure Build Output
|
|
||||||
csx/
|
|
||||||
*.build.csdef
|
|
||||||
|
|
||||||
# Microsoft Azure Emulator
|
|
||||||
ecf/
|
|
||||||
rcf/
|
|
||||||
|
|
||||||
# Windows Store app package directories and files
|
|
||||||
AppPackages/
|
|
||||||
BundleArtifacts/
|
|
||||||
Package.StoreAssociation.xml
|
|
||||||
_pkginfo.txt
|
|
||||||
*.appx
|
|
||||||
|
|
||||||
# Visual Studio cache files
|
|
||||||
# files ending in .cache can be ignored
|
|
||||||
*.[Cc]ache
|
|
||||||
# but keep track of directories ending in .cache
|
|
||||||
!*.[Cc]ache/
|
|
||||||
|
|
||||||
# Others
|
|
||||||
ClientBin/
|
|
||||||
~$*
|
|
||||||
*~
|
|
||||||
*.dbmdl
|
|
||||||
*.dbproj.schemaview
|
|
||||||
*.jfm
|
|
||||||
*.pfx
|
|
||||||
*.publishsettings
|
|
||||||
orleans.codegen.cs
|
|
||||||
|
|
||||||
# Including strong name files can present a security risk
|
|
||||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
|
||||||
#*.snk
|
|
||||||
|
|
||||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
|
||||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
|
||||||
#bower_components/
|
|
||||||
|
|
||||||
# RIA/Silverlight projects
|
|
||||||
Generated_Code/
|
|
||||||
|
|
||||||
# Backup & report files from converting an old project file
|
|
||||||
# to a newer Visual Studio version. Backup files are not needed,
|
|
||||||
# because we have git ;-)
|
|
||||||
_UpgradeReport_Files/
|
|
||||||
Backup*/
|
|
||||||
UpgradeLog*.XML
|
|
||||||
UpgradeLog*.htm
|
|
||||||
ServiceFabricBackup/
|
|
||||||
*.rptproj.bak
|
|
||||||
|
|
||||||
# SQL Server files
|
|
||||||
*.mdf
|
|
||||||
*.ldf
|
|
||||||
*.ndf
|
|
||||||
|
|
||||||
# Business Intelligence projects
|
|
||||||
*.rdl.data
|
|
||||||
*.bim.layout
|
|
||||||
*.bim_*.settings
|
|
||||||
*.rptproj.rsuser
|
|
||||||
|
|
||||||
# Microsoft Fakes
|
|
||||||
FakesAssemblies/
|
|
||||||
|
|
||||||
# GhostDoc plugin setting file
|
|
||||||
*.GhostDoc.xml
|
|
||||||
|
|
||||||
# Node.js Tools for Visual Studio
|
|
||||||
.ntvs_analysis.dat
|
|
||||||
node_modules/
|
|
||||||
|
|
||||||
# Visual Studio 6 build log
|
|
||||||
*.plg
|
|
||||||
|
|
||||||
# Visual Studio 6 workspace options file
|
|
||||||
*.opt
|
|
||||||
|
|
||||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
|
||||||
*.vbw
|
|
||||||
|
|
||||||
# Visual Studio LightSwitch build output
|
|
||||||
**/*.HTMLClient/GeneratedArtifacts
|
|
||||||
**/*.DesktopClient/GeneratedArtifacts
|
|
||||||
**/*.DesktopClient/ModelManifest.xml
|
|
||||||
**/*.Server/GeneratedArtifacts
|
|
||||||
**/*.Server/ModelManifest.xml
|
|
||||||
_Pvt_Extensions
|
|
||||||
|
|
||||||
# Paket dependency manager
|
|
||||||
.paket/paket.exe
|
|
||||||
paket-files/
|
|
||||||
|
|
||||||
# FAKE - F# Make
|
|
||||||
.fake/
|
|
||||||
|
|
||||||
# JetBrains Rider
|
|
||||||
.idea/
|
|
||||||
*.sln.iml
|
|
||||||
|
|
||||||
# CodeRush
|
|
||||||
.cr/
|
|
||||||
|
|
||||||
# Python Tools for Visual Studio (PTVS)
|
|
||||||
__pycache__/
|
|
||||||
*.pyc
|
|
||||||
|
|
||||||
# Cake - Uncomment if you are using it
|
|
||||||
# tools/**
|
|
||||||
# !tools/packages.config
|
|
||||||
|
|
||||||
# Tabs Studio
|
|
||||||
*.tss
|
|
||||||
|
|
||||||
# Telerik's JustMock configuration file
|
|
||||||
*.jmconfig
|
|
||||||
|
|
||||||
# BizTalk build output
|
|
||||||
*.btp.cs
|
|
||||||
*.btm.cs
|
|
||||||
*.odx.cs
|
|
||||||
*.xsd.cs
|
|
||||||
|
|
||||||
# OpenCover UI analysis results
|
|
||||||
OpenCover/
|
|
||||||
|
|
||||||
# Azure Stream Analytics local run output
|
|
||||||
ASALocalRun/
|
|
||||||
|
|
||||||
# MSBuild Binary and Structured Log
|
|
||||||
*.binlog
|
|
||||||
|
|
||||||
# NVidia Nsight GPU debugger configuration file
|
|
||||||
*.nvuser
|
|
||||||
|
|
||||||
# MFractors (Xamarin productivity tool) working folder
|
|
||||||
.mfractor/
|
|
|
@ -1,25 +0,0 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 15
|
|
||||||
VisualStudioVersion = 15.0.28307.645
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Runner", "Runner.vcxproj", "{5A827760-CF8B-408A-99A3-B6C0AD2271E7}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Release|x64.Build.0 = Release|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {B8A69CB0-A974-4774-9EBD-1E5EECACD186}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
|
@ -1,161 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<VCProjectVersion>15.0</VCProjectVersion>
|
|
||||||
<ProjectGuid>{5A827760-CF8B-408A-99A3-B6C0AD2271E7}</ProjectGuid>
|
|
||||||
<RootNamespace>GLFWExample</RootNamespace>
|
|
||||||
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
|
|
||||||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
|
|
||||||
<PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="Shared">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="flutter\Generated.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="flutter\Generated.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<OutDir>$(ProjectDir)..\build\windows\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(ProjectDir)..\build\windows\intermediates\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<IncludePath>$(ProjectDir)flutter\;$(ProjectDir)flutter\cpp_client_wrapper\include\;$(IncludePath)</IncludePath>
|
|
||||||
<LibraryPath>$(ProjectDir)flutter;$(LibraryPath)</LibraryPath>
|
|
||||||
<TargetName>Flutter Desktop Example</TargetName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<OutDir>$(ProjectDir)..\build\windows\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
|
|
||||||
<IntDir>$(ProjectDir)..\build\windows\intermediates\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<IncludePath>$(ProjectDir)flutter\;$(ProjectDir)flutter\cpp_client_wrapper\include\;$(IncludePath)</IncludePath>
|
|
||||||
<LibraryPath>$(ProjectDir)flutter;$(LibraryPath)</LibraryPath>
|
|
||||||
<TargetName>Flutter Desktop Example</TargetName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>
|
|
||||||
</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>flutter_windows.dll.lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
</Link>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>"$(ProjectDir)scripts\prepare_dependencies" debug</Command>
|
|
||||||
<Message>Sync and build dependencies</Message>
|
|
||||||
</PreBuildEvent>
|
|
||||||
<PreLinkEvent>
|
|
||||||
<Command>
|
|
||||||
</Command>
|
|
||||||
<Message>
|
|
||||||
</Message>
|
|
||||||
</PreLinkEvent>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>
|
|
||||||
</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Message>
|
|
||||||
</Message>
|
|
||||||
</PostBuildEvent>
|
|
||||||
<CustomBuildStep>
|
|
||||||
<Command>"$(ProjectDir)scripts\bundle_assets_and_deps" "$(ProjectDir)flutter\" "$(OutputPath)" "$(TargetFileName)"</Command>
|
|
||||||
</CustomBuildStep>
|
|
||||||
<CustomBuildStep>
|
|
||||||
<Message>Bundling dependencies</Message>
|
|
||||||
<Outputs>Dummy_Run_Always</Outputs>
|
|
||||||
<Inputs>
|
|
||||||
</Inputs>
|
|
||||||
</CustomBuildStep>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<ConformanceMode>true</ConformanceMode>
|
|
||||||
<AdditionalIncludeDirectories>
|
|
||||||
</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<AdditionalDependencies>flutter_windows.dll.lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
</Link>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>"$(ProjectDir)scripts\prepare_dependencies" release</Command>
|
|
||||||
<Message>Sync and build dependencies</Message>
|
|
||||||
</PreBuildEvent>
|
|
||||||
<PreLinkEvent>
|
|
||||||
<Command>
|
|
||||||
</Command>
|
|
||||||
<Message>
|
|
||||||
</Message>
|
|
||||||
</PreLinkEvent>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>
|
|
||||||
</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Message>
|
|
||||||
</Message>
|
|
||||||
</PostBuildEvent>
|
|
||||||
<CustomBuildStep>
|
|
||||||
<Command>"$(ProjectDir)scripts\bundle_assets_and_deps" "$(ProjectDir)flutter\" "$(OutputPath)" "$(TargetFileName)"</Command>
|
|
||||||
</CustomBuildStep>
|
|
||||||
<CustomBuildStep>
|
|
||||||
<Message>Bundling dependencies</Message>
|
|
||||||
<Outputs>Dummy_Run_Always</Outputs>
|
|
||||||
<Inputs>
|
|
||||||
</Inputs>
|
|
||||||
</CustomBuildStep>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="$(ProjectDir)flutter\cpp_client_wrapper\engine_method_result.cc" />
|
|
||||||
<ClCompile Include="$(ProjectDir)flutter\cpp_client_wrapper\flutter_window_controller.cc" />
|
|
||||||
<ClCompile Include="$(ProjectDir)flutter\cpp_client_wrapper\plugin_registrar.cc" />
|
|
||||||
<ClCompile Include="flutter_embedder_example.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<LocalDebuggerWorkingDirectory>$(SolutionDir)</LocalDebuggerWorkingDirectory>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Project>
|
|
|
@ -1,34 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resource Files">
|
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Source Files\Client Wrapper">
|
|
||||||
<UniqueIdentifier>{2761a4b5-57b2-4d50-a677-d20ddc17a7f1}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="flutter_embedder_example.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="$(ProjectDir)flutter\cpp_client_wrapper\engine_method_result.cc">
|
|
||||||
<Filter>Source Files\Client Wrapper</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="$(ProjectDir)flutter\cpp_client_wrapper\flutter_window_controller.cc">
|
|
||||||
<Filter>Source Files\Client Wrapper</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="$(ProjectDir)flutter\cpp_client_wrapper\plugin_registrar.cc">
|
|
||||||
<Filter>Source Files\Client Wrapper</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
|
@ -1,73 +0,0 @@
|
||||||
// Copyright 2018 Google LLC
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#include "flutter/flutter_window_controller.h"
|
|
||||||
|
|
||||||
// Include windows.h last, to minimize potential conflicts. The CreateWindow
|
|
||||||
// macro needs to be undefined because it prevents calling
|
|
||||||
// FlutterWindowController's method.
|
|
||||||
#include <windows.h>
|
|
||||||
#undef CreateWindow
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
// Returns the path of the directory containing this executable, or an empty
|
|
||||||
// string if the directory cannot be found.
|
|
||||||
std::string GetExecutableDirectory() {
|
|
||||||
char buffer[MAX_PATH];
|
|
||||||
if (GetModuleFileName(nullptr, buffer, MAX_PATH) == 0) {
|
|
||||||
std::cerr << "Couldn't locate executable" << std::endl;
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
std::string executable_path(buffer);
|
|
||||||
size_t last_separator_position = executable_path.find_last_of('\\');
|
|
||||||
if (last_separator_position == std::string::npos) {
|
|
||||||
std::cerr << "Unabled to find parent directory of " << executable_path
|
|
||||||
<< std::endl;
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
return executable_path.substr(0, last_separator_position);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
|
||||||
// Resources are located relative to the executable.
|
|
||||||
std::string base_directory = GetExecutableDirectory();
|
|
||||||
if (base_directory.empty()) {
|
|
||||||
base_directory = ".";
|
|
||||||
}
|
|
||||||
std::string data_directory = base_directory + "\\data";
|
|
||||||
std::string assets_path = data_directory + "\\flutter_assets";
|
|
||||||
std::string icu_data_path = data_directory + "\\icudtl.dat";
|
|
||||||
|
|
||||||
// Arguments for the Flutter Engine.
|
|
||||||
std::vector<std::string> arguments;
|
|
||||||
|
|
||||||
flutter::FlutterWindowController flutter_controller(icu_data_path);
|
|
||||||
|
|
||||||
// Start the engine.
|
|
||||||
if (!flutter_controller.CreateWindow(800, 600, "ver - lbry workbench",
|
|
||||||
assets_path, arguments)) {
|
|
||||||
return EXIT_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Run until the window is closed.
|
|
||||||
flutter_controller.RunEventLoop();
|
|
||||||
return EXIT_SUCCESS;
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
:: Copyright 2018 Google LLC
|
|
||||||
::
|
|
||||||
:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
:: you may not use this file except in compliance with the License.
|
|
||||||
:: You may obtain a copy of the License at
|
|
||||||
::
|
|
||||||
:: http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
::
|
|
||||||
:: Unless required by applicable law or agreed to in writing, software
|
|
||||||
:: distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
:: See the License for the specific language governing permissions and
|
|
||||||
:: limitations under the License.
|
|
||||||
@echo off
|
|
||||||
|
|
||||||
set FLUTTER_CACHE_DIR=%~1
|
|
||||||
set BUNDLE_DIR=%~2
|
|
||||||
set EXE_NAME=%~3
|
|
||||||
|
|
||||||
set DATA_DIR=%BUNDLE_DIR%data
|
|
||||||
|
|
||||||
if not exist "%DATA_DIR%" call mkdir "%DATA_DIR%"
|
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
|
||||||
|
|
||||||
:: Write the executable name to the location expected by the Flutter tool.
|
|
||||||
echo %EXE_NAME%>"%FLUTTER_CACHE_DIR%exe_filename"
|
|
||||||
|
|
||||||
:: Copy the Flutter assets to the data directory.
|
|
||||||
set FLUTTER_APP_DIR=%~dp0..\..
|
|
||||||
set ASSET_DIR_NAME=flutter_assets
|
|
||||||
set TARGET_ASSET_DIR=%DATA_DIR%\%ASSET_DIR_NAME%
|
|
||||||
if exist "%TARGET_ASSET_DIR%" call rmdir /s /q "%TARGET_ASSET_DIR%"
|
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
|
||||||
call xcopy /s /e /i /q "%FLUTTER_APP_DIR%\build\%ASSET_DIR_NAME%" "%TARGET_ASSET_DIR%"
|
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
|
||||||
|
|
||||||
:: Copy the icudtl.dat file from the Flutter tree to the data directory.
|
|
||||||
call xcopy /y /d /q "%FLUTTER_CACHE_DIR%icudtl.dat" "%DATA_DIR%"
|
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
|
||||||
|
|
||||||
:: Copy the Flutter DLL to the target location.
|
|
||||||
call xcopy /y /d /q "%FLUTTER_CACHE_DIR%flutter_windows.dll" "%BUNDLE_DIR%"
|
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
|
|
@ -1,17 +0,0 @@
|
||||||
:: Copyright 2018 Google LLC
|
|
||||||
::
|
|
||||||
:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
:: you may not use this file except in compliance with the License.
|
|
||||||
:: You may obtain a copy of the License at
|
|
||||||
::
|
|
||||||
:: http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
::
|
|
||||||
:: Unless required by applicable law or agreed to in writing, software
|
|
||||||
:: distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
:: See the License for the specific language governing permissions and
|
|
||||||
:: limitations under the License.
|
|
||||||
@echo off
|
|
||||||
|
|
||||||
set BUILD_MODE=%~1
|
|
||||||
"%FLUTTER_ROOT%\packages\flutter_tools\bin\tool_backend" windows-x64 %BUILD_MODE%
|
|